agentwallet-sdk 3.3.0 → 3.4.1

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 (320) hide show
  1. package/README.md +41 -516
  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 -136
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +11 -59
  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 +1 -4
  57. package/dist/x402/client.d.ts.map +1 -1
  58. package/dist/x402/client.js +2 -16
  59. package/dist/x402/client.js.map +1 -1
  60. package/dist/x402/index.d.ts +3 -1
  61. package/dist/x402/index.d.ts.map +1 -1
  62. package/dist/x402/index.js +3 -1
  63. package/dist/x402/index.js.map +1 -1
  64. package/dist/x402/types.d.ts +3 -5
  65. package/dist/x402/types.d.ts.map +1 -1
  66. package/dist/x402/types.js +2 -17
  67. package/dist/x402/types.js.map +1 -1
  68. package/package.json +12 -32
  69. package/dist/ap2/index.d.ts +0 -185
  70. package/dist/ap2/index.d.ts.map +0 -1
  71. package/dist/ap2/index.js +0 -255
  72. package/dist/ap2/index.js.map +0 -1
  73. package/dist/bridge/unified.d.ts +0 -101
  74. package/dist/bridge/unified.d.ts.map +0 -1
  75. package/dist/bridge/unified.js +0 -284
  76. package/dist/bridge/unified.js.map +0 -1
  77. package/dist/chains.d.ts +0 -62
  78. package/dist/chains.d.ts.map +0 -1
  79. package/dist/chains.js +0 -108
  80. package/dist/chains.js.map +0 -1
  81. package/dist/fiat/index.d.ts +0 -10
  82. package/dist/fiat/index.d.ts.map +0 -1
  83. package/dist/fiat/index.js +0 -9
  84. package/dist/fiat/index.js.map +0 -1
  85. package/dist/fiat/onramp.d.ts +0 -101
  86. package/dist/fiat/onramp.d.ts.map +0 -1
  87. package/dist/fiat/onramp.js +0 -155
  88. package/dist/fiat/onramp.js.map +0 -1
  89. package/dist/fiat/providers/index.d.ts +0 -16
  90. package/dist/fiat/providers/index.d.ts.map +0 -1
  91. package/dist/fiat/providers/index.js +0 -30
  92. package/dist/fiat/providers/index.js.map +0 -1
  93. package/dist/fiat/providers/moonpay.d.ts +0 -22
  94. package/dist/fiat/providers/moonpay.d.ts.map +0 -1
  95. package/dist/fiat/providers/moonpay.js +0 -107
  96. package/dist/fiat/providers/moonpay.js.map +0 -1
  97. package/dist/fiat/providers/stripe.d.ts +0 -26
  98. package/dist/fiat/providers/stripe.d.ts.map +0 -1
  99. package/dist/fiat/providers/stripe.js +0 -135
  100. package/dist/fiat/providers/stripe.js.map +0 -1
  101. package/dist/fiat/providers/transak.d.ts +0 -26
  102. package/dist/fiat/providers/transak.d.ts.map +0 -1
  103. package/dist/fiat/providers/transak.js +0 -119
  104. package/dist/fiat/providers/transak.js.map +0 -1
  105. package/dist/fiat/types.d.ts +0 -106
  106. package/dist/fiat/types.d.ts.map +0 -1
  107. package/dist/fiat/types.js +0 -13
  108. package/dist/fiat/types.js.map +0 -1
  109. package/dist/flash/executor.d.ts +0 -119
  110. package/dist/flash/executor.d.ts.map +0 -1
  111. package/dist/flash/executor.js +0 -195
  112. package/dist/flash/executor.js.map +0 -1
  113. package/dist/flash/index.d.ts +0 -28
  114. package/dist/flash/index.d.ts.map +0 -1
  115. package/dist/flash/index.js +0 -25
  116. package/dist/flash/index.js.map +0 -1
  117. package/dist/flash/scanner.d.ts +0 -133
  118. package/dist/flash/scanner.d.ts.map +0 -1
  119. package/dist/flash/scanner.js +0 -212
  120. package/dist/flash/scanner.js.map +0 -1
  121. package/dist/flash/types.d.ts +0 -136
  122. package/dist/flash/types.d.ts.map +0 -1
  123. package/dist/flash/types.js +0 -23
  124. package/dist/flash/types.js.map +0 -1
  125. package/dist/gas/index.d.ts +0 -4
  126. package/dist/gas/index.d.ts.map +0 -1
  127. package/dist/gas/index.js +0 -3
  128. package/dist/gas/index.js.map +0 -1
  129. package/dist/gas/sponsor.d.ts +0 -70
  130. package/dist/gas/sponsor.d.ts.map +0 -1
  131. package/dist/gas/sponsor.js +0 -193
  132. package/dist/gas/sponsor.js.map +0 -1
  133. package/dist/gas/types.d.ts +0 -76
  134. package/dist/gas/types.d.ts.map +0 -1
  135. package/dist/gas/types.js +0 -21
  136. package/dist/gas/types.js.map +0 -1
  137. package/dist/identity/agent-identity.d.ts +0 -276
  138. package/dist/identity/agent-identity.d.ts.map +0 -1
  139. package/dist/identity/agent-identity.js +0 -300
  140. package/dist/identity/agent-identity.js.map +0 -1
  141. package/dist/identity/erc6551.d.ts +0 -441
  142. package/dist/identity/erc6551.d.ts.map +0 -1
  143. package/dist/identity/erc6551.js +0 -517
  144. package/dist/identity/erc6551.js.map +0 -1
  145. package/dist/mev/index.d.ts +0 -4
  146. package/dist/mev/index.d.ts.map +0 -1
  147. package/dist/mev/index.js +0 -4
  148. package/dist/mev/index.js.map +0 -1
  149. package/dist/mev/protection.d.ts +0 -54
  150. package/dist/mev/protection.d.ts.map +0 -1
  151. package/dist/mev/protection.js +0 -185
  152. package/dist/mev/protection.js.map +0 -1
  153. package/dist/mev/risk.d.ts +0 -19
  154. package/dist/mev/risk.d.ts.map +0 -1
  155. package/dist/mev/risk.js +0 -95
  156. package/dist/mev/risk.js.map +0 -1
  157. package/dist/mev/types.d.ts +0 -49
  158. package/dist/mev/types.d.ts.map +0 -1
  159. package/dist/mev/types.js +0 -2
  160. package/dist/mev/types.js.map +0 -1
  161. package/dist/settlement/index.d.ts +0 -4
  162. package/dist/settlement/index.d.ts.map +0 -1
  163. package/dist/settlement/index.js +0 -3
  164. package/dist/settlement/index.js.map +0 -1
  165. package/dist/settlement/types.d.ts +0 -66
  166. package/dist/settlement/types.d.ts.map +0 -1
  167. package/dist/settlement/types.js +0 -37
  168. package/dist/settlement/types.js.map +0 -1
  169. package/dist/settlement/verifier.d.ts +0 -75
  170. package/dist/settlement/verifier.d.ts.map +0 -1
  171. package/dist/settlement/verifier.js +0 -354
  172. package/dist/settlement/verifier.js.map +0 -1
  173. package/dist/solana/bridge.d.ts +0 -144
  174. package/dist/solana/bridge.d.ts.map +0 -1
  175. package/dist/solana/bridge.js +0 -352
  176. package/dist/solana/bridge.js.map +0 -1
  177. package/dist/solana/index.d.ts +0 -8
  178. package/dist/solana/index.d.ts.map +0 -1
  179. package/dist/solana/index.js +0 -6
  180. package/dist/solana/index.js.map +0 -1
  181. package/dist/solana/swap.d.ts +0 -85
  182. package/dist/solana/swap.d.ts.map +0 -1
  183. package/dist/solana/swap.js +0 -173
  184. package/dist/solana/swap.js.map +0 -1
  185. package/dist/solana/types.d.ts +0 -126
  186. package/dist/solana/types.d.ts.map +0 -1
  187. package/dist/solana/types.js +0 -10
  188. package/dist/solana/types.js.map +0 -1
  189. package/dist/solana/wallet.d.ts +0 -83
  190. package/dist/solana/wallet.d.ts.map +0 -1
  191. package/dist/solana/wallet.js +0 -164
  192. package/dist/solana/wallet.js.map +0 -1
  193. package/dist/solana/x402.d.ts +0 -69
  194. package/dist/solana/x402.d.ts.map +0 -1
  195. package/dist/solana/x402.js +0 -154
  196. package/dist/solana/x402.js.map +0 -1
  197. package/dist/solver/adapter.d.ts +0 -47
  198. package/dist/solver/adapter.d.ts.map +0 -1
  199. package/dist/solver/adapter.js +0 -138
  200. package/dist/solver/adapter.js.map +0 -1
  201. package/dist/solver/analyzer.d.ts +0 -48
  202. package/dist/solver/analyzer.d.ts.map +0 -1
  203. package/dist/solver/analyzer.js +0 -89
  204. package/dist/solver/analyzer.js.map +0 -1
  205. package/dist/solver/builder.d.ts +0 -31
  206. package/dist/solver/builder.d.ts.map +0 -1
  207. package/dist/solver/builder.js +0 -60
  208. package/dist/solver/builder.js.map +0 -1
  209. package/dist/solver/index.d.ts +0 -22
  210. package/dist/solver/index.d.ts.map +0 -1
  211. package/dist/solver/index.js +0 -21
  212. package/dist/solver/index.js.map +0 -1
  213. package/dist/solver/types.d.ts +0 -115
  214. package/dist/solver/types.d.ts.map +0 -1
  215. package/dist/solver/types.js +0 -10
  216. package/dist/solver/types.js.map +0 -1
  217. package/dist/spend-guard/index.d.ts +0 -125
  218. package/dist/spend-guard/index.d.ts.map +0 -1
  219. package/dist/spend-guard/index.js +0 -150
  220. package/dist/spend-guard/index.js.map +0 -1
  221. package/dist/swap/router/cache.d.ts +0 -13
  222. package/dist/swap/router/cache.d.ts.map +0 -1
  223. package/dist/swap/router/cache.js +0 -30
  224. package/dist/swap/router/cache.js.map +0 -1
  225. package/dist/swap/router/flashbots.d.ts +0 -10
  226. package/dist/swap/router/flashbots.d.ts.map +0 -1
  227. package/dist/swap/router/flashbots.js +0 -43
  228. package/dist/swap/router/flashbots.js.map +0 -1
  229. package/dist/swap/router/health.d.ts +0 -17
  230. package/dist/swap/router/health.d.ts.map +0 -1
  231. package/dist/swap/router/health.js +0 -38
  232. package/dist/swap/router/health.js.map +0 -1
  233. package/dist/swap/router/index.d.ts +0 -10
  234. package/dist/swap/router/index.d.ts.map +0 -1
  235. package/dist/swap/router/index.js +0 -10
  236. package/dist/swap/router/index.js.map +0 -1
  237. package/dist/swap/router/providers/cowswap.d.ts +0 -11
  238. package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
  239. package/dist/swap/router/providers/cowswap.js +0 -79
  240. package/dist/swap/router/providers/cowswap.js.map +0 -1
  241. package/dist/swap/router/providers/index.d.ts +0 -20
  242. package/dist/swap/router/providers/index.d.ts.map +0 -1
  243. package/dist/swap/router/providers/index.js +0 -32
  244. package/dist/swap/router/providers/index.js.map +0 -1
  245. package/dist/swap/router/providers/jupiter.d.ts +0 -12
  246. package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
  247. package/dist/swap/router/providers/jupiter.js +0 -73
  248. package/dist/swap/router/providers/jupiter.js.map +0 -1
  249. package/dist/swap/router/providers/lifi.d.ts +0 -11
  250. package/dist/swap/router/providers/lifi.d.ts.map +0 -1
  251. package/dist/swap/router/providers/lifi.js +0 -123
  252. package/dist/swap/router/providers/lifi.js.map +0 -1
  253. package/dist/swap/router/providers/oneinch.d.ts +0 -13
  254. package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
  255. package/dist/swap/router/providers/oneinch.js +0 -71
  256. package/dist/swap/router/providers/oneinch.js.map +0 -1
  257. package/dist/swap/router/providers/paraswap.d.ts +0 -11
  258. package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
  259. package/dist/swap/router/providers/paraswap.js +0 -73
  260. package/dist/swap/router/providers/paraswap.js.map +0 -1
  261. package/dist/swap/router/providers/uniswap.d.ts +0 -31
  262. package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
  263. package/dist/swap/router/providers/uniswap.js +0 -116
  264. package/dist/swap/router/providers/uniswap.js.map +0 -1
  265. package/dist/swap/router/providers/zerox.d.ts +0 -13
  266. package/dist/swap/router/providers/zerox.d.ts.map +0 -1
  267. package/dist/swap/router/providers/zerox.js +0 -94
  268. package/dist/swap/router/providers/zerox.js.map +0 -1
  269. package/dist/swap/router/router.d.ts +0 -86
  270. package/dist/swap/router/router.d.ts.map +0 -1
  271. package/dist/swap/router/router.js +0 -224
  272. package/dist/swap/router/router.js.map +0 -1
  273. package/dist/swap/router/rsi/engine.d.ts +0 -60
  274. package/dist/swap/router/rsi/engine.d.ts.map +0 -1
  275. package/dist/swap/router/rsi/engine.js +0 -483
  276. package/dist/swap/router/rsi/engine.js.map +0 -1
  277. package/dist/swap/router/rsi/index.d.ts +0 -3
  278. package/dist/swap/router/rsi/index.d.ts.map +0 -1
  279. package/dist/swap/router/rsi/index.js +0 -3
  280. package/dist/swap/router/rsi/index.js.map +0 -1
  281. package/dist/swap/router/rsi/types.d.ts +0 -106
  282. package/dist/swap/router/rsi/types.d.ts.map +0 -1
  283. package/dist/swap/router/rsi/types.js +0 -3
  284. package/dist/swap/router/rsi/types.js.map +0 -1
  285. package/dist/swap/router/types.d.ts +0 -120
  286. package/dist/swap/router/types.d.ts.map +0 -1
  287. package/dist/swap/router/types.js +0 -16
  288. package/dist/swap/router/types.js.map +0 -1
  289. package/dist/tax/engine.d.ts +0 -131
  290. package/dist/tax/engine.d.ts.map +0 -1
  291. package/dist/tax/engine.js +0 -307
  292. package/dist/tax/engine.js.map +0 -1
  293. package/dist/tax/index.d.ts +0 -9
  294. package/dist/tax/index.d.ts.map +0 -1
  295. package/dist/tax/index.js +0 -8
  296. package/dist/tax/index.js.map +0 -1
  297. package/dist/tax/lots.d.ts +0 -60
  298. package/dist/tax/lots.d.ts.map +0 -1
  299. package/dist/tax/lots.js +0 -129
  300. package/dist/tax/lots.js.map +0 -1
  301. package/dist/tax/types.d.ts +0 -113
  302. package/dist/tax/types.d.ts.map +0 -1
  303. package/dist/tax/types.js +0 -18
  304. package/dist/tax/types.js.map +0 -1
  305. package/dist/yield/index.d.ts +0 -26
  306. package/dist/yield/index.d.ts.map +0 -1
  307. package/dist/yield/index.js +0 -25
  308. package/dist/yield/index.js.map +0 -1
  309. package/dist/yield/rates.d.ts +0 -114
  310. package/dist/yield/rates.d.ts.map +0 -1
  311. package/dist/yield/rates.js +0 -351
  312. package/dist/yield/rates.js.map +0 -1
  313. package/dist/yield/types.d.ts +0 -134
  314. package/dist/yield/types.d.ts.map +0 -1
  315. package/dist/yield/types.js +0 -24
  316. package/dist/yield/types.js.map +0 -1
  317. package/dist/yield/vault.d.ts +0 -112
  318. package/dist/yield/vault.d.ts.map +0 -1
  319. package/dist/yield/vault.js +0 -264
  320. 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"}