Description
TrustFlowEscrowClient.createEscrow/releaseEscrow/getEscrow (src/escrow/client.ts) are entirely mocked — they return fabricated mock-${Date.now()} transaction hashes and null state, with the code explicitly commented // Build and submit Soroban invocation (placeholder). src/contract/invoke.ts builds an unsimulated, unsigned operation and returns it without submitting anything, and src/contract/build.ts hand-encodes ScVal arguments with no schema tied to the actual deployed contract interface — so there's no defined mechanism to detect when the on-chain contract's interface (ABI) changes out from under the SDK.
Separately, src/contracts.ts is orphaned dead code: it imports abundance-token, crowdfund-contract, and soroban-client, none of which exist in package.json, and loads a ./config.json that doesn't exist in src/. It isn't imported by anything else in the SDK.
Component
SDK
Difficulty
🟣 Spike — investigation required, scope not yet defined
Tasks
Acceptance Criteria
Estimated Time
2-3 days (time-boxed spike)
Description
TrustFlowEscrowClient.createEscrow/releaseEscrow/getEscrow(src/escrow/client.ts) are entirely mocked — they return fabricatedmock-${Date.now()}transaction hashes andnullstate, with the code explicitly commented// Build and submit Soroban invocation (placeholder).src/contract/invoke.tsbuilds an unsimulated, unsigned operation and returns it without submitting anything, andsrc/contract/build.tshand-encodesScValarguments with no schema tied to the actual deployed contract interface — so there's no defined mechanism to detect when the on-chain contract's interface (ABI) changes out from under the SDK.Separately,
src/contracts.tsis orphaned dead code: it importsabundance-token,crowdfund-contract, andsoroban-client, none of which exist inpackage.json, and loads a./config.jsonthat doesn't exist insrc/. It isn't imported by anything else in the SDK.Component
SDK
Difficulty
🟣 Spike — investigation required, scope not yet defined
Tasks
TrustFlowEscrowClient, building onstellar/transaction.ts/stellar/rpc.tssrc/contracts.ts— confirm it's dead/orphaned and safe to delete, or determine what abandoned multi-contract design it was meant to supportAcceptance Criteria
src/contracts.tseither deleted (with rationale) or a follow-up issue filed to properly implement its intentEstimated Time
2-3 days (time-boxed spike)