Skip to content

feat(sdk): introduce invocation lifecycle middleware hooks#305

Merged
manoahLinks merged 3 commits into
crowdpass-live:mainfrom
Abolax123:feat/soroban-invocation-middleware
Apr 28, 2026
Merged

feat(sdk): introduce invocation lifecycle middleware hooks#305
manoahLinks merged 3 commits into
crowdpass-live:mainfrom
Abolax123:feat/soroban-invocation-middleware

Conversation

@Abolax123
Copy link
Copy Markdown

Summary
Adds middleware support to soroban-client SDK invocation lifecycle with before and after hooks.
Supports lifecycle stages: simulate, read, prepareWrite, write, sendTransaction, and waitForTransaction.
Adds typed middleware contexts with timing/duration, success/failure, method/contract metadata, source account, and tx hash.
Adds middleware docs and dedicated tests validating hook order and error handling.
Closes #227

What changed
Updated SDK config type to accept middleware in TokenboundSdkConfig.
Added new middleware types in sdk/src/types.ts:
InvocationStage
InvocationBeforeContext
InvocationAfterContext
InvocationMiddleware
Wrapped core invocation flows in sdk/src/core.ts with middleware execution.
Added tests in sdk/src/tests/middleware.test.ts.
Added usage docs in sdk/README.md.
Test plan
npm run test --prefix soroban-client
Verified new middleware tests pass:
read/simulate hook ordering
write/send/wait hook behavior
failure propagation with after error context
Notes
This branch also includes a small local-dev compatibility commit (test: fix local pre-push and jest) so pre-push runs cleanly on environments missing cargo.

Wittig18 and others added 3 commits April 27, 2026 10:48
Mock next-intl, polyfill TextEncoder, and skip cargo when unavailable

Made-with: Cursor
Add before/after middleware for simulate/read/write lifecycle stages

Made-with: Cursor
@manoahLinks manoahLinks merged commit f2560f9 into crowdpass-live:main Apr 28, 2026
0 of 3 checks passed
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented Apr 28, 2026

@Abolax123 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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-client: Introduce middleware hooks for invocation lifecycle

3 participants