Skip to content

feat!: unify payment_vault_address across daemon and all SDKs#23

Merged
Nic-dorman merged 1 commit intomainfrom
feat/payment-vault-unification
Apr 9, 2026
Merged

feat!: unify payment_vault_address across daemon and all SDKs#23
Nic-dorman merged 1 commit intomainfrom
feat/payment-vault-unification

Conversation

@Nic-dorman
Copy link
Copy Markdown
Collaborator

Summary

ant-node (a08a727) unified data_payments_address + merkle_payments_address into a single payment_vault_address (PaymentVault contract). evmlib 0.8.0 and ant-core already use the unified API. This PR adapts antd and all 15 SDK clients.

BREAKING CHANGE: PrepareUploadResponse now returns payment_vault_address instead of separate data_payments_address / merkle_payments_address fields.

What changed

antd daemon

  • Env var: EVM_PAYMENT_VAULT_ADDRESS (with EVM_DATA_PAYMENTS_ADDRESS fallback for backward compat)
  • EVM_MERKLE_PAYMENTS_ADDRESS: removed entirely — both payment modes use the same vault contract
  • types.rs: PrepareUploadResponse collapses two optional fields into one required payment_vault_address: String
  • upload.rs: vault address read once at top of build_prepare_response(), shared by both wave-batch and merkle paths
  • openapi.yaml: version bumped 1.0.02.0.0, schema updated

All 15 SDK clients

Same mechanical rename across model definitions, JSON parsing, and test fixtures:

Go, JS, Python, Rust, C#, C++, Dart, Elixir, Java, Kotlin, Lua, PHP, Ruby, Swift, MCP

FFI

  • ffi/rust/ant-ffi: parameter rename data_payments_addresspayment_vault_address
  • evmlib 0.5.00.8.0 to align with antd

Scripts & docs

  • start-local.sh, start-local.ps1, ant-dev/cmd_start.py: emit single EVM_PAYMENT_VAULT_ADDRESS with manifest fallback
  • test-api.sh: updated prerequisites to list jq dependency
  • README.md, skill.md, llms-full.txt: updated

Bonus: C++ graph cleanup

Removed stale GraphEntry/GraphDescendant references from async_client, grpc_client, and tests (types were removed in an earlier PR but code references remained, causing build failures).

Verification done

Test suite Result
antd daemon (cargo test) 6/6 passed
antd-rust contract tests 54/54 passed
antd-js (npm test) 44/44 passed
antd-py (pytest) 46/46 passed
antd-go (go test) All passed
antd-ruby 24/24 passed
antd-csharp (dotnet test) 24/24 passed
antd-java (gradle test) BUILD SUCCESSFUL
antd-cpp (ctest) 2/2 passed (34 test cases)
Clippy Clean, zero warnings
Live devnet integration Health, data endpoints, wallet all working with EVM_PAYMENT_VAULT_ADDRESS
Manifest check ant-node emits payment_vault_address, old fields absent

Supersedes

Closes #22 (partial scripts-only fix — now included in this broader change)

Test plan

  • CI passes (fmt, clippy, doc, test)
  • Start local devnet — verify antd accepts EVM_PAYMENT_VAULT_ADDRESS
  • Verify prepare-upload response contains payment_vault_address (not old field names)
  • Grep audit: data_payments_address only appears in env var fallback code

🤖 Generated with Claude Code

ant-node unified data_payments_address + merkle_payments_address into
a single payment_vault_address (PaymentVault contract). This adapts
antd and all 15 SDK clients to the new field.

BREAKING CHANGE: PrepareUploadResponse now returns payment_vault_address
instead of separate data_payments_address / merkle_payments_address.
OpenAPI version bumped to 2.0.0.

Changes:
- antd: single EVM_PAYMENT_VAULT_ADDRESS env var (EVM_DATA_PAYMENTS_ADDRESS
  honored as fallback), unified response field in types.rs and upload.rs
- All SDKs: model, client, and test updates (Go, JS, Python, Rust, C#,
  C++, Dart, Elixir, Java, Kotlin, Lua, PHP, Ruby, Swift, MCP, FFI)
- FFI: evmlib 0.5.0 -> 0.8.0 to align with antd
- Scripts: start-local.sh/.ps1 and ant-dev emit EVM_PAYMENT_VAULT_ADDRESS
- C++ cleanup: remove stale graph entry code from async/grpc clients
- Docs: README, openapi.yaml, skill.md, llms-full.txt updated

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@Nic-dorman Nic-dorman merged commit f70e4a1 into main Apr 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant