Skip to content

feat: issue evm to solana orders#42

Open
Asem-Abdelhady wants to merge 11 commits intodevelopfrom
feature/v2-111-issue-evm-to-solana-orders
Open

feat: issue evm to solana orders#42
Asem-Abdelhady wants to merge 11 commits intodevelopfrom
feature/v2-111-issue-evm-to-solana-orders

Conversation

@Asem-Abdelhady
Copy link
Copy Markdown

@Asem-Abdelhady Asem-Abdelhady commented Apr 7, 2026

Summary

  • Adds Solana devnet as a selectable output destination in the IssueIntent screen
  • Adds solanaMainnet, solanaTestnet, solanaDevnet chain definitions via viem defineChain, merged into chainMap and chainById
  • Imports SOLANA_MAINNET_CHAIN_ID, SOLANA_TESTNET_CHAIN_ID, SOLANA_DEVNET_CHAIN_ID from @lifi/intent — no more hardcoded numeric constants
  • Exports SOLANA_CHAIN_IDS set, evmCoinList, and solanaCoinList helpers from config.ts
  • Adds Solana USDC (devnet + mainnet) and native SOL tokens to coinList
  • Adds a conditional "Solana Recipient" field (required when Solana output is selected) and "EVM Recipient" field (optional when EVM output is selected)
  • Blocks intent submission with a disabled button when a Solana output is selected but no valid Solana recipient has been entered
  • Fixes getCoin() address matching for 66-char bytes32 Solana token addresses
  • Whitelists Solana output settler PDAs in allowedOutputSettlers via SOLANA_OUTPUT_SETTLER_PDAS from @lifi/intent

Test Plan

  • Switch to testnet, select a Solana devnet output token (USDC) — "Solana Recipient" field appears and is required
  • Leave Solana Recipient empty — submit button shows "Solana Recipient Required" (disabled)
  • Enter a valid base58 Solana address — submit button becomes active
  • Submit an EVM→Solana intent and confirm it appears in the Intent API with correct output settler and oracle
  • Select an EVM-only output — only "EVM Recipient" field is shown (optional)
  • Run unit tests: bun test tests/unit/recipientField.test.ts — all 19 tests pass

Linear Ticket

Closes V2-111 — Issue EVM to Solana orders

Expected output

Screen.Recording.2026-04-07.at.6.01.42.PM.mov

- add containerToIntent() helper in utils/intent.ts that wraps orderToIntent
  with automatic namespace detection (solana vs eip155) from OrderContainer
- replace all orderToIntent(container) call sites with containerToIntent()
- alias StandardOrderIntent as StandardEVMIntent in intentExecution.ts
- add local idToToken() in intentList.ts (removed from @lifi/intent exports)
- Bump @lifi/intent from 0.0.3-alpha.1 to 0.0.4
- Add chainNamespace field to CoreToken in toCoreTokenContext
- Fix containerToIntent: use 'in' narrowing for proper TypeScript overload resolution
- Add StandardSolanaIntent guards in IntentFactory compact/escrow methods
- Add StandardSolanaIntent guard in Solver.claim before finaliseIntent
Allows users to specify a custom EVM output recipient address, independent
of the connected wallet. Defaults to the connected wallet when left blank.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 7, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6eb562a9-90cf-4a0f-8a91-80d10a4fa991

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/v2-111-issue-evm-to-solana-orders

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Asem-Abdelhady Asem-Abdelhady force-pushed the feature/v2-111-issue-evm-to-solana-orders branch from 785e394 to ecacee2 Compare April 7, 2026 16:28
@Asem-Abdelhady Asem-Abdelhady requested a review from reednaa April 7, 2026 16:43
Base automatically changed from feature/v2-116-add-recipient-field-on-lintentorg to asem/V2-109/accommodate-intent.ts-solana-changes May 6, 2026 12:36
Base automatically changed from asem/V2-109/accommodate-intent.ts-solana-changes to develop May 6, 2026 13:17
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