agentwallet-sdk 3.3.0 → 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 (320) 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 -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,284 +0,0 @@
1
- // [MAX-ADDED] UnifiedBridge — Single interface for CCTP V2 transfers across all 17 chains
2
- // Routes EVM↔EVM, EVM→Solana, and Solana→EVM via BridgeModule + SolanaCCTPBridge.
3
- //
4
- // Supported: 16 EVM chains + Solana (17 total)
5
- // Fee: 0.1% platform fee on bridged amount
6
- //
7
- // Usage:
8
- // const bridge = new UnifiedBridge({ evmSigner: walletClient, solanaWallet: keypair });
9
- // await bridge.bridge({ amount: 1_000_000n, sourceChain: 'base', destinationChain: 'polygon', destinationAddress: '0x...' });
10
- import { Connection } from '@solana/web3.js';
11
- import { BridgeModule, BridgeError } from './client.js';
12
- import { CCTP_DOMAIN_IDS, BRIDGE_CHAIN_IDS, BRIDGE_RPC_URLS, calcBridgeFee, getEstimatedBridgeSeconds, FAST_TRANSFER_CHAINS, } from './types.js';
13
- import { SolanaCCTPBridge, SolanaBridgeError } from '../solana/bridge.js';
14
- // ─── UnifiedBridge ───
15
- /**
16
- * UnifiedBridge — Cross-chain USDC bridge across all 17 CCTP V2 supported chains.
17
- *
18
- * Routing:
19
- * - EVM → EVM: BridgeModule (approve → burn → attest → mint)
20
- * - EVM → Solana: BridgeModule burn + SolanaCCTPBridge receive
21
- * - Solana → EVM: SolanaCCTPBridge burn + EVM receiveMessage
22
- * - Solana → Solana: throws (use native Solana transfer instead)
23
- *
24
- * @example
25
- * ```ts
26
- * import { UnifiedBridge } from 'agentwallet-sdk';
27
- * import { createWalletClient } from 'viem';
28
- *
29
- * const bridge = new UnifiedBridge({ evmSigner });
30
- *
31
- * // Bridge 1 USDC from Base to Polygon
32
- * const result = await bridge.bridge({
33
- * amount: 1_000_000n,
34
- * sourceChain: 'base',
35
- * destinationChain: 'polygon',
36
- * destinationAddress: '0x...',
37
- * });
38
- * console.log(bridge.getSupportedChains()); // 17 chains!
39
- * ```
40
- */
41
- export class UnifiedBridge {
42
- constructor(config = {}) {
43
- this.config = config;
44
- this.solanaConnection = new Connection(config.solanaRpcUrl ?? 'https://api.mainnet-beta.solana.com', 'confirmed');
45
- }
46
- // ─── Public API ───
47
- /**
48
- * Bridge USDC between any two CCTP V2 supported chains.
49
- * Routes automatically based on source/destination chain types.
50
- */
51
- async bridge(params) {
52
- const { amount, sourceChain, destinationChain, destinationAddress, minFinalityThreshold = 0, applyPlatformFee = true, destinationRpcUrl, } = params;
53
- // Validate before routing (catches unsupported chains, zero amount)
54
- // Check Solana→Solana before generic same-chain to give the right error code
55
- const isSolanaSource = sourceChain === 'solana';
56
- const isSolanaDestination = destinationChain === 'solana';
57
- if (isSolanaSource && isSolanaDestination) {
58
- throw new BridgeError('UNSUPPORTED_ROUTE', 'Solana → Solana bridging is not supported. Use native Solana transfers instead.');
59
- }
60
- this.validateParams(amount, sourceChain, destinationChain);
61
- if (!isSolanaSource && !isSolanaDestination) {
62
- // EVM → EVM
63
- return this.bridgeEvmToEvm({
64
- amount,
65
- sourceChain: sourceChain,
66
- destinationChain: destinationChain,
67
- destinationAddress,
68
- minFinalityThreshold,
69
- applyPlatformFee,
70
- destinationRpcUrl,
71
- });
72
- }
73
- if (isSolanaSource && !isSolanaDestination) {
74
- // Solana → EVM
75
- return this.bridgeSolanaToEvm({
76
- amount,
77
- destinationChain: destinationChain,
78
- destinationAddress,
79
- minFinalityThreshold,
80
- applyPlatformFee,
81
- });
82
- }
83
- // EVM → Solana
84
- return this.bridgeEvmToSolana({
85
- amount,
86
- sourceChain: sourceChain,
87
- destinationAddress,
88
- minFinalityThreshold,
89
- applyPlatformFee,
90
- destinationRpcUrl,
91
- });
92
- }
93
- /**
94
- * Get all supported chains (16 EVM + Solana = 17 total).
95
- */
96
- getSupportedChains() {
97
- return Object.keys(CCTP_DOMAIN_IDS);
98
- }
99
- /**
100
- * Get a bridge quote: fee breakdown + estimated time.
101
- */
102
- getQuote(params) {
103
- const { amount, sourceChain, destinationChain } = params;
104
- if (amount <= 0n) {
105
- throw new BridgeError('INVALID_AMOUNT', 'Quote amount must be > 0');
106
- }
107
- const platformFee = calcBridgeFee(amount);
108
- const outputAmount = amount - platformFee;
109
- const estimatedTimeSeconds = getEstimatedBridgeSeconds(sourceChain);
110
- const fastTransferAvailable = FAST_TRANSFER_CHAINS.has(sourceChain);
111
- return {
112
- inputAmount: amount,
113
- platformFee,
114
- outputAmount,
115
- fromChain: sourceChain,
116
- toChain: destinationChain,
117
- estimatedTimeSeconds,
118
- fastTransferAvailable,
119
- };
120
- }
121
- /**
122
- * Check if a route is supported.
123
- */
124
- isRouteSupported(source, destination) {
125
- if (source === destination)
126
- return false;
127
- if (source === 'solana' && destination === 'solana')
128
- return false;
129
- return source in CCTP_DOMAIN_IDS && destination in CCTP_DOMAIN_IDS;
130
- }
131
- // ─── Internal Routing ───
132
- async bridgeEvmToEvm(params) {
133
- const { sourceChain, destinationChain } = params;
134
- if (!this.config.evmSigner) {
135
- throw new BridgeError('NO_WALLET_CLIENT', `EVM wallet client required for EVM→EVM bridge (${sourceChain} → ${destinationChain}). ` +
136
- `Pass evmSigner to UnifiedBridge constructor.`);
137
- }
138
- const rpcOverride = this.config.evmRpcOverrides?.[sourceChain];
139
- const bridge = new BridgeModule(this.config.evmSigner, sourceChain, { rpcUrl: rpcOverride });
140
- return bridge.bridge(params.amount, destinationChain, {
141
- destinationAddress: params.destinationAddress,
142
- minFinalityThreshold: params.minFinalityThreshold,
143
- applyPlatformFee: params.applyPlatformFee,
144
- destinationRpcUrl: params.destinationRpcUrl ?? this.config.evmRpcOverrides?.[destinationChain],
145
- attestationApiUrl: this.config.attestationApiUrl,
146
- });
147
- }
148
- async bridgeSolanaToEvm(params) {
149
- const startMs = Date.now();
150
- if (!this.config.solanaWallet) {
151
- throw new SolanaBridgeError('NO_SOLANA_WALLET', 'Solana keypair required for Solana→EVM bridge. ' +
152
- 'Pass solanaWallet to UnifiedBridge constructor.');
153
- }
154
- if (!this.config.evmSigner) {
155
- throw new BridgeError('NO_WALLET_CLIENT', 'EVM wallet client required to receive on destination EVM chain. ' +
156
- 'Pass evmSigner to UnifiedBridge constructor.');
157
- }
158
- const applyFee = params.applyPlatformFee !== false;
159
- const platformFee = applyFee ? calcBridgeFee(params.amount) : 0n;
160
- const bridgeAmount = params.amount - platformFee;
161
- // Phase 1: Burn on Solana
162
- const solanaBridge = new SolanaCCTPBridge({
163
- connection: this.solanaConnection,
164
- payer: this.config.solanaWallet,
165
- });
166
- const burnResult = await solanaBridge.depositForBurn({
167
- amount: bridgeAmount,
168
- destinationChain: params.destinationChain,
169
- destinationAddress: params.destinationAddress,
170
- minFinalityThreshold: params.minFinalityThreshold,
171
- });
172
- // Phase 2: Poll attestation (Solana uses same IRIS API)
173
- const attestation = await solanaBridge.waitForAttestation(burnResult.messageHash, this.config.attestationApiUrl);
174
- // Phase 3: Mint on EVM destination
175
- const rpcOverride = this.config.evmRpcOverrides?.[params.destinationChain];
176
- const evmBridge = new BridgeModule(this.config.evmSigner, params.destinationChain, // use dest as source for the receive-only operation
177
- { rpcUrl: rpcOverride });
178
- const evmMintTxHash = await evmBridge.mint(burnResult.messageBytes, attestation, params.destinationChain, rpcOverride);
179
- return {
180
- burnTxHash: burnResult.signature,
181
- mintTxHash: evmMintTxHash,
182
- amount: bridgeAmount,
183
- platformFee,
184
- fromChain: 'solana',
185
- toChain: params.destinationChain,
186
- recipient: params.destinationAddress,
187
- nonce: burnResult.nonce,
188
- elapsedMs: Date.now() - startMs,
189
- };
190
- }
191
- async bridgeEvmToSolana(params) {
192
- const startMs = Date.now();
193
- if (!this.config.evmSigner) {
194
- throw new BridgeError('NO_WALLET_CLIENT', `EVM wallet client required for ${params.sourceChain}→Solana bridge.`);
195
- }
196
- if (!this.config.solanaWallet) {
197
- throw new SolanaBridgeError('NO_SOLANA_WALLET', 'Solana keypair required to receive USDC on Solana. ' +
198
- 'Pass solanaWallet to UnifiedBridge constructor.');
199
- }
200
- const applyFee = params.applyPlatformFee !== false;
201
- const platformFee = applyFee ? calcBridgeFee(params.amount) : 0n;
202
- const bridgeAmount = params.amount - platformFee;
203
- // Solana destination: mintRecipient must be hex of USDC ATA on Solana
204
- // The caller passes a base58 Solana address; we convert to hex for EVM depositForBurn
205
- const solanaAddressHex = this.solanaAddressToHex(params.destinationAddress);
206
- // Phase 1: Burn on EVM (using CCTP domain 5 for Solana)
207
- const rpcOverride = this.config.evmRpcOverrides?.[params.sourceChain];
208
- const evmBridge = new BridgeModule(this.config.evmSigner, params.sourceChain, { rpcUrl: rpcOverride });
209
- const burnResult = await evmBridge.burn(bridgeAmount, 'solana', {
210
- destinationAddress: solanaAddressHex,
211
- minFinalityThreshold: params.minFinalityThreshold,
212
- applyPlatformFee: false, // already deducted
213
- attestationApiUrl: this.config.attestationApiUrl,
214
- });
215
- // Phase 2: Attestation
216
- const attestation = await evmBridge.waitForAttestation(burnResult.messageHash, this.config.attestationApiUrl);
217
- // Phase 3: Receive on Solana
218
- const solanaBridge = new SolanaCCTPBridge({
219
- connection: this.solanaConnection,
220
- payer: this.config.solanaWallet,
221
- });
222
- // Ensure recipient USDC ATA exists
223
- const recipientUsdcAta = await solanaBridge.ensureUsdcAta();
224
- const solanaMintSig = await solanaBridge.receiveMessage({
225
- message: burnResult.messageBytes,
226
- attestation,
227
- recipientUsdcAccount: recipientUsdcAta.toString(),
228
- });
229
- return {
230
- burnTxHash: burnResult.burnTxHash,
231
- mintTxHash: solanaMintSig,
232
- amount: bridgeAmount,
233
- platformFee,
234
- fromChain: params.sourceChain,
235
- toChain: 'solana',
236
- recipient: params.destinationAddress,
237
- nonce: burnResult.nonce,
238
- elapsedMs: Date.now() - startMs,
239
- };
240
- }
241
- // ─── Validation ───
242
- validateParams(amount, sourceChain, destinationChain) {
243
- if (amount <= 0n) {
244
- throw new BridgeError('INVALID_AMOUNT', `Amount must be > 0. Got ${amount}. Use USDC base units (1 USDC = 1_000_000).`);
245
- }
246
- if (!(sourceChain in CCTP_DOMAIN_IDS)) {
247
- throw new BridgeError('UNSUPPORTED_CHAIN', `Source chain '${sourceChain}' is not supported. ` +
248
- `Supported: ${Object.keys(CCTP_DOMAIN_IDS).join(', ')}`);
249
- }
250
- if (!(destinationChain in CCTP_DOMAIN_IDS)) {
251
- throw new BridgeError('UNSUPPORTED_CHAIN', `Destination chain '${destinationChain}' is not supported. ` +
252
- `Supported: ${Object.keys(CCTP_DOMAIN_IDS).join(', ')}`);
253
- }
254
- if (sourceChain === destinationChain) {
255
- throw new BridgeError('SAME_CHAIN', `Source and destination must differ. Both set to '${sourceChain}'.`);
256
- }
257
- }
258
- // ─── Helpers ───
259
- /**
260
- * Convert a Solana base58 address to a 32-byte hex string for EVM mintRecipient.
261
- * Per Circle docs: hex-encoded USDC token account address.
262
- */
263
- solanaAddressToHex(base58Address) {
264
- // bs58 decode → hex encode
265
- // Import dynamically to avoid requiring bs58 for EVM-only users
266
- try {
267
- // eslint-disable-next-line @typescript-eslint/no-require-imports
268
- const bs58 = require('bs58');
269
- const decoded = bs58.decode(base58Address);
270
- return '0x' + Buffer.from(decoded).toString('hex').padStart(64, '0');
271
- }
272
- catch {
273
- // If bs58 not available, assume it's already hex
274
- if (base58Address.startsWith('0x'))
275
- return base58Address;
276
- throw new BridgeError('UNSUPPORTED_CHAIN', `Could not convert Solana address to hex: ${base58Address}. ` +
277
- `Pass the USDC ATA address (base58) for Solana destination.`);
278
- }
279
- }
280
- }
281
- // ─── Re-exports ───
282
- export { BridgeError, SolanaBridgeError };
283
- export { CCTP_DOMAIN_IDS, BRIDGE_CHAIN_IDS, BRIDGE_RPC_URLS, calcBridgeFee, };
284
- //# sourceMappingURL=unified.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unified.js","sourceRoot":"","sources":["../../src/bridge/unified.ts"],"names":[],"mappings":"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"}
package/dist/chains.d.ts DELETED
@@ -1,62 +0,0 @@
1
- import type { Address } from 'viem';
2
- /** Chains supported for swap + x402 + wallet operations */
3
- export type SupportedChain = 'base' | 'arbitrum' | 'optimism';
4
- export interface ChainConfig {
5
- chainId: number;
6
- name: string;
7
- /** Public default RPC URL (no API key required) */
8
- rpcUrl: string;
9
- /** USDC token contract address (official Circle deployment) */
10
- usdc: Address;
11
- /** Uniswap V3 SwapRouter02 address */
12
- uniswapRouter?: Address;
13
- /** Uniswap V3 QuoterV2 address */
14
- uniswapQuoter?: Address;
15
- /** Wrapped native token address */
16
- weth?: Address;
17
- /** x402 network identifier (e.g. "base:8453") */
18
- x402Network: string;
19
- }
20
- /**
21
- * Chain configuration for all supported chains.
22
- *
23
- * Uniswap V3 addresses verified against:
24
- * https://docs.uniswap.org/contracts/v3/reference/deployments/
25
- *
26
- * USDC addresses verified against:
27
- * https://www.circle.com/en/multichain-usdc
28
- *
29
- * WETH on Base / Optimism is the canonical OP-stack bridged WETH at 0x4200...0006
30
- * Arbitrum WETH is the standard bridged WETH at 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
31
- */
32
- export declare const CHAIN_CONFIG: Record<SupportedChain, ChainConfig>;
33
- /** Get chain config — throws a clear error if chain is unknown */
34
- export declare function getChainConfig(chain: SupportedChain): ChainConfig;
35
- /** Resolve a chain from chainId — returns undefined if not found */
36
- export declare function chainFromId(chainId: number): SupportedChain | undefined;
37
- /** Solana chain identifiers */
38
- export type SolanaChain = 'solana' | 'solana-devnet';
39
- /** Solana chain configuration entry */
40
- export interface SolanaChainConfig {
41
- /** Solana cluster name (e.g. "mainnet-beta", "devnet") */
42
- cluster: string;
43
- /** Public RPC URL */
44
- rpcUrl: string;
45
- /** Official USDC SPL token mint address */
46
- usdcMint: string;
47
- /** x402 network identifier */
48
- x402Network: string;
49
- }
50
- /**
51
- * Solana chain configurations.
52
- *
53
- * USDC mints verified against:
54
- * https://www.circle.com/en/multichain-usdc (Solana)
55
- *
56
- * RPC endpoints: Solana Foundation public RPC (free, no key required).
57
- * For production, use Helius, Alchemy, or QuickNode.
58
- */
59
- export declare const SOLANA_CONFIG: Record<SolanaChain, SolanaChainConfig>;
60
- /** Get Solana chain config — throws if chain is unknown */
61
- export declare function getSolanaConfig(chain: SolanaChain): SolanaChainConfig;
62
- //# sourceMappingURL=chains.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,IAAI,EAAE,OAAO,CAAC;IACd,sCAAsC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,WAAW,CA2CnD,CAAC;AAEX,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAQjE;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAKvE;AAMD,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,eAAe,CAAC;AAErD,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAevD,CAAC;AAEX,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAQrE"}
package/dist/chains.js DELETED
@@ -1,108 +0,0 @@
1
- // [MAX-ADDED] Shared chain configuration — single source of truth for multi-chain support.
2
- // Chains: Base, Arbitrum, Optimism (Ethereum is bridge-only, no swap support due to gas).
3
- /**
4
- * Chain configuration for all supported chains.
5
- *
6
- * Uniswap V3 addresses verified against:
7
- * https://docs.uniswap.org/contracts/v3/reference/deployments/
8
- *
9
- * USDC addresses verified against:
10
- * https://www.circle.com/en/multichain-usdc
11
- *
12
- * WETH on Base / Optimism is the canonical OP-stack bridged WETH at 0x4200...0006
13
- * Arbitrum WETH is the standard bridged WETH at 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
14
- */
15
- export const CHAIN_CONFIG = {
16
- base: {
17
- chainId: 8453,
18
- name: 'Base',
19
- rpcUrl: 'https://mainnet.base.org',
20
- // Official USDC on Base (Circle native deployment)
21
- usdc: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
22
- // Uniswap V3 on Base — SwapRouter02 + QuoterV2
23
- // Source: https://docs.uniswap.org/contracts/v3/reference/deployments/base-deployments
24
- uniswapRouter: '0x2626664c2603336E57B271c5C0b26F421741e481',
25
- uniswapQuoter: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
26
- // OP-stack canonical WETH
27
- weth: '0x4200000000000000000000000000000000000006',
28
- x402Network: 'base:8453',
29
- },
30
- arbitrum: {
31
- chainId: 42161,
32
- name: 'Arbitrum One',
33
- rpcUrl: 'https://arb1.arbitrum.io/rpc',
34
- // Official USDC on Arbitrum (Circle native deployment — NOT USDC.e bridged)
35
- usdc: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
36
- // Uniswap V3 on Arbitrum — SwapRouter02 + QuoterV2
37
- // Source: https://docs.uniswap.org/contracts/v3/reference/deployments/arbitrum-deployments
38
- uniswapRouter: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',
39
- uniswapQuoter: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
40
- // Standard bridged WETH on Arbitrum
41
- weth: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
42
- x402Network: 'arbitrum:42161',
43
- },
44
- optimism: {
45
- chainId: 10,
46
- name: 'OP Mainnet',
47
- rpcUrl: 'https://mainnet.optimism.io',
48
- // Official USDC on Optimism (Circle native deployment — NOT USDC.e bridged)
49
- usdc: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
50
- // Uniswap V3 on Optimism — SwapRouter02 + QuoterV2
51
- // Source: https://docs.uniswap.org/contracts/v3/reference/deployments/optimism-deployments
52
- uniswapRouter: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',
53
- uniswapQuoter: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
54
- // OP-stack canonical WETH
55
- weth: '0x4200000000000000000000000000000000000006',
56
- x402Network: 'optimism:10',
57
- },
58
- };
59
- /** Get chain config — throws a clear error if chain is unknown */
60
- export function getChainConfig(chain) {
61
- const config = CHAIN_CONFIG[chain];
62
- if (!config) {
63
- throw new Error(`Unsupported chain: "${chain}". Supported chains: ${Object.keys(CHAIN_CONFIG).join(', ')}`);
64
- }
65
- return config;
66
- }
67
- /** Resolve a chain from chainId — returns undefined if not found */
68
- export function chainFromId(chainId) {
69
- for (const [key, cfg] of Object.entries(CHAIN_CONFIG)) {
70
- if (cfg.chainId === chainId)
71
- return key;
72
- }
73
- return undefined;
74
- }
75
- /**
76
- * Solana chain configurations.
77
- *
78
- * USDC mints verified against:
79
- * https://www.circle.com/en/multichain-usdc (Solana)
80
- *
81
- * RPC endpoints: Solana Foundation public RPC (free, no key required).
82
- * For production, use Helius, Alchemy, or QuickNode.
83
- */
84
- export const SOLANA_CONFIG = {
85
- solana: {
86
- cluster: 'mainnet-beta',
87
- rpcUrl: 'https://api.mainnet-beta.solana.com',
88
- // Official Circle USDC on Solana Mainnet
89
- usdcMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
90
- x402Network: 'solana:mainnet',
91
- },
92
- 'solana-devnet': {
93
- cluster: 'devnet',
94
- rpcUrl: 'https://api.devnet.solana.com',
95
- // Circle USDC on Solana Devnet
96
- usdcMint: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
97
- x402Network: 'solana:devnet',
98
- },
99
- };
100
- /** Get Solana chain config — throws if chain is unknown */
101
- export function getSolanaConfig(chain) {
102
- const config = SOLANA_CONFIG[chain];
103
- if (!config) {
104
- throw new Error(`Unsupported Solana chain: "${chain}". Supported: ${Object.keys(SOLANA_CONFIG).join(', ')}`);
105
- }
106
- return config;
107
- }
108
- //# sourceMappingURL=chains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,0FAA0F;AAwB1F;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAwC;IAC/D,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,0BAA0B;QAClC,mDAAmD;QACnD,IAAI,EAAE,4CAA4C;QAClD,+CAA+C;QAC/C,uFAAuF;QACvF,aAAa,EAAE,4CAA4C;QAC3D,aAAa,EAAE,4CAA4C;QAC3D,0BAA0B;QAC1B,IAAI,EAAE,4CAA4C;QAClD,WAAW,EAAE,WAAW;KACzB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,8BAA8B;QACtC,4EAA4E;QAC5E,IAAI,EAAE,4CAA4C;QAClD,mDAAmD;QACnD,2FAA2F;QAC3F,aAAa,EAAE,4CAA4C;QAC3D,aAAa,EAAE,4CAA4C;QAC3D,oCAAoC;QACpC,IAAI,EAAE,4CAA4C;QAClD,WAAW,EAAE,gBAAgB;KAC9B;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,6BAA6B;QACrC,4EAA4E;QAC5E,IAAI,EAAE,4CAA4C;QAClD,mDAAmD;QACnD,2FAA2F;QAC3F,aAAa,EAAE,4CAA4C;QAC3D,aAAa,EAAE,4CAA4C;QAC3D,0BAA0B;QAC1B,IAAI,EAAE,4CAA4C;QAClD,WAAW,EAAE,aAAa;KAC3B;CACO,CAAC;AAEX,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,KAAqB;IAClD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,uBAAuB,KAAK,wBAAwB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,GAAqB,CAAC;IAC5D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAqBD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,MAAM,EAAE;QACN,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,qCAAqC;QAC7C,yCAAyC;QACzC,QAAQ,EAAE,8CAA8C;QACxD,WAAW,EAAE,gBAAgB;KAC9B;IACD,eAAe,EAAE;QACf,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,+BAA+B;QACvC,+BAA+B;QAC/B,QAAQ,EAAE,8CAA8C;QACxD,WAAW,EAAE,eAAe;KAC7B;CACO,CAAC;AAEX,2DAA2D;AAC3D,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,iBAAiB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Fiat Onramp module — optional fiat-to-crypto for agentwallet-sdk.
3
- *
4
- * This module is OPT-IN ONLY. Import and use FiatOnramp only if you want
5
- * fiat onramp capability. The core SDK is fully anonymous and non-custodial.
6
- */
7
- export { FiatOnramp } from './onramp.js';
8
- export type { FiatOnrampConfig, FiatQuote, OnrampParams, FiatProvider } from './types.js';
9
- export { MoonPayProvider, StripeProvider, TransakProvider } from './providers/index.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fiat/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Fiat Onramp module — optional fiat-to-crypto for agentwallet-sdk.
3
- *
4
- * This module is OPT-IN ONLY. Import and use FiatOnramp only if you want
5
- * fiat onramp capability. The core SDK is fully anonymous and non-custodial.
6
- */
7
- export { FiatOnramp } from './onramp.js';
8
- export { MoonPayProvider, StripeProvider, TransakProvider } from './providers/index.js';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fiat/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,101 +0,0 @@
1
- /**
2
- * FiatOnramp — optional fiat-to-crypto onramp module for agentwallet-sdk.
3
- *
4
- * ╔══════════════════════════════════════════════════════════════════════╗
5
- * ║ KYC NOTICE — IMPORTANT ║
6
- * ║ ║
7
- * ║ This module is entirely OPT-IN. Users who fund their agent wallet ║
8
- * ║ via direct crypto transfer, bridge, or any other method NEVER ║
9
- * ║ encounter KYC and remain fully anonymous. ║
10
- * ║ ║
11
- * ║ KYC only occurs when a user explicitly chooses to use this fiat ║
12
- * ║ onramp feature. KYC is handled entirely by the third-party ║
13
- * ║ provider (MoonPay, Stripe, Transak) on their hosted page. ║
14
- * ║ The SDK never collects, stores, or transmits any KYC data. ║
15
- * ╚══════════════════════════════════════════════════════════════════════╝
16
- */
17
- import type { FiatOnrampConfig, FiatQuote, OnrampParams } from './types.js';
18
- /**
19
- * FiatOnramp — aggregates multiple fiat onramp providers into a single interface.
20
- *
21
- * @example
22
- * ```typescript
23
- * import { FiatOnramp } from 'agentwallet-sdk';
24
- *
25
- * // Only configure providers you have API keys for
26
- * const onramp = new FiatOnramp({
27
- * moonpayApiKey: process.env.MOONPAY_API_KEY,
28
- * transakApiKey: process.env.TRANSAK_API_KEY,
29
- * });
30
- *
31
- * // Get quotes from all configured providers
32
- * const quotes = await onramp.getQuotes({
33
- * amount: 100,
34
- * currency: 'USD',
35
- * token: 'USDC',
36
- * chain: 'base',
37
- * walletAddress: '0xYourWalletAddress',
38
- * });
39
- *
40
- * // Open the purchaseUrl in a browser to complete KYC + payment on the provider's page
41
- * console.log(quotes[0].purchaseUrl);
42
- * ```
43
- */
44
- export declare class FiatOnramp {
45
- private providers;
46
- private config;
47
- /**
48
- * Create a FiatOnramp instance.
49
- *
50
- * @param config - Provider API keys and defaults. All fields are optional.
51
- * Passing no config (or an empty object) is valid — it returns
52
- * an empty provider list, causing zero friction for users who
53
- * don't want fiat onramp.
54
- */
55
- constructor(config?: FiatOnrampConfig);
56
- /**
57
- * Get quotes from all configured providers that support the given chain/token.
58
- * Failed providers are silently skipped (logged to console.warn).
59
- *
60
- * @returns Array of FiatQuote — may be empty if no providers are configured
61
- * or if none support the requested chain/token combination.
62
- */
63
- getQuotes(params: OnrampParams): Promise<FiatQuote[]>;
64
- /**
65
- * Create a purchase session with a specific provider.
66
- * Returns a FiatQuote containing a purchaseUrl — open this in a browser
67
- * to complete KYC + payment on the provider's hosted page.
68
- *
69
- * @throws Error if the provider is not configured or doesn't support the chain/token.
70
- */
71
- createSession(params: OnrampParams & {
72
- provider: string;
73
- }): Promise<FiatQuote>;
74
- /**
75
- * Check if a provider supports a given chain/token combination.
76
- *
77
- * @param provider - Provider name: 'moonpay', 'stripe', 'transak'
78
- * @param chain - Blockchain name: 'ethereum', 'base', 'solana', etc.
79
- * @param token - Token symbol: 'USDC', 'ETH', 'SOL', etc.
80
- */
81
- isSupported(provider: string, chain: string, token: string): boolean;
82
- /**
83
- * Get the names of all configured providers.
84
- * Returns an empty array if no API keys were provided.
85
- */
86
- getProviders(): string[];
87
- /**
88
- * Get the chains supported by a given provider.
89
- *
90
- * @param provider - Provider name: 'moonpay', 'stripe', 'transak'
91
- */
92
- getSupportedChains(provider: string): string[];
93
- /**
94
- * Get the tokens supported by a given provider on a given chain.
95
- *
96
- * @param provider - Provider name: 'moonpay', 'stripe', 'transak'
97
- * @param chain - Blockchain name: 'ethereum', 'base', 'solana', etc.
98
- */
99
- getSupportedTokens(provider: string, chain: string): string[];
100
- }
101
- //# sourceMappingURL=onramp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onramp.d.ts","sourceRoot":"","sources":["../../src/fiat/onramp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1F;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,MAAM,CAAmB;IAEjC;;;;;;;OAOG;gBACS,MAAM,GAAE,gBAAqB;IAKzC;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA2B3D;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IA8BpF;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAOpE;;;OAGG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAM9C;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAK9D"}