Skip to content

fix: wire soroban client adapter to replace unimplemented stubs and type invokeContract - #639

Merged
k-deejah merged 2 commits into
Sorokit:mainfrom
bytebinders:fix/issue-574-soroban-invoke
Aug 31, 2026
Merged

fix: wire soroban client adapter to replace unimplemented stubs and type invokeContract#639
k-deejah merged 2 commits into
Sorokit:mainfrom
bytebinders:fix/issue-574-soroban-invoke

Conversation

@bytebinders

Copy link
Copy Markdown

What Changed

  • Replaced the placeholder stub in the Soroban adapter block with the centralized client implementation.
  • Updated invokeContract parameters to use the typed InvokeParams interface instead of any.
  • Implemented event retrieval in getEvents returning valid contract event payloads for ContractEventFeed.
  • Removed all obsolete TODO comments and error stubs ({ error: 'Not implemented' }).

Why It Was Needed

  • Previously, invoking contracts in SorobanPanel failed with a "Not implemented" error stub.
  • ContractEventFeed received a null payload by default, preventing events from rendering in the UI.
  • The any parameter typing on invokeContract bypassed TypeScript safety.

Implementation Details

  • soroban.invokeContract now processes typed InvokeParams (contractId, method, args, sourceAccount).
  • soroban.getEvents returns structured ContractEvent records (id, type, ledger, topics, value, createdAt).
  • Unified client instantiation in main.tsx via createMockClient() / SorokitClient.

Verification

  • Verified SorobanPanel and ContractEventFeed integration.
  • Verified TypeScript compilation and absence of any casts in the adapter.

Closes #574

@k-deejah
k-deejah merged commit c8264df into Sorokit:main Aug 31, 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.

soroban.invokeContract always returns Not implemented — Soroban screen is non-functional

2 participants