agentwallet-sdk 5.0.0 → 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 (371) hide show
  1. package/README.md +221 -0
  2. package/dist/abi.d.ts +397 -0
  3. package/dist/abi.d.ts.map +1 -0
  4. package/dist/abi.js +255 -0
  5. package/dist/abi.js.map +1 -0
  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 +64 -0
  11. package/dist/bridge/abis.d.ts.map +1 -0
  12. package/dist/bridge/abis.js +129 -0
  13. package/dist/bridge/abis.js.map +1 -0
  14. package/dist/bridge/client.d.ts +35 -0
  15. package/dist/bridge/client.d.ts.map +1 -0
  16. package/dist/bridge/client.js +230 -0
  17. package/dist/bridge/client.js.map +1 -0
  18. package/dist/bridge/index.d.ts +4 -0
  19. package/dist/bridge/index.d.ts.map +1 -0
  20. package/dist/bridge/index.js +3 -0
  21. package/dist/bridge/index.js.map +1 -0
  22. package/dist/bridge/types.d.ts +69 -0
  23. package/dist/bridge/types.d.ts.map +1 -0
  24. package/dist/bridge/types.js +53 -0
  25. package/dist/bridge/types.js.map +1 -0
  26. package/dist/bridge/unified.d.ts +101 -0
  27. package/dist/bridge/unified.d.ts.map +1 -0
  28. package/dist/bridge/unified.js +284 -0
  29. package/dist/bridge/unified.js.map +1 -0
  30. package/dist/chains.d.ts +62 -0
  31. package/dist/chains.d.ts.map +1 -0
  32. package/dist/chains.js +108 -0
  33. package/dist/chains.js.map +1 -0
  34. package/dist/escrow/MutualStakeEscrow.d.ts +75 -0
  35. package/dist/escrow/MutualStakeEscrow.d.ts.map +1 -0
  36. package/dist/escrow/MutualStakeEscrow.js +339 -0
  37. package/dist/escrow/MutualStakeEscrow.js.map +1 -0
  38. package/dist/escrow/types.d.ts +59 -0
  39. package/dist/escrow/types.d.ts.map +1 -0
  40. package/dist/escrow/types.js +11 -0
  41. package/dist/escrow/types.js.map +1 -0
  42. package/dist/escrow/verifiers.d.ts +26 -0
  43. package/dist/escrow/verifiers.d.ts.map +1 -0
  44. package/dist/escrow/verifiers.js +53 -0
  45. package/dist/escrow/verifiers.js.map +1 -0
  46. package/dist/fiat/index.d.ts +10 -0
  47. package/dist/fiat/index.d.ts.map +1 -0
  48. package/dist/fiat/index.js +9 -0
  49. package/dist/fiat/index.js.map +1 -0
  50. package/dist/fiat/onramp.d.ts +101 -0
  51. package/dist/fiat/onramp.d.ts.map +1 -0
  52. package/dist/fiat/onramp.js +155 -0
  53. package/dist/fiat/onramp.js.map +1 -0
  54. package/dist/fiat/providers/index.d.ts +16 -0
  55. package/dist/fiat/providers/index.d.ts.map +1 -0
  56. package/dist/fiat/providers/index.js +30 -0
  57. package/dist/fiat/providers/index.js.map +1 -0
  58. package/dist/fiat/providers/moonpay.d.ts +22 -0
  59. package/dist/fiat/providers/moonpay.d.ts.map +1 -0
  60. package/dist/fiat/providers/moonpay.js +107 -0
  61. package/dist/fiat/providers/moonpay.js.map +1 -0
  62. package/dist/fiat/providers/stripe.d.ts +26 -0
  63. package/dist/fiat/providers/stripe.d.ts.map +1 -0
  64. package/dist/fiat/providers/stripe.js +135 -0
  65. package/dist/fiat/providers/stripe.js.map +1 -0
  66. package/dist/fiat/providers/transak.d.ts +26 -0
  67. package/dist/fiat/providers/transak.d.ts.map +1 -0
  68. package/dist/fiat/providers/transak.js +119 -0
  69. package/dist/fiat/providers/transak.js.map +1 -0
  70. package/dist/fiat/types.d.ts +106 -0
  71. package/dist/fiat/types.d.ts.map +1 -0
  72. package/dist/fiat/types.js +13 -0
  73. package/dist/fiat/types.js.map +1 -0
  74. package/dist/flash/executor.d.ts +119 -0
  75. package/dist/flash/executor.d.ts.map +1 -0
  76. package/dist/flash/executor.js +195 -0
  77. package/dist/flash/executor.js.map +1 -0
  78. package/dist/flash/index.d.ts +28 -0
  79. package/dist/flash/index.d.ts.map +1 -0
  80. package/dist/flash/index.js +29 -0
  81. package/dist/flash/index.js.map +1 -0
  82. package/dist/flash/scanner.d.ts +133 -0
  83. package/dist/flash/scanner.d.ts.map +1 -0
  84. package/dist/flash/scanner.js +212 -0
  85. package/dist/flash/scanner.js.map +1 -0
  86. package/dist/flash/types.d.ts +136 -0
  87. package/dist/flash/types.d.ts.map +1 -0
  88. package/dist/flash/types.js +23 -0
  89. package/dist/flash/types.js.map +1 -0
  90. package/dist/gas/index.d.ts +4 -0
  91. package/dist/gas/index.d.ts.map +1 -0
  92. package/dist/gas/index.js +3 -0
  93. package/dist/gas/index.js.map +1 -0
  94. package/dist/gas/sponsor.d.ts +70 -0
  95. package/dist/gas/sponsor.d.ts.map +1 -0
  96. package/dist/gas/sponsor.js +193 -0
  97. package/dist/gas/sponsor.js.map +1 -0
  98. package/dist/gas/types.d.ts +76 -0
  99. package/dist/gas/types.d.ts.map +1 -0
  100. package/dist/gas/types.js +21 -0
  101. package/dist/gas/types.js.map +1 -0
  102. package/dist/identity/agent-identity.d.ts +276 -0
  103. package/dist/identity/agent-identity.d.ts.map +1 -0
  104. package/dist/identity/agent-identity.js +300 -0
  105. package/dist/identity/agent-identity.js.map +1 -0
  106. package/dist/identity/erc6551.d.ts +441 -0
  107. package/dist/identity/erc6551.d.ts.map +1 -0
  108. package/dist/identity/erc6551.js +517 -0
  109. package/dist/identity/erc6551.js.map +1 -0
  110. package/dist/identity/erc8004.d.ts +305 -0
  111. package/dist/identity/erc8004.d.ts.map +1 -0
  112. package/dist/identity/erc8004.js +413 -0
  113. package/dist/identity/erc8004.js.map +1 -0
  114. package/dist/identity/index.d.ts +7 -0
  115. package/dist/identity/index.d.ts.map +1 -0
  116. package/dist/identity/index.js +4 -0
  117. package/dist/identity/index.js.map +1 -0
  118. package/dist/identity/reputation.d.ts +318 -0
  119. package/dist/identity/reputation.d.ts.map +1 -0
  120. package/dist/identity/reputation.js +272 -0
  121. package/dist/identity/reputation.js.map +1 -0
  122. package/dist/identity/validation.d.ts +284 -0
  123. package/dist/identity/validation.d.ts.map +1 -0
  124. package/dist/identity/validation.js +226 -0
  125. package/dist/identity/validation.js.map +1 -0
  126. package/dist/index.d.ts +38803 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +376 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/mev/index.d.ts +4 -0
  131. package/dist/mev/index.d.ts.map +1 -0
  132. package/dist/mev/index.js +8 -0
  133. package/dist/mev/index.js.map +1 -0
  134. package/dist/mev/protection.d.ts +54 -0
  135. package/dist/mev/protection.d.ts.map +1 -0
  136. package/dist/mev/protection.js +185 -0
  137. package/dist/mev/protection.js.map +1 -0
  138. package/dist/mev/risk.d.ts +19 -0
  139. package/dist/mev/risk.d.ts.map +1 -0
  140. package/dist/mev/risk.js +95 -0
  141. package/dist/mev/risk.js.map +1 -0
  142. package/dist/mev/types.d.ts +49 -0
  143. package/dist/mev/types.d.ts.map +1 -0
  144. package/dist/mev/types.js +2 -0
  145. package/dist/mev/types.js.map +1 -0
  146. package/dist/plugins/elizaos.d.ts +52 -0
  147. package/dist/plugins/elizaos.d.ts.map +1 -0
  148. package/dist/plugins/elizaos.js +89 -0
  149. package/dist/plugins/elizaos.js.map +1 -0
  150. package/dist/policy/SpendingPolicy.d.ts +106 -0
  151. package/dist/policy/SpendingPolicy.d.ts.map +1 -0
  152. package/dist/policy/SpendingPolicy.js +155 -0
  153. package/dist/policy/SpendingPolicy.js.map +1 -0
  154. package/dist/policy/SpendingPolicy.test.d.ts +2 -0
  155. package/dist/policy/SpendingPolicy.test.d.ts.map +1 -0
  156. package/dist/policy/SpendingPolicy.test.js +143 -0
  157. package/dist/policy/SpendingPolicy.test.js.map +1 -0
  158. package/dist/settlement/index.d.ts +4 -0
  159. package/dist/settlement/index.d.ts.map +1 -0
  160. package/dist/settlement/index.js +3 -0
  161. package/dist/settlement/index.js.map +1 -0
  162. package/dist/settlement/types.d.ts +66 -0
  163. package/dist/settlement/types.d.ts.map +1 -0
  164. package/dist/settlement/types.js +37 -0
  165. package/dist/settlement/types.js.map +1 -0
  166. package/dist/settlement/verifier.d.ts +75 -0
  167. package/dist/settlement/verifier.d.ts.map +1 -0
  168. package/dist/settlement/verifier.js +354 -0
  169. package/dist/settlement/verifier.js.map +1 -0
  170. package/dist/solana/bridge.d.ts +144 -0
  171. package/dist/solana/bridge.d.ts.map +1 -0
  172. package/dist/solana/bridge.js +352 -0
  173. package/dist/solana/bridge.js.map +1 -0
  174. package/dist/solana/index.d.ts +8 -0
  175. package/dist/solana/index.d.ts.map +1 -0
  176. package/dist/solana/index.js +6 -0
  177. package/dist/solana/index.js.map +1 -0
  178. package/dist/solana/swap.d.ts +85 -0
  179. package/dist/solana/swap.d.ts.map +1 -0
  180. package/dist/solana/swap.js +173 -0
  181. package/dist/solana/swap.js.map +1 -0
  182. package/dist/solana/types.d.ts +126 -0
  183. package/dist/solana/types.d.ts.map +1 -0
  184. package/dist/solana/types.js +10 -0
  185. package/dist/solana/types.js.map +1 -0
  186. package/dist/solana/wallet.d.ts +83 -0
  187. package/dist/solana/wallet.d.ts.map +1 -0
  188. package/dist/solana/wallet.js +164 -0
  189. package/dist/solana/wallet.js.map +1 -0
  190. package/dist/solana/x402.d.ts +69 -0
  191. package/dist/solana/x402.d.ts.map +1 -0
  192. package/dist/solana/x402.js +154 -0
  193. package/dist/solana/x402.js.map +1 -0
  194. package/dist/solver/adapter.d.ts +47 -0
  195. package/dist/solver/adapter.d.ts.map +1 -0
  196. package/dist/solver/adapter.js +146 -0
  197. package/dist/solver/adapter.js.map +1 -0
  198. package/dist/solver/analyzer.d.ts +48 -0
  199. package/dist/solver/analyzer.d.ts.map +1 -0
  200. package/dist/solver/analyzer.js +171 -0
  201. package/dist/solver/analyzer.js.map +1 -0
  202. package/dist/solver/builder.d.ts +31 -0
  203. package/dist/solver/builder.d.ts.map +1 -0
  204. package/dist/solver/builder.js +60 -0
  205. package/dist/solver/builder.js.map +1 -0
  206. package/dist/solver/index.d.ts +22 -0
  207. package/dist/solver/index.d.ts.map +1 -0
  208. package/dist/solver/index.js +25 -0
  209. package/dist/solver/index.js.map +1 -0
  210. package/dist/solver/types.d.ts +115 -0
  211. package/dist/solver/types.d.ts.map +1 -0
  212. package/dist/solver/types.js +10 -0
  213. package/dist/solver/types.js.map +1 -0
  214. package/dist/spend-guard/index.d.ts +125 -0
  215. package/dist/spend-guard/index.d.ts.map +1 -0
  216. package/dist/spend-guard/index.js +150 -0
  217. package/dist/spend-guard/index.js.map +1 -0
  218. package/dist/swap/SwapModule.d.ts +34 -0
  219. package/dist/swap/SwapModule.d.ts.map +1 -0
  220. package/dist/swap/SwapModule.js +144 -0
  221. package/dist/swap/SwapModule.js.map +1 -0
  222. package/dist/swap/abi.d.ts +51 -0
  223. package/dist/swap/abi.d.ts.map +1 -0
  224. package/dist/swap/abi.js +118 -0
  225. package/dist/swap/abi.js.map +1 -0
  226. package/dist/swap/index.d.ts +5 -0
  227. package/dist/swap/index.d.ts.map +1 -0
  228. package/dist/swap/index.js +4 -0
  229. package/dist/swap/index.js.map +1 -0
  230. package/dist/swap/router/cache.d.ts +13 -0
  231. package/dist/swap/router/cache.d.ts.map +1 -0
  232. package/dist/swap/router/cache.js +30 -0
  233. package/dist/swap/router/cache.js.map +1 -0
  234. package/dist/swap/router/flashbots.d.ts +10 -0
  235. package/dist/swap/router/flashbots.d.ts.map +1 -0
  236. package/dist/swap/router/flashbots.js +43 -0
  237. package/dist/swap/router/flashbots.js.map +1 -0
  238. package/dist/swap/router/health.d.ts +17 -0
  239. package/dist/swap/router/health.d.ts.map +1 -0
  240. package/dist/swap/router/health.js +38 -0
  241. package/dist/swap/router/health.js.map +1 -0
  242. package/dist/swap/router/index.d.ts +10 -0
  243. package/dist/swap/router/index.d.ts.map +1 -0
  244. package/dist/swap/router/index.js +10 -0
  245. package/dist/swap/router/index.js.map +1 -0
  246. package/dist/swap/router/providers/cowswap.d.ts +11 -0
  247. package/dist/swap/router/providers/cowswap.d.ts.map +1 -0
  248. package/dist/swap/router/providers/cowswap.js +79 -0
  249. package/dist/swap/router/providers/cowswap.js.map +1 -0
  250. package/dist/swap/router/providers/index.d.ts +20 -0
  251. package/dist/swap/router/providers/index.d.ts.map +1 -0
  252. package/dist/swap/router/providers/index.js +32 -0
  253. package/dist/swap/router/providers/index.js.map +1 -0
  254. package/dist/swap/router/providers/jupiter.d.ts +12 -0
  255. package/dist/swap/router/providers/jupiter.d.ts.map +1 -0
  256. package/dist/swap/router/providers/jupiter.js +73 -0
  257. package/dist/swap/router/providers/jupiter.js.map +1 -0
  258. package/dist/swap/router/providers/lifi.d.ts +11 -0
  259. package/dist/swap/router/providers/lifi.d.ts.map +1 -0
  260. package/dist/swap/router/providers/lifi.js +123 -0
  261. package/dist/swap/router/providers/lifi.js.map +1 -0
  262. package/dist/swap/router/providers/oneinch.d.ts +13 -0
  263. package/dist/swap/router/providers/oneinch.d.ts.map +1 -0
  264. package/dist/swap/router/providers/oneinch.js +71 -0
  265. package/dist/swap/router/providers/oneinch.js.map +1 -0
  266. package/dist/swap/router/providers/paraswap.d.ts +11 -0
  267. package/dist/swap/router/providers/paraswap.d.ts.map +1 -0
  268. package/dist/swap/router/providers/paraswap.js +73 -0
  269. package/dist/swap/router/providers/paraswap.js.map +1 -0
  270. package/dist/swap/router/providers/uniswap.d.ts +31 -0
  271. package/dist/swap/router/providers/uniswap.d.ts.map +1 -0
  272. package/dist/swap/router/providers/uniswap.js +237 -0
  273. package/dist/swap/router/providers/uniswap.js.map +1 -0
  274. package/dist/swap/router/providers/zerox.d.ts +13 -0
  275. package/dist/swap/router/providers/zerox.d.ts.map +1 -0
  276. package/dist/swap/router/providers/zerox.js +94 -0
  277. package/dist/swap/router/providers/zerox.js.map +1 -0
  278. package/dist/swap/router/router.d.ts +86 -0
  279. package/dist/swap/router/router.d.ts.map +1 -0
  280. package/dist/swap/router/router.js +224 -0
  281. package/dist/swap/router/router.js.map +1 -0
  282. package/dist/swap/router/rsi/engine.d.ts +60 -0
  283. package/dist/swap/router/rsi/engine.d.ts.map +1 -0
  284. package/dist/swap/router/rsi/engine.js +483 -0
  285. package/dist/swap/router/rsi/engine.js.map +1 -0
  286. package/dist/swap/router/rsi/index.d.ts +3 -0
  287. package/dist/swap/router/rsi/index.d.ts.map +1 -0
  288. package/dist/swap/router/rsi/index.js +3 -0
  289. package/dist/swap/router/rsi/index.js.map +1 -0
  290. package/dist/swap/router/rsi/types.d.ts +106 -0
  291. package/dist/swap/router/rsi/types.d.ts.map +1 -0
  292. package/dist/swap/router/rsi/types.js +3 -0
  293. package/dist/swap/router/rsi/types.js.map +1 -0
  294. package/dist/swap/router/types.d.ts +120 -0
  295. package/dist/swap/router/types.d.ts.map +1 -0
  296. package/dist/swap/router/types.js +16 -0
  297. package/dist/swap/router/types.js.map +1 -0
  298. package/dist/swap/types.d.ts +51 -0
  299. package/dist/swap/types.d.ts.map +1 -0
  300. package/dist/swap/types.js +17 -0
  301. package/dist/swap/types.js.map +1 -0
  302. package/dist/tax/engine.d.ts +131 -0
  303. package/dist/tax/engine.d.ts.map +1 -0
  304. package/dist/tax/engine.js +307 -0
  305. package/dist/tax/engine.js.map +1 -0
  306. package/dist/tax/index.d.ts +9 -0
  307. package/dist/tax/index.d.ts.map +1 -0
  308. package/dist/tax/index.js +12 -0
  309. package/dist/tax/index.js.map +1 -0
  310. package/dist/tax/lots.d.ts +60 -0
  311. package/dist/tax/lots.d.ts.map +1 -0
  312. package/dist/tax/lots.js +129 -0
  313. package/dist/tax/lots.js.map +1 -0
  314. package/dist/tax/types.d.ts +113 -0
  315. package/dist/tax/types.d.ts.map +1 -0
  316. package/dist/tax/types.js +18 -0
  317. package/dist/tax/types.js.map +1 -0
  318. package/dist/types.d.ts +110 -0
  319. package/dist/types.d.ts.map +1 -0
  320. package/dist/types.js +9 -0
  321. package/dist/types.js.map +1 -0
  322. package/dist/x402/__tests__/budget.test.d.ts +2 -0
  323. package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
  324. package/dist/x402/__tests__/budget.test.js +114 -0
  325. package/dist/x402/__tests__/budget.test.js.map +1 -0
  326. package/dist/x402/__tests__/client.test.d.ts +2 -0
  327. package/dist/x402/__tests__/client.test.d.ts.map +1 -0
  328. package/dist/x402/__tests__/client.test.js +107 -0
  329. package/dist/x402/__tests__/client.test.js.map +1 -0
  330. package/dist/x402/budget.d.ts +52 -0
  331. package/dist/x402/budget.d.ts.map +1 -0
  332. package/dist/x402/budget.js +113 -0
  333. package/dist/x402/budget.js.map +1 -0
  334. package/dist/x402/chains/abstract/index.d.ts +135 -0
  335. package/dist/x402/chains/abstract/index.d.ts.map +1 -0
  336. package/dist/x402/chains/abstract/index.js +190 -0
  337. package/dist/x402/chains/abstract/index.js.map +1 -0
  338. package/dist/x402/client.d.ts +60 -0
  339. package/dist/x402/client.d.ts.map +1 -0
  340. package/dist/x402/client.js +205 -0
  341. package/dist/x402/client.js.map +1 -0
  342. package/dist/x402/index.d.ts +8 -0
  343. package/dist/x402/index.d.ts.map +1 -0
  344. package/dist/x402/index.js +8 -0
  345. package/dist/x402/index.js.map +1 -0
  346. package/dist/x402/middleware.d.ts +37 -0
  347. package/dist/x402/middleware.d.ts.map +1 -0
  348. package/dist/x402/middleware.js +65 -0
  349. package/dist/x402/middleware.js.map +1 -0
  350. package/dist/x402/types.d.ts +91 -0
  351. package/dist/x402/types.d.ts.map +1 -0
  352. package/dist/x402/types.js +9 -0
  353. package/dist/x402/types.js.map +1 -0
  354. package/dist/yield/index.d.ts +26 -0
  355. package/dist/yield/index.d.ts.map +1 -0
  356. package/dist/yield/index.js +29 -0
  357. package/dist/yield/index.js.map +1 -0
  358. package/dist/yield/rates.d.ts +114 -0
  359. package/dist/yield/rates.d.ts.map +1 -0
  360. package/dist/yield/rates.js +351 -0
  361. package/dist/yield/rates.js.map +1 -0
  362. package/dist/yield/types.d.ts +134 -0
  363. package/dist/yield/types.d.ts.map +1 -0
  364. package/dist/yield/types.js +24 -0
  365. package/dist/yield/types.js.map +1 -0
  366. package/dist/yield/vault.d.ts +112 -0
  367. package/dist/yield/vault.d.ts.map +1 -0
  368. package/dist/yield/vault.js +264 -0
  369. package/dist/yield/vault.js.map +1 -0
  370. package/package.json +46 -7
  371. package/index.js +0 -2
