Skip to content

feat: add Orchestra inbound USDT deposits - #159

Closed
ben-kaufman wants to merge 15 commits into
masterfrom
feat/usdt-orchestra-inbound
Closed

ben-kaufman wants to merge 15 commits into
masterfrom
feat/usdt-orchestra-inbound

Conversation

@ben-kaufman

@ben-kaufman ben-kaufman commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Adds an optional Orchestra client for receiving USDT from Ethereum and TRON into the user's Arbitrum wallet. The client obtains reusable source-network deposit addresses so a sender can make a normal USDT transfer from another wallet.

  • Discovers enabled source networks and returns receive instructions with an estimated amount delivered to Arbitrum, applicable amount limits and slippage terms.
  • Authenticates deposit registration, history, detail and refund requests using the wallet's derived account.
  • Validates the returned network, recipient, amount and deposit terms before exposing receive instructions.
  • Provides paginated deposit history, delivery status, transaction references and actionable errors. Explicit refund requests let the user supply a valid address on the deposit's source network.

Based on #158. This PR adds the Rust client and native bindings. The companion backend owns Orchestra credentials, partner integration and refund authorization; native receive screens are maintained separately. The sender remains responsible for the source-network transaction fee.

QA Notes

  • Run cargo test --locked --lib modules::usdt, cargo fmt --check and cargo clippy --locked --lib --tests.
  • HTTP fixtures cover signed requests, receive-instruction validation, pagination, deposit details, refund requests and provider errors, including amount limits.
  • Live deposit delivery and refunds require Flashnet partner approval/provisioning and end-to-end acceptance testing. This PR does not enable partner routes or establish production acceptance.
  • Release packaging targets unpublished v0.6.0. Before remote package consumption, build the selected merged source, record the final SwiftPM checksum in a release-preparation commit, and tag/publish that exact iOS archive and matching Android package. Use matching local artifacts for branch testing; later stack layers must use a new version if an earlier layer has already been released.

Base automatically changed from feat/usdt0-outbound to master October 1, 2026 03:20
@ben-kaufman

Copy link
Copy Markdown
Collaborator Author

Superseded by #164, which implements Rhino inbound USDT deposits independently of the Paykit proof work. Keeping this branch available in case Orchestra support is revisited.

@ben-kaufman ben-kaufman closed this Oct 1, 2026
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