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,73 +1,22 @@
1
1
  import type { Address, Hash, Hex } from 'viem';
2
- /**
3
- * All EVM chains supported by CCTP V2 (16 chains).
4
- * Solana is non-EVM and handled separately via SolanaCCTPBridge.
5
- */
6
- export type BridgeChain = 'ethereum' | 'avalanche' | 'optimism' | 'arbitrum' | 'base' | 'polygon' | 'unichain' | 'linea' | 'codex' | 'sonic' | 'worldchain' | 'sei' | 'xdc' | 'hyperevm' | 'ink' | 'plume';
7
- /** Solana — non-EVM, handled by SolanaCCTPBridge */
8
- export type CCTPSolanaChain = 'solana';
9
- /** All CCTP V2 supported chains: 16 EVM + Solana */
10
- export type CCTPSupportedChain = BridgeChain | CCTPSolanaChain;
11
- /**
12
- * CCTP V2 domain IDs — Circle's internal chain identifiers.
13
- * Source: https://developers.circle.com/cctp/concepts/supported-chains-and-domains
14
- * These are used in smart contract calls and the attestation API.
15
- */
16
- export declare const CCTP_DOMAIN_IDS: Record<CCTPSupportedChain, number>;
17
- /** EVM chain IDs for all supported bridge chains */
2
+ /** Supported bridge destination chains */
3
+ export type BridgeChain = 'ethereum' | 'optimism' | 'base' | 'arbitrum';
4
+ /** CCTP V2 domain IDs (Circle's internal chain identifiers) */
5
+ export declare const CCTP_DOMAIN_IDS: Record<BridgeChain, number>;
6
+ /** EVM chain IDs for supported bridge chains */
18
7
  export declare const BRIDGE_CHAIN_IDS: Record<BridgeChain, number>;
19
- /** Default public RPC URLs replace with paid provider in production */
20
- export declare const BRIDGE_RPC_URLS: Record<BridgeChain, string>;
21
- /**
22
- * USDC contract addresses per chain — official Circle deployments.
23
- * Source: https://developers.circle.com/stablecoins/usdc-contract-addresses
24
- */
8
+ /** USDC contract addresses per chain */
25
9
  export declare const USDC_CONTRACT: Record<BridgeChain, Address>;
26
10
  /**
27
- * CCTP V2 TokenMessengerV2 addresses same address on all EVM chains.
28
- * Source: https://developers.circle.com/cctp/references/contract-addresses
29
- * Verified: 0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d (all chains)
11
+ * CCTP V2 TokenMessengerV2 addresses (source chain where burn happens).
30
12
  */
31
13
  export declare const TOKEN_MESSENGER_V2: Record<BridgeChain, Address>;
32
- /**
33
- * CCTP V2 MessageTransmitterV2 addresses — same address on all EVM chains.
34
- * Source: https://developers.circle.com/cctp/references/contract-addresses
35
- * Verified: 0x81D40F21F12A8F0E3252Bccb954D722d4c464B64 (all chains)
36
- */
14
+ /** CCTP V2 MessageTransmitterV2 addresses (destination chain — where mint happens) */
37
15
  export declare const MESSAGE_TRANSMITTER_V2: Record<BridgeChain, Address>;
38
- /**
39
- * Solana CCTP V2 program addresses (domain 5).
40
- * Source: https://developers.circle.com/cctp/references/solana-programs
41
- */
42
- export declare const SOLANA_CCTP_PROGRAMS: {
43
- /** Handles incoming messages + mints USDC on Solana */
44
- readonly MESSAGE_TRANSMITTER_V2: "CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC";
45
- /** Handles burn + combined TokenMessenger + TokenMinter on Solana */
46
- readonly TOKEN_MESSENGER_MINTER_V2: "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe";
47
- };
48
- /** Solana USDC mint address (mainnet) */
49
- export declare const SOLANA_USDC_MINT = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
50
- /** Solana CCTP domain ID */
51
- export declare const SOLANA_CCTP_DOMAIN = 5;
52
- /**
53
- * Platform bridge fee: 0.1% (10 basis points).
54
- * Applied on source chain before bridging. Circle CCTP itself is feeless.
55
- */
56
- export declare const PLATFORM_FEE_BPS = 10n;
57
- export declare const PLATFORM_FEE_DENOMINATOR = 10000n;
58
- /**
59
- * Calculate 0.1% platform fee for a given bridge amount.
60
- * @param amount - USDC amount in base units (6 decimals)
61
- */
62
- export declare function calcBridgeFee(amount: bigint): bigint;
63
- /**
64
- * Calculate the actual bridged amount after platform fee deduction.
65
- */
66
- export declare function calcAmountAfterFee(amount: bigint): bigint;
67
16
  /**
68
17
  * CCTP V2 minFinalityThreshold values.
69
- * - FAST (0): ~8–20 seconds. Circle fast attestation. Recommended for agents.
70
- * - FINALIZED (1000): Full on-chain finality. Use for large amounts (>$10k).
18
+ * - FAST (0): ~12 seconds. Circle fast attestation.
19
+ * - FINALIZED (1000): Full on-chain finality.
71
20
  */
