agentwallet-sdk 3.2.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/README.md +2 -536
  2. package/dist/bridge/abis.d.ts +48 -171
  3. package/dist/bridge/abis.d.ts.map +1 -1
  4. package/dist/bridge/abis.js.map +1 -1
  5. package/dist/bridge/client.d.ts +2 -41
  6. package/dist/bridge/client.d.ts.map +1 -1
  7. package/dist/bridge/client.js +35 -168
  8. package/dist/bridge/client.js.map +1 -1
  9. package/dist/bridge/index.d.ts +2 -4
  10. package/dist/bridge/index.d.ts.map +1 -1
  11. package/dist/bridge/index.js +1 -8
  12. package/dist/bridge/index.js.map +1 -1
  13. package/dist/bridge/types.d.ts +15 -134
  14. package/dist/bridge/types.d.ts.map +1 -1
  15. package/dist/bridge/types.js +16 -170
  16. package/dist/bridge/types.js.map +1 -1
  17. package/dist/identity/erc8004.d.ts +2 -240
  18. package/dist/identity/erc8004.d.ts.map +1 -1
  19. package/dist/identity/erc8004.js +58 -334
  20. package/dist/identity/erc8004.js.map +1 -1
  21. package/dist/index.d.ts +313 -134
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +11 -56
  24. package/dist/index.js.map +1 -1
  25. package/dist/swap/SwapModule.d.ts +6 -50
  26. package/dist/swap/SwapModule.d.ts.map +1 -1
  27. package/dist/swap/SwapModule.js +25 -153
  28. package/dist/swap/SwapModule.js.map +1 -1
  29. package/dist/swap/abi.d.ts +47 -165
  30. package/dist/swap/abi.d.ts.map +1 -1
  31. package/dist/swap/abi.js.map +1 -1
  32. package/dist/swap/index.d.ts +2 -3
  33. package/dist/swap/index.d.ts.map +1 -1
  34. package/dist/swap/index.js +1 -4
  35. package/dist/swap/index.js.map +1 -1
  36. package/dist/swap/types.d.ts +6 -36
  37. package/dist/swap/types.d.ts.map +1 -1
  38. package/dist/swap/types.js +0 -1
  39. package/dist/swap/types.js.map +1 -1
  40. package/dist/types.d.ts +1 -2
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +0 -1
  43. package/dist/types.js.map +1 -1
  44. package/dist/x402/__tests__/budget.test.d.ts +2 -0
  45. package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
  46. package/dist/x402/__tests__/budget.test.js +114 -0
  47. package/dist/x402/__tests__/budget.test.js.map +1 -0
  48. package/dist/x402/__tests__/client.test.d.ts +2 -0
  49. package/dist/x402/__tests__/client.test.d.ts.map +1 -0
  50. package/dist/x402/__tests__/client.test.js +107 -0
  51. package/dist/x402/__tests__/client.test.js.map +1 -0
  52. package/dist/x402/chains/abstract/index.d.ts +135 -0
  53. package/dist/x402/chains/abstract/index.d.ts.map +1 -0
  54. package/dist/x402/chains/abstract/index.js +190 -0
  55. package/dist/x402/chains/abstract/index.js.map +1 -0
  56. package/dist/x402/client.d.ts.map +1 -1
  57. package/dist/x402/client.js +1 -2
  58. package/dist/x402/client.js.map +1 -1
  59. package/dist/x402/index.d.ts +3 -1
  60. package/dist/x402/index.d.ts.map +1 -1
  61. package/dist/x402/index.js +3 -1
  62. package/dist/x402/index.js.map +1 -1
  63. package/dist/x402/types.d.ts +3 -5
  64. package/dist/x402/types.d.ts.map +1 -1
  65. package/dist/x402/types.js +2 -17
  66. package/dist/x402/types.js.map +1 -1
  67. package/package.json +12 -32
  68. package/dist/ap2/index.d.ts +0 -185
  69. package/dist/ap2/index.d.ts.map +0 -1
  70. package/dist/ap2/index.js +0 -255
  71. package/dist/ap2/index.js.map +0 -1
  72. package/dist/bridge/unified.d.ts +0 -101
  73. package/dist/bridge/unified.d.ts.map +0 -1
  74. package/dist/bridge/unified.js +0 -284
  75. package/dist/bridge/unified.js.map +0 -1
  76. package/dist/chains.d.ts +0 -62
  77. package/dist/chains.d.ts.map +0 -1
  78. package/dist/chains.js +0 -108
  79. package/dist/chains.js.map +0 -1
  80. package/dist/fiat/index.d.ts +0 -10
  81. package/dist/fiat/index.d.ts.map +0 -1
  82. package/dist/fiat/index.js +0 -9
  83. package/dist/fiat/index.js.map +0 -1
  84. package/dist/fiat/onramp.d.ts +0 -101
  85. package/dist/fiat/onramp.d.ts.map +0 -1
  86. package/dist/fiat/onramp.js +0 -155
  87. package/dist/fiat/onramp.js.map +0 -1
  88. package/dist/fiat/providers/index.d.ts +0 -16
  89. package/dist/fiat/providers/index.d.ts.map +0 -1
  90. package/dist/fiat/providers/index.js +0 -30
  91. package/dist/fiat/providers/index.js.map +0 -1
  92. package/dist/fiat/providers/moonpay.d.ts +0 -22
  93. package/dist/fiat/providers/moonpay.d.ts.map +0 -1
  94. package/dist/fiat/providers/moonpay.js +0 -107
  95. package/dist/fiat/providers/moonpay.js.map +0 -1
  96. package/dist/fiat/providers/stripe.d.ts +0 -26
  97. package/dist/fiat/providers/stripe.d.ts.map +0 -1
  98. package/dist/fiat/providers/stripe.js +0 -135
  99. package/dist/fiat/providers/stripe.js.map +0 -1
  100. package/dist/fiat/providers/transak.d.ts +0 -26
  101. package/dist/fiat/providers/transak.d.ts.map +0 -1
  102. package/dist/fiat/providers/transak.js +0 -119
  103. package/dist/fiat/providers/transak.js.map +0 -1
  104. package/dist/fiat/types.d.ts +0 -106
  105. package/dist/fiat/types.d.ts.map +0 -1
  106. package/dist/fiat/types.js +0 -13
  107. package/dist/fiat/types.js.map +0 -1
  108. package/dist/flash/executor.d.ts +0 -119
  109. package/dist/flash/executor.d.ts.map +0 -1
  110. package/dist/flash/executor.js +0 -195
  111. package/dist/flash/executor.js.map +0 -1
  112. package/dist/flash/index.d.ts +0 -28
  113. package/dist/flash/index.d.ts.map +0 -1
  114. package/dist/flash/index.js +0 -25
  115. package/dist/flash/index.js.map +0 -1
  116. package/dist/flash/scanner.d.ts +0 -133
  117. package/dist/flash/scanner.d.ts.map +0 -1
  118. package/dist/flash/scanner.js +0 -212
  119. package/dist/flash/scanner.js.map +0 -1
  120. package/dist/flash/types.d.ts +0 -136
  121. package/dist/flash/types.d.ts.map +0 -1
  122. package/dist/flash/types.js +0 -23
  123. package/dist/flash/types.js.map +0 -1
  124. package/dist/gas/index.d.ts +0 -4
  125. package/dist/gas/index.d.ts.map +0 -1
  126. package/dist/gas/index.js +0 -3
  127. package/dist/gas/index.js.map +0 -1
  128. package/dist/gas/sponsor.d.ts +0 -70
  129. package/dist/gas/sponsor.d.ts.map +0 -1
  130. package/dist/gas/sponsor.js +0 -193
  131. package/dist/gas/sponsor.js.map +0 -1
  132. package/dist/gas/types.d.ts +0 -76
  133. package/dist/gas/types.d.ts.map +0 -1
  134. package/dist/gas/types.js +0 -21
  135. package/dist/gas/types.js.map +0 -1
  136. package/dist/identity/agent-identity.d.ts +0 -276
  137. package/dist/identity/agent-identity.d.ts.map +0 -1
  138. package/dist/identity/agent-identity.js +0 -300
  139. package/dist/identity/agent-identity.js.map +0 -1
  140. package/dist/identity/erc6551.d.ts +0 -441
  141. package/dist/identity/erc6551.d.ts.map +0 -1
  142. package/dist/identity/erc6551.js +0 -517
  143. package/dist/identity/erc6551.js.map +0 -1
  144. package/dist/mev/index.d.ts +0 -4
  145. package/dist/mev/index.d.ts.map +0 -1
  146. package/dist/mev/index.js +0 -4
  147. package/dist/mev/index.js.map +0 -1
  148. package/dist/mev/protection.d.ts +0 -54
  149. package/dist/mev/protection.d.ts.map +0 -1
  150. package/dist/mev/protection.js +0 -185
  151. package/dist/mev/protection.js.map +0 -1
  152. package/dist/mev/risk.d.ts +0 -19
  153. package/dist/mev/risk.d.ts.map +0 -1
  154. package/dist/mev/risk.js +0 -95
  155. package/dist/mev/risk.js.map +0 -1
  156. package/dist/mev/types.d.ts +0 -49
  157. package/dist/mev/types.d.ts.map +0 -1
  158. package/dist/mev/types.js +0 -2
  159. package/dist/mev/types.js.map +0 -1
  160. package/dist/settlement/index.d.ts +0 -4
  161. package/dist/settlement/index.d.ts.map +0 -1
  162. package/dist/settlement/index.js +0 -3
  163. package/dist/settlement/index.js.map +0 -1
  164. package/dist/settlement/types.d.ts +0 -66
  165. package/dist/settlement/types.d.ts.map +0 -1
  166. package/dist/settlement/types.js +0 -37
  167. package/dist/settlement/types.js.map +0 -1
  168. package/dist/settlement/verifier.d.ts +0 -75
  169. package/dist/settlement/verifier.d.ts.map +0 -1
  170. package/dist/settlement/verifier.js +0 -354
  171. package/dist/settlement/verifier.js.map +0 -1
  172. package/dist/solana/bridge.d.ts +0 -144
  173. package/dist/solana/bridge.d.ts.map +0 -1
  174. package/dist/solana/bridge.js +0 -352
  175. package/dist/solana/bridge.js.map +0 -1
  176. package/dist/solana/index.d.ts +0 -8
  177. package/dist/solana/index.d.ts.map +0 -1
  178. package/dist/solana/index.js +0 -6
  179. package/dist/solana/index.js.map +0 -1
  180. package/dist/solana/swap.d.ts +0 -85
  181. package/dist/solana/swap.d.ts.map +0 -1
  182. package/dist/solana/swap.js +0 -173
  183. package/dist/solana/swap.js.map +0 -1
  184. package/dist/solana/types.d.ts +0 -126
  185. package/dist/solana/types.d.ts.map +0 -1
  186. package/dist/solana/types.js +0 -10
  187. package/dist/solana/types.js.map +0 -1
  188. package/dist/solana/wallet.d.ts +0 -83
  189. package/dist/solana/wallet.d.ts.map +0 -1
  190. package/dist/solana/wallet.js +0 -164
  191. package/dist/solana/wallet.js.map +0 -1
  192. package/dist/solana/x402.d.ts +0 -69
  193. package/dist/solana/x402.d.ts.map +0 -1
  194. package/dist/solana/x402.js +0 -154
  195. package/dist/solana/x402.js.map +0 -1
  196. package/dist/solver/adapter.d.ts +0 -47
  197. package/dist/solver/adapter.d.ts.map +0 -1
  198. package/dist/solver/adapter.js +0 -138
  199. package/dist/solver/adapter.js.map +0 -1
  200. package/dist/solver/analyzer.d.ts +0 -48
  201. package/dist/solver/analyzer.d.ts.map +0 -1
  202. package/dist/solver/analyzer.js +0 -89
  203. package/dist/solver/analyzer.js.map +0 -1
  204. package/dist/solver/builder.d.ts +0 -31
  205. package/dist/solver/builder.d.ts.map +0 -1
  206. package/dist/solver/builder.js +0 -60
  207. package/dist/solver/builder.js.map +0 -1
  208. package/dist/solver/index.d.ts +0 -22
  209. package/dist/solver/index.d.ts.map +0 -1
  210. package/dist/solver/index.js +0 -21
  211. package/dist/solver/index.js.map +0 -1
  212. package/dist/solver/types.d.ts +0 -115
  213. package/dist/solver/types.d.ts.map +0 -1
  214. package/dist/solver/types.js +0 -10
  215. package/dist/solver/types.js.map +0 -1
  216. package/dist/swap/router/cache.d.ts +0 -13
  217. package/dist/swap/router/cache.d.ts.map +0 -1
  218. package/dist/swap/router/cache.js +0 -30
  219. package/dist/swap/router/cache.js.map +0 -1
  220. package/dist/swap/router/flashbots.d.ts +0 -10
  221. package/dist/swap/router/flashbots.d.ts.map +0 -1
  222. package/dist/swap/router/flashbots.js +0 -43
  223. package/dist/swap/router/flashbots.js.map +0 -1
  224. package/dist/swap/router/health.d.ts +0 -17
  225. package/dist/swap/router/health.d.ts.map +0 -1
  226. package/dist/swap/router/health.js +0 -38
  227. package/dist/swap/router/health.js.map +0 -1
  228. package/dist/swap/router/index.d.ts +0 -10
  229. package/dist/swap/router/index.d.ts.map +0 -1
  230. package/dist/swap/router/index.js +0 -10
  231. package/dist/swap/router/index.js.map +0 -1
  232. package/dist/swap/router/providers/cowswap.d.ts +0 -11
  233. package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
  234. package/dist/swap/router/providers/cowswap.js +0 -79
  235. package/dist/swap/router/providers/cowswap.js.map +0 -1
  236. package/dist/swap/router/providers/index.d.ts +0 -20
  237. package/dist/swap/router/providers/index.d.ts.map +0 -1
  238. package/dist/swap/router/providers/index.js +0 -32
  239. package/dist/swap/router/providers/index.js.map +0 -1
  240. package/dist/swap/router/providers/jupiter.d.ts +0 -12
  241. package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
  242. package/dist/swap/router/providers/jupiter.js +0 -73
  243. package/dist/swap/router/providers/jupiter.js.map +0 -1
  244. package/dist/swap/router/providers/lifi.d.ts +0 -11
  245. package/dist/swap/router/providers/lifi.d.ts.map +0 -1
  246. package/dist/swap/router/providers/lifi.js +0 -123
  247. package/dist/swap/router/providers/lifi.js.map +0 -1
  248. package/dist/swap/router/providers/oneinch.d.ts +0 -13
  249. package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
  250. package/dist/swap/router/providers/oneinch.js +0 -71
  251. package/dist/swap/router/providers/oneinch.js.map +0 -1
  252. package/dist/swap/router/providers/paraswap.d.ts +0 -11
  253. package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
  254. package/dist/swap/router/providers/paraswap.js +0 -73
  255. package/dist/swap/router/providers/paraswap.js.map +0 -1
  256. package/dist/swap/router/providers/uniswap.d.ts +0 -31
  257. package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
  258. package/dist/swap/router/providers/uniswap.js +0 -116
  259. package/dist/swap/router/providers/uniswap.js.map +0 -1
  260. package/dist/swap/router/providers/zerox.d.ts +0 -13
  261. package/dist/swap/router/providers/zerox.d.ts.map +0 -1
  262. package/dist/swap/router/providers/zerox.js +0 -94
  263. package/dist/swap/router/providers/zerox.js.map +0 -1
  264. package/dist/swap/router/router.d.ts +0 -86
  265. package/dist/swap/router/router.d.ts.map +0 -1
  266. package/dist/swap/router/router.js +0 -224
  267. package/dist/swap/router/router.js.map +0 -1
  268. package/dist/swap/router/rsi/engine.d.ts +0 -60
  269. package/dist/swap/router/rsi/engine.d.ts.map +0 -1
  270. package/dist/swap/router/rsi/engine.js +0 -483
  271. package/dist/swap/router/rsi/engine.js.map +0 -1
  272. package/dist/swap/router/rsi/index.d.ts +0 -3
  273. package/dist/swap/router/rsi/index.d.ts.map +0 -1
  274. package/dist/swap/router/rsi/index.js +0 -3
  275. package/dist/swap/router/rsi/index.js.map +0 -1
  276. package/dist/swap/router/rsi/types.d.ts +0 -106
  277. package/dist/swap/router/rsi/types.d.ts.map +0 -1
  278. package/dist/swap/router/rsi/types.js +0 -3
  279. package/dist/swap/router/rsi/types.js.map +0 -1
  280. package/dist/swap/router/types.d.ts +0 -120
  281. package/dist/swap/router/types.d.ts.map +0 -1
  282. package/dist/swap/router/types.js +0 -16
  283. package/dist/swap/router/types.js.map +0 -1
  284. package/dist/tax/engine.d.ts +0 -131
  285. package/dist/tax/engine.d.ts.map +0 -1
  286. package/dist/tax/engine.js +0 -307
  287. package/dist/tax/engine.js.map +0 -1
  288. package/dist/tax/index.d.ts +0 -9
  289. package/dist/tax/index.d.ts.map +0 -1
  290. package/dist/tax/index.js +0 -8
  291. package/dist/tax/index.js.map +0 -1
  292. package/dist/tax/lots.d.ts +0 -60
  293. package/dist/tax/lots.d.ts.map +0 -1
  294. package/dist/tax/lots.js +0 -129
  295. package/dist/tax/lots.js.map +0 -1
  296. package/dist/tax/types.d.ts +0 -113
  297. package/dist/tax/types.d.ts.map +0 -1
  298. package/dist/tax/types.js +0 -18
  299. package/dist/tax/types.js.map +0 -1
  300. package/dist/yield/index.d.ts +0 -26
  301. package/dist/yield/index.d.ts.map +0 -1
  302. package/dist/yield/index.js +0 -25
  303. package/dist/yield/index.js.map +0 -1
  304. package/dist/yield/rates.d.ts +0 -114
  305. package/dist/yield/rates.d.ts.map +0 -1
  306. package/dist/yield/rates.js +0 -351
  307. package/dist/yield/rates.js.map +0 -1
  308. package/dist/yield/types.d.ts +0 -134
  309. package/dist/yield/types.d.ts.map +0 -1
  310. package/dist/yield/types.js +0 -24
  311. package/dist/yield/types.js.map +0 -1
  312. package/dist/yield/vault.d.ts +0 -112
  313. package/dist/yield/vault.d.ts.map +0 -1
  314. package/dist/yield/vault.js +0 -264
  315. package/dist/yield/vault.js.map +0 -1