@@ -0,0 +1,284 @@
1
+ /**
2
+ * ERC-8004: Trustless Agents — Validation Registry Client
3
+ *
4
+ * On-chain validation system for AI agents. Validators can be requested to
5
+ * validate an agent's capabilities, and their responses are recorded on-chain.
6
+ *
7
+ * Note: The ValidationRegistry is part of the ERC-8004 spec but addresses are
8
+ * not yet published in the official erc-8004-contracts repo. The contract is
9
+ * deployed alongside Identity and Reputation registries. Once official addresses
10
+ * are published, update KNOWN_REGISTRY_ADDRESSES in erc8004.ts.
11
+ *
12
+ * Spec: https://eips.ethereum.org/EIPS/eip-8004
13
+ */
14
+ import { type Address, type Hash, type Hex, type WalletClient } from 'viem';
15
+ import { type SupportedChain } from './erc8004.js';
16
+ export declare const ValidationRegistryAbi: readonly [{
17
+ readonly name: "validationRequest";
18
+ readonly type: "function";
19
+ readonly stateMutability: "nonpayable";
20
+ readonly inputs: readonly [{
21
+ readonly name: "validator";
22
+ readonly type: "address";
23
+ }, {
24
+ readonly name: "agentId";
25
+ readonly type: "uint256";
26
+ }, {
27
+ readonly name: "requestURI";
28
+ readonly type: "string";
29
+ }, {
30
+ readonly name: "requestHash";
31
+ readonly type: "bytes32";
32
+ }];
33
+ readonly outputs: readonly [];
34
+ }, {
35
+ readonly name: "validationResponse";
36
+ readonly type: "function";
37
+ readonly stateMutability: "nonpayable";
38
+ readonly inputs: readonly [{
39
+ readonly name: "requestHash";
40
+ readonly type: "bytes32";
41
+ }, {
42
+ readonly name: "response";
43
+ readonly type: "uint8";
44
+ }, {
45
+ readonly name: "responseURI";
46
+ readonly type: "string";
47
+ }, {
48
+ readonly name: "responseHash";
49
+ readonly type: "bytes32";
50
+ }, {
51
+ readonly name: "tag";
52
+ readonly type: "string";
53
+ }];
54
+ readonly outputs: readonly [];
55
+ }, {
56
+ readonly name: "getValidationStatus";
57
+ readonly type: "function";
58
+ readonly stateMutability: "view";
59
+ readonly inputs: readonly [{
60
+ readonly name: "requestHash";
61
+ readonly type: "bytes32";
62
+ }];
63
+ readonly outputs: readonly [{
64
+ readonly name: "validator";
65
+ readonly type: "address";
66
+ }, {
67
+ readonly name: "agentId";
68
+ readonly type: "uint256";
69
+ }, {
70
+ readonly name: "requestURI";
71
+ readonly type: "string";
72
+ }, {
73
+ readonly name: "response";
74
+ readonly type: "uint8";
75
+ }, {
76
+ readonly name: "responseURI";
77
+ readonly type: "string";
78
+ }, {
79
+ readonly name: "responseHash";
80
+ readonly type: "bytes32";
81
+ }, {
82
+ readonly name: "tag";
83
+ readonly type: "string";
84
+ }, {
85
+ readonly name: "responded";
86
+ readonly type: "bool";
87
+ }];
88
+ }, {
89
+ readonly name: "getAgentValidations";
90
+ readonly type: "function";
91
+ readonly stateMutability: "view";
92
+ readonly inputs: readonly [{
93
+ readonly name: "agentId";
94
+ readonly type: "uint256";
95
+ }];
96
+ readonly outputs: readonly [{
97
+ readonly name: "requestHashes";
98
+ readonly type: "bytes32[]";
99
+ }];
100
+ }, {
101
+ readonly name: "getValidatorRequests";
102
+ readonly type: "function";
103
+ readonly stateMutability: "view";
104
+ readonly inputs: readonly [{
105
+ readonly name: "validator";
106
+ readonly type: "address";
107
+ }];
108
+ readonly outputs: readonly [{
109
+ readonly name: "requestHashes";
110
+ readonly type: "bytes32[]";
111
+ }];
112
+ }, {
113
+ readonly name: "getSummary";
114
+ readonly type: "function";
115
+ readonly stateMutability: "view";
116
+ readonly inputs: readonly [{
117
+ readonly name: "agentId";
118
+ readonly type: "uint256";
119
+ }, {
120
+ readonly name: "validators";
121
+ readonly type: "address[]";
122
+ }, {
123
+ readonly name: "category";
124
+ readonly type: "string";
125
+ }];
126
+ readonly outputs: readonly [{
127
+ readonly name: "totalRequests";
128
+ readonly type: "uint256";
129
+ }, {
130
+ readonly name: "totalResponses";
131
+ readonly type: "uint256";
132
+ }, {
133
+ readonly name: "passCount";
134
+ readonly type: "uint256";
135
+ }, {
136
+ readonly name: "failCount";
137
+ readonly type: "uint256";
138
+ }];
139
+ }, {
140
+ readonly name: "getIdentityRegistry";
141
+ readonly type: "function";
142
+ readonly stateMutability: "view";
143
+ readonly inputs: readonly [];
144
+ readonly outputs: readonly [{
145
+ readonly name: "";
146
+ readonly type: "address";
147
+ }];
148
+ }, {
149
+ readonly name: "getVersion";
150
+ readonly type: "function";
151
+ readonly stateMutability: "view";
152
+ readonly inputs: readonly [];
153
+ readonly outputs: readonly [{
154
+ readonly name: "";
155
+ readonly type: "string";
156
+ }];
157
+ }, {
158
+ readonly name: "ValidationRequest";
159
+ readonly type: "event";
160
+ readonly inputs: readonly [{
161
+ readonly name: "validator";
162
+ readonly type: "address";
163
+ readonly indexed: true;
164
+ }, {
165
+ readonly name: "agentId";
166
+ readonly type: "uint256";
167
+ readonly indexed: true;
168
+ }, {
169
+ readonly name: "requestURI";
170
+ readonly type: "string";
171
+ readonly indexed: false;
172
+ }, {
173
+ readonly name: "requestHash";
174
+ readonly type: "bytes32";
175
+ readonly indexed: false;
176
+ }];
177
+ }, {
178
+ readonly name: "ValidationResponse";
179
+ readonly type: "event";
180
+ readonly inputs: readonly [{
181
+ readonly name: "validator";
182
+ readonly type: "address";
183
+ readonly indexed: true;
184
+ }, {
185
+ readonly name: "agentId";
186
+ readonly type: "uint256";
187
+ readonly indexed: true;
188
+ }, {
189
+ readonly name: "requestHash";
190
+ readonly type: "bytes32";
191
+ readonly indexed: false;
192
+ }, {
193
+ readonly name: "response";
194
+ readonly type: "uint8";
195
+ readonly indexed: false;
196
+ }, {
197
+ readonly name: "responseURI";
198
+ readonly type: "string";
199
+ readonly indexed: false;
200
+ }, {
201
+ readonly name: "responseHash";
202
+ readonly type: "bytes32";
203
+ readonly indexed: false;
204
+ }, {
205
+ readonly name: "tag";
206
+ readonly type: "string";
207
+ readonly indexed: false;
208
+ }];
209
+ }];
210
+ export interface ValidationClientConfig {
211
+ validationAddress?: Address;
212
+ chain: SupportedChain;
213
+ rpcUrl?: string;
214
+ }
215
+ export interface RequestValidationParams {
216
+ validator: Address;
217
+ agentId: bigint;
218
+ requestURI: string;
219
+ requestHash: Hex;
220
+ }
221
+ export interface RespondToValidationParams {
222
+ requestHash: Hex;
223
+ response: number;
224
+ responseURI: string;
225
+ responseHash: Hex;
226
+ tag: string;
227
+ }
228
+ export interface ValidationStatus {
229
+ validator: Address;
230
+ agentId: bigint;
231
+ requestURI: string;
232
+ response: number;
233
+ responseURI: string;
234
+ responseHash: Hex;
235
+ tag: string;
236
+ responded: boolean;
237
+ }
238
+ export interface ValidationSummary {
239
+ totalRequests: bigint;
240
+ totalResponses: bigint;
241
+ passCount: bigint;
242
+ failCount: bigint;
243
+ }
244
+ export declare class ValidationClient {
245
+ private readonly publicClient;
246
+ private readonly validationAddress;
247
+ private readonly chain;
248
+ constructor(config: ValidationClientConfig);
249
+ private getReadContract;
250
+ private getWriteContract;
251
+ /**
252
+ * Submit a validation request. Must be called by the owner/operator of the agentId.
253
+ */
254
+ requestValidation(walletClient: WalletClient, params: RequestValidationParams): Promise<Hash>;
255
+ /**
256
+ * Respond to a validation request. Must be called by the requested validator.
257
+ */
258
+ respondToValidation(walletClient: WalletClient, params: RespondToValidationParams): Promise<Hash>;
259
+ /**
260
+ * Check the status of a validation request by its hash.
261
+ */
262
+ getValidationStatus(requestHash: Hex): Promise<ValidationStatus>;
263
+ /**
264
+ * Get all validation request hashes for an agent.
265
+ */
266
+ getAgentValidations(agentId: bigint): Promise<Hex[]>;
267
+ /**
268
+ * Get all validation request hashes assigned to a validator.
269
+ */
270
+ getValidatorRequests(validatorAddress: Address): Promise<Hex[]>;
271
+ /**
272
+ * Get a summary of validations for an agent, optionally filtered by validators and category.
273
+ */
274
+ getSummary(agentId: bigint, validators?: Address[], category?: string): Promise<ValidationSummary>;
275
+ /**
276
+ * Get the linked identity registry address.
277
+ */
278
+ getIdentityRegistry(): Promise<Address>;
279
+ /**
280
+ * Get the registry contract version.
281
+ */
282
+ getVersion(): Promise<string>;
283
+ }
284
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/identity/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,GAAG,EAER,KAAK,YAAY,EAElB,MAAM,MAAM,CAAC;AAEd,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAI7E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgGxB,CAAC;AAIX,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,GAAG,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAElB,MAAM,EAAE,sBAAsB;IAa1C,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACG,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnG;;OAEG;IACG,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvG;;OAEG;IACG,mBAAmB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQtE;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAK1D;;OAEG;IACG,oBAAoB,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAKrE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWxG;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAIpC"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * ERC-8004: Trustless Agents — Validation Registry Client
3
+ *
4
+ * On-chain validation system for AI agents. Validators can be requested to
5
+ * validate an agent's capabilities, and their responses are recorded on-chain.
6
+ *
7
+ * Note: The ValidationRegistry is part of the ERC-8004 spec but addresses are
8
+ * not yet published in the official erc-8004-contracts repo. The contract is
9
+ * deployed alongside Identity and Reputation registries. Once official addresses
10
+ * are published, update KNOWN_REGISTRY_ADDRESSES in erc8004.ts.
11
+ *
12
+ * Spec: https://eips.ethereum.org/EIPS/eip-8004
13
+ */
14
+ import { createPublicClient, getContract, http, } from 'viem';
15
+ import { base, baseSepolia, mainnet, arbitrum, arbitrumSepolia, polygon } from 'viem/chains';
16
+ import { KNOWN_REGISTRY_ADDRESSES } from './erc8004.js';
17
+ // ─── ABI ─────────────────────────────────────────────────────────────────────
18
+ export const ValidationRegistryAbi = [
19
+ {
20
+ name: 'validationRequest', type: 'function', stateMutability: 'nonpayable',
21
+ inputs: [
22
+ { name: 'validator', type: 'address' },
23
+ { name: 'agentId', type: 'uint256' },
24
+ { name: 'requestURI', type: 'string' },
25
+ { name: 'requestHash', type: 'bytes32' },
26
+ ],
27
+ outputs: [],
28
+ },
29
+ {
30
+ name: 'validationResponse', type: 'function', stateMutability: 'nonpayable',
31
+ inputs: [
32
+ { name: 'requestHash', type: 'bytes32' },
33
+ { name: 'response', type: 'uint8' },
34
+ { name: 'responseURI', type: 'string' },
35
+ { name: 'responseHash', type: 'bytes32' },
36
+ { name: 'tag', type: 'string' },
37
+ ],
38
+ outputs: [],
39
+ },
40
+ {
41
+ name: 'getValidationStatus', type: 'function', stateMutability: 'view',
42
+ inputs: [{ name: 'requestHash', type: 'bytes32' }],
43
+ outputs: [
44
+ { name: 'validator', type: 'address' },
45
+ { name: 'agentId', type: 'uint256' },
46
+ { name: 'requestURI', type: 'string' },
47
+ { name: 'response', type: 'uint8' },
48
+ { name: 'responseURI', type: 'string' },
49
+ { name: 'responseHash', type: 'bytes32' },
50
+ { name: 'tag', type: 'string' },
51
+ { name: 'responded', type: 'bool' },
52
+ ],
53
+ },
54
+ {
55
+ name: 'getAgentValidations', type: 'function', stateMutability: 'view',
56
+ inputs: [{ name: 'agentId', type: 'uint256' }],
57
+ outputs: [
58
+ { name: 'requestHashes', type: 'bytes32[]' },
59
+ ],
60
+ },
61
+ {
62
+ name: 'getValidatorRequests', type: 'function', stateMutability: 'view',
63
+ inputs: [{ name: 'validator', type: 'address' }],
64
+ outputs: [
65
+ { name: 'requestHashes', type: 'bytes32[]' },
66
+ ],
67
+ },
68
+ {
69
+ name: 'getSummary', type: 'function', stateMutability: 'view',
70
+ inputs: [
71
+ { name: 'agentId', type: 'uint256' },
72
+ { name: 'validators', type: 'address[]' },
73
+ { name: 'category', type: 'string' },
74
+ ],
75
+ outputs: [
76
+ { name: 'totalRequests', type: 'uint256' },
77
+ { name: 'totalResponses', type: 'uint256' },
78
+ { name: 'passCount', type: 'uint256' },
79
+ { name: 'failCount', type: 'uint256' },
80
+ ],
81
+ },
82
+ {
83
+ name: 'getIdentityRegistry', type: 'function', stateMutability: 'view',
84
+ inputs: [],
85
+ outputs: [{ name: '', type: 'address' }],
86
+ },
87
+ {
88
+ name: 'getVersion', type: 'function', stateMutability: 'view',
89
+ inputs: [],
90
+ outputs: [{ name: '', type: 'string' }],
91
+ },
92
+ // Events
93
+ {
94
+ name: 'ValidationRequest', type: 'event',
95
+ inputs: [
96
+ { name: 'validator', type: 'address', indexed: true },
97
+ { name: 'agentId', type: 'uint256', indexed: true },
98
+ { name: 'requestURI', type: 'string', indexed: false },
99
+ { name: 'requestHash', type: 'bytes32', indexed: false },
100
+ ],
101
+ },
102
+ {
103
+ name: 'ValidationResponse', type: 'event',
104
+ inputs: [
105
+ { name: 'validator', type: 'address', indexed: true },
106
+ { name: 'agentId', type: 'uint256', indexed: true },
107
+ { name: 'requestHash', type: 'bytes32', indexed: false },
108
+ { name: 'response', type: 'uint8', indexed: false },
109
+ { name: 'responseURI', type: 'string', indexed: false },
110
+ { name: 'responseHash', type: 'bytes32', indexed: false },
111
+ { name: 'tag', type: 'string', indexed: false },
112
+ ],
113
+ },
114
+ ];
115
+ // ─── Chains ──────────────────────────────────────────────────────────────────
116
+ const CHAINS = {
117
+ base, 'base-sepolia': baseSepolia, ethereum: mainnet, arbitrum, polygon,
118
+ 'arbitrum-sepolia': arbitrumSepolia,
119
+ };
120
+ // ─── Client ──────────────────────────────────────────────────────────────────
121
+ export class ValidationClient {
122
+ constructor(config) {
123
+ const resolvedAddress = config.validationAddress ?? KNOWN_REGISTRY_ADDRESSES[config.chain]?.validation;
124
+ if (!resolvedAddress) {
125
+ throw new Error(`ValidationClient: No validation address provided and no known address for chain "${config.chain}". The ValidationRegistry is under active development — provide the address explicitly once deployed.`);
126
+ }
127
+ this.validationAddress = resolvedAddress;
128
+ const chain = CHAINS[config.chain];
129
+ if (!chain)
130
+ throw new Error(`ValidationClient: Unsupported chain "${config.chain}"`);
131
+ this.chain = chain;
132
+ this.publicClient = createPublicClient({ chain, transport: http(config.rpcUrl) });
133
+ }
134
+ getReadContract() {
135
+ return getContract({
136
+ address: this.validationAddress,
137
+ abi: ValidationRegistryAbi,
138
+ client: this.publicClient,
139
+ });
140
+ }
141
+ getWriteContract(walletClient) {
142
+ return getContract({
143
+ address: this.validationAddress,
144
+ abi: ValidationRegistryAbi,
145
+ client: { public: this.publicClient, wallet: walletClient },
146
+ });
147
+ }
148
+ /**
149
+ * Submit a validation request. Must be called by the owner/operator of the agentId.
150
+ */
151
+ async requestValidation(walletClient, params) {
152
+ if (!walletClient.account)
153
+ throw new Error('ValidationClient: WalletClient has no account');
154
+ const contract = this.getWriteContract(walletClient);
155
+ return contract.write.validationRequest([
156
+ params.validator,
157
+ params.agentId,
158
+ params.requestURI,
159
+ params.requestHash,
160
+ ], { account: walletClient.account, chain: this.chain });
161
+ }
162
+ /**
163
+ * Respond to a validation request. Must be called by the requested validator.
164
+ */
165
+ async respondToValidation(walletClient, params) {
166
+ if (!walletClient.account)
167
+ throw new Error('ValidationClient: WalletClient has no account');
168
+ const contract = this.getWriteContract(walletClient);
169
+ return contract.write.validationResponse([
170
+ params.requestHash,
171
+ params.response,
172
+ params.responseURI,
173
+ params.responseHash,
174
+ params.tag,
175
+ ], { account: walletClient.account, chain: this.chain });
176
+ }
177
+ /**
178
+ * Check the status of a validation request by its hash.
179
+ */
180
+ async getValidationStatus(requestHash) {
181
+ const contract = this.getReadContract();
182
+ const [validator, agentId, requestURI, response, responseURI, responseHash, tag, responded] = await contract.read.getValidationStatus([requestHash]);
183
+ return { validator, agentId, requestURI, response, responseURI, responseHash, tag, responded };
184
+ }
185
+ /**
186
+ * Get all validation request hashes for an agent.
187
+ */
188
+ async getAgentValidations(agentId) {
189
+ const contract = this.getReadContract();
190
+ return contract.read.getAgentValidations([agentId]);
191
+ }
192
+ /**
193
+ * Get all validation request hashes assigned to a validator.
194
+ */
195
+ async getValidatorRequests(validatorAddress) {
196
+ const contract = this.getReadContract();
197
+ return contract.read.getValidatorRequests([validatorAddress]);
198
+ }
199
+ /**
200
+ * Get a summary of validations for an agent, optionally filtered by validators and category.
201
+ */
202
+ async getSummary(agentId, validators, category) {
203
+ const contract = this.getReadContract();
204
+ const [totalRequests, totalResponses, passCount, failCount] = await contract.read.getSummary([
205
+ agentId,
206
+ validators ?? [],
207
+ category ?? '',
208
+ ]);
209
+ return { totalRequests, totalResponses, passCount, failCount };
210
+ }
211
+ /**
212
+ * Get the linked identity registry address.
213
+ */
214
+ async getIdentityRegistry() {
215
+ const contract = this.getReadContract();
216
+ return contract.read.getIdentityRegistry();
217
+ }
218
+ /**
219
+ * Get the registry contract version.
220
+ */
221
+ async getVersion() {
222
+ const contract = this.getReadContract();
223
+ return contract.read.getVersion();
224
+ }
225
+ }
226
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/identity/validation.ts"],"names":[],"mappings":"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"}