feat: support Solana→EVM intent issuing#38
Open
Asem-Abdelhady wants to merge 1 commit intoasem/V2-111/evm-to-solana-intentsfrom
Open
feat: support Solana→EVM intent issuing#38Asem-Abdelhady wants to merge 1 commit intoasem/V2-111/evm-to-solana-intentsfrom
Asem-Abdelhady wants to merge 1 commit intoasem/V2-111/evm-to-solana-intentsfrom
Conversation
6e0298e to
9fac2da
Compare
- Add solanaEscrowLib to open escrow on Solana chain via Anchor program - Add Solana input chain branch in intentFactory using openSolanaEscrow - Add EVM recipient field in IssueIntent for Solana→EVM intents - Update flowProgress, intentList, Finalise, ReceiveMessage to handle StandardSolanaIntent type
9fac2da to
62820bb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds support for Solana→EVM intent issuing: a user with a Solana wallet can lock SPL tokens on Solana devnet and specify an EVM address to receive the output on any supported EVM chain.
This PR stacks on top of #37 (EVM→Solana), which must merge first.
Changes
New:
solanaEscrowLib.tsopenSolanaEscrow()callsinput_settler_escrow.open()on Solana via the Anchor programpolymer,input_settler_escrow,order_context) from config constantsorderId = keccak256(borsh(StandardOrder))to match the Rustderive_id()logicPromise.racewith a descriptive timeout errorUpdated:
intentFactory.tsisSolanaChain(inputChain)branch inopenIntent()callsopenSolanaEscrowand saves the order with the Solana input settler addressoutputRecipientdefaults toaccount()(connected EVM wallet) if not providedUpdated:
IssueIntent.svelteTests
openSolanaEscrow: empty inputs guard, happy path, Borsh encode error, and 60 s timeoutOut of scope
Proof relay and claim for Solana→EVM intents are not implemented in this PR. Once the escrow is opened on Solana, the ReceiveMessage screen renders disabled buttons with a TODO comment. The validate/claim step (relaying through the Polymer oracle to the EVM input settler) is tracked separately.
Test plan
bun run test:unit— 32 pass, 0 failCloses: V2-112
Expected output
Screen.Recording.2026-04-06.at.6.44.18.AM.mov