Skip to content

feat: add EndUser client with delegated signing/sending to Python and Java SDKs#663

Open
sammccord wants to merge 5 commits intomainfrom
sammccord/delegated-signing-java-py-rust
Open

feat: add EndUser client with delegated signing/sending to Python and Java SDKs#663
sammccord wants to merge 5 commits intomainfrom
sammccord/delegated-signing-java-py-rust

Conversation

@sammccord
Copy link
Copy Markdown
Contributor

Summary

  • Python: Add 12 delegated methods to EndUserClient (sign/send for EVM and Solana), 13 action methods and 3 address resolvers to EndUserAccount, wire EmbeddedWalletsApi into ApiClients
  • Java: Create EndUserClient with all 20 operations (CRUD + EVM delegated + Solana delegated), EndUserClientOptions with ListEndUsersOptions, wire endUser() namespace accessor into CdpClient with lazy initialization
  • Rust: Update OpenAPI generated client (already exposes all end-user methods)
  • Update OpenAPI generated clients for all three SDKs
  • Add comprehensive unit tests: 36 new tests for Python, 39 new tests for Java

Changes by SDK

Python

  • cdp/api_clients.py — Added embedded_wallets lazy property
  • cdp/end_user_client.py — Added 12 delegated methods
  • cdp/end_user_account.py — Added 3 address resolvers + 13 action methods
  • cdp/test/test_end_user_client.py — 14 new tests
  • cdp/test/test_end_user_account.py — 22 new tests
  • All 787 Python tests pass

Java

  • client/enduser/EndUserClient.java — New file, 20 methods (~740 lines)
  • client/enduser/EndUserClientOptions.java — New file, ListEndUsersOptions record with builder
  • CdpClient.java — Added endUser() accessor with double-checked locking
  • client/enduser/EndUserClientTest.java — 39 new tests
  • All 123 Java tests pass

Rust

  • src/api.rs — Updated generated client
  • build.rs — Updated build script

… Java SDKs

- Python: Add 12 delegated methods to EndUserClient, 13 action methods
  and address resolvers to EndUserAccount, wire EmbeddedWalletsApi
- Java: Create EndUserClient with 20 operations, EndUserClientOptions,
  wire endUser() namespace accessor into CdpClient
- Update OpenAPI generated clients for Python, Java, and Rust
- Add unit tests for both Python (36 new) and Java (39 new)
@cb-heimdall
Copy link
Copy Markdown

cb-heimdall commented Apr 17, 2026

✅ Heimdall Review Status

Requirement Status More Info
Reviews 3/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

- Python: Add delegated operations section with examples for all 12
  sign/send methods, EndUserAccount actions list, and ToC entry
- Java: Add end user management section with examples for CRUD,
  delegated EVM/Solana signing and sending, revoke delegation,
  API classes table entries, and features list update
marcin-cb
marcin-cb previously approved these changes Apr 17, 2026
@sammccord sammccord force-pushed the sammccord/delegated-signing-java-py-rust branch from cee3ff0 to 4a7fce3 Compare April 17, 2026 19:49
@cb-heimdall
Copy link
Copy Markdown

Review Error for sddioulde @ 2026-04-17 19:56:18 UTC
User failed mfa authentication, either user does not exist or public email is not set on your github profile. \ see go/mfa-help

@sddioulde sddioulde self-requested a review April 17, 2026 19:56
@cb-heimdall
Copy link
Copy Markdown

Review Error for sddioulde @ 2026-04-17 20:00:45 UTC
User failed mfa authentication, either user does not exist or public email is not set on your github profile. \ see go/mfa-help

@sddioulde sddioulde self-requested a review April 17, 2026 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

5 participants