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
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/verify.test.ts"],"names":[],"mappings":""}
@@ -1,57 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { verifyTrustBundle } from '../verify/verifyAgent.js';
3
- import { deriveAgentDID, issueCredential, verifyCredential } from '../identity/did.js';
4
- const TEST_PRIVATE_KEY = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
5
- describe('verifyTrustBundle', () => {
6
- it('verifies a valid trust bundle signature', () => {
7
- // Build a mock bundle that was signed with the same mechanism
8
- // We'll use the verifyAgent output structure directly via manual construction
9
- const agentDID = deriveAgentDID(TEST_PRIVATE_KEY);
10
- // Since verifyAgent makes network calls, we test verifyTrustBundle directly
11
- // with a crafted bundle that matches the signing logic
12
- const bundle = {
13
- did: agentDID.did,
14
- walletAddress: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
15
- stakingBalance: 0n,
16
- reputationScore: 0,
17
- taskBridgeTasksCompleted: 0,
18
- walletAgeDays: 0,
19
- verifiedAt: 1000000,
20
- signature: 'invalid',
21
- };
22
- // Bundle with invalid signature should return false
23
- expect(verifyTrustBundle(bundle)).toBe(false);
24
- });
25
- it('returns false for tampered bundle data', () => {
26
- const bundle = {
27
- did: 'did:key:z6MkFakeNotReal',
28
- walletAddress: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
29
- stakingBalance: 0n,
30
- reputationScore: 100, // tampered up
31
- taskBridgeTasksCompleted: 0,
32
- walletAgeDays: 0,
33
- verifiedAt: 1000000,
34
- signature: 'zFakeSignature',
35
- };
36
- expect(verifyTrustBundle(bundle)).toBe(false);
37
- });
38
- });
39
- describe('DID + VC integration', () => {
40
- it('issues credential with agent-specific claims', () => {
41
- const agentDID = deriveAgentDID(TEST_PRIVATE_KEY);
42
- const vc = issueCredential(agentDID, TEST_PRIVATE_KEY, {
43
- agentVersion: '4.0.0',
44
- capabilities: ['payment', 'staking', 'bridge'],
45
- network: 'base',
46
- });
47
- expect(vc.credentialSubject.capabilities).toEqual(['payment', 'staking', 'bridge']);
48
- expect(verifyCredential(vc)).toBe(true);
49
- });
50
- it('round-trips DID derivation with hex without 0x prefix', () => {
51
- const noPrefix = TEST_PRIVATE_KEY.replace('0x', '');
52
- const did1 = deriveAgentDID(TEST_PRIVATE_KEY);
53
- const did2 = deriveAgentDID(noPrefix);
54
- expect(did1.did).toBe(did2.did);
55
- });
56
- });
57
- //# sourceMappingURL=verify.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.test.js","sourceRoot":"","sources":["../../src/__tests__/verify.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,MAAM,gBAAgB,GAAG,oEAAoE,CAAC;AAE9F,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,8DAA8D;QAC9D,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAElD,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,aAAa,EAAE,4CAA6D;YAC5E,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,CAAC;YAClB,wBAAwB,EAAE,CAAC;YAC3B,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,SAAS;SACrB,CAAC;QAEF,oDAAoD;QACpD,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,yBAAyB;YAC9B,aAAa,EAAE,4CAA6D;YAC5E,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,GAAG,EAAE,cAAc;YACpC,wBAAwB,EAAE,CAAC;YAC3B,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,gBAAgB;SAC5B,CAAC;QACF,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE;YACrD,YAAY,EAAE,OAAO;YACrB,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;YAC9C,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,QAAyB,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,66 +0,0 @@
1
- /**
2
- * Agent DID + Verifiable Credentials
3
- *
4
- * Derives deterministic did:key identifiers from agent private keys and issues
5
- * W3C-compliant Verifiable Credentials. Zero external registry — fully self-sovereign.
6
- *
7
- * DID format: did:key:z6Mk... (multibase base58btc-encoded ed25519 public key)
8
- * VC format: W3C VC Data Model v1.1 with Ed25519Signature2020 proof
9
- */
10
- import type { Hex } from 'viem';
11
- export interface AgentDID {
12
- did: string;
13
- publicKeyHex: string;
14
- /** Multibase-encoded public key (base58btc, z-prefix) */
15
- publicKeyMultibase: string;
16
- }
17
- export interface DIDDocument {
18
- '@context': string[];
19
- id: string;
20
- verificationMethod: VerificationMethod[];
21
- authentication: string[];
22
- assertionMethod: string[];
23
- capabilityDelegation: string[];
24
- capabilityInvocation: string[];
25
- }
26
- export interface VerificationMethod {
27
- id: string;
28
- type: string;
29
- controller: string;
30
- publicKeyMultibase: string;
31
- }
32
- export interface VerifiableCredential {
33
- '@context': string[];
34
- id: string;
35
- type: string[];
36
- issuer: string;
37
- issuanceDate: string;
38
- credentialSubject: Record<string, unknown>;
39
- proof: CredentialProof;
40
- }
41
- export interface CredentialProof {
42
- type: string;
43
- created: string;
44
- verificationMethod: string;
45
- proofPurpose: string;
46
- proofValue: string;
47
- }
48
- /**
49
- * Derive a deterministic did:key from a wallet's private key.
50
- * The ed25519 public key is derived from the private key, then multibase-encoded.
51
- */
52
- export declare function deriveAgentDID(privateKey: Hex): AgentDID;
53
- /**
54
- * Export a W3C DID Document for an AgentDID.
55
- */
56
- export declare function exportDIDDocument(did: AgentDID): DIDDocument;
57
- /**
58
- * Issue a W3C Verifiable Credential signed with Ed25519Signature2020.
59
- */
60
- export declare function issueCredential(issuerDID: AgentDID, privateKey: Hex, claims: Record<string, unknown>): VerifiableCredential;
61
- /**
62
- * Verify a Verifiable Credential's Ed25519 signature.
63
- * Returns true if the signature is valid and matches the issuer's DID.
64
- */
65
- export declare function verifyCredential(vc: VerifiableCredential): boolean;
66
- //# sourceMappingURL=did.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../src/identity/did.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAOhC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IACzC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,GAAG,GAAG,QAAQ,CAaxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAqB5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,QAAQ,EACnB,UAAU,EAAE,GAAG,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,oBAAoB,CAyCtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,GAAG,OAAO,CA2BlE"}
@@ -1,186 +0,0 @@
1
- /**
2
- * Agent DID + Verifiable Credentials
3
- *
4
- * Derives deterministic did:key identifiers from agent private keys and issues
5
- * W3C-compliant Verifiable Credentials. Zero external registry — fully self-sovereign.
6
- *
7
- * DID format: did:key:z6Mk... (multibase base58btc-encoded ed25519 public key)
8
- * VC format: W3C VC Data Model v1.1 with Ed25519Signature2020 proof
9
- */
10
- import * as ed from '@noble/ed25519';
11
- import { sha512 } from '@noble/hashes/sha512';
12
- import { sha256 } from '@noble/hashes/sha256';
13
- // @noble/ed25519 v2 requires setting sha512 sync
14
- ed.etc.sha512Sync = (...m) => sha512(ed.etc.concatBytes(...m));
15
- // ─── Base58btc encoding (multibase) ──────────────────────────────────────────
16
- const BASE58_ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
17
- function base58Encode(bytes) {
18
- let num = BigInt('0x' + Buffer.from(bytes).toString('hex'));
19
- const result = [];
20
- while (num > 0n) {
21
- const mod = num % 58n;
22
- result.unshift(BASE58_ALPHABET[Number(mod)]);
23
- num = num / 58n;
24
- }
25
- // Leading zeros
26
- for (let i = 0; i < bytes.length && bytes[i] === 0; i++) {
27
- result.unshift('1');
28
- }
29
- return result.join('');
30
- }
31
- function base58Decode(str) {
32
- let num = 0n;
33
- for (const char of str) {
34
- const idx = BASE58_ALPHABET.indexOf(char);
35
- if (idx === -1)
36
- throw new Error(`Invalid base58 character: ${char}`);
37
- num = num * 58n + BigInt(idx);
38
- }
39
- const rawHex = num.toString(16);
40
- const hex = rawHex.length % 2 ? "0" + rawHex : rawHex;
41
- const bytes = new Uint8Array(hex.length / 2);
42
- for (let i = 0; i < bytes.length; i++) {
43
- bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
44
- }
45
- // Re-add leading zero bytes
46
- const leadingZeros = str.split('').findIndex(c => c !== '1');
47
- const prefix = new Uint8Array(leadingZeros === -1 ? str.length : leadingZeros);
48
- return new Uint8Array([...prefix, ...bytes]);
49
- }
50
- // ─── Multicodec prefix for ed25519-pub (0xed01) ──────────────────────────────
51
- const ED25519_PUB_MULTICODEC = new Uint8Array([0xed, 0x01]);
52
- function pubkeyToMultibase(pubkey) {
53
- const prefixed = new Uint8Array([...ED25519_PUB_MULTICODEC, ...pubkey]);
54
- return 'z' + base58Encode(prefixed);
55
- }
56
- function multibaseToPubkey(multibase) {
57
- if (!multibase.startsWith('z'))
58
- throw new Error('Expected base58btc multibase (z prefix)');
59
- const decoded = base58Decode(multibase.slice(1));
60
- // Strip the 2-byte multicodec prefix
61
- return decoded.slice(2);
62
- }
63
- // ─── Core Functions ───────────────────────────────────────────────────────────
64
- /**
65
- * Derive a deterministic did:key from a wallet's private key.
66
- * The ed25519 public key is derived from the private key, then multibase-encoded.
67
- */
68
- export function deriveAgentDID(privateKey) {
69
- // Strip 0x prefix, get raw bytes
70
- const privKeyBytes = new Uint8Array(Buffer.from(privateKey.startsWith('0x') ? privateKey.slice(2) : privateKey, 'hex'));
71
- // Derive ed25519 public key
72
- const pubkey = ed.getPublicKey(privKeyBytes);
73
- const publicKeyHex = Buffer.from(pubkey).toString('hex');
74
- const publicKeyMultibase = pubkeyToMultibase(pubkey);
75
- const did = `did:key:${publicKeyMultibase}`;
76
- return { did, publicKeyHex, publicKeyMultibase };
77
- }
78
- /**
79
- * Export a W3C DID Document for an AgentDID.
80
- */
81
- export function exportDIDDocument(did) {
82
- const vmId = `${did.did}#${did.publicKeyMultibase}`;
83
- return {
84
- '@context': [
85
- 'https://www.w3.org/ns/did/v1',
86
- 'https://w3id.org/security/suites/ed25519-2020/v1',
87
- ],
88
- id: did.did,
89
- verificationMethod: [
90
- {
91
- id: vmId,
92
- type: 'Ed25519VerificationKey2020',
93
- controller: did.did,
94
- publicKeyMultibase: did.publicKeyMultibase,
95
- },
96
- ],
97
- authentication: [vmId],
98
- assertionMethod: [vmId],
99
- capabilityDelegation: [vmId],
100
- capabilityInvocation: [vmId],
101
- };
102
- }
103
- /**
104
- * Issue a W3C Verifiable Credential signed with Ed25519Signature2020.
105
- */
106
- export function issueCredential(issuerDID, privateKey, claims) {
107
- const privKeyBytes = new Uint8Array(Buffer.from(privateKey.startsWith('0x') ? privateKey.slice(2) : privateKey, 'hex'));
108
- const now = new Date().toISOString();
109
- const credId = `urn:uuid:${generateUUID()}`;
110
- const vc = {
111
- '@context': [
112
- 'https://www.w3.org/2018/credentials/v1',
113
- 'https://w3id.org/security/suites/ed25519-2020/v1',
114
- ],
115
- id: credId,
116
- type: ['VerifiableCredential', 'AgentCredential'],
117
- issuer: issuerDID.did,
118
- issuanceDate: now,
119
- credentialSubject: {
120
- id: issuerDID.did,
121
- ...claims,
122
- },
123
- };
124
- // Sign the canonical form of the credential body
125
- const vcBytes = new TextEncoder().encode(canonicalize(vc));
126
- const hash = sha256(vcBytes);
127
- const sig = ed.sign(hash, privKeyBytes);
128
- const proofValue = 'z' + base58Encode(sig);
129
- const vmId = `${issuerDID.did}#${issuerDID.publicKeyMultibase}`;
130
- return {
131
- ...vc,
132
- proof: {
133
- type: 'Ed25519Signature2020',
134
- created: now,
135
- verificationMethod: vmId,
136
- proofPurpose: 'assertionMethod',
137
- proofValue,
138
- },
139
- };
140
- }
141
- /**
142
- * Verify a Verifiable Credential's Ed25519 signature.
143
- * Returns true if the signature is valid and matches the issuer's DID.
144
- */
145
- export function verifyCredential(vc) {
146
- try {
147
- const { proof, ...vcBody } = vc;
148
- // Extract public key from the verificationMethod DID
149
- // Format: did:key:z6Mk...#z6Mk...
150
- const vmParts = proof.verificationMethod.split('#');
151
- const didPart = vmParts[0];
152
- const keyPart = vmParts[1] ?? didPart.replace('did:key:', '');
153
- const pubkey = multibaseToPubkey(keyPart);
154
- // Verify the issuer DID matches
155
- const expectedDID = `did:key:${keyPart}`;
156
- if (vc.issuer !== expectedDID)
157
- return false;
158
- // Re-compute the canonical hash
159
- const vcBytes = new TextEncoder().encode(canonicalize(vcBody));
160
- const hash = sha256(vcBytes);
161
- // Decode the signature
162
- const sigBytes = base58Decode(proof.proofValue.slice(1)); // strip 'z' prefix
163
- return ed.verify(sigBytes, hash, pubkey);
164
- }
165
- catch {
166
- return false;
167
- }
168
- }
169
- // ─── Helpers ─────────────────────────────────────────────────────────────────
170
- /** Deterministic JSON serialization for consistent signing */
171
- function canonicalize(obj) {
172
- if (typeof obj !== 'object' || obj === null)
173
- return JSON.stringify(obj);
174
- if (Array.isArray(obj))
175
- return '[' + obj.map(canonicalize).join(',') + ']';
176
- const keys = Object.keys(obj).sort();
177
- return '{' + keys.map(k => JSON.stringify(k) + ':' + canonicalize(obj[k])).join(',') + '}';
178
- }
179
- function generateUUID() {
180
- const bytes = crypto.getRandomValues(new Uint8Array(16));
181
- bytes[6] = (bytes[6] & 0x0f) | 0x40;
182
- bytes[8] = (bytes[8] & 0x3f) | 0x80;
183
- const hex = Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
184
- return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
185
- }
186
- //# sourceMappingURL=did.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"did.js","sourceRoot":"","sources":["../../src/identity/did.ts"],"names":[],"mappings":"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"}
@@ -1,100 +0,0 @@
1
- /**
2
- * AgentStakingPool — Agent-Only AAVE V3 USDC Staking Wrapper
3
- *
4
- * Wraps AAVE V3's USDC supply/withdraw pool with:
5
- * - Agent-only access enforced via DID verification
6
- * - 0.5% annualized management fee deducted from yield before distribution
7
- * - Non-custodial: AAVE holds all assets, we just wrap the interaction
8
- *
9
- * AAVE V3 Pool addresses:
10
- * Base: 0xA238Dd80C259a72e81d7e4664a9801593F98d1c5
11
- * Arbitrum: 0x794a61358D6845594F94dc1DB02A252b5b4814aD
12
- *
13
- * USDC addresses:
14
- * Base: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
15
- * Arbitrum: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831
16
- */
17
- import { type WalletClient, type Address, type Hash } from 'viem';
18
- import type { AgentDID } from '../identity/did.js';
19
- export type SupportedStakingChain = 'base' | 'arbitrum';
20
- export interface DepositResult {
21
- txHash: Hash;
22
- agentDID: string;
23
- amountUsdc: bigint;
24
- chain: SupportedStakingChain;
25
- depositedAt: number;
26
- }
27
- export interface WithdrawResult {
28
- txHash: Hash;
29
- agentDID: string;
30
- amountUsdc: bigint;
31
- managementFeeUsdc: bigint;
32
- chain: SupportedStakingChain;
33
- withdrawnAt: number;
34
- }
35
- export interface StakingBalance {
36
- agentDID: string;
37
- principalUsdc: bigint;
38
- aUsdcBalance: bigint;
39
- yieldEarned: bigint;
40
- managementFeeAccrued: bigint;
41
- netBalanceUsdc: bigint;
42
- chain: SupportedStakingChain;
43
- }
44
- export interface DepositParams {
45
- agentDID: AgentDID;
46
- amountUsdc: bigint;
47
- walletClient: WalletClient;
48
- chain: SupportedStakingChain;
49
- }
50
- export interface WithdrawParams {
51
- agentDID: AgentDID;
52
- amountUsdc: bigint;
53
- walletClient: WalletClient;
54
- chain: SupportedStakingChain;
55
- }
56
- declare const AAVE_POOL_ADDRESS: Record<SupportedStakingChain, Address>;
57
- declare const USDC_ADDRESS: Record<SupportedStakingChain, Address>;
58
- declare const AUSDC_ADDRESS: Record<SupportedStakingChain, Address>;
59
- /** Fee placeholder — replace with multisig before mainnet launch */
60
- declare const FEE_COLLECTOR: Address;
61
- export declare class AgentStakingPool {
62
- /**
63
- * Deposit USDC into AAVE V3.
64
- * AGENTS ONLY — verifyAgentOnly enforced on every call.
65
- */
66
- deposit(params: DepositParams): Promise<DepositResult>;
67
- /**
68
- * Withdraw USDC + yield from AAVE V3.
69
- * Management fee is deducted from yield before releasing to agent.
70
- */
71
- withdraw(params: WithdrawParams): Promise<WithdrawResult>;
72
- /**
73
- * Get current staking balance (principal + yield - management fee).
74
- */
75
- getBalance(agentDID: AgentDID, chain: SupportedStakingChain): Promise<StakingBalance>;
76
- /**
77
- * Verify that the caller is an AI agent, not a human.
78
- *
79
- * Enforcement logic:
80
- * 1. The agentDID must be a valid did:key derived via our deterministic derivation
81
- * 2. The DID's encoded public key must match a key that can sign for the wallet address
82
- *
83
- * Humans cannot spoof this because:
84
- * - Deriving a valid AgentDID requires access to the private key in raw hex form
85
- * - The wallet's signing key must match the DID's public key
86
- * - This creates a cryptographic binding: same private key → wallet + DID
87
- *
88
- * In practice, AI agents running our SDK have access to their private key programmatically.
89
- * Human users of typical EOA wallets (MetaMask, hardware wallets) cannot expose their
90
- * private key in the required format to derive the DID.
91
- */
92
- private verifyAgentOnly;
93
- /**
94
- * Calculate management fee: 0.5% annualized.
95
- * Formula: principal * 50 / 10000 * daysStaked / 365
96
- */
97
- private calculateManagementFee;
98
- }
99
- export { FEE_COLLECTOR, AAVE_POOL_ADDRESS, USDC_ADDRESS, AUSDC_ADDRESS };
100
- //# sourceMappingURL=AgentStakingPool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentStakingPool.d.ts","sourceRoot":"","sources":["../../src/staking/AgentStakingPool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,IAAI,EACV,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKnD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAID,QAAA,MAAM,iBAAiB,EAAE,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAG7D,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAGxD,CAAC;AAGF,QAAA,MAAM,aAAa,EAAE,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAGzD,CAAC;AAEF,oEAAoE;AACpE,QAAA,MAAM,aAAa,EAAE,OAAsD,CAAC;AAsE5E,qBAAa,gBAAgB;IAC3B;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAmD5D;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAwE/D;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IA+C3F;;;;;;;;;;;;;;;OAeG;YACW,eAAe;IA2B7B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAO/B;AAED,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}