72
21
  export declare const FINALITY_THRESHOLD: {
73
22
  readonly FAST: 0;
@@ -81,52 +30,19 @@ export declare const MAX_ATTESTATION_POLLS = 60;
81
30
  export declare const ATTESTATION_POLL_INTERVAL_MS = 5000;
82
31
  /** Options for a bridge operation */
83
32
  export interface BridgeOptions {
84
- /**
85
- * Minimum finality threshold.
86
- * - 0 (FAST): ~8–20 seconds using Circle's fast attestation
87
- * - 1000 (FINALIZED): Full finality (slower but more secure for large amounts)
88
- * @default 0 (fast finality)
89
- */
90
33
  minFinalityThreshold?: number;
91
- /**
92
- * Maximum fee in USDC base units (6 decimals).
93
- * Circle uses this as an upper bound for bridging fee.
94
- * @default 0n (no max fee limit)
95
- */
96
34
  maxFee?: bigint;
97
- /**
98
- * Optional override for the destination address.
99
- * Defaults to the same address as the source wallet.
100
- */
101
35
  destinationAddress?: Address;
102
- /**
103
- * RPC URL for the destination chain.
104
- * Required when minting on destination.
105
- */
106
36
  destinationRpcUrl?: string;
107
- /**
108
- * Circle attestation API override (for testing).
109
- */
110
37
  attestationApiUrl?: string;
111
- /**
112
- * Whether to apply the 0.1% platform fee.
113
- * @default true
114
- */
115
- applyPlatformFee?: boolean;
116
38
  }
117
39
  /** Result of a bridge.burn() operation */
118
40
  export interface BurnResult {
119
- /** Transaction hash of the burn tx on source chain */
120
41
  burnTxHash: Hash;
121
- /** CCTP nonce for tracking */
122
42
  nonce: bigint;
123
- /** The CCTP message hash (used to fetch attestation) */
124
43
  messageHash: Hex;
125
- /** Raw CCTP message bytes emitted in the MessageSent event */
126
44
  messageBytes: Hex;
127
- /** Source chain domain ID */
128
45
  sourceDomain: number;
129
- /** Destination chain domain ID */
130
46
  destinationDomain: number;
131
47
  }
132
48
  /** Circle attestation status */
@@ -137,52 +53,17 @@ export interface AttestationResponse {
137
53
  attestation: Hex | null;
138
54
  error?: string;
139
55
  }
140
- /** Result of the full bridge() operation (EVM chains) */
56
+ /** Result of the full bridge() operation */
141
57
  export interface BridgeResult {
142
- /** Transaction hash of the burn on source chain */
143
58
  burnTxHash: Hash;
144
- /** Transaction hash of the mint on destination chain */
145
59
  mintTxHash: Hash;
146
- /** Amount bridged in USDC base units (6 decimals) */
147
60
  amount: bigint;
148
- /** Platform fee collected (0.1% of amount) */
149
- platformFee: bigint;
150
- /** Source chain name */
151
- fromChain: CCTPSupportedChain;
152
- /** Destination chain name */
153
- toChain: CCTPSupportedChain;
154
- /** Recipient address on destination chain */
155
- recipient: string;
156
- /** CCTP nonce */
61
+ fromChain: BridgeChain;
62
+ toChain: BridgeChain;
63
+ recipient: Address;
157
64
  nonce: bigint;
158
- /** Total time in milliseconds from burn to mint */
159
65
  elapsedMs: number;
160
66
  }
161
- /** Quote for a bridge operation */
162
- export interface BridgeQuote {
163
- /** Input amount (USDC, 6 decimals) */
164
- inputAmount: bigint;
165
- /** Platform fee (0.1%) */
166
- platformFee: bigint;
167
- /** Amount that will arrive at destination */
168
- outputAmount: bigint;
169
- /** Source chain */
170
- fromChain: CCTPSupportedChain;
171
- /** Destination chain */
172
- toChain: CCTPSupportedChain;
173
- /** Estimated time in seconds */
174
- estimatedTimeSeconds: number;
175
- /** Whether fast transfer is available on the source chain */
176
- fastTransferAvailable: boolean;
177
- }
178
67
  /** Error codes for actionable bridge error messages */
179
- export type BridgeErrorCode = 'UNSUPPORTED_CHAIN' | 'UNSUPPORTED_ROUTE' | 'INSUFFICIENT_ALLOWANCE' | 'INSUFFICIENT_BALANCE' | 'BURN_FAILED' | 'ATTESTATION_TIMEOUT' | 'ATTESTATION_ERROR' | 'MINT_FAILED' | 'INVALID_AMOUNT' | 'NO_WALLET_CLIENT' | 'NO_SOLANA_WALLET' | 'SAME_CHAIN';
180
- /**
181
- * Chains that support CCTP V2 Fast Transfer (8–20 second attestation).
182
- * Chains NOT listed here use Standard Transfer (up to ~15 min on Ethereum).
183
- * Source: https://developers.circle.com/cctp/concepts/supported-chains-and-domains
184
- */
185
- export declare const FAST_TRANSFER_CHAINS: Set<CCTPSupportedChain>;
186
- /** Get estimated bridge time in seconds for a given source chain */
187
- export declare function getEstimatedBridgeSeconds(chain: CCTPSupportedChain): number;
68
+ export type BridgeErrorCode = 'UNSUPPORTED_CHAIN' | 'INSUFFICIENT_ALLOWANCE' | 'INSUFFICIENT_BALANCE' | 'BURN_FAILED' | 'ATTESTATION_TIMEOUT' | 'ATTESTATION_ERROR' | 'MINT_FAILED' | 'INVALID_AMOUNT' | 'NO_WALLET_CLIENT';
188
69
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,0CAA0C;AAC1C,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAExE,+DAA+D;AAC/D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKvD,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKxD,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAKtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAK3D,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAK/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,2CAA2C;AAC3C,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AACpE,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,sDAAsD;AACtD,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,GAAG,CAAC;IACjB,YAAY,EAAE,GAAG,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,gCAAgC;AAChC,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;AAE/E,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uDAAuD;AACvD,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,aAAa,GACb,qBAAqB,GACrB,mBAAmB,GACnB,aAAa,GACb,gBAAgB,GAChB,kBAAkB,CAAC"}
@@ -1,207 +1,53 @@
1
- // ─── CCTP Domain IDs ───
2
- /**
3
- * CCTP V2 domain IDs — Circle's internal chain identifiers.
4
- * Source: https://developers.circle.com/cctp/concepts/supported-chains-and-domains
5
- * These are used in smart contract calls and the attestation API.
6
- */
1
+ /** CCTP V2 domain IDs (Circle's internal chain identifiers) */
7
2
  export const CCTP_DOMAIN_IDS = {
8
3
  ethereum: 0,
9
- avalanche: 1,
10
4
  optimism: 2,
11
5
  arbitrum: 3,
12
- solana: 5,
13
6
  base: 6,
14
- polygon: 7,
15
- unichain: 10,
16
- linea: 11,
17
- codex: 12,
18
- sonic: 13,
19
- worldchain: 14,
20
- sei: 16,
21
- xdc: 18,
22
- hyperevm: 19,
23
- ink: 21,
24
- plume: 22,
25
7
  };
26
- /** EVM chain IDs for all supported bridge chains */
8
+ /** EVM chain IDs for supported bridge chains */
27
9
  export const BRIDGE_CHAIN_IDS = {
28
10
  ethereum: 1,
29
- avalanche: 43114,
30
11
  optimism: 10,
31
12
  arbitrum: 42161,
32
13
  base: 8453,
33
- polygon: 137,
34
- unichain: 130,
35
- linea: 59144,
36
- codex: 81224, // Codex mainnet chain ID — verified at thirdweb.com/codex
37
- sonic: 146,
38
- worldchain: 480,
39
- sei: 1329, // Sei EVM (Pacific-1 mainnet)
40
- xdc: 50,
41
- hyperevm: 999, // HyperLiquid EVM mainnet chain ID
42
- ink: 57073,
43
- plume: 98866, // Plume mainnet chain ID
44
- };
45
- /** Default public RPC URLs — replace with paid provider in production */
46
- export const BRIDGE_RPC_URLS = {
47
- ethereum: 'https://cloudflare-eth.com',
48
- avalanche: 'https://api.avax.network/ext/bc/C/rpc',
49
- optimism: 'https://mainnet.optimism.io',
50
- arbitrum: 'https://arb1.arbitrum.io/rpc',
51
- base: 'https://mainnet.base.org',
52
- polygon: 'https://polygon-rpc.com',
53
- unichain: 'https://mainnet.unichain.org',
54
- linea: 'https://rpc.linea.build',
55
- codex: 'https://rpc.codex.xyz',
56
- sonic: 'https://rpc.soniclabs.com',
57
- worldchain: 'https://worldchain-mainnet.g.alchemy.com/public',
58
- sei: 'https://evm-rpc.sei-apis.com',
59
- xdc: 'https://rpc.xinfin.network',
60
- hyperevm: 'https://rpc.hyperliquid.xyz/evm',
61
- ink: 'https://rpc-gel.inkonchain.com',
62
- plume: 'https://rpc.plume.org',
63
14
  };
64
- // ─── CCTP V2 Contract Addresses ───
65
- /**
66
- * USDC contract addresses per chain — official Circle deployments.
67
- * Source: https://developers.circle.com/stablecoins/usdc-contract-addresses
68
- */
15
+ /** USDC contract addresses per chain */
69
16
  export const USDC_CONTRACT = {
17
+ base: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
70
18
  ethereum: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
71
- avalanche: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E',
72
19
  optimism: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
73
20
  arbitrum: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
74
- base: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
75
- polygon: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
76
- unichain: '0x078D782b760474a361dDA0AF3839290b0EF57AD6',
77
- linea: '0x176211869cA2b568f2A7D4EE941E073a821EE1ff',
78
- codex: '0xd996633a415985DBd7D6D12f4A4343E31f5037cf',
79
- sonic: '0x29219dd400f2Bf60E5a23d13Be72B486D4038894',
80
- worldchain: '0x79A02482A880bCe3F13E09da970dC34dB4cD24D1',
81
- sei: '0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392',
82
- xdc: '0xfA2958CB79b0491CC627c1557F441eF849Ca8eb1',
83
- hyperevm: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
84
- ink: '0x2D270e6886d130D724215A266106e6832161EAEd',
85
- plume: '0x222365EF19F7947e5484218551B56bb3965Aa7aF',
86
21
  };
87
22
  /**
88
- * CCTP V2 TokenMessengerV2 addresses same address on all EVM chains.
89
- * Source: https://developers.circle.com/cctp/references/contract-addresses
90
- * Verified: 0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d (all chains)
23
+ * CCTP V2 TokenMessengerV2 addresses (source chain where burn happens).
91
24
  */
92
25
  export const TOKEN_MESSENGER_V2 = {
93
- ethereum: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
94
- avalanche: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
95
- optimism: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
96
- arbitrum: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
97
- base: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
98
- polygon: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
99
- unichain: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
100
- linea: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
101
- codex: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
102
- sonic: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
103
- worldchain: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
104
- sei: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
105
- xdc: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
106
- hyperevm: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
107
- ink: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
108
- plume: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
26
+ base: '0x8FD3bCdFd9987D7F3C86b67D2f25Dd4e82C80b2B',
27
+ ethereum: '0xbd3fa81b58ba92a82136038b25adec7066af3155',
28
+ optimism: '0x28Bc09B4EFdA1E348a97cA91F16CC43adFF2f50d',
29
+ arbitrum: '0x19330d10D9Cc8751218eaf51E8885D058642E08A',
109
30
  };
110
- /**
111
- * CCTP V2 MessageTransmitterV2 addresses — same address on all EVM chains.
112
- * Source: https://developers.circle.com/cctp/references/contract-addresses
113
- * Verified: 0x81D40F21F12A8F0E3252Bccb954D722d4c464B64 (all chains)
114
- */
31
+ /** CCTP V2 MessageTransmitterV2 addresses (destination chain — where mint happens) */
115
32
  export const MESSAGE_TRANSMITTER_V2 = {
116
- ethereum: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
117
- avalanche: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
118
- optimism: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
119
- arbitrum: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
120
- base: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
121
- polygon: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
122
- unichain: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
123
- linea: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
124
- codex: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
125
- sonic: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
126
- worldchain: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
127
- sei: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
128
- xdc: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
129
- hyperevm: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
130
- ink: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
131
- plume: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
132
- };
133
- // ─── Solana CCTP V2 Program Addresses ───
134
- /**
135
- * Solana CCTP V2 program addresses (domain 5).
136
- * Source: https://developers.circle.com/cctp/references/solana-programs
137
- */
138
- export const SOLANA_CCTP_PROGRAMS = {
139
- /** Handles incoming messages + mints USDC on Solana */
140
- MESSAGE_TRANSMITTER_V2: 'CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC',
141
- /** Handles burn + combined TokenMessenger + TokenMinter on Solana */
142
- TOKEN_MESSENGER_MINTER_V2: 'CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe',
33
+ base: '0xE737e5cEBEEBa77EFE7EcB0cd46C6b9c1Ce1e8b3',
34
+ ethereum: '0xE737e5cEBEEBa77EFE7EcB0cd46C6b9c1Ce1e8b3',
35
+ optimism: '0xE737e5cEBEEBa77EFE7EcB0cd46C6b9c1Ce1e8b3',
36
+ arbitrum: '0xE737e5cEBEEBa77EFE7EcB0cd46C6b9c1Ce1e8b3',
143
37
  };
144
- /** Solana USDC mint address (mainnet) */
145
- export const SOLANA_USDC_MINT = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
146
- /** Solana CCTP domain ID */
147
- export const SOLANA_CCTP_DOMAIN = 5;
148
- // ─── Platform Fee ───
149
- /**
150
- * Platform bridge fee: 0.1% (10 basis points).
151
- * Applied on source chain before bridging. Circle CCTP itself is feeless.
152
- */
153
- export const PLATFORM_FEE_BPS = 10n; // 10 basis points = 0.1%
154
- export const PLATFORM_FEE_DENOMINATOR = 10000n;
155
- /**
156
- * Calculate 0.1% platform fee for a given bridge amount.
157
- * @param amount - USDC amount in base units (6 decimals)
158
- */
159
- export function calcBridgeFee(amount) {
160
- return (amount * PLATFORM_FEE_BPS) / PLATFORM_FEE_DENOMINATOR;
161
- }
162
- /**
163
- * Calculate the actual bridged amount after platform fee deduction.
164
- */
165
- export function calcAmountAfterFee(amount) {
166
- return amount - calcBridgeFee(amount);
167
- }
168
- // ─── CCTP V2 Finality Thresholds ───
169
38
  /**
170
39
  * CCTP V2 minFinalityThreshold values.
171
- * - FAST (0): ~8–20 seconds. Circle fast attestation. Recommended for agents.
172
- * - FINALIZED (1000): Full on-chain finality. Use for large amounts (>$10k).
40
+ * - FAST (0): ~12 seconds. Circle fast attestation.
41
+ * - FINALIZED (1000): Full on-chain finality.
173
42
  */
174
43
  export const FINALITY_THRESHOLD = {
175
44
  FAST: 0,
176
45
  FINALIZED: 1000,
177
46
  };
178
- // ─── Circle Attestation API ───
179
47
  /** Circle IRIS attestation API base URL */
180
48
  export const CIRCLE_ATTESTATION_API = 'https://iris-api.circle.com';
181
49
  /** Max attestation polling attempts before timeout */
182
50
  export const MAX_ATTESTATION_POLLS = 60;
183
51
  /** Polling interval for attestation (milliseconds) */
184
52
  export const ATTESTATION_POLL_INTERVAL_MS = 5000;
185
- /**
186
- * Chains that support CCTP V2 Fast Transfer (8–20 second attestation).
187
- * Chains NOT listed here use Standard Transfer (up to ~15 min on Ethereum).
188
- * Source: https://developers.circle.com/cctp/concepts/supported-chains-and-domains
189
- */
190
- export const FAST_TRANSFER_CHAINS = new Set([
191
- 'ethereum',
192
- 'optimism',
193
- 'arbitrum',
194
- 'base',
195
- 'unichain',
196
- 'linea',
197
- 'codex',
198
- 'worldchain',
199
- 'ink',
200
- 'plume',
201
- 'solana',
202
- ]);
203
- /** Get estimated bridge time in seconds for a given source chain */
204
- export function getEstimatedBridgeSeconds(chain) {
205
- return FAST_TRANSFER_CHAINS.has(chain) ? 20 : 900; // 20s fast / 15min standard
206
- }
207
53
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAqCA,0BAA0B;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAuC;IACjE,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,EAAE;CACD,CAAC;AAEX,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAgC;IAC3D,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK,EAAM,0DAA0D;IAC5E,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,GAAG;IACf,GAAG,EAAE,IAAI,EAAS,8BAA8B;IAChD,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,GAAG,EAAK,mCAAmC;IACrD,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,KAAK,EAAM,yBAAyB;CACnC,CAAC;AAEX,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,QAAQ,EAAE,4BAA4B;IACtC,SAAS,EAAE,uCAAuC;IAClD,QAAQ,EAAE,6BAA6B;IACvC,QAAQ,EAAE,8BAA8B;IACxC,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,yBAAyB;IAClC,QAAQ,EAAE,8BAA8B;IACxC,KAAK,EAAE,yBAAyB;IAChC,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,2BAA2B;IAClC,UAAU,EAAE,iDAAiD;IAC7D,GAAG,EAAE,8BAA8B;IACnC,GAAG,EAAE,4BAA4B;IACjC,QAAQ,EAAE,iCAAiC;IAC3C,GAAG,EAAE,gCAAgC;IACrC,KAAK,EAAE,uBAAuB;CACtB,CAAC;AAEX,qCAAqC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,QAAQ,EAAI,4CAA4C;IACxD,SAAS,EAAG,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,IAAI,EAAQ,4CAA4C;IACxD,OAAO,EAAK,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,UAAU,EAAE,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;CAChD,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,QAAQ,EAAI,4CAA4C;IACxD,SAAS,EAAG,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,IAAI,EAAQ,4CAA4C;IACxD,OAAO,EAAK,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,UAAU,EAAE,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;CAChD,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAiC;IAClE,QAAQ,EAAI,4CAA4C;IACxD,SAAS,EAAG,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,IAAI,EAAQ,4CAA4C;IACxD,OAAO,EAAK,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;IACxD,UAAU,EAAE,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,QAAQ,EAAI,4CAA4C;IACxD,GAAG,EAAS,4CAA4C;IACxD,KAAK,EAAO,4CAA4C;CAChD,CAAC;AAEX,2CAA2C;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,uDAAuD;IACvD,sBAAsB,EAAE,8CAA8C;IACtE,qEAAqE;IACrE,yBAAyB,EAAE,8CAA8C;CACjE,CAAC;AAEX,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,8CAA8C,CAAC;AAE/E,4BAA4B;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,uBAAuB;AAEvB;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC,CAAC,yBAAyB;AAC9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAO,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,GAAG,wBAAwB,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,sCAAsC;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,IAAI;CACP,CAAC;AAEX,iCAAiC;AAEjC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAEpE,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,sDAAsD;AACtD,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAK,CAAC;AA8HlD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAqB;IAC9D,UAAU;IACV,UAAU;IACV,UAAU;IACV,MAAM;IACN,UAAU;IACV,OAAO;IACP,OAAO;IACP,YAAY;IACZ,KAAK;IACL,OAAO;IACP,QAAQ;CACT,CAAC,CAAC;AAEH,oEAAoE;AACpE,MAAM,UAAU,yBAAyB,CAAC,KAAyB;IACjE,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,4BAA4B;AACjF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAKA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAgC;IAC3D,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,IAAI,EAAE,4CAA4C;IAClD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,IAAI,EAAE,4CAA4C;IAClD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAiC;IAClE,IAAI,EAAE,4CAA4C;IAClD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,IAAI;CACP,CAAC;AAEX,2CAA2C;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AACpE,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,sDAAsD;AACtD,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC"}