Skip to content

fix(solana): normalize RPC transaction handling - #445

Open
zerone-jang wants to merge 1 commit into
lifinance:mainfrom
apyx-labs:fix/solana-rpc-compatibility
Open

fix(solana): normalize RPC transaction handling#445
zerone-jang wants to merge 1 commit into
lifinance:mainfrom
apyx-labs:fix/solana-rpc-compatibility

Conversation

@zerone-jang

@zerone-jang zerone-jang commented Aug 15, 2026

Copy link
Copy Markdown

Summary

  • send maxRetries as a JSON number so strict Solana RPC servers accept sendTransaction
  • derive transaction and bundle expiry checks from getEpochInfo().blockHeight
  • add unit coverage for option serialization and block-height polling

Context

@solana/kit types maxRetries as bigint, which serializes to \"0\". Solana RPC servers expect a JSON number and reject the request with -32602 Invalid params.

We also observed proxied RPC endpoints intermittently returning the slot for single-request getBlockHeight calls. Since slots exceed lastValidBlockHeight, this prematurely terminates the confirmation loop. getEpochInfo().blockHeight remained consistent across the same endpoints.

These changes were validated with two confirmed Solana swaps through the existing RPC path.

Test plan

  • pnpm --filter @lifi/sdk-provider-solana test:unit (58 passed)
  • pnpm --filter @lifi/sdk-provider-solana check:types
  • pnpm --filter @lifi/sdk-provider-solana build
  • pnpm check
  • workspace type and circular dependency checks via pre-commit hook

@changeset-bot

changeset-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 58e0b43

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@lifi/sdk-provider-solana Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

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