agentwallet-sdk 4.0.5 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/README.md +154 -158
  2. package/dist/abi.d.ts +396 -46
  3. package/dist/abi.d.ts.map +1 -1
  4. package/dist/abi.js +0 -2
  5. package/dist/abi.js.map +1 -1
  6. package/dist/ap2/index.d.ts +185 -0
  7. package/dist/ap2/index.d.ts.map +1 -0
  8. package/dist/ap2/index.js +255 -0
  9. package/dist/ap2/index.js.map +1 -0
  10. package/dist/bridge/abis.d.ts.map +1 -1
  11. package/dist/bridge/abis.js +0 -2
  12. package/dist/bridge/abis.js.map +1 -1
  13. package/dist/bridge/client.d.ts +28 -43
  14. package/dist/bridge/client.d.ts.map +1 -1
  15. package/dist/bridge/client.js +0 -2
  16. package/dist/bridge/client.js.map +1 -1
  17. package/dist/bridge/index.d.ts +1 -0
  18. package/dist/bridge/index.d.ts.map +1 -1
  19. package/dist/bridge/index.js +0 -2
  20. package/dist/bridge/index.js.map +1 -1
  21. package/dist/bridge/types.d.ts +48 -32
  22. package/dist/bridge/types.d.ts.map +1 -1
  23. package/dist/bridge/types.js +0 -2
  24. package/dist/bridge/types.js.map +1 -1
  25. package/dist/bridge/unified.d.ts +101 -0
  26. package/dist/bridge/unified.d.ts.map +1 -0
  27. package/dist/bridge/unified.js +284 -0
  28. package/dist/bridge/unified.js.map +1 -0
  29. package/dist/chains.d.ts +62 -0
  30. package/dist/chains.d.ts.map +1 -0
  31. package/dist/chains.js +108 -0
  32. package/dist/chains.js.map +1 -0
  33. package/dist/escrow/MutualStakeEscrow.d.ts +75 -0
  34. package/dist/escrow/MutualStakeEscrow.d.ts.map +1 -0
  35. package/dist/escrow/MutualStakeEscrow.js +339 -0
  36. package/dist/escrow/MutualStakeEscrow.js.map +1 -0
  37. package/dist/escrow/types.d.ts +59 -0
  38. package/dist/escrow/types.d.ts.map +1 -0
  39. package/dist/escrow/types.js +11 -0
  40. package/dist/escrow/types.js.map +1 -0
  41. package/dist/escrow/verifiers.d.ts +26 -0
  42. package/dist/escrow/verifiers.d.ts.map +1 -0
  43. package/dist/escrow/verifiers.js +53 -0
  44. package/dist/escrow/verifiers.js.map +1 -0
  45. package/dist/fiat/index.d.ts +10 -0
  46. package/dist/fiat/index.d.ts.map +1 -0
  47. package/dist/fiat/index.js +9 -0
  48. package/dist/fiat/index.js.map +1 -0
  49. package/dist/fiat/onramp.d.ts +101 -0
  50. package/dist/fiat/onramp.d.ts.map +1 -0
  51. package/dist/fiat/onramp.js +155 -0
  52. package/dist/fiat/onramp.js.map +1 -0
  53. package/dist/fiat/providers/index.d.ts +16 -0
  54. package/dist/fiat/providers/index.d.ts.map +1 -0
  55. package/dist/fiat/providers/index.js +30 -0
  56. package/dist/fiat/providers/index.js.map +1 -0
  57. package/dist/fiat/providers/moonpay.d.ts +22 -0
  58. package/dist/fiat/providers/moonpay.d.ts.map +1 -0
  59. package/dist/fiat/providers/moonpay.js +107 -0
  60. package/dist/fiat/providers/moonpay.js.map +1 -0
  61. package/dist/fiat/providers/stripe.d.ts +26 -0
  62. package/dist/fiat/providers/stripe.d.ts.map +1 -0
  63. package/dist/fiat/providers/stripe.js +135 -0
  64. package/dist/fiat/providers/stripe.js.map +1 -0
  65. package/dist/fiat/providers/transak.d.ts +26 -0
  66. package/dist/fiat/providers/transak.d.ts.map +1 -0
  67. package/dist/fiat/providers/transak.js +119 -0
  68. package/dist/fiat/providers/transak.js.map +1 -0
  69. package/dist/fiat/types.d.ts +106 -0
  70. package/dist/fiat/types.d.ts.map +1 -0
  71. package/dist/fiat/types.js +13 -0
  72. package/dist/fiat/types.js.map +1 -0
  73. package/dist/flash/executor.d.ts +119 -0
  74. package/dist/flash/executor.d.ts.map +1 -0
  75. package/dist/flash/executor.js +195 -0
  76. package/dist/flash/executor.js.map +1 -0
  77. package/dist/flash/index.d.ts +28 -0
  78. package/dist/flash/index.d.ts.map +1 -0
  79. package/dist/flash/index.js +29 -0
  80. package/dist/flash/index.js.map +1 -0
  81. package/dist/flash/scanner.d.ts +133 -0
  82. package/dist/flash/scanner.d.ts.map +1 -0
  83. package/dist/flash/scanner.js +212 -0
  84. package/dist/flash/scanner.js.map +1 -0
  85. package/dist/flash/types.d.ts +136 -0
  86. package/dist/flash/types.d.ts.map +1 -0
  87. package/dist/flash/types.js +23 -0
  88. package/dist/flash/types.js.map +1 -0
  89. package/dist/gas/index.d.ts +4 -0
  90. package/dist/gas/index.d.ts.map +1 -0
  91. package/dist/gas/index.js +3 -0
  92. package/dist/gas/index.js.map +1 -0
  93. package/dist/gas/sponsor.d.ts +70 -0
  94. package/dist/gas/sponsor.d.ts.map +1 -0
  95. package/dist/gas/sponsor.js +193 -0
  96. package/dist/gas/sponsor.js.map +1 -0
  97. package/dist/gas/types.d.ts +76 -0
  98. package/dist/gas/types.d.ts.map +1 -0
  99. package/dist/gas/types.js +21 -0
  100. package/dist/gas/types.js.map +1 -0
  101. package/dist/identity/agent-identity.d.ts +276 -0
  102. package/dist/identity/agent-identity.d.ts.map +1 -0
  103. package/dist/identity/agent-identity.js +300 -0
  104. package/dist/identity/agent-identity.js.map +1 -0
  105. package/dist/identity/erc6551.d.ts +441 -0
  106. package/dist/identity/erc6551.d.ts.map +1 -0
  107. package/dist/identity/erc6551.js +517 -0
  108. package/dist/identity/erc6551.js.map +1 -0
  109. package/dist/identity/erc8004.d.ts +296 -141
  110. package/dist/identity/erc8004.d.ts.map +1 -1
  111. package/dist/identity/erc8004.js +43 -12
  112. package/dist/identity/erc8004.js.map +1 -1
  113. package/dist/identity/index.d.ts +6 -2
  114. package/dist/identity/index.d.ts.map +1 -1
  115. package/dist/identity/index.js +3 -2
  116. package/dist/identity/index.js.map +1 -1
  117. package/dist/identity/reputation.d.ts +318 -0
  118. package/dist/identity/reputation.d.ts.map +1 -0
  119. package/dist/identity/reputation.js +272 -0
  120. package/dist/identity/reputation.js.map +1 -0
  121. package/dist/identity/validation.d.ts +284 -0
  122. package/dist/identity/validation.d.ts.map +1 -0
  123. package/dist/identity/validation.js +226 -0
  124. package/dist/identity/validation.js.map +1 -0
  125. package/dist/index.d.ts +32624 -1011
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +16 -12
  128. package/dist/index.js.map +1 -1
  129. package/dist/mev/index.d.ts +4 -0
  130. package/dist/mev/index.d.ts.map +1 -0
  131. package/dist/mev/index.js +8 -0
  132. package/dist/mev/index.js.map +1 -0
  133. package/dist/mev/protection.d.ts +54 -0
  134. package/dist/mev/protection.d.ts.map +1 -0
  135. package/dist/mev/protection.js +185 -0
  136. package/dist/mev/protection.js.map +1 -0
  137. package/dist/mev/risk.d.ts +19 -0
  138. package/dist/mev/risk.d.ts.map +1 -0
  139. package/dist/mev/risk.js +95 -0
  140. package/dist/mev/risk.js.map +1 -0
  141. package/dist/mev/types.d.ts +49 -0
  142. package/dist/mev/types.d.ts.map +1 -0
  143. package/dist/mev/types.js +2 -0
  144. package/dist/mev/types.js.map +1 -0
  145. package/dist/plugins/elizaos.d.ts +26 -14
  146. package/dist/plugins/elizaos.d.ts.map +1 -1
  147. package/dist/plugins/elizaos.js +0 -2
  148. package/dist/plugins/elizaos.js.map +1 -1
  149. package/dist/policy/SpendingPolicy.d.ts +89 -15
  150. package/dist/policy/SpendingPolicy.d.ts.map +1 -1
  151. package/dist/policy/SpendingPolicy.js +0 -2
  152. package/dist/policy/SpendingPolicy.js.map +1 -1
  153. package/dist/policy/SpendingPolicy.test.d.ts +2 -0
  154. package/dist/policy/SpendingPolicy.test.d.ts.map +1 -0
  155. package/dist/policy/SpendingPolicy.test.js +143 -0
  156. package/dist/policy/SpendingPolicy.test.js.map +1 -0
  157. package/dist/settlement/index.d.ts +4 -0
  158. package/dist/settlement/index.d.ts.map +1 -0
  159. package/dist/settlement/index.js +3 -0
  160. package/dist/settlement/index.js.map +1 -0
  161. package/dist/settlement/types.d.ts +66 -0
  162. package/dist/settlement/types.d.ts.map +1 -0
  163. package/dist/settlement/types.js +37 -0
  164. package/dist/settlement/types.js.map +1 -0
  165. package/dist/settlement/verifier.d.ts +75 -0
  166. package/dist/settlement/verifier.d.ts.map +1 -0
  167. package/dist/settlement/verifier.js +354 -0
  168. package/dist/settlement/verifier.js.map +1 -0
  169. package/dist/solana/bridge.d.ts +144 -0
  170. package/dist/solana/bridge.d.ts.map +1 -0
  171. package/dist/solana/bridge.js +352 -0
  172. package/dist/solana/bridge.js.map +1 -0
  173. package/dist/solana/index.d.ts +8 -0
  174. package/dist/solana/index.d.ts.map +1 -0
  175. package/dist/solana/index.js +6 -0
  176. package/dist/solana/index.js.map +1 -0
  177. package/dist/solana/swap.d.ts +85 -0
  178. package/dist/solana/swap.d.ts.map +1 -0
  179. package/dist/solana/swap.js +173 -0
  180. package/dist/solana/swap.js.map +1 -0
  181. package/dist/solana/types.d.ts +126 -0
  182. package/dist/solana/types.d.ts.map +1 -0
  183. package/dist/solana/types.js +10 -0
  184. package/dist/solana/types.js.map +1 -0
  185. package/dist/solana/wallet.d.ts +83 -0
  186. package/dist/solana/wallet.d.ts.map +1 -0
  187. package/dist/solana/wallet.js +164 -0
  188. package/dist/solana/wallet.js.map +1 -0
  189. package/dist/solana/x402.d.ts +69 -0
  190. package/dist/solana/x402.d.ts.map +1 -0
  191. package/dist/solana/x402.js +154 -0
  192. package/dist/solana/x402.js.map +1 -0
  193. package/dist/solver/adapter.d.ts +47 -0
  194. package/dist/solver/adapter.d.ts.map +1 -0
  195. package/dist/solver/adapter.js +146 -0
  196. package/dist/solver/adapter.js.map +1 -0
  197. package/dist/solver/analyzer.d.ts +48 -0
  198. package/dist/solver/analyzer.d.ts.map +1 -0
  199. package/dist/solver/analyzer.js +171 -0
  200. package/dist/solver/analyzer.js.map +1 -0
  201. package/dist/solver/builder.d.ts +31 -0
  202. package/dist/solver/builder.d.ts.map +1 -0
  203. package/dist/solver/builder.js +60 -0
  204. package/dist/solver/builder.js.map +1 -0
  205. package/dist/solver/index.d.ts +22 -0
  206. package/dist/solver/index.d.ts.map +1 -0
  207. package/dist/solver/index.js +25 -0
  208. package/dist/solver/index.js.map +1 -0
  209. package/dist/solver/types.d.ts +115 -0
  210. package/dist/solver/types.d.ts.map +1 -0
  211. package/dist/solver/types.js +10 -0
  212. package/dist/solver/types.js.map +1 -0
  213. package/dist/spend-guard/index.d.ts +125 -0
  214. package/dist/spend-guard/index.d.ts.map +1 -0
  215. package/dist/spend-guard/index.js +150 -0
  216. package/dist/spend-guard/index.js.map +1 -0
  217. package/dist/swap/SwapModule.d.ts +28 -39
  218. package/dist/swap/SwapModule.d.ts.map +1 -1
  219. package/dist/swap/SwapModule.js +2 -4
  220. package/dist/swap/SwapModule.js.map +1 -1
  221. package/dist/swap/abi.d.ts.map +1 -1
  222. package/dist/swap/abi.js +0 -2
  223. package/dist/swap/abi.js.map +1 -1
  224. package/dist/swap/index.d.ts +1 -0
  225. package/dist/swap/index.d.ts.map +1 -1
  226. package/dist/swap/index.js +0 -2
  227. package/dist/swap/index.js.map +1 -1
  228. package/dist/swap/router/cache.d.ts +13 -0
  229. package/dist/swap/router/cache.d.ts.map +1 -0
  230. package/dist/swap/router/cache.js +30 -0
  231. package/dist/swap/router/cache.js.map +1 -0
  232. package/dist/swap/router/flashbots.d.ts +10 -0
  233. package/dist/swap/router/flashbots.d.ts.map +1 -0
  234. package/dist/swap/router/flashbots.js +43 -0
  235. package/dist/swap/router/flashbots.js.map +1 -0
  236. package/dist/swap/router/health.d.ts +17 -0
  237. package/dist/swap/router/health.d.ts.map +1 -0
  238. package/dist/swap/router/health.js +38 -0
  239. package/dist/swap/router/health.js.map +1 -0
  240. package/dist/swap/router/index.d.ts +10 -0
  241. package/dist/swap/router/index.d.ts.map +1 -0
  242. package/dist/swap/router/index.js +10 -0
  243. package/dist/swap/router/index.js.map +1 -0
  244. package/dist/swap/router/providers/cowswap.d.ts +11 -0
  245. package/dist/swap/router/providers/cowswap.d.ts.map +1 -0
  246. package/dist/swap/router/providers/cowswap.js +79 -0
  247. package/dist/swap/router/providers/cowswap.js.map +1 -0
  248. package/dist/swap/router/providers/index.d.ts +20 -0
  249. package/dist/swap/router/providers/index.d.ts.map +1 -0
  250. package/dist/swap/router/providers/index.js +32 -0
  251. package/dist/swap/router/providers/index.js.map +1 -0
  252. package/dist/swap/router/providers/jupiter.d.ts +12 -0
  253. package/dist/swap/router/providers/jupiter.d.ts.map +1 -0
  254. package/dist/swap/router/providers/jupiter.js +73 -0
  255. package/dist/swap/router/providers/jupiter.js.map +1 -0
  256. package/dist/swap/router/providers/lifi.d.ts +11 -0
  257. package/dist/swap/router/providers/lifi.d.ts.map +1 -0
  258. package/dist/swap/router/providers/lifi.js +123 -0
  259. package/dist/swap/router/providers/lifi.js.map +1 -0
  260. package/dist/swap/router/providers/oneinch.d.ts +13 -0
  261. package/dist/swap/router/providers/oneinch.d.ts.map +1 -0
  262. package/dist/swap/router/providers/oneinch.js +71 -0
  263. package/dist/swap/router/providers/oneinch.js.map +1 -0
  264. package/dist/swap/router/providers/paraswap.d.ts +11 -0
  265. package/dist/swap/router/providers/paraswap.d.ts.map +1 -0
  266. package/dist/swap/router/providers/paraswap.js +73 -0
  267. package/dist/swap/router/providers/paraswap.js.map +1 -0
  268. package/dist/swap/router/providers/uniswap.d.ts +31 -0
  269. package/dist/swap/router/providers/uniswap.d.ts.map +1 -0
  270. package/dist/swap/router/providers/uniswap.js +237 -0
  271. package/dist/swap/router/providers/uniswap.js.map +1 -0
  272. package/dist/swap/router/providers/zerox.d.ts +13 -0
  273. package/dist/swap/router/providers/zerox.d.ts.map +1 -0
  274. package/dist/swap/router/providers/zerox.js +94 -0
  275. package/dist/swap/router/providers/zerox.js.map +1 -0
  276. package/dist/swap/router/router.d.ts +86 -0
  277. package/dist/swap/router/router.d.ts.map +1 -0
  278. package/dist/swap/router/router.js +224 -0
  279. package/dist/swap/router/router.js.map +1 -0
  280. package/dist/swap/router/rsi/engine.d.ts +60 -0
  281. package/dist/swap/router/rsi/engine.d.ts.map +1 -0
  282. package/dist/swap/router/rsi/engine.js +483 -0
  283. package/dist/swap/router/rsi/engine.js.map +1 -0
  284. package/dist/swap/router/rsi/index.d.ts +3 -0
  285. package/dist/swap/router/rsi/index.d.ts.map +1 -0
  286. package/dist/swap/router/rsi/index.js +3 -0
  287. package/dist/swap/router/rsi/index.js.map +1 -0
  288. package/dist/swap/router/rsi/types.d.ts +106 -0
  289. package/dist/swap/router/rsi/types.d.ts.map +1 -0
  290. package/dist/swap/router/rsi/types.js +3 -0
  291. package/dist/swap/router/rsi/types.js.map +1 -0
  292. package/dist/swap/router/types.d.ts +120 -0
  293. package/dist/swap/router/types.d.ts.map +1 -0
  294. package/dist/swap/router/types.js +16 -0
  295. package/dist/swap/router/types.js.map +1 -0
  296. package/dist/swap/types.d.ts +41 -7
  297. package/dist/swap/types.d.ts.map +1 -1
  298. package/dist/swap/types.js +1 -3
  299. package/dist/swap/types.js.map +1 -1
  300. package/dist/tax/engine.d.ts +131 -0
  301. package/dist/tax/engine.d.ts.map +1 -0
  302. package/dist/tax/engine.js +307 -0
  303. package/dist/tax/engine.js.map +1 -0
  304. package/dist/tax/index.d.ts +9 -0
  305. package/dist/tax/index.d.ts.map +1 -0
  306. package/dist/tax/index.js +12 -0
  307. package/dist/tax/index.js.map +1 -0
  308. package/dist/tax/lots.d.ts +60 -0
  309. package/dist/tax/lots.d.ts.map +1 -0
  310. package/dist/tax/lots.js +129 -0
  311. package/dist/tax/lots.js.map +1 -0
  312. package/dist/tax/types.d.ts +113 -0
  313. package/dist/tax/types.d.ts.map +1 -0
  314. package/dist/tax/types.js +18 -0
  315. package/dist/tax/types.js.map +1 -0
  316. package/dist/types.d.ts +106 -5
  317. package/dist/types.d.ts.map +1 -1
  318. package/dist/types.js +0 -2
  319. package/dist/types.js.map +1 -1
  320. package/dist/x402/__tests__/budget.test.d.ts +2 -0
  321. package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
  322. package/dist/x402/__tests__/budget.test.js +114 -0
  323. package/dist/x402/__tests__/budget.test.js.map +1 -0
  324. package/dist/x402/__tests__/client.test.d.ts +2 -0
  325. package/dist/x402/__tests__/client.test.d.ts.map +1 -0
  326. package/dist/x402/__tests__/client.test.js +107 -0
  327. package/dist/x402/__tests__/client.test.js.map +1 -0
  328. package/dist/x402/budget.d.ts +23 -15
  329. package/dist/x402/budget.d.ts.map +1 -1
  330. package/dist/x402/budget.js +0 -2
  331. package/dist/x402/budget.js.map +1 -1
  332. package/dist/x402/chains/abstract/index.d.ts +87 -59
  333. package/dist/x402/chains/abstract/index.d.ts.map +1 -1
  334. package/dist/x402/chains/abstract/index.js +0 -2
  335. package/dist/x402/chains/abstract/index.js.map +1 -1
  336. package/dist/x402/client.d.ts +27 -13
  337. package/dist/x402/client.d.ts.map +1 -1
  338. package/dist/x402/client.js +0 -2
  339. package/dist/x402/client.js.map +1 -1
  340. package/dist/x402/index.d.ts +2 -0
  341. package/dist/x402/index.d.ts.map +1 -1
  342. package/dist/x402/index.js +0 -2
  343. package/dist/x402/index.js.map +1 -1
  344. package/dist/x402/middleware.d.ts +4 -4
  345. package/dist/x402/middleware.d.ts.map +1 -1
  346. package/dist/x402/middleware.js +0 -2
  347. package/dist/x402/middleware.js.map +1 -1
  348. package/dist/x402/types.d.ts +88 -5
  349. package/dist/x402/types.d.ts.map +1 -1
  350. package/dist/x402/types.js +0 -2
  351. package/dist/x402/types.js.map +1 -1
  352. package/dist/yield/index.d.ts +26 -0
  353. package/dist/yield/index.d.ts.map +1 -0
  354. package/dist/yield/index.js +29 -0
  355. package/dist/yield/index.js.map +1 -0
  356. package/dist/yield/rates.d.ts +114 -0
  357. package/dist/yield/rates.d.ts.map +1 -0
  358. package/dist/yield/rates.js +351 -0
  359. package/dist/yield/rates.js.map +1 -0
  360. package/dist/yield/types.d.ts +134 -0
  361. package/dist/yield/types.d.ts.map +1 -0
  362. package/dist/yield/types.js +24 -0
  363. package/dist/yield/types.js.map +1 -0
  364. package/dist/yield/vault.d.ts +112 -0
  365. package/dist/yield/vault.d.ts.map +1 -0
  366. package/dist/yield/vault.js +264 -0
  367. package/dist/yield/vault.js.map +1 -0
  368. package/package.json +18 -32
  369. package/dist/__tests__/identity.did.test.d.ts +0 -2
  370. package/dist/__tests__/identity.did.test.d.ts.map +0 -1
  371. package/dist/__tests__/identity.did.test.js +0 -56
  372. package/dist/__tests__/identity.did.test.js.map +0 -1
  373. package/dist/__tests__/staking.test.d.ts +0 -2
  374. package/dist/__tests__/staking.test.d.ts.map +0 -1
  375. package/dist/__tests__/staking.test.js +0 -70
  376. package/dist/__tests__/staking.test.js.map +0 -1
  377. package/dist/__tests__/verify.test.d.ts +0 -2
  378. package/dist/__tests__/verify.test.d.ts.map +0 -1
  379. package/dist/__tests__/verify.test.js +0 -57
  380. package/dist/__tests__/verify.test.js.map +0 -1
  381. package/dist/identity/did.d.ts +0 -66
  382. package/dist/identity/did.d.ts.map +0 -1
  383. package/dist/identity/did.js +0 -186
  384. package/dist/identity/did.js.map +0 -1
  385. package/dist/staking/AgentStakingPool.d.ts +0 -100
  386. package/dist/staking/AgentStakingPool.d.ts.map +0 -1
  387. package/dist/staking/AgentStakingPool.js +0 -298
  388. package/dist/staking/AgentStakingPool.js.map +0 -1
  389. package/dist/staking/index.d.ts +0 -2
  390. package/dist/staking/index.d.ts.map +0 -1
  391. package/dist/staking/index.js +0 -2
  392. package/dist/staking/index.js.map +0 -1
  393. package/dist/verify/index.d.ts +0 -2
  394. package/dist/verify/index.d.ts.map +0 -1
  395. package/dist/verify/index.js +0 -2
  396. package/dist/verify/index.js.map +0 -1
  397. package/dist/verify/verifyAgent.d.ts +0 -42
  398. package/dist/verify/verifyAgent.d.ts.map +0 -1
  399. package/dist/verify/verifyAgent.js +0 -216
  400. package/dist/verify/verifyAgent.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MutualStakeEscrow.d.ts","sourceRoot":"","sources":["../../src/escrow/MutualStakeEscrow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,YAAY,EAGlB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,UAAU,EACV,QAAQ,EACT,MAAM,YAAY,CAAC;AAwFpB;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE;QAClB,YAAY,EAAE,YAAY,CAAC;QAC3B,YAAY,EAAE,YAAY,CAAC;QAC3B,cAAc,EAAE,OAAO,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;KACjB;IAOD;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAyDhE;;;;OAIG;IACG,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4B3E;;;OAGG;IACG,MAAM,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4BtD;;;;OAIG;IACG,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBnE;;;OAGG;IACG,MAAM,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBtD;;;;OAIG;IACG,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBxE;;;OAGG;IACG,MAAM,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBtD;;;OAGG;IACG,cAAc,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgB9D;;;OAGG;IACG,UAAU,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAyB/D;;;OAGG;IACG,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;CAU5D"}
