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,185 +0,0 @@
1
- import { ethers } from 'ethers';
2
- import { MEVRiskAssessor } from './risk.js';
3
- const DEFAULTS = {
4
- autoProtectAboveRisk: 'medium',
5
- flashbotsRpcUrl: 'https://rpc.flashbots.net',
6
- mevBlockerRpcUrl: 'https://rpc.mevblocker.io',
7
- maxProtectionLatencyMs: 5000,
8
- minSwapUsdForProtection: 100,
9
- };
10
- export class MEVProtection {
11
- constructor(config) {
12
- this.config = {
13
- enabled: config.enabled,
14
- autoProtectAboveRisk: config.autoProtectAboveRisk ?? DEFAULTS.autoProtectAboveRisk,
15
- flashbotsRpcUrl: config.flashbotsRpcUrl ?? DEFAULTS.flashbotsRpcUrl,
16
- mevBlockerRpcUrl: config.mevBlockerRpcUrl ?? DEFAULTS.mevBlockerRpcUrl,
17
- maxProtectionLatencyMs: config.maxProtectionLatencyMs ?? DEFAULTS.maxProtectionLatencyMs,
18
- minSwapUsdForProtection: config.minSwapUsdForProtection ?? DEFAULTS.minSwapUsdForProtection,
19
- };
20
- this.assessor = new MEVRiskAssessor();
21
- this._createProvider = (url) => new ethers.JsonRpcProvider(url);
22
- }
23
- /**
24
- * Assess MEV risk for a proposed swap.
25
- * Fetches live gas price from provider if available.
26
- */
27
- async assessRisk(params) {
28
- let gasPriceGwei = 20; // sensible default
29
- if (params.provider) {
30
- try {
31
- const feeData = await params.provider.getFeeData();
32
- if (feeData.gasPrice) {
33
- gasPriceGwei = Number(ethers.formatUnits(feeData.gasPrice, 'gwei'));
34
- }
35
- }
36
- catch {
37
- // fallback to default
38
- }
39
- }
40
- return this.assessor.assess({
41
- fromToken: params.fromToken,
42
- toToken: params.toToken,
43
- amountUsd: params.amountUsd,
44
- slippageBps: params.slippageBps,
45
- gasPriceGwei,
46
- chain: params.chain,
47
- });
48
- }
49
- /**
50
- * Get the protected RPC URL for a given protection method.
51
- */
52
- getProtectedRpc(method) {
53
- switch (method) {
54
- case 'flashbots-protect':
55
- return this.config.flashbotsRpcUrl;
56
- case 'private-rpc':
57
- return this.config.mevBlockerRpcUrl;
58
- case 'flashbots-bundle':
59
- case 'cowswap-order':
60
- case 'none':
61
- default:
62
- return '';
63
- }
64
- }
65
- /**
66
- * Submit a signed transaction through the appropriate protected route.
67
- * Main API called by SmartSwapRouter.
68
- */
69
- async submitProtected(params) {
70
- const startTime = Date.now();
71
- switch (params.assessment.recommendedMethod) {
72
- case 'flashbots-protect':
73
- return this.submitViaFlashbotsProtect(params.signedTx, params.provider, startTime, params.assessment);
74
- case 'flashbots-bundle':
75
- return this.submitViaFlashbotsBundle(params.signedTx, params.targetBlock, startTime, params.assessment);
76
- case 'private-rpc':
77
- return this.submitViaMEVBlocker(params.signedTx, params.provider, startTime, params.assessment);
78
- default:
79
- return this.submitPublic(params.signedTx, params.provider, startTime, params.assessment);
80
- }
81
- }
82
- /**
83
- * Flashbots Protect: broadcast via rpc.flashbots.net.
84
- * No bundle auth required. Best for most users.
85
- */
86
- async submitViaFlashbotsProtect(signedTx, _provider, startTime, assessment) {
87
- const protectedProvider = this._createProvider(this.config.flashbotsRpcUrl);
88
- const txResponse = await protectedProvider.broadcastTransaction(signedTx);
89
- const receipt = await txResponse.wait(1);
90
- return {
91
- success: receipt?.status === 1,
92
- txHash: receipt?.hash,
93
- protectionMethod: 'flashbots-protect',
94
- riskAssessment: assessment,
95
- mevSavedUsd: assessment.estimatedSavingsUsd,
96
- blockNumber: receipt?.blockNumber,
97
- latencyMs: Date.now() - startTime,
98
- };
99
- }
100
- /**
101
- * Flashbots Bundle: maximum protection for critical-risk swaps.
102
- * Falls back to Flashbots Protect RPC if no bundle signing key configured.
103
- */
104
- async submitViaFlashbotsBundle(signedTx, targetBlock, startTime, assessment) {
105
- // Full bundle submission requires a Flashbots signing key (ECDSA).
106
- // Without one, we fall back to Flashbots Protect RPC which still gives
107
- // strong protection for most users.
108
- const protectedProvider = this._createProvider(this.config.flashbotsRpcUrl);
109
- try {
110
- // Attempt bundle submission via relay
111
- const currentBlock = await protectedProvider.getBlockNumber();
112
- const blockTarget = targetBlock ?? currentBlock + 2;
113
- const blockHex = `0x${blockTarget.toString(16)}`;
114
- const response = await fetch('https://relay.flashbots.net', {
115
- method: 'POST',
116
- headers: { 'Content-Type': 'application/json' },
117
- body: JSON.stringify({
118
- jsonrpc: '2.0',
119
- id: 1,
120
- method: 'eth_sendBundle',
121
- params: [{ txs: [signedTx], blockNumber: blockHex }],
122
- }),
123
- });
124
- if (response.ok) {
125
- const json = await response.json();
126
- const bundleHash = json.result?.bundleHash;
127
- return {
128
- success: true,
129
- protectionMethod: 'flashbots-bundle',
130
- bundleHash,
131
- riskAssessment: assessment,
132
- mevSavedUsd: assessment.estimatedSavingsUsd,
133
- latencyMs: Date.now() - startTime,
134
- };
135
- }
136
- }
137
- catch {
138
- // Bundle submission failed — fall through to Protect RPC fallback
139
- }
140
- // Fallback: broadcast via Flashbots Protect RPC
141
- const txResponse = await protectedProvider.broadcastTransaction(signedTx);
142
- const receipt = await txResponse.wait(1);
143
- return {
144
- success: receipt?.status === 1,
145
- txHash: receipt?.hash,
146
- protectionMethod: 'flashbots-bundle',
147
- riskAssessment: assessment,
148
- mevSavedUsd: assessment.estimatedSavingsUsd,
149
- blockNumber: receipt?.blockNumber,
150
- latencyMs: Date.now() - startTime,
151
- };
152
- }
153
- /**
154
- * MEV Blocker: alternative private RPC by CoW Protocol.
155
- */
156
- async submitViaMEVBlocker(signedTx, _provider, startTime, assessment) {
157
- const mevBlockerProvider = this._createProvider(this.config.mevBlockerRpcUrl);
158
- const txResponse = await mevBlockerProvider.broadcastTransaction(signedTx);
159
- const receipt = await txResponse.wait(1);
160
- return {
161
- success: receipt?.status === 1,
162
- txHash: receipt?.hash,
163
- protectionMethod: 'private-rpc',
164
- riskAssessment: assessment,
165
- mevSavedUsd: assessment.estimatedSavingsUsd,
166
- blockNumber: receipt?.blockNumber,
167
- latencyMs: Date.now() - startTime,
168
- };
169
- }
170
- /**
171
- * Public mempool fallback for low-risk swaps.
172
- */
173
- async submitPublic(signedTx, provider, startTime, assessment) {
174
- const txResponse = await provider.broadcastTransaction(signedTx);
175
- const receipt = await txResponse.wait(1);
176
- return {
177
- success: receipt?.status === 1,
178
- txHash: receipt?.hash,
179
- protectionMethod: 'none',
180
- riskAssessment: assessment,
181
- latencyMs: Date.now() - startTime,
182
- };
183
- }
184
- }
185
- //# sourceMappingURL=protection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protection.js","sourceRoot":"","sources":["../../src/mev/protection.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import type { MEVRiskAssessment } from './types.js';
2
- /** Deterministic MEV risk scorer — no external calls required */
3
- export declare class MEVRiskAssessor {
4
- /**
5
- * Assess MEV risk for a proposed swap.
6
- * Scoring model produces a 0-100 risk score mapped to a risk level.
7
- */
8
- assess(params: {
9
- fromToken: string;
10
- toToken: string;
11
- amountUsd: number;
12
- slippageBps: number;
13
- gasPriceGwei: number;
14
- chain: string;
15
- }): MEVRiskAssessment;
16
- /** Check if a token pair is "popular" (highly watched by MEV bots) */
17
- isPopularPair(fromToken: string, toToken: string): boolean;
18
- }
19
- //# sourceMappingURL=risk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"risk.d.ts","sourceRoot":"","sources":["../../src/mev/risk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAkC,MAAM,YAAY,CAAC;AAOpF,iEAAiE;AACjE,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,iBAAiB;IA6ErB,sEAAsE;IACtE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAG3D"}
package/dist/mev/risk.js DELETED
@@ -1,95 +0,0 @@
1
- /** Popular tokens that are heavily watched by MEV bots */
2
- const POPULAR_TOKENS = new Set([
3
- 'ETH', 'WETH', 'USDC', 'USDT', 'DAI', 'WBTC', 'SOL', 'WSOL',
4
- ]);
5
- /** Deterministic MEV risk scorer — no external calls required */
6
- export class MEVRiskAssessor {
7
- /**
8
- * Assess MEV risk for a proposed swap.
9
- * Scoring model produces a 0-100 risk score mapped to a risk level.
10
- */
11
- assess(params) {
12
- const { fromToken, toToken, amountUsd, slippageBps, gasPriceGwei, chain } = params;
13
- let score = 0;
14
- // 1. Size risk
15
- if (amountUsd >= 10000)
16
- score += 40;
17
- else if (amountUsd >= 1000)
18
- score += 20;
19
- else if (amountUsd >= 100)
20
- score += 10;
21
- // < $100 = 0 pts
22
- // 2. Slippage risk (high slippage = easy sandwich)
23
- if (slippageBps > 200)
24
- score += 20;
25
- else if (slippageBps >= 50)
26
- score += 10;
27
- // 3. Popular pair risk (heavily watched by bots)
28
- if (this.isPopularPair(fromToken, toToken))
29
- score += 15;
30
- // 4. Gas spike risk (high gas = bots are active)
31
- if (gasPriceGwei > 100)
32
- score += 25;
33
- else if (gasPriceGwei > 50)
34
- score += 15;
35
- // 5. Chain risk
36
- const chainLower = chain.toLowerCase();
37
- if (chainLower === 'ethereum' || chainLower === 'mainnet')
38
- score += 10;
39
- else if (chainLower === 'arbitrum')
40
- score += 5;
41
- else if (chainLower === 'base')
42
- score += 3;
43
- // Cap at 100
44
- score = Math.min(100, score);
45
- // Map score to risk level
46
- let riskLevel;
47
- if (score >= 76)
48
- riskLevel = 'critical';
49
- else if (score >= 51)
50
- riskLevel = 'high';
51
- else if (score >= 26)
52
- riskLevel = 'medium';
53
- else
54
- riskLevel = 'low';
55
- // Recommended method by risk level
56
- let recommendedMethod;
57
- if (riskLevel === 'critical')
58
- recommendedMethod = 'flashbots-bundle';
59
- else if (riskLevel === 'high')
60
- recommendedMethod = 'flashbots-protect';
61
- else if (riskLevel === 'medium')
62
- recommendedMethod = 'private-rpc';
63
- else
64
- recommendedMethod = 'none';
65
- // Estimated savings: risk-weighted sandwich loss model
66
- // ~0.5-2% of swap size; simplified: amountUsd * riskScore/100 * 0.01
67
- const estimatedSavingsUsd = amountUsd * (score / 100) * 0.01;
68
- // Derive factor labels
69
- const gasPrice = gasPriceGwei > 100 ? 'spike' :
70
- gasPriceGwei > 50 ? 'high' :
71
- gasPriceGwei > 20 ? 'normal' : 'low';
72
- const tokenPairLiquidity = this.isPopularPair(fromToken, toToken) ? 'high' : 'low';
73
- const marketVolatility = gasPriceGwei > 100 ? 'extreme' :
74
- gasPriceGwei > 50 ? 'volatile' : 'stable';
75
- return {
76
- riskLevel,
77
- riskScore: score,
78
- factors: {
79
- swapSizeUsd: amountUsd,
80
- slippageBps,
81
- tokenPairLiquidity,
82
- marketVolatility,
83
- gasPrice,
84
- isPopularPair: this.isPopularPair(fromToken, toToken),
85
- },
86
- recommendedMethod,
87
- estimatedSavingsUsd,
88
- };
89
- }
90
- /** Check if a token pair is "popular" (highly watched by MEV bots) */
91
- isPopularPair(fromToken, toToken) {
92
- return POPULAR_TOKENS.has(fromToken.toUpperCase()) && POPULAR_TOKENS.has(toToken.toUpperCase());
93
- }
94
- }
95
- //# sourceMappingURL=risk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"risk.js","sourceRoot":"","sources":["../../src/mev/risk.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- export type MEVRiskLevel = 'low' | 'medium' | 'high' | 'critical';
2
- export type ProtectionMethod = 'flashbots-protect' | 'flashbots-bundle' | 'cowswap-order' | 'private-rpc' | 'none';
3
- export interface MEVRiskAssessment {
4
- riskLevel: MEVRiskLevel;
5
- riskScore: number;
6
- factors: {
7
- swapSizeUsd: number;
8
- slippageBps: number;
9
- tokenPairLiquidity: 'high' | 'medium' | 'low';
10
- marketVolatility: 'stable' | 'volatile' | 'extreme';
11
- gasPrice: 'low' | 'normal' | 'high' | 'spike';
12
- isPopularPair: boolean;
13
- };
14
- recommendedMethod: ProtectionMethod;
15
- estimatedSavingsUsd: number;
16
- }
17
- export interface MEVProtectionConfig {
18
- enabled: boolean;
19
- /** Risk threshold above which protection is auto-applied */
20
- autoProtectAboveRisk?: MEVRiskLevel;
21
- /** Flashbots RPC endpoint */
22
- flashbotsRpcUrl?: string;
23
- /** MEV Blocker RPC (alternative) */
24
- mevBlockerRpcUrl?: string;
25
- /** Max extra latency accepted for protection (ms) */
26
- maxProtectionLatencyMs?: number;
27
- /** Minimum swap USD value to trigger protection */
28
- minSwapUsdForProtection?: number;
29
- }
30
- export interface ProtectedSwapResult {
31
- success: boolean;
32
- txHash?: string;
33
- protectionMethod: ProtectionMethod;
34
- bundleHash?: string;
35
- riskAssessment: MEVRiskAssessment;
36
- /** Gas saved vs public mempool (estimated) */
37
- gasSavedGwei?: number;
38
- /** MEV loss avoided (estimated USD) */
39
- mevSavedUsd?: number;
40
- blockNumber?: number;
41
- latencyMs: number;
42
- }
43
- export interface FlashbotsBundle {
44
- transactions: string[];
45
- blockNumber: string;
46
- minTimestamp?: number;
47
- maxTimestamp?: number;
48
- }
49
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mev/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAC9C,gBAAgB,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;QACpD,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;QAC9C,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,YAAY,CAAC;IACpC,6BAA6B;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mDAAmD;IACnD,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,iBAAiB,CAAC;IAClC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
package/dist/mev/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mev/types.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- export { SettlementVerifier } from './verifier.js';
2
- export type { SettlementVerifierConfig, SettlementStatus, SettlementResult, BridgeSettlementResult, BridgeSettlementStatus, PaymentSettlementResult, } from './types.js';
3
- export { SETTLEMENT_ALCHEMY_NETWORKS, SETTLEMENT_PUBLIC_RPCS, CIRCLE_ATTESTATION_API, ERC20_TRANSFER_TOPIC, SOLANA_RPC_URL, } from './types.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settlement/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EACV,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -1,3 +0,0 @@
1
- export { SettlementVerifier } from './verifier.js';
2
- export { SETTLEMENT_ALCHEMY_NETWORKS, SETTLEMENT_PUBLIC_RPCS, CIRCLE_ATTESTATION_API, ERC20_TRANSFER_TOPIC, SOLANA_RPC_URL, } from './types.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settlement/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AASnD,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -1,66 +0,0 @@
1
- export interface SettlementVerifierConfig {
2
- /** Alchemy API key (optional — falls back to public RPC if not provided) */
3
- alchemyApiKey?: string;
4
- }
5
- /** Status of an on-chain settlement */
6
- export type SettlementStatus = 'confirmed' | 'pending' | 'failed' | 'not_found';
7
- /** Result of verifying a single transaction */
8
- export interface SettlementResult {
9
- status: SettlementStatus;
10
- txHash: string;
11
- /** Block number where the tx was included (0 if pending/not found) */
12
- blockNumber: bigint;
13
- /** Number of confirmations at query time */
14
- confirmations: number;
15
- /** Gas used by the transaction */
16
- gasUsed?: bigint;
17
- /** Whether the tx succeeded (status=1) or reverted (status=0) */
18
- success?: boolean;
19
- /** Any error message if verification failed */
20
- error?: string;
21
- }
22
- /** Result of verifying a CCTP bridge transfer end-to-end */
23
- export interface BridgeSettlementResult {
24
- /** Overall bridge status */
25
- status: BridgeSettlementStatus;
26
- /** Source chain burn transaction */
27
- sourceTx: SettlementResult;
28
- /** Destination chain mint transaction (if found) */
29
- destinationTx?: SettlementResult;
30
- /** Circle attestation status */
31
- attestationStatus?: 'pending_confirmations' | 'complete' | 'error';
32
- /** Amount that was bridged (from source tx logs) */
33
- amount?: bigint;
34
- /** Destination address that received funds */
35
- recipient?: string;
36
- /** Any error or warning messages */
37
- error?: string;
38
- }
39
- export type BridgeSettlementStatus = 'source_confirmed_awaiting_attestation' | 'attestation_complete_awaiting_mint' | 'complete' | 'source_failed' | 'source_pending' | 'not_found' | 'error';
40
- /** Result of verifying an x402 payment */
41
- export interface PaymentSettlementResult {
42
- status: SettlementStatus;
43
- txHash: string;
44
- /** Whether the payment went to the expected payee */
45
- payeeVerified: boolean;
46
- /** Whether the amount matches */
47
- amountVerified: boolean;
48
- /** Actual amount transferred (from event logs) */
49
- actualAmount?: bigint;
50
- /** Actual payee address (from event logs) */
51
- actualPayee?: string;
52
- /** Token contract address */
53
- tokenAddress?: string;
54
- error?: string;
55
- }
56
- /** Alchemy network slugs for settlement verification (subset: EVM chains with Alchemy support) */
57
- export declare const SETTLEMENT_ALCHEMY_NETWORKS: Record<string, string>;
58
- /** Public RPC fallbacks for chains without Alchemy Gas Manager support */
59
- export declare const SETTLEMENT_PUBLIC_RPCS: Record<string, string>;
60
- /** Circle CCTP attestation API base URL */
61
- export declare const CIRCLE_ATTESTATION_API = "https://iris-api.circle.com/attestations";
62
- /** ERC20 Transfer event topic: keccak256("Transfer(address,address,uint256)") */
63
- export declare const ERC20_TRANSFER_TOPIC = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
64
- /** Solana RPC endpoint */
65
- export declare const SOLANA_RPC_URL = "https://api.mainnet-beta.solana.com";
66
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/settlement/types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEhF,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,oCAAoC;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,oDAAoD;IACpD,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;IACnE,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,sBAAsB,GAC9B,uCAAuC,GACvC,oCAAoC,GACpC,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,OAAO,CAAC;AAEZ,0CAA0C;AAC1C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,aAAa,EAAE,OAAO,CAAC;IACvB,iCAAiC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,kGAAkG;AAClG,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAO9D,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiBzD,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,sBAAsB,6CAA6C,CAAC;AAEjF,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,uEACqC,CAAC;AAEvE,0BAA0B;AAC1B,eAAO,MAAM,cAAc,wCAAwC,CAAC"}
@@ -1,37 +0,0 @@
1
- // Settlement Verification — Types
2
- // Verify that transactions, bridge transfers, and x402 payments actually settled on-chain.
3
- /** Alchemy network slugs for settlement verification (subset: EVM chains with Alchemy support) */
4
- export const SETTLEMENT_ALCHEMY_NETWORKS = {
5
- ethereum: 'eth-mainnet',
6
- base: 'base-mainnet',
7
- arbitrum: 'arb-mainnet',
8
- optimism: 'opt-mainnet',
9
- polygon: 'polygon-mainnet',
10
- worldchain: 'worldchain-mainnet',
11
- };
12
- /** Public RPC fallbacks for chains without Alchemy Gas Manager support */
13
- export const SETTLEMENT_PUBLIC_RPCS = {
14
- ethereum: 'https://eth.llamarpc.com',
15
- base: 'https://mainnet.base.org',
16
- arbitrum: 'https://arb1.arbitrum.io/rpc',
17
- optimism: 'https://mainnet.optimism.io',
18
- polygon: 'https://polygon-rpc.com',
19
- worldchain: 'https://worldchain-mainnet.g.alchemy.com/public',
20
- avalanche: 'https://api.avax.network/ext/bc/C/rpc',
21
- unichain: 'https://mainnet.unichain.org',
22
- linea: 'https://rpc.linea.build',
23
- sonic: 'https://rpc.soniclabs.com',
24
- sei: 'https://evm-rpc.sei-apis.com',
25
- ink: 'https://rpc-gel.inkonchain.com',
26
- hyperevm: 'https://rpc.hyperliquid.xyz/evm',
27
- plume: 'https://rpc.plumenetwork.xyz',
28
- xdc: 'https://rpc.xinfin.network',
29
- codex: 'https://rpc.codex.storage',
30
- };
31
- /** Circle CCTP attestation API base URL */
32
- export const CIRCLE_ATTESTATION_API = 'https://iris-api.circle.com/attestations';
33
- /** ERC20 Transfer event topic: keccak256("Transfer(address,address,uint256)") */
34
- export const ERC20_TRANSFER_TOPIC = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
35
- /** Solana RPC endpoint */
36
- export const SOLANA_RPC_URL = 'https://api.mainnet-beta.solana.com';
37
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/settlement/types.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,2FAA2F;AAsE3F,kGAAkG;AAClG,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,iBAAiB;IAC1B,UAAU,EAAE,oBAAoB;CACjC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,QAAQ,EAAE,0BAA0B;IACpC,IAAI,EAAE,0BAA0B;IAChC,QAAQ,EAAE,8BAA8B;IACxC,QAAQ,EAAE,6BAA6B;IACvC,OAAO,EAAE,yBAAyB;IAClC,UAAU,EAAE,iDAAiD;IAC7D,SAAS,EAAE,uCAAuC;IAClD,QAAQ,EAAE,8BAA8B;IACxC,KAAK,EAAE,yBAAyB;IAChC,KAAK,EAAE,2BAA2B;IAClC,GAAG,EAAE,8BAA8B;IACnC,GAAG,EAAE,gCAAgC;IACrC,QAAQ,EAAE,iCAAiC;IAC3C,KAAK,EAAE,8BAA8B;IACrC,GAAG,EAAE,4BAA4B;IACjC,KAAK,EAAE,2BAA2B;CACnC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,0CAA0C,CAAC;AAEjF,iFAAiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAC/B,oEAAoE,CAAC;AAEvE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,qCAAqC,CAAC"}
@@ -1,75 +0,0 @@
1
- import type { SettlementVerifierConfig, SettlementResult, BridgeSettlementResult, PaymentSettlementResult } from './types.js';
2
- export declare class SettlementVerifier {
3
- private readonly alchemyApiKey;
4
- constructor(config?: SettlementVerifierConfig);
5
- /**
6
- * Verify that an EVM transaction settled on-chain.
7
- *
8
- * Uses Alchemy RPC if apiKey is configured and chain is supported,
9
- * otherwise falls back to public RPCs.
10
- *
11
- * @param params.chain - SDK chain name (e.g. 'base', 'arbitrum')
12
- * @param params.txHash - Transaction hash to verify
13
- * @param params.confirmations - Minimum confirmations required (default: 1)
14
- */
15
- verifyEvmTransaction(params: {
16
- chain: string;
17
- txHash: string;
18
- confirmations?: number;
19
- }): Promise<SettlementResult>;
20
- /**
21
- * Verify that a Solana transaction settled on-chain.
22
- *
23
- * @param params.signature - Solana transaction signature (base58)
24
- * @param params.commitment - Commitment level: 'confirmed' or 'finalized' (default: 'confirmed')
25
- */
26
- verifySolanaTransaction(params: {
27
- signature: string;
28
- commitment?: 'confirmed' | 'finalized';
29
- }): Promise<SettlementResult>;
30
- /**
31
- * Verify a CCTP bridge transfer settled end-to-end:
32
- * 1. Verifies source chain burn tx succeeded
33
- * 2. Checks Circle attestation API for the message hash
34
- * 3. Attempts to find destination mint tx (if attestation is complete)
35
- *
36
- * @param params.sourceTxHash - Burn tx hash on source chain
37
- * @param params.sourceChain - Source chain name (e.g. 'solana', 'base')
38
- * @param params.destinationChain - Destination chain name
39
- * @param params.expectedAmount - Expected USDC amount in base units (6 decimals)
40
- */
41
- verifyBridgeSettlement(params: {
42
- sourceTxHash: string;
43
- sourceChain: string;
44
- destinationChain: string;
45
- expectedAmount: bigint;
46
- }): Promise<BridgeSettlementResult>;
47
- /**
48
- * Verify an x402 payment settled on-chain by inspecting ERC20 Transfer event logs.
49
- *
50
- * Checks that the tx:
51
- * - Succeeded (status=1)
52
- * - Emitted an ERC20 Transfer event to expectedPayee
53
- * - The transferred amount matches expectedAmount
54
- *
55
- * @param params.chain - EVM chain name
56
- * @param params.txHash - Transaction hash
57
- * @param params.expectedPayee - Address that should have received the payment
58
- * @param params.expectedAmount - Amount in USDC base units (6 decimals)
59
- */
60
- verifyX402Payment(params: {
61
- chain: string;
62
- txHash: string;
63
- expectedPayee: string;
64
- expectedAmount: bigint;
65
- }): Promise<PaymentSettlementResult>;
66
- /** Get the RPC URL for a chain, preferring Alchemy over public RPCs */
67
- private _getRpcUrl;
68
- /** Make an EVM JSON-RPC call */
69
- private _evmRpc;
70
- /** Make a Solana JSON-RPC call */
71
- private _solanaRpc;
72
- /** Check Circle attestation API for a CCTP burn message */
73
- private _checkCircleAttestation;
74
- }
75
- //# sourceMappingURL=verifier.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/settlement/verifier.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AASpB,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,MAAM,GAAE,wBAA6B;IAMjD;;;;;;;;;OASG;IACG,oBAAoB,CAAC,MAAM,EAAE;QACjC,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2E7B;;;;;OAKG;IACG,uBAAuB,CAAC,MAAM,EAAE;QACpC,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;KACxC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqD7B;;;;;;;;;;OAUG;IACG,sBAAsB,CAAC,MAAM,EAAE;QACnC,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAkEnC;;;;;;;;;;;;OAYG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAC9B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqFpC,uEAAuE;IACvE,OAAO,CAAC,UAAU;IAYlB,gCAAgC;YAClB,OAAO;IAoBrB,kCAAkC;YACpB,UAAU;IAmBxB,2DAA2D;YAC7C,uBAAuB;CA0BtC"}