@@ -1,352 +0,0 @@
1
- // [MAX-ADDED] SolanaCCTPBridge — CCTP V2 cross-chain USDC bridge for Solana
2
- // Handles Solana ↔ EVM USDC transfers via Circle's CCTP V2 protocol.
3
- //
4
- // Solana uses Anchor programs instead of EVM smart contracts:
5
- // TokenMessengerMinterV2: CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe
6
- // MessageTransmitterV2: CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC
7
- //
8
- // Flow (Solana → EVM):
9
- // 1. depositForBurn on Solana program → burns USDC, emits MessageSent
10
- // 2. Poll Circle IRIS API for attestation (same API as EVM)
11
- // 3. receiveMessage on destination EVM chain
12
- //
13
- // Flow (EVM → Solana):
14
- // 1. depositForBurn on EVM chain (via BridgeModule)
15
- // 2. Poll Circle IRIS API for attestation
16
- // 3. receiveMessage on Solana MessageTransmitterV2 program
17
- //
18
- // Source: https://developers.circle.com/cctp/references/solana-programs
19
- // Source: https://github.com/circlefin/solana-cctp-contracts
20
- import { PublicKey, Transaction, TransactionInstruction, SystemProgram, Keypair, } from '@solana/web3.js';
21
- import { getAssociatedTokenAddress, createAssociatedTokenAccountInstruction, TOKEN_PROGRAM_ID, } from '@solana/spl-token';
22
- import { SOLANA_CCTP_PROGRAMS, SOLANA_USDC_MINT, SOLANA_CCTP_DOMAIN, CCTP_DOMAIN_IDS, FINALITY_THRESHOLD, CIRCLE_ATTESTATION_API, MAX_ATTESTATION_POLLS, ATTESTATION_POLL_INTERVAL_MS, } from '../bridge/types.js';
23
- // ─── Minimal EVM Receiver (for Solana→EVM minting) ───
24
- /** Minimal ABI for MessageTransmitterV2.receiveMessage */
25
- const RECEIVE_MESSAGE_ABI = [{
26
- name: 'receiveMessage',
27
- type: 'function',
28
- inputs: [
29
- { name: 'message', type: 'bytes' },
30
- { name: 'attestation', type: 'bytes' },
31
- ],
32
- outputs: [{ name: 'success', type: 'bool' }],
33
- stateMutability: 'nonpayable',
34
- }];
35
- // ─── SolanaCCTPBridge ───
36
- /**
37
- * SolanaCCTPBridge — Handles CCTP V2 burns and receives on Solana.
38
- *
39
- * For the full Solana→EVM or EVM→Solana flow, use UnifiedBridge which
40
- * orchestrates both sides together.
41
- *
42
- * ```ts
43
- * const bridge = new SolanaCCTPBridge({
44
- * connection: new Connection('https://api.mainnet-beta.solana.com'),
45
- * payer: keypair,
46
- * });
47
- *
48
- * // Burn USDC on Solana → receive on Base
49
- * const result = await bridge.bridgeToEvm({
50
- * amount: 1_000_000n,
51
- * destinationChain: 'base',
52
- * destinationAddress: '0x...',
53
- * });
54
- * ```
55
- */
56
- export class SolanaCCTPBridge {
57
- constructor(config) {
58
- this.connection = config.connection;
59
- this.payer = config.payer;
60
- this.tokenMessengerMinterProgram = new PublicKey(SOLANA_CCTP_PROGRAMS.TOKEN_MESSENGER_MINTER_V2);
61
- this.messageTransmitterProgram = new PublicKey(SOLANA_CCTP_PROGRAMS.MESSAGE_TRANSMITTER_V2);
62
- this.usdcMint = new PublicKey(config.usdcMint ?? SOLANA_USDC_MINT);
63
- }
64
- // ─── Public API ───
65
- /**
66
- * Burn USDC on Solana and return burn result for attestation polling.
67
- * Part 1 of the Solana→EVM bridge flow.
68
- *
69
- * @note The Solana burn instruction calls `depositForBurn` on the
70
- * TokenMessengerMinterV2 program. The message is stored in a PDA
71
- * (MessageSent account) rather than emitted as an EVM log event.
72
- * Circle's IRIS API indexes these events by transaction signature.
73
- */
74
- async depositForBurn(params) {
75
- const { amount, destinationChain, destinationAddress, minFinalityThreshold = FINALITY_THRESHOLD.FAST, maxFee = 0n, } = params;
76
- const destinationDomain = CCTP_DOMAIN_IDS[destinationChain];
77
- if (destinationDomain === undefined) {
78
- throw new SolanaBridgeError('UNSUPPORTED_CHAIN', `Unsupported destination chain: ${destinationChain}`);
79
- }
80
- // Derive payer's USDC Associated Token Account
81
- const payerUsdcAta = await getAssociatedTokenAddress(this.usdcMint, this.payer.publicKey);
82
- // Derive PDAs for the CCTP program
83
- const [tokenMessengerPda] = PublicKey.findProgramAddressSync([Buffer.from('token_messenger')], this.tokenMessengerMinterProgram);
84
- const [tokenMinterPda] = PublicKey.findProgramAddressSync([Buffer.from('token_minter')], this.tokenMessengerMinterProgram);
85
- const [localTokenPda] = PublicKey.findProgramAddressSync([Buffer.from('local_token'), this.usdcMint.toBuffer()], this.tokenMessengerMinterProgram);
86
- const [remoteTokenMessengerPda] = PublicKey.findProgramAddressSync([
87
- Buffer.from('remote_token_messenger'),
88
- Buffer.from(new Uint32Array([destinationDomain]).buffer).reverse(),
89
- ], this.tokenMessengerMinterProgram);
90
- // MessageSent event account — generated client-side per Circle spec
91
- const messageSentKeypair = Keypair.generate();
92
- // MessageTransmitter state PDA
93
- const [messageTransmitterStatePda] = PublicKey.findProgramAddressSync([Buffer.from('message_transmitter')], this.messageTransmitterProgram);
94
- // Encode destinationCaller as 32-byte zero (anyone can receive)
95
- const destinationCallerBytes = Buffer.alloc(32);
96
- // Encode EVM destination address as 32-byte mintRecipient
97
- const mintRecipientBytes = this.evmAddressToBytes32(destinationAddress);
98
- // Build depositForBurn instruction data
99
- // Layout: [discriminator(8)] [amount(8)] [destinationDomain(4)] [mintRecipient(32)]
100
- // [destinationCaller(32)] [maxFee(8)] [minFinalityThreshold(4)]
101
- const discriminator = Buffer.from([134, 197, 116, 77, 208, 100, 37, 185]); // Anchor discriminator
102
- const amountBuf = Buffer.alloc(8);
103
- amountBuf.writeBigUInt64LE(amount, 0);
104
- const domainBuf = Buffer.alloc(4);
105
- domainBuf.writeUInt32LE(destinationDomain, 0);
106
- const maxFeeBuf = Buffer.alloc(8);
107
- maxFeeBuf.writeBigUInt64LE(maxFee, 0);
108
- const finalityBuf = Buffer.alloc(4);
109
- finalityBuf.writeUInt32LE(minFinalityThreshold, 0);
110
- const instructionData = Buffer.concat([
111
- discriminator,
112
- amountBuf,
113
- domainBuf,
114
- mintRecipientBytes,
115
- destinationCallerBytes,
116
- maxFeeBuf,
117
- finalityBuf,
118
- ]);
119
- const depositInstruction = new TransactionInstruction({
120
- programId: this.tokenMessengerMinterProgram,
121
- keys: [
122
- { pubkey: this.payer.publicKey, isSigner: true, isWritable: true },
123
- { pubkey: payerUsdcAta, isSigner: false, isWritable: true },
124
- { pubkey: tokenMessengerPda, isSigner: false, isWritable: false },
125
- { pubkey: remoteTokenMessengerPda, isSigner: false, isWritable: false },
126
- { pubkey: tokenMinterPda, isSigner: false, isWritable: true },
127
- { pubkey: localTokenPda, isSigner: false, isWritable: true },
128
- { pubkey: this.usdcMint, isSigner: false, isWritable: true },
129
- { pubkey: messageSentKeypair.publicKey, isSigner: true, isWritable: true },
130
- { pubkey: messageTransmitterStatePda, isSigner: false, isWritable: true },
131
- { pubkey: this.messageTransmitterProgram, isSigner: false, isWritable: false },
132
- { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
133
- { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
134
- ],
135
- data: instructionData,
136
- });
137
- const tx = new Transaction().add(depositInstruction);
138
- const { blockhash } = await this.connection.getLatestBlockhash();
139
- tx.recentBlockhash = blockhash;
140
- tx.feePayer = this.payer.publicKey;
141
- let signature;
142
- try {
143
- signature = await this.connection.sendTransaction(tx, [
144
- this.payer,
145
- messageSentKeypair,
146
- ]);
147
- await this.connection.confirmTransaction(signature, 'confirmed');
148
- }
149
- catch (err) {
150
- const msg = err instanceof Error ? err.message : String(err);
151
- throw new SolanaBridgeError('BURN_FAILED', `Solana CCTP depositForBurn failed: ${msg}. ` +
152
- `Ensure wallet has sufficient USDC and SOL for rent + fees.`);
153
- }
154
- // Fetch message bytes from the MessageSent account
155
- const { messageBytes, messageHash, nonce } = await this.fetchMessageSent(messageSentKeypair.publicKey);
156
- return {
157
- signature,
158
- messageHash,
159
- messageBytes,
160
- sourceDomain: SOLANA_CCTP_DOMAIN,
161
- destinationDomain,
162
- nonce,
163
- };
164
- }
165
- /**
166
- * Poll Circle IRIS API for attestation after a Solana burn.
167
- * Same API as EVM — IRIS indexes Solana transactions by message hash.
168
- */
169
- async waitForAttestation(messageHash, apiUrl = CIRCLE_ATTESTATION_API) {
170
- // Solana uses domain 5
171
- const url = `${apiUrl}/v2/messages/${SOLANA_CCTP_DOMAIN}/${messageHash}`;
172
- for (let attempt = 0; attempt < MAX_ATTESTATION_POLLS; attempt++) {
173
- let response;
174
- try {
175
- const res = await fetch(url, { headers: { 'Accept': 'application/json' } });
176
- if (!res.ok) {
177
- if (res.status === 404) {
178
- await this.sleep(ATTESTATION_POLL_INTERVAL_MS);
179
- continue;
180
- }
181
- const body = await res.text().catch(() => '');
182
- throw new SolanaBridgeError('ATTESTATION_ERROR', `Circle API HTTP ${res.status}: ${body}`);
183
- }
184
- response = await res.json();
185
- }
186
- catch (err) {
187
- if (err instanceof SolanaBridgeError)
188
- throw err;
189
- const msg = err instanceof Error ? err.message : String(err);
190
- throw new SolanaBridgeError('ATTESTATION_ERROR', `IRIS API unreachable: ${msg}`);
191
- }
192
- if (response.status === 'complete' && response.attestation) {
193
- return response.attestation;
194
- }
195
- if (response.status === 'error') {
196
- throw new SolanaBridgeError('ATTESTATION_ERROR', `Attestation failed: ${response.error ?? 'unknown'}. Hash: ${messageHash}`);
197
- }
198
- await this.sleep(ATTESTATION_POLL_INTERVAL_MS);
199
- }
200
- throw new SolanaBridgeError('ATTESTATION_TIMEOUT', `Attestation timeout after ${MAX_ATTESTATION_POLLS} polls. Hash: ${messageHash}`);
201
- }
202
- /**
203
- * Receive a CCTP message on Solana (EVM→Solana destination).
204
- * Calls receiveMessage on the Solana MessageTransmitterV2 program.
205
- *
206
- * @param message - CCTP message bytes from EVM burn tx
207
- * @param attestation - Circle attestation bytes
208
- * @param recipientUsdcAccount - Solana USDC ATA for recipient (must exist)
209
- */
210
- async receiveMessage(params) {
211
- const { message, attestation, recipientUsdcAccount } = params;
212
- const messageBytes = typeof message === 'string'
213
- ? Buffer.from(message.startsWith('0x') ? message.slice(2) : message, 'hex')
214
- : Buffer.from(message);
215
- const attestationBytes = Buffer.from(attestation.startsWith('0x') ? attestation.slice(2) : attestation, 'hex');
216
- const recipientAta = recipientUsdcAccount
217
- ? new PublicKey(recipientUsdcAccount)
218
- : await getAssociatedTokenAddress(this.usdcMint, this.payer.publicKey);
219
- // Derive PDAs needed for receiveMessage
220
- const [messageTransmitterStatePda] = PublicKey.findProgramAddressSync([Buffer.from('message_transmitter')], this.messageTransmitterProgram);
221
- const [usedNoncesPda] = PublicKey.findProgramAddressSync([Buffer.from('used_nonces'), messageBytes.slice(0, 32)], this.messageTransmitterProgram);
222
- const [tokenMessengerPda] = PublicKey.findProgramAddressSync([Buffer.from('token_messenger')], this.tokenMessengerMinterProgram);
223
- // Parse source domain from message (bytes 4-7)
224
- const sourceDomain = messageBytes.readUInt32BE(4);
225
- const [remoteTokenMessengerPda] = PublicKey.findProgramAddressSync([
226
- Buffer.from('remote_token_messenger'),
227
- Buffer.from(new Uint32Array([sourceDomain]).buffer).reverse(),
228
- ], this.tokenMessengerMinterProgram);
229
- const [tokenMinterPda] = PublicKey.findProgramAddressSync([Buffer.from('token_minter')], this.tokenMessengerMinterProgram);
230
- const [localTokenPda] = PublicKey.findProgramAddressSync([Buffer.from('local_token'), this.usdcMint.toBuffer()], this.tokenMessengerMinterProgram);
231
- // Encode receiveMessage instruction
232
- // Anchor discriminator for receiveMessage
233
- const discriminator = Buffer.from([102, 251, 20, 187, 65, 75, 37, 57]);
234
- const msgLenBuf = Buffer.alloc(4);
235
- msgLenBuf.writeUInt32LE(messageBytes.length, 0);
236
- const attLenBuf = Buffer.alloc(4);
237
- attLenBuf.writeUInt32LE(attestationBytes.length, 0);
238
- const instructionData = Buffer.concat([
239
- discriminator,
240
- msgLenBuf,
241
- messageBytes,
242
- attLenBuf,
243
- attestationBytes,
244
- ]);
245
- const receiveInstruction = new TransactionInstruction({
246
- programId: this.messageTransmitterProgram,
247
- keys: [
248
- { pubkey: this.payer.publicKey, isSigner: true, isWritable: true },
249
- { pubkey: messageTransmitterStatePda, isSigner: false, isWritable: true },
250
- { pubkey: usedNoncesPda, isSigner: false, isWritable: true },
251
- { pubkey: this.tokenMessengerMinterProgram, isSigner: false, isWritable: false },
252
- // Remaining accounts for TokenMessengerMinterV2 CPI:
253
- { pubkey: tokenMessengerPda, isSigner: false, isWritable: false },
254
- { pubkey: remoteTokenMessengerPda, isSigner: false, isWritable: false },
255
- { pubkey: tokenMinterPda, isSigner: false, isWritable: true },
256
- { pubkey: localTokenPda, isSigner: false, isWritable: true },
257
- { pubkey: recipientAta, isSigner: false, isWritable: true },
258
- { pubkey: this.usdcMint, isSigner: false, isWritable: true },
259
- { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
260
- { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
261
- ],
262
- data: instructionData,
263
- });
264
- const tx = new Transaction().add(receiveInstruction);
265
- const { blockhash } = await this.connection.getLatestBlockhash();
266
- tx.recentBlockhash = blockhash;
267
- tx.feePayer = this.payer.publicKey;
268
- let signature;
269
- try {
270
- signature = await this.connection.sendTransaction(tx, [this.payer]);
271
- await this.connection.confirmTransaction(signature, 'confirmed');
272
- }
273
- catch (err) {
274
- const msg = err instanceof Error ? err.message : String(err);
275
- throw new SolanaBridgeError('MINT_FAILED', `Solana receiveMessage failed: ${msg}. ` +
276
- `Ensure recipient USDC ATA exists and wallet has SOL for fees.`);
277
- }
278
- return signature;
279
- }
280
- /**
281
- * Ensure the payer's USDC ATA exists (create it if not).
282
- */
283
- async ensureUsdcAta(owner) {
284
- const ownerKey = owner ?? this.payer.publicKey;
285
- const ata = await getAssociatedTokenAddress(this.usdcMint, ownerKey);
286
- const accountInfo = await this.connection.getAccountInfo(ata);
287
- if (!accountInfo) {
288
- const createAtaIx = createAssociatedTokenAccountInstruction(this.payer.publicKey, ata, ownerKey, this.usdcMint);
289
- const tx = new Transaction().add(createAtaIx);
290
- const { blockhash } = await this.connection.getLatestBlockhash();
291
- tx.recentBlockhash = blockhash;
292
- tx.feePayer = this.payer.publicKey;
293
- const sig = await this.connection.sendTransaction(tx, [this.payer]);
294
- await this.connection.confirmTransaction(sig, 'confirmed');
295
- }
296
- return ata;
297
- }
298
- // ─── Internal Helpers ───
299
- /**
300
- * Fetch the MessageSent account data and extract message bytes.
301
- * On Solana, CCTP messages are stored in PDA accounts (not events).
302
- */
303
- async fetchMessageSent(messageSentAccount) {
304
- // Give the transaction time to finalize before fetching
305
- await this.sleep(2000);
306
- const accountInfo = await this.connection.getAccountInfo(messageSentAccount, 'confirmed');
307
- if (!accountInfo) {
308
- throw new SolanaBridgeError('BURN_FAILED', `MessageSent account not found: ${messageSentAccount.toString()}. ` +
309
- `Transaction may not have been confirmed.`);
310
- }
311
- // MessageSent account layout: [discriminator(8)] [message_len(4)] [message_bytes(N)]
312
- const data = accountInfo.data;
313
- if (data.length < 12) {
314
- throw new SolanaBridgeError('BURN_FAILED', `MessageSent account data too short: ${data.length} bytes`);
315
- }
316
- const messageLength = data.readUInt32LE(8);
317
- const messageBytes = data.slice(12, 12 + messageLength);
318
- const messageBytesHex = '0x' + Buffer.from(messageBytes).toString('hex');
319
- // Compute keccak256 of message bytes for IRIS API lookup
320
- // Use a simple implementation since we can't import viem here easily
321
- const { keccak256 } = await import('viem');
322
- const messageHash = keccak256(messageBytesHex);
323
- // Extract nonce (bytes 12-19 of message, after version[4] + srcDomain[4] + dstDomain[4])
324
- const nonceBytesHex = Buffer.from(messageBytes).toString('hex').slice(24, 40);
325
- const nonce = BigInt('0x' + nonceBytesHex);
326
- return { messageBytes: messageBytesHex, messageHash, nonce };
327
- }
328
- /**
329
- * Convert an EVM hex address to a 32-byte Buffer for Solana mintRecipient.
330
- * Per Circle spec: pad the EVM address on the left with 12 zero bytes.
331
- */
332
- evmAddressToBytes32(evmAddress) {
333
- const clean = evmAddress.startsWith('0x') ? evmAddress.slice(2) : evmAddress;
334
- const buf = Buffer.alloc(32, 0);
335
- Buffer.from(clean, 'hex').copy(buf, 12); // 12 zero bytes + 20 address bytes
336
- return buf;
337
- }
338
- sleep(ms) {
339
- return new Promise((resolve) => setTimeout(resolve, ms));
340
- }
341
- }
342
- // ─── SolanaBridgeError ───
343
- export class SolanaBridgeError extends Error {
344
- constructor(code, message) {
345
- super(`[SolanaCCTPBridge:${code}] ${message}`);
346
- this.code = code;
347
- this.name = 'SolanaBridgeError';
348
- }
349
- }
350
- // Re-export constants for convenience
351
- export { SOLANA_CCTP_PROGRAMS, SOLANA_USDC_MINT, SOLANA_CCTP_DOMAIN, };
352
- //# sourceMappingURL=bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/solana/bridge.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export { SolanaWallet } from './wallet.js';
2
- export { JupiterSwapClient, attachJupiterSwap, JUPITER_PLATFORM_FEE_BPS, JUPITER_DEFAULT_SLIPPAGE_BPS } from './swap.js';
3
- export { SolanaX402Client, createSolanaX402Client, SOLANA_NETWORK_USDC } from './x402.js';
4
- export type { SolanaX402Network } from './x402.js';
5
- export { SOLANA_USDC_MINT, SOLANA_USDC_DEVNET_MINT, SOL_NATIVE_MINT, } from './types.js';
6
- export type { SolanaWalletConfig, SolanaTransferParams, SolanaCommitment, JupiterQuote, JupiterRoutePlan, JupiterSwapParams, JupiterSwapResult, SolanaX402PaymentProof, SolanaX402Requirements, } from './types.js';
7
- export type { JupiterSwapConfig } from './swap.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/solana/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AACzH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC1F,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,6 +0,0 @@
1
- // [MAX-ADDED] Solana module barrel — export all Solana types and classes.
2
- export { SolanaWallet } from './wallet.js';
3
- export { JupiterSwapClient, attachJupiterSwap, JUPITER_PLATFORM_FEE_BPS, JUPITER_DEFAULT_SLIPPAGE_BPS } from './swap.js';
4
- export { SolanaX402Client, createSolanaX402Client, SOLANA_NETWORK_USDC } from './x402.js';
5
- export { SOLANA_USDC_MINT, SOLANA_USDC_DEVNET_MINT, SOL_NATIVE_MINT, } from './types.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/solana/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AACzH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAG1F,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -1,85 +0,0 @@
1
- import type { JupiterQuote, JupiterSwapParams, JupiterSwapResult } from './types.js';
2
- import { SOLANA_USDC_MINT, SOL_NATIVE_MINT } from './types.js';
3
- import { SolanaWallet } from './wallet.js';
4
- /** Platform fee: 0.875% (same as EVM SwapModule) in basis points */
5
- export declare const JUPITER_PLATFORM_FEE_BPS = 88;
6
- /** Default slippage: 50 bps = 0.5% */
7
- export declare const JUPITER_DEFAULT_SLIPPAGE_BPS = 50;
8
- /**
9
- * Configuration for JupiterSwapClient.
10
- */
11
- export interface JupiterSwapConfig {
12
- /** SolanaWallet to use for signing and broadcasting swaps */
13
- wallet: SolanaWallet;
14
- /** Platform fee wallet address (receives 0.875% fee). Optional. */
15
- feeWallet?: string;
16
- /** Override Jupiter API base URL (useful for testing/self-hosted) */
17
- apiBase?: string;
18
- /** Default slippage in bps (default: 50) */
19
- defaultSlippageBps?: number;
20
- }
21
- /**
22
- * JupiterSwapClient — wraps Jupiter Aggregator V6 for best-route token swaps on Solana.
23
- *
24
- * Features:
25
- * - Best-route quote from Jupiter
26
- * - 0.875% platform fee (matches EVM SwapModule)
27
- * - SOL ↔ USDC default routes
28
- * - Full slippage control
29
- * - No real RPC calls in mocked tests
30
- */
31
- export declare class JupiterSwapClient {
32
- private wallet;
33
- private feeWallet;
34
- private apiBase;
35
- private defaultSlippageBps;
36
- constructor(config: JupiterSwapConfig);
37
- /**
38
- * Get the best-route quote from Jupiter.
39
- *
40
- * @param inputMint - Input token mint (use SOL_NATIVE_MINT for native SOL)
41
- * @param outputMint - Output token mint
42
- * @param amount - Input amount in token base units
43
- * @param slippageBps - Slippage tolerance in bps (default: 50)
44
- * @returns JupiterQuote with route and output amount
45
- */
46
- getQuote(inputMint: string, outputMint: string, amount: bigint, slippageBps?: number): Promise<JupiterQuote>;
47
- /**
48
- * Execute a swap via Jupiter.
49
- *
50
- * Flow:
51
- * 1. Get best-route quote from Jupiter
52
- * 2. Request swap transaction from Jupiter
53
- * 3. Deserialize + sign + broadcast via SolanaWallet
54
- *
55
- * @returns JupiterSwapResult with signature and amounts
56
- */
57
- swap(params: JupiterSwapParams): Promise<JupiterSwapResult>;
58
- /**
59
- * Convenience: Swap SOL → USDC.
60
- */
61
- swapSolToUsdc(lamports: bigint, slippageBps?: number): Promise<JupiterSwapResult>;
62
- /**
63
- * Convenience: Swap USDC → SOL.
64
- */
65
- swapUsdcToSol(microUsdc: bigint, slippageBps?: number): Promise<JupiterSwapResult>;
66
- /**
67
- * Calculate the platform fee for a given input amount.
68
- * Mirrors EVM SwapModule's calcProtocolFee() for consistency.
69
- *
70
- * @param amount - Input amount in token base units
71
- * @returns Fee amount in token base units (floored)
72
- */
73
- calcPlatformFee(amount: bigint): bigint;
74
- /**
75
- * Sign a versioned transaction (Jupiter uses VersionedTransaction internally).
76
- * Routes through the wallet's keypair via a controlled interface.
77
- */
78
- private _signVersionedTx;
79
- }
80
- /**
81
- * Factory: create a JupiterSwapClient attached to an existing SolanaWallet.
82
- */
83
- export declare function attachJupiterSwap(wallet: SolanaWallet, options?: Omit<JupiterSwapConfig, 'wallet'>): JupiterSwapClient;
84
- export { SOLANA_USDC_MINT, SOL_NATIVE_MINT };
85
- //# sourceMappingURL=swap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/solana/swap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,sCAAsC;AACtC,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,MAAM,EAAE,YAAY,CAAC;IACrB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,MAAM,EAAE,iBAAiB;IAOrC;;;;;;;;OAQG;IACG,QAAQ,CACZ,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC;IA2BxB;;;;;;;;;OASG;IACG,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiEjE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IASvF;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IASxF;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIvC;;;OAGG;YACW,gBAAgB;CAW/B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAM,GAC9C,iBAAiB,CAEnB;AAGD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}