feat(antd-dart)!: adopt PaymentMode enum + put/get convention (G3/2) - #122
Merged
Merged
Conversation
This was referenced May 21, 2026
Nic-dorman
force-pushed
the
nic/v2-340-file-upload-private
branch
from
May 21, 2026 15:41
cc9cea2 to
7e3d414
Compare
Mirrors the antd Dart SDK to the post-V2-340 wire shape:
- Add typed PaymentMode enum (auto / merkle / single, with .wire string).
- Rename methods on both REST AntdClient and gRPC GrpcAntdClient:
dataPutPrivate -> dataPut (POST /v1/data)
dataGetPrivate -> dataGet (POST /v1/data/get)
fileUploadPublic -> filePutPublic (POST /v1/files/public)
fileDownloadPublic -> fileGetPublic (POST /v1/files/public/get)
New private-file methods:
filePut (POST /v1/files)
fileGet (POST /v1/files/get)
- Thread paymentMode through dataPut, dataPutPublic, dataCost, filePut,
filePutPublic, fileCost on both REST and gRPC.
- Replace FileUploadResult with FilePutResult / FilePutPublicResult /
DataPutResult / DataPutPublicResult — chunks_stored and
payment_mode_used are surfaced explicitly. PutResult is kept for
chunk_put only.
- Regenerate proto stubs against post-V2-340 antd/v1/*.proto. The new
rpcs are DataService.{put, get, cost} / FileService.{put, putPublic,
get, getPublic, cost}; new message types PutFileRequest,
GetFilePublicRequest, etc. The pbenum.dart files are dropped by the
current protoc_plugin (no scoped enums in the proto).
- Update tests: client_test asserts payment_mode reaches the wire body
on every put/cost path and asserts dataGet / fileGet / fileGetPublic
POST shape. grpc_client_test's fake stub signatures match the new
method surface.
- Update examples 02_data, 04_files, 06_private_data, 07_external_signer
to use the new method names and surface chunksStored / paymentModeUsed.
Proto-plugin pin: dart pub global activate protoc_plugin 22.3.0. The
25.x plugin generates code targeting protobuf >= 6, which conflicts
with web3dart's transitive deps.
Nic-dorman
force-pushed
the
nic/antd-dart-payment-mode-rename
branch
from
May 21, 2026 15:50
1e273d5 to
2c46b1f
Compare
Nic-dorman
added a commit
that referenced
this pull request
May 21, 2026
… PaymentMode on REST SDKs (G4) Final fan-out tranche — the four REST-only SDKs that have no proto/gRPC work to do. Same naming + paymentMode semantics as the typed SDKs (#116, #117, #118, #119, #120, #121, #122, #123, #124). Per-SDK summary: - antd-js: new `PaymentMode` const + types `DataPutResult`, `DataPutPublicResult`, `FilePutResult`, `FilePutPublicResult` (`FileUploadResult` removed; `PutResult` kept for `chunkPut`). Method renames on `RestClient`: `dataPutPrivate` -> `dataPut`, `dataGetPrivate` -> `dataGet`, `fileUploadPublic` -> `filePutPublic`, `fileDownloadPublic` -> `fileGetPublic`. NEW: `filePut` + `fileGet`. `paymentMode` option added to data/file put + cost. package-lock.json refresh picks up the existing `ethers` devDep that example 07 imports. - antd-php: new `PaymentMode` backed enum + readonly result classes; same method renames on `AntdClient` (sync + async variants). - antd-zig: new `PaymentMode` enum with `.wire()`; result-type rename mirrors the others; `dataGet` switches to POST /v1/data/get with `data_map` body (replaces the old GET-with-querystring path). - antd-lua: new `models.PaymentMode` table of wire strings; method renames on `Client`; `data_get` / `file_get` / `file_put_public` / `file_get_public` go through POST bodies on the new routes. Validated on dev2: - antd-js: npm test (63/63 pass) + ant dev example all -l js (all six OK). - antd-php: phpunit (31/31 pass) + ant dev example all -l php (all OK). - antd-zig: zig 0.14.1 build test (pass) + ant dev example all -l zig. - antd-lua: busted (26/26 pass) + ant dev example all -l lua (all OK). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Nic-dorman
added a commit
that referenced
this pull request
May 21, 2026
… PaymentMode on REST SDKs (G4) (#125) Final fan-out tranche — the four REST-only SDKs that have no proto/gRPC work to do. Same naming + paymentMode semantics as the typed SDKs (#116, #117, #118, #119, #120, #121, #122, #123, #124). Per-SDK summary: - antd-js: new `PaymentMode` const + types `DataPutResult`, `DataPutPublicResult`, `FilePutResult`, `FilePutPublicResult` (`FileUploadResult` removed; `PutResult` kept for `chunkPut`). Method renames on `RestClient`: `dataPutPrivate` -> `dataPut`, `dataGetPrivate` -> `dataGet`, `fileUploadPublic` -> `filePutPublic`, `fileDownloadPublic` -> `fileGetPublic`. NEW: `filePut` + `fileGet`. `paymentMode` option added to data/file put + cost. package-lock.json refresh picks up the existing `ethers` devDep that example 07 imports. - antd-php: new `PaymentMode` backed enum + readonly result classes; same method renames on `AntdClient` (sync + async variants). - antd-zig: new `PaymentMode` enum with `.wire()`; result-type rename mirrors the others; `dataGet` switches to POST /v1/data/get with `data_map` body (replaces the old GET-with-querystring path). - antd-lua: new `models.PaymentMode` table of wire strings; method renames on `Client`; `data_get` / `file_get` / `file_put_public` / `file_get_public` go through POST bodies on the new routes. Validated on dev2: - antd-js: npm test (63/63 pass) + ant dev example all -l js (all six OK). - antd-php: phpunit (31/31 pass) + ant dev example all -l php (all OK). - antd-zig: zig 0.14.1 build test (pass) + ant dev example all -l zig. - antd-lua: busted (26/26 pass) + ant dev example all -l lua (all OK). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Nic-dorman
added a commit
that referenced
this pull request
May 21, 2026
Cuts v0.8.0 atop v0.7.1. Substantial breaking-change roll-up of the put/get rename, the private-file PUT/GET gap close, and several minor surface cleanups -- bundled here so the v1.0 cut can ship stable on top. ## Breaking (antd daemon) - feat(antd)!: bind to 127.0.0.1 by default on REST and gRPC (#107). Previously bound 0.0.0.0; use --bind-rest / --bind-grpc to override. - chore: remove dead graph_entry surface from antd proto + 5 SDKs (#92). GraphService and its 4 RPCs are gone; REST mounts dropped. - chore: remove dir_upload_public / dir_download_public surface (#95). Use file_put_public on a directory path instead; the daemon recurses. - feat(antd)!: normalize put/get convention + close private-file PUT and GET gaps (#115). Method renames across proto + REST + SDKs: data_put_private -> data_put data_get_private -> data_get file_upload_public -> file_put_public file_download_public -> file_get_public New: file_put / file_get for the private file path (previously only the public variant existed). New typed results: DataPutResult, DataPutPublicResult, FilePutResult, FilePutPublicResult; PutResult is now annotated as chunk_put only. ## Additive - feat(antd): honor payment_mode on gRPC put/cost paths and REST cost endpoints (#114). Optional kwarg threaded through every put/cost signature; empty/omitted maps to "auto" so older clients keep working. - feat: external-signer public uploads + single-chunk prepare/finalize across 15 SDKs (#90). - docs+spec: openapi.yaml refreshed for the v1.0 surface, including POST /v1/chunks/prepare and /v1/chunks/finalize for single-chunk external-signer publish (#126). ## SDK fan-out (PaymentMode + put/get convention, all 15) #116 antd-go, #117 antd-py/ruby/elixir, #118 antd-rust, #119 antd-csharp, #120 antd-java, #121 antd-swift, #122 antd-dart, #123 antd-kotlin, #124 antd-cpp, #125 antd-js/php/zig/lua, #127 antd-mcp. ## SDK example + build fixes - fix(antd-go): make 03-files example self-contained and runnable (#91) - fix(examples): make 04-files runnable across cpp/rust/elixir/lua/php/ruby/zig (#93) - fix(examples): runnable dart 04_files + java Example03Files; add java Example03Chunks (#94) - feat: gRPC transport example for antd-py and antd-rust (#113) - feat(antd-py): 07_external_signer example + ant-dev dispatcher entry (#98) - feat(antd-js): 07-external-signer example + antd-py empty-payments fix (#99) - feat(rust/go): 07-external-signer examples (#100) - feat(antd-csharp): 07_external_signer example (#101) - feat(antd-java): 07_external_signer example (#102) - feat(antd-kotlin): 07_external_signer example (#103) - feat(antd-dart): 07_external_signer example (#104) - feat(antd-ruby): 07_external_signer example (#105) - feat(antd-php): 07_external_signer example (#106) - chore(antd-kotlin): drop stale GraphDescendant from local proto copy (#108) ## Docs / infra - docs: external-signer flow reference + ABI + python smoke test (#97) - docs: add SECURITY.md with threat model and disclosure policy (#109) - docs!: refresh per-SDK READMEs + llms-full.txt + openapi.yaml for v1.0 surface (#126) - ci: add Go lint + test + vuln scanning for antd-go (#112) - ci: extend antd-rust to sibling-repo parity (fmt + clippy + audit + doc) (#111) - ci: skip antd/openapi.yaml and llms-full.txt from triggering CI (#128) - chore(scripts): add full-stack + integration sweep helpers (#96) - fix(antd-rust): regenerate Cargo.lock to unbreak --locked CI (#110) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings the Dart SDK in line with the post-V2-340 wire shape. Stacks on top of
nic/v2-340-file-upload-private; will rebase ontomainonce the base branch merges.Summary
PaymentModeenum (auto/merkle/single, with a.wireaccessor for the daemon string).AntdClient(REST) andGrpcAntdClient:dataPutPrivate→dataPut(POST /v1/data)dataGetPrivate→dataGet(POST /v1/data/get)fileUploadPublic→filePutPublic(POST /v1/files/public)fileDownloadPublic→fileGetPublic(POST /v1/files/public/get)filePut(POST /v1/files),fileGet(POST /v1/files/get).paymentModethreaded throughdataPut,dataPutPublic,dataCost,filePut,filePutPublic,fileCoston both transports.DataPutResult/DataPutPublicResult/FilePutResult/FilePutPublicResultcarrychunksStored+paymentModeUsed.PutResultis kept forchunkPutonly.FileUploadResultremoved.antd/v1/*.protoshape (DataService.{put, get, cost}/FileService.{put, putPublic, get, getPublic, cost}+ new message typesPutFileRequest,GetFilePublicRequest, etc.).Test plan
dart pub getresolves cleanly withprotobuf: ^4.1.0/grpc: ^4.0.1.dart analyze— clean (only the 3 pre-existing benign warnings).dart test— 51 / 51 pass. New assertions verifypayment_modereaches the wire body on every put/cost path and thatdataGet/fileGet/fileGetPublicPOST the new body shape.ant dev example all -l dartagainst the live antd daemon —02_data,04_files,06_private_data,07_external_signerall round-trip end-to-end (private data map surfaced, file public + chunk external-signer flows complete with chunks_stored populated).Proto-plugin pin
dart pub global activate protoc_plugin 22.3.0— the 25.x plugin generates code targeting protobuf 6+, which conflicts with web3dart's transitive deps. README updated to call this out.