@@ -0,0 +1,339 @@
1
+ import { resolveVerifierAddress, encodeOptimisticVerifierData } from './verifiers.js';
2
+ // ─── ABIs ────────────────────────────────────────────────────────────────────
3
+ const StakeVaultFactoryAbi = [
4
+ {
5
+ name: 'createEscrow',
6
+ type: 'function',
7
+ stateMutability: 'nonpayable',
8
+ inputs: [
9
+ { name: '_buyer', type: 'address' },
10
+ { name: '_seller', type: 'address' },
11
+ { name: '_token', type: 'address' },
12
+ { name: '_paymentAmount', type: 'uint256' },
13
+ { name: '_buyerStake', type: 'uint256' },
14
+ { name: '_sellerStake', type: 'uint256' },
15
+ { name: '_verifier', type: 'address' },
16
+ { name: '_verifierData', type: 'bytes' },
17
+ { name: '_deadline', type: 'uint256' },
18
+ { name: '_challengeWindow', type: 'uint256' },
19
+ ],
20
+ outputs: [{ name: 'vault', type: 'address' }],
21
+ },
22
+ {
23
+ name: 'VaultCreated',
24
+ type: 'event',
25
+ inputs: [
26
+ { name: 'vault', type: 'address', indexed: true },
27
+ { name: 'buyer', type: 'address', indexed: true },
28
+ { name: 'seller', type: 'address', indexed: true },
29
+ { name: 'token', type: 'address', indexed: false },
30
+ { name: 'paymentAmount', type: 'uint256', indexed: false },
31
+ { name: 'buyerStake', type: 'uint256', indexed: false },
32
+ { name: 'sellerStake', type: 'uint256', indexed: false },
33
+ { name: 'verifier', type: 'address', indexed: false },
34
+ { name: 'deadline', type: 'uint256', indexed: false },
35
+ ],
36
+ },
37
+ ];
38
+ const StakeVaultAbi = [
39
+ { name: 'fund', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [] },
40
+ { name: 'accept', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [] },
41
+ { name: 'fulfill', type: 'function', stateMutability: 'nonpayable', inputs: [{ name: 'proof', type: 'bytes' }], outputs: [] },
42
+ { name: 'verify', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [] },
43
+ { name: 'challenge', type: 'function', stateMutability: 'nonpayable', inputs: [{ name: 'evidence', type: 'bytes' }], outputs: [] },
44
+ { name: 'resolve', type: 'function', stateMutability: 'nonpayable', inputs: [{ name: 'sellerWins', type: 'bool' }], outputs: [] },
45
+ { name: 'cancel', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [] },
46
+ { name: 'reclaimExpired', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [] },
47
+ {
48
+ name: 'getEscrowDetails',
49
+ type: 'function',
50
+ stateMutability: 'view',
51
+ inputs: [],
52
+ outputs: [
53
+ { name: '_buyer', type: 'address' },
54
+ { name: '_seller', type: 'address' },
55
+ { name: '_token', type: 'address' },
56
+ { name: '_paymentAmount', type: 'uint256' },
57
+ { name: '_buyerStake', type: 'uint256' },
58
+ { name: '_sellerStake', type: 'uint256' },
59
+ { name: '_verifier', type: 'address' },
60
+ { name: '_deadline', type: 'uint256' },
61
+ { name: '_challengeWindow', type: 'uint256' },
62
+ { name: '_status', type: 'uint8' },
63
+ { name: '_fulfilledAt', type: 'uint256' },
64
+ ],
65
+ },
66
+ { name: 'status', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ name: '', type: 'uint8' }] },
67
+ ];
68
+ const ERC20ApproveAbi = [
69
+ {
70
+ name: 'approve',
71
+ type: 'function',
72
+ stateMutability: 'nonpayable',
73
+ inputs: [
74
+ { name: 'spender', type: 'address' },
75
+ { name: 'amount', type: 'uint256' },
76
+ ],
77
+ outputs: [{ name: '', type: 'bool' }],
78
+ },
79
+ ];
80
+ /** Base USDC address */
81
+ const BASE_USDC = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
82
+ /**
83
+ * MutualStakeEscrow — SDK class for creating and managing mutual-stake escrow vaults
84
+ *
85
+ * Wraps the StakeVault and StakeVaultFactory contracts with a clean TypeScript API.
86
+ * Both buyer and seller deposit collateral, ensuring aligned incentives.
87
+ */
88
+ export class MutualStakeEscrow {
89
+ constructor(params) {
90
+ this.publicClient = params.publicClient;
91
+ this.walletClient = params.walletClient;
92
+ this.factoryAddress = params.factoryAddress;
93
+ this.chainId = params.chainId;
94
+ }
95
+ /**
96
+ * Create a new escrow vault via the factory
97
+ * @param params - Escrow creation parameters
98
+ * @returns The deployed vault address and transaction hash
99
+ */
100
+ async create(params) {
101
+ const account = this.walletClient.account;
102
+ if (!account)
103
+ throw new Error('Wallet client must have an account');
104
+ const token = params.token ?? BASE_USDC;
105
+ const verifierAddress = resolveVerifierAddress(params.verifier, this.chainId);
106
+ const verifierData = params.verifierData ?? encodeOptimisticVerifierData();
107
+ const txHash = await this.walletClient.writeContract({
108
+ address: this.factoryAddress,
109
+ abi: StakeVaultFactoryAbi,
110
+ functionName: 'createEscrow',
111
+ args: [
112
+ account.address,
113
+ params.seller,
114
+ token,
115
+ params.paymentAmount,
116
+ params.buyerStake,
117
+ params.sellerStake,
118
+ verifierAddress,
119
+ verifierData,
120
+ BigInt(params.deadline),
121
+ BigInt(params.challengeWindow),
122
+ ],
123
+ account,
124
+ chain: this.walletClient.chain,
125
+ });
126
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash: txHash });
127
+ // Extract vault address from VaultCreated event
128
+ const vaultCreatedLog = receipt.logs.find((log) => log.topics[0] === '0x' // Match VaultCreated event signature
129
+ );
130
+ // Fallback: read vault address from return data via simulation
131
+ const vaultAddress = await this.publicClient.readContract({
132
+ address: this.factoryAddress,
133
+ abi: StakeVaultFactoryAbi,
134
+ functionName: 'createEscrow',
135
+ args: [
136
+ account.address,
137
+ params.seller,
138
+ token,
139
+ params.paymentAmount,
140
+ params.buyerStake,
141
+ params.sellerStake,
142
+ verifierAddress,
143
+ verifierData,
144
+ BigInt(params.deadline),
145
+ BigInt(params.challengeWindow),
146
+ ],
147
+ });
148
+ return { address: vaultAddress, txHash };
149
+ }
150
+ /**
151
+ * Fund an escrow as buyer (deposits payment + buyerStake)
152
+ * @param vaultAddress - Address of the StakeVault
153
+ * @param approveAmount - Total amount to approve (payment + buyerStake)
154
+ */
155
+ async fund(vaultAddress, approveAmount) {
156
+ const account = this.walletClient.account;
157
+ if (!account)
158
+ throw new Error('Wallet client must have an account');
159
+ const details = await this.getDetails(vaultAddress);
160
+ // Approve token transfer
161
+ await this.walletClient.writeContract({
162
+ address: details.token,
163
+ abi: ERC20ApproveAbi,
164
+ functionName: 'approve',
165
+ args: [vaultAddress, approveAmount],
166
+ account,
167
+ chain: this.walletClient.chain,
168
+ });
169
+ const txHash = await this.walletClient.writeContract({
170
+ address: vaultAddress,
171
+ abi: StakeVaultAbi,
172
+ functionName: 'fund',
173
+ args: [],
174
+ account,
175
+ chain: this.walletClient.chain,
176
+ });
177
+ return { txHash };
178
+ }
179
+ /**
180
+ * Accept an escrow as seller (deposits sellerStake)
181
+ * @param vaultAddress - Address of the StakeVault
182
+ */
183
+ async accept(vaultAddress) {
184
+ const account = this.walletClient.account;
185
+ if (!account)
186
+ throw new Error('Wallet client must have an account');
187
+ const details = await this.getDetails(vaultAddress);
188
+ // Approve seller stake transfer
189
+ await this.walletClient.writeContract({
190
+ address: details.token,
191
+ abi: ERC20ApproveAbi,
192
+ functionName: 'approve',
193
+ args: [vaultAddress, details.sellerStake],
194
+ account,
195
+ chain: this.walletClient.chain,
196
+ });
197
+ const txHash = await this.walletClient.writeContract({
198
+ address: vaultAddress,
199
+ abi: StakeVaultAbi,
200
+ functionName: 'accept',
201
+ args: [],
202
+ account,
203
+ chain: this.walletClient.chain,
204
+ });
205
+ return { txHash };
206
+ }
207
+ /**
208
+ * Submit fulfillment proof as seller
209
+ * @param vaultAddress - Address of the StakeVault
210
+ * @param proof - Completion proof bytes
211
+ */
212
+ async fulfill(vaultAddress, proof) {
213
+ const account = this.walletClient.account;
214
+ if (!account)
215
+ throw new Error('Wallet client must have an account');
216
+ const txHash = await this.walletClient.writeContract({
217
+ address: vaultAddress,
218
+ abi: StakeVaultAbi,
219
+ functionName: 'fulfill',
220
+ args: [proof],
221
+ account,
222
+ chain: this.walletClient.chain,
223
+ });
224
+ return { txHash };
225
+ }
226
+ /**
227
+ * Verify completion after challenge window (anyone can call)
228
+ * @param vaultAddress - Address of the StakeVault
229
+ */
230
+ async verify(vaultAddress) {
231
+ const account = this.walletClient.account;
232
+ if (!account)
233
+ throw new Error('Wallet client must have an account');
234
+ const txHash = await this.walletClient.writeContract({
235
+ address: vaultAddress,
236
+ abi: StakeVaultAbi,
237
+ functionName: 'verify',
238
+ args: [],
239
+ account,
240
+ chain: this.walletClient.chain,
241
+ });
242
+ return { txHash };
243
+ }
244
+ /**
245
+ * Challenge a fulfillment as buyer
246
+ * @param vaultAddress - Address of the StakeVault
247
+ * @param evidence - Challenge evidence bytes
248
+ */
249
+ async challenge(vaultAddress, evidence) {
250
+ const account = this.walletClient.account;
251
+ if (!account)
252
+ throw new Error('Wallet client must have an account');
253
+ const txHash = await this.walletClient.writeContract({
254
+ address: vaultAddress,
255
+ abi: StakeVaultAbi,
256
+ functionName: 'challenge',
257
+ args: [evidence],
258
+ account,
259
+ chain: this.walletClient.chain,
260
+ });
261
+ return { txHash };
262
+ }
263
+ /**
264
+ * Cancel escrow before seller accepts (buyer only)
265
+ * @param vaultAddress - Address of the StakeVault
266
+ */
267
+ async cancel(vaultAddress) {
268
+ const account = this.walletClient.account;
269
+ if (!account)
270
+ throw new Error('Wallet client must have an account');
271
+ const txHash = await this.walletClient.writeContract({
272
+ address: vaultAddress,
273
+ abi: StakeVaultAbi,
274
+ functionName: 'cancel',
275
+ args: [],
276
+ account,
277
+ chain: this.walletClient.chain,
278
+ });
279
+ return { txHash };
280
+ }
281
+ /**
282
+ * Reclaim funds after deadline expiry
283
+ * @param vaultAddress - Address of the StakeVault
284
+ */
285
+ async reclaimExpired(vaultAddress) {
286
+ const account = this.walletClient.account;
287
+ if (!account)
288
+ throw new Error('Wallet client must have an account');
289
+ const txHash = await this.walletClient.writeContract({
290
+ address: vaultAddress,
291
+ abi: StakeVaultAbi,
292
+ functionName: 'reclaimExpired',
293
+ args: [],
294
+ account,
295
+ chain: this.walletClient.chain,
296
+ });
297
+ return { txHash };
298
+ }
299
+ /**
300
+ * Get full escrow details from on-chain
301
+ * @param vaultAddress - Address of the StakeVault
302
+ */
303
+ async getDetails(vaultAddress) {
304
+ const result = await this.publicClient.readContract({
305
+ address: vaultAddress,
306
+ abi: StakeVaultAbi,
307
+ functionName: 'getEscrowDetails',
308
+ args: [],
309
+ });
310
+ const [buyer, seller, token, paymentAmount, buyerStake, sellerStake, verifier, deadline, challengeWindow, statusNum, fulfilledAt] = result;
311
+ return {
312
+ buyer,
313
+ seller,
314
+ token,
315
+ paymentAmount,
316
+ buyerStake,
317
+ sellerStake,
318
+ verifier,
319
+ deadline,
320
+ challengeWindow,
321
+ status: statusNum,
322
+ fulfilledAt,
323
+ };
324
+ }
325
+ /**
326
+ * Get the current status of an escrow
327
+ * @param vaultAddress - Address of the StakeVault
328
+ */
329
+ async getStatus(vaultAddress) {
330
+ const result = await this.publicClient.readContract({
331
+ address: vaultAddress,
332
+ abi: StakeVaultAbi,
333
+ functionName: 'status',
334
+ args: [],
335
+ });
336
+ return result;
337
+ }
338
+ }
339
+ //# sourceMappingURL=MutualStakeEscrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MutualStakeEscrow.js","sourceRoot":"","sources":["../../src/escrow/MutualStakeEscrow.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEtF,gFAAgF;AAEhF,MAAM,oBAAoB,GAAG;IAC3B;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;YACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;YACxC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;SAC9C;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC9C;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YACjD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAClD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACvD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACxD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACrD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SACtD;KACF;CACO,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1F,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5F,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC7H,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5F,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAClI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACjI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5F,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpG;QACE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;YACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC7C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;YAClC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;SAC1C;KACF;IACD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;CACzG,CAAC;AAEX,MAAM,eAAe,GAAG;IACtB;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;SACpC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACtC;CACO,CAAC;AAEX,wBAAwB;AACxB,MAAM,SAAS,GAAY,4CAA4C,CAAC;AAExE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IAM5B,YAAY,MAKX;QACC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAA0B;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QACxC,MAAM,eAAe,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,4BAA4B,EAAE,CAAC;QAE3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,GAAG,EAAE,oBAAoB;YACzB,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE;gBACJ,OAAO,CAAC,OAAO;gBACf,MAAM,CAAC,MAAM;gBACb,KAAK;gBACL,MAAM,CAAC,aAAa;gBACpB,MAAM,CAAC,UAAU;gBACjB,MAAM,CAAC,WAAW;gBAClB,eAAe;gBACf,YAAY;gBACZ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACvB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;aAC/B;YACD,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpF,gDAAgD;QAChD,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CACvC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,qCAAqC;SACtE,CAAC;QAEF,+DAA+D;QAC/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACxD,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,GAAG,EAAE,oBAAoB;YACzB,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE;gBACJ,OAAO,CAAC,OAAO;gBACf,MAAM,CAAC,MAAM;gBACb,KAAK;gBACL,MAAM,CAAC,aAAa;gBACpB,MAAM,CAAC,UAAU;gBACjB,MAAM,CAAC,WAAW;gBAClB,eAAe;gBACf,YAAY;gBACZ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACvB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;aAC/B;SACF,CAAY,CAAC;QAEd,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,YAAqB,EAAE,aAAqB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAEpD,yBAAyB;QACzB,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACpC,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;YACnC,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,EAAE;YACR,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,YAAqB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAEpD,gCAAgC;QAChC,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACpC,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC;YACzC,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,EAAE;YACR,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,YAAqB,EAAE,KAAU;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,KAAK,CAAC;YACb,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,YAAqB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,EAAE;YACR,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,YAAqB,EAAE,QAAa;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,QAAQ,CAAC;YAChB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,YAAqB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,EAAE;YACR,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,YAAqB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,EAAE;YACR,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC/B,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,YAAqB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAClD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,MAAsG,CAAC;QAE3O,OAAO;YACL,KAAK;YACL,MAAM;YACN,KAAK;YACL,aAAa;YACb,UAAU;YACV,WAAW;YACX,QAAQ;YACR,QAAQ;YACR,eAAe;YACf,MAAM,EAAE,SAAuB;YAC/B,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,YAAqB;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAClD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,OAAO,MAA+B,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,59 @@
1
+ import type { Address, Hash, Hex } from 'viem';
2
+ /** Mirrors the on-chain TaskStatus enum */
3
+ export declare enum TaskStatus {
4
+ Created = 0,
5
+ Funded = 1,
6
+ Fulfilled = 2,
7
+ Challenged = 3,
8
+ Resolved = 4,
9
+ Cancelled = 5
10
+ }
11
+ /** Supported built-in verifier types */
12
+ export type VerifierType = 'optimistic' | 'hash';
13
+ /** Parameters for creating a new mutual-stake escrow */
14
+ export interface CreateEscrowParams {
15
+ /** Seller/service-provider address */
16
+ seller: Address;
17
+ /** Payment amount in token's smallest unit (e.g., 6 decimals for USDC) */
18
+ paymentAmount: bigint;
19
+ /** Buyer's anti-grief collateral */
20
+ buyerStake: bigint;
21
+ /** Seller's anti-fraud collateral */
22
+ sellerStake: bigint;
23
+ /** Verifier type or custom verifier contract address */
24
+ verifier: VerifierType | Address;
25
+ /** Verifier-specific configuration data (auto-generated for built-in verifiers) */
26
+ verifierData?: Hex;
27
+ /** Challenge window in seconds after fulfillment */
28
+ challengeWindow: number;
29
+ /** Unix timestamp deadline for the task */
30
+ deadline: number;
31
+ /** ERC-20 token address (defaults to USDC on Base) */
32
+ token?: Address;
33
+ }
34
+ /** Result from creating an escrow */
35
+ export interface EscrowCreated {
36
+ /** Address of the deployed StakeVault contract */
37
+ address: Address;
38
+ /** Transaction hash of the factory call */
39
+ txHash: Hash;
40
+ }
41
+ /** Full escrow details from on-chain */
42
+ export interface EscrowDetails {
43
+ buyer: Address;
44
+ seller: Address;
45
+ token: Address;
46
+ paymentAmount: bigint;
47
+ buyerStake: bigint;
48
+ sellerStake: bigint;
49
+ verifier: Address;
50
+ deadline: bigint;
51
+ challengeWindow: bigint;
52
+ status: TaskStatus;
53
+ fulfilledAt: bigint;
54
+ }
55
+ /** Transaction result */
56
+ export interface TxResult {
57
+ txHash: Hash;
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/escrow/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,2CAA2C;AAC3C,oBAAY,UAAU;IACpB,OAAO,IAAI;IACX,MAAM,IAAI;IACV,SAAS,IAAI;IACb,UAAU,IAAI;IACd,QAAQ,IAAI;IACZ,SAAS,IAAI;CACd;AAED,wCAAwC;AACxC,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC;AAEjD,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC;IACjC,mFAAmF;IACnF,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,MAAM,EAAE,IAAI,CAAC;CACd;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,yBAAyB;AACzB,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,IAAI,CAAC;CACd"}
@@ -0,0 +1,11 @@
1
+ /** Mirrors the on-chain TaskStatus enum */
2
+ export var TaskStatus;
3
+ (function (TaskStatus) {
4
+ TaskStatus[TaskStatus["Created"] = 0] = "Created";
5
+ TaskStatus[TaskStatus["Funded"] = 1] = "Funded";
6
+ TaskStatus[TaskStatus["Fulfilled"] = 2] = "Fulfilled";
7
+ TaskStatus[TaskStatus["Challenged"] = 3] = "Challenged";
8
+ TaskStatus[TaskStatus["Resolved"] = 4] = "Resolved";
9
+ TaskStatus[TaskStatus["Cancelled"] = 5] = "Cancelled";
10
+ })(TaskStatus || (TaskStatus = {}));
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/escrow/types.ts"],"names":[],"mappings":"AAEA,2CAA2C;AAC3C,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,iDAAW,CAAA;IACX,+CAAU,CAAA;IACV,qDAAa,CAAA;IACb,uDAAc,CAAA;IACd,mDAAY,CAAA;IACZ,qDAAa,CAAA;AACf,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB"}
@@ -0,0 +1,26 @@
1
+ import { type Address, type Hex } from 'viem';
2
+ import type { VerifierType } from './types.js';
3
+ /**
4
+ * Known verifier contract addresses on Base mainnet.
5
+ * These are deployed once and shared by all StakeVault instances.
6
+ */
7
+ export declare const VERIFIER_ADDRESSES: Record<string, Record<VerifierType, Address>>;
8
+ /**
9
+ * Resolve a verifier type to its deployed contract address for a given chain
10
+ * @param verifier - Built-in verifier type or custom contract address
11
+ * @param chainId - Chain ID to look up
12
+ * @returns The verifier contract address
13
+ */
14
+ export declare function resolveVerifierAddress(verifier: VerifierType | Address, chainId: number): Address;
15
+ /**
16
+ * Encode verifier configuration data for the HashVerifier
17
+ * @param expectedHash - SHA256 hash of the expected output
18
+ * @returns ABI-encoded bytes for the verifierData field
19
+ */
20
+ export declare function encodeHashVerifierData(expectedHash: Hex): Hex;
21
+ /**
22
+ * Encode verifier configuration data for the OptimisticVerifier
23
+ * @returns Empty bytes (optimistic verifier has no config)
24
+ */
25
+ export declare function encodeOptimisticVerifierData(): Hex;
26
+ //# sourceMappingURL=verifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifiers.d.ts","sourceRoot":"","sources":["../../src/escrow/verifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAA2C,MAAM,MAAM,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAW5E,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAgBjG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG,CAE7D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,GAAG,CAElD"}
@@ -0,0 +1,53 @@
1
+ import { encodeAbiParameters, parseAbiParameters } from 'viem';
2
+ /**
3
+ * Known verifier contract addresses on Base mainnet.
4
+ * These are deployed once and shared by all StakeVault instances.
5
+ */
6
+ export const VERIFIER_ADDRESSES = {
7
+ // Base mainnet (chain ID 8453)
8
+ '8453': {
9
+ optimistic: '0x0000000000000000000000000000000000000000', // Pre-deployment: set after deploying StakeVault verifier contracts to Base
10
+ hash: '0x0000000000000000000000000000000000000000', // Pre-deployment: set after deploying StakeVault verifier contracts to Base
11
+ },
12
+ // Base Sepolia testnet (chain ID 84532)
13
+ '84532': {
14
+ optimistic: '0x0000000000000000000000000000000000000000', // Pre-deployment: set after deploying StakeVault verifier contracts to Base
15
+ hash: '0x0000000000000000000000000000000000000000', // Pre-deployment: set after deploying StakeVault verifier contracts to Base
16
+ },
17
+ };
18
+ /**
19
+ * Resolve a verifier type to its deployed contract address for a given chain
20
+ * @param verifier - Built-in verifier type or custom contract address
21
+ * @param chainId - Chain ID to look up
22
+ * @returns The verifier contract address
23
+ */
24
+ export function resolveVerifierAddress(verifier, chainId) {
25
+ if (verifier.startsWith('0x') && verifier.length === 42) {
26
+ return verifier;
27
+ }
28
+ const chainAddresses = VERIFIER_ADDRESSES[chainId.toString()];
29
+ if (!chainAddresses) {
30
+ throw new Error(`No verifier addresses configured for chain ${chainId}`);
31
+ }
32
+ const address = chainAddresses[verifier];
33
+ if (!address || address === '0x0000000000000000000000000000000000000000') {
34
+ throw new Error(`Verifier "${verifier}" not deployed on chain ${chainId}. Deploy it first or pass a custom address.`);
35
+ }
36
+ return address;
37
+ }
38
+ /**
39
+ * Encode verifier configuration data for the HashVerifier
40
+ * @param expectedHash - SHA256 hash of the expected output
41
+ * @returns ABI-encoded bytes for the verifierData field
42
+ */
43
+ export function encodeHashVerifierData(expectedHash) {
44
+ return encodeAbiParameters(parseAbiParameters('bytes32'), [expectedHash]);
45
+ }
46
+ /**
47
+ * Encode verifier configuration data for the OptimisticVerifier
48
+ * @returns Empty bytes (optimistic verifier has no config)
49
+ */
50
+ export function encodeOptimisticVerifierData() {
51
+ return '0x';
52
+ }
53
+ //# sourceMappingURL=verifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifiers.js","sourceRoot":"","sources":["../../src/escrow/verifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAGvF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkD;IAC/E,+BAA+B;IAC/B,MAAM,EAAE;QACN,UAAU,EAAE,4CAA4C,EAAE,0BAA0B;QACpF,IAAI,EAAE,4CAA4C,EAAE,0BAA0B;KAC/E;IACD,wCAAwC;IACxC,OAAO,EAAE;QACP,UAAU,EAAE,4CAA4C,EAAE,0BAA0B;QACpF,IAAI,EAAE,4CAA4C,EAAE,0BAA0B;KAC/E;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgC,EAAE,OAAe;IACtF,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACxD,OAAO,QAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,QAAwB,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,4CAA4C,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,2BAA2B,OAAO,6CAA6C,CAAC,CAAC;IACxH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAAiB;IACtD,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,9 @@
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
@@ -0,0 +1 @@
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"}