agentwallet-sdk 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +2 -536
  2. package/dist/bridge/abis.d.ts +48 -171
  3. package/dist/bridge/abis.d.ts.map +1 -1
  4. package/dist/bridge/abis.js.map +1 -1
  5. package/dist/bridge/client.d.ts +2 -41
  6. package/dist/bridge/client.d.ts.map +1 -1
  7. package/dist/bridge/client.js +35 -168
  8. package/dist/bridge/client.js.map +1 -1
  9. package/dist/bridge/index.d.ts +2 -4
  10. package/dist/bridge/index.d.ts.map +1 -1
  11. package/dist/bridge/index.js +1 -8
  12. package/dist/bridge/index.js.map +1 -1
  13. package/dist/bridge/types.d.ts +15 -134
  14. package/dist/bridge/types.d.ts.map +1 -1
  15. package/dist/bridge/types.js +16 -170
  16. package/dist/bridge/types.js.map +1 -1
  17. package/dist/identity/erc8004.d.ts +2 -240
  18. package/dist/identity/erc8004.d.ts.map +1 -1
  19. package/dist/identity/erc8004.js +58 -334
  20. package/dist/identity/erc8004.js.map +1 -1
  21. package/dist/index.d.ts +313 -136
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +11 -59
  24. package/dist/index.js.map +1 -1
  25. package/dist/swap/SwapModule.d.ts +6 -50
  26. package/dist/swap/SwapModule.d.ts.map +1 -1
  27. package/dist/swap/SwapModule.js +25 -153
  28. package/dist/swap/SwapModule.js.map +1 -1
  29. package/dist/swap/abi.d.ts +47 -165
  30. package/dist/swap/abi.d.ts.map +1 -1
  31. package/dist/swap/abi.js.map +1 -1
  32. package/dist/swap/index.d.ts +2 -3
  33. package/dist/swap/index.d.ts.map +1 -1
  34. package/dist/swap/index.js +1 -4
  35. package/dist/swap/index.js.map +1 -1
  36. package/dist/swap/types.d.ts +6 -36
  37. package/dist/swap/types.d.ts.map +1 -1
  38. package/dist/swap/types.js +0 -1
  39. package/dist/swap/types.js.map +1 -1
  40. package/dist/types.d.ts +1 -2
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +0 -1
  43. package/dist/types.js.map +1 -1
  44. package/dist/x402/__tests__/budget.test.d.ts +2 -0
  45. package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
  46. package/dist/x402/__tests__/budget.test.js +114 -0
  47. package/dist/x402/__tests__/budget.test.js.map +1 -0
  48. package/dist/x402/__tests__/client.test.d.ts +2 -0
  49. package/dist/x402/__tests__/client.test.d.ts.map +1 -0
  50. package/dist/x402/__tests__/client.test.js +107 -0
  51. package/dist/x402/__tests__/client.test.js.map +1 -0
  52. package/dist/x402/chains/abstract/index.d.ts +135 -0
  53. package/dist/x402/chains/abstract/index.d.ts.map +1 -0
  54. package/dist/x402/chains/abstract/index.js +190 -0
  55. package/dist/x402/chains/abstract/index.js.map +1 -0
  56. package/dist/x402/client.d.ts +1 -4
  57. package/dist/x402/client.d.ts.map +1 -1
  58. package/dist/x402/client.js +2 -16
  59. package/dist/x402/client.js.map +1 -1
  60. package/dist/x402/index.d.ts +3 -1
  61. package/dist/x402/index.d.ts.map +1 -1
  62. package/dist/x402/index.js +3 -1
  63. package/dist/x402/index.js.map +1 -1
  64. package/dist/x402/types.d.ts +3 -5
  65. package/dist/x402/types.d.ts.map +1 -1
  66. package/dist/x402/types.js +2 -17
  67. package/dist/x402/types.js.map +1 -1
  68. package/package.json +12 -32
  69. package/dist/ap2/index.d.ts +0 -185
  70. package/dist/ap2/index.d.ts.map +0 -1
  71. package/dist/ap2/index.js +0 -255
  72. package/dist/ap2/index.js.map +0 -1
  73. package/dist/bridge/unified.d.ts +0 -101
  74. package/dist/bridge/unified.d.ts.map +0 -1
  75. package/dist/bridge/unified.js +0 -284
  76. package/dist/bridge/unified.js.map +0 -1
  77. package/dist/chains.d.ts +0 -62
  78. package/dist/chains.d.ts.map +0 -1
  79. package/dist/chains.js +0 -108
  80. package/dist/chains.js.map +0 -1
  81. package/dist/fiat/index.d.ts +0 -10
  82. package/dist/fiat/index.d.ts.map +0 -1
  83. package/dist/fiat/index.js +0 -9
  84. package/dist/fiat/index.js.map +0 -1
  85. package/dist/fiat/onramp.d.ts +0 -101
  86. package/dist/fiat/onramp.d.ts.map +0 -1
  87. package/dist/fiat/onramp.js +0 -155
  88. package/dist/fiat/onramp.js.map +0 -1
  89. package/dist/fiat/providers/index.d.ts +0 -16
  90. package/dist/fiat/providers/index.d.ts.map +0 -1
  91. package/dist/fiat/providers/index.js +0 -30
  92. package/dist/fiat/providers/index.js.map +0 -1
  93. package/dist/fiat/providers/moonpay.d.ts +0 -22
  94. package/dist/fiat/providers/moonpay.d.ts.map +0 -1
  95. package/dist/fiat/providers/moonpay.js +0 -107
  96. package/dist/fiat/providers/moonpay.js.map +0 -1
  97. package/dist/fiat/providers/stripe.d.ts +0 -26
  98. package/dist/fiat/providers/stripe.d.ts.map +0 -1
  99. package/dist/fiat/providers/stripe.js +0 -135
  100. package/dist/fiat/providers/stripe.js.map +0 -1
  101. package/dist/fiat/providers/transak.d.ts +0 -26
  102. package/dist/fiat/providers/transak.d.ts.map +0 -1
  103. package/dist/fiat/providers/transak.js +0 -119
  104. package/dist/fiat/providers/transak.js.map +0 -1
  105. package/dist/fiat/types.d.ts +0 -106
  106. package/dist/fiat/types.d.ts.map +0 -1
  107. package/dist/fiat/types.js +0 -13
  108. package/dist/fiat/types.js.map +0 -1
  109. package/dist/flash/executor.d.ts +0 -119
  110. package/dist/flash/executor.d.ts.map +0 -1
  111. package/dist/flash/executor.js +0 -195
  112. package/dist/flash/executor.js.map +0 -1
  113. package/dist/flash/index.d.ts +0 -28
  114. package/dist/flash/index.d.ts.map +0 -1
  115. package/dist/flash/index.js +0 -25
  116. package/dist/flash/index.js.map +0 -1
  117. package/dist/flash/scanner.d.ts +0 -133
  118. package/dist/flash/scanner.d.ts.map +0 -1
  119. package/dist/flash/scanner.js +0 -212
  120. package/dist/flash/scanner.js.map +0 -1
  121. package/dist/flash/types.d.ts +0 -136
  122. package/dist/flash/types.d.ts.map +0 -1
  123. package/dist/flash/types.js +0 -23
  124. package/dist/flash/types.js.map +0 -1
  125. package/dist/gas/index.d.ts +0 -4
  126. package/dist/gas/index.d.ts.map +0 -1
  127. package/dist/gas/index.js +0 -3
  128. package/dist/gas/index.js.map +0 -1
  129. package/dist/gas/sponsor.d.ts +0 -70
  130. package/dist/gas/sponsor.d.ts.map +0 -1
  131. package/dist/gas/sponsor.js +0 -193
  132. package/dist/gas/sponsor.js.map +0 -1
  133. package/dist/gas/types.d.ts +0 -76
  134. package/dist/gas/types.d.ts.map +0 -1
  135. package/dist/gas/types.js +0 -21
  136. package/dist/gas/types.js.map +0 -1
  137. package/dist/identity/agent-identity.d.ts +0 -276
  138. package/dist/identity/agent-identity.d.ts.map +0 -1
  139. package/dist/identity/agent-identity.js +0 -300
  140. package/dist/identity/agent-identity.js.map +0 -1
  141. package/dist/identity/erc6551.d.ts +0 -441
  142. package/dist/identity/erc6551.d.ts.map +0 -1
  143. package/dist/identity/erc6551.js +0 -517
  144. package/dist/identity/erc6551.js.map +0 -1
  145. package/dist/mev/index.d.ts +0 -4
  146. package/dist/mev/index.d.ts.map +0 -1
  147. package/dist/mev/index.js +0 -4
  148. package/dist/mev/index.js.map +0 -1
  149. package/dist/mev/protection.d.ts +0 -54
  150. package/dist/mev/protection.d.ts.map +0 -1
  151. package/dist/mev/protection.js +0 -185
  152. package/dist/mev/protection.js.map +0 -1
  153. package/dist/mev/risk.d.ts +0 -19
  154. package/dist/mev/risk.d.ts.map +0 -1
  155. package/dist/mev/risk.js +0 -95
  156. package/dist/mev/risk.js.map +0 -1
  157. package/dist/mev/types.d.ts +0 -49
  158. package/dist/mev/types.d.ts.map +0 -1
  159. package/dist/mev/types.js +0 -2
  160. package/dist/mev/types.js.map +0 -1
  161. package/dist/settlement/index.d.ts +0 -4
  162. package/dist/settlement/index.d.ts.map +0 -1
  163. package/dist/settlement/index.js +0 -3
  164. package/dist/settlement/index.js.map +0 -1
  165. package/dist/settlement/types.d.ts +0 -66
  166. package/dist/settlement/types.d.ts.map +0 -1
  167. package/dist/settlement/types.js +0 -37
  168. package/dist/settlement/types.js.map +0 -1
  169. package/dist/settlement/verifier.d.ts +0 -75
  170. package/dist/settlement/verifier.d.ts.map +0 -1
  171. package/dist/settlement/verifier.js +0 -354
  172. package/dist/settlement/verifier.js.map +0 -1
  173. package/dist/solana/bridge.d.ts +0 -144
  174. package/dist/solana/bridge.d.ts.map +0 -1
  175. package/dist/solana/bridge.js +0 -352
  176. package/dist/solana/bridge.js.map +0 -1
  177. package/dist/solana/index.d.ts +0 -8
  178. package/dist/solana/index.d.ts.map +0 -1
  179. package/dist/solana/index.js +0 -6
  180. package/dist/solana/index.js.map +0 -1
  181. package/dist/solana/swap.d.ts +0 -85
  182. package/dist/solana/swap.d.ts.map +0 -1
  183. package/dist/solana/swap.js +0 -173
  184. package/dist/solana/swap.js.map +0 -1
  185. package/dist/solana/types.d.ts +0 -126
  186. package/dist/solana/types.d.ts.map +0 -1
  187. package/dist/solana/types.js +0 -10
  188. package/dist/solana/types.js.map +0 -1
  189. package/dist/solana/wallet.d.ts +0 -83
  190. package/dist/solana/wallet.d.ts.map +0 -1
  191. package/dist/solana/wallet.js +0 -164
  192. package/dist/solana/wallet.js.map +0 -1
  193. package/dist/solana/x402.d.ts +0 -69
  194. package/dist/solana/x402.d.ts.map +0 -1
  195. package/dist/solana/x402.js +0 -154
  196. package/dist/solana/x402.js.map +0 -1
  197. package/dist/solver/adapter.d.ts +0 -47
  198. package/dist/solver/adapter.d.ts.map +0 -1
  199. package/dist/solver/adapter.js +0 -138
  200. package/dist/solver/adapter.js.map +0 -1
  201. package/dist/solver/analyzer.d.ts +0 -48
  202. package/dist/solver/analyzer.d.ts.map +0 -1
  203. package/dist/solver/analyzer.js +0 -89
  204. package/dist/solver/analyzer.js.map +0 -1
  205. package/dist/solver/builder.d.ts +0 -31
  206. package/dist/solver/builder.d.ts.map +0 -1
  207. package/dist/solver/builder.js +0 -60
  208. package/dist/solver/builder.js.map +0 -1
  209. package/dist/solver/index.d.ts +0 -22
  210. package/dist/solver/index.d.ts.map +0 -1
  211. package/dist/solver/index.js +0 -21
  212. package/dist/solver/index.js.map +0 -1
  213. package/dist/solver/types.d.ts +0 -115
  214. package/dist/solver/types.d.ts.map +0 -1
  215. package/dist/solver/types.js +0 -10
  216. package/dist/solver/types.js.map +0 -1
  217. package/dist/spend-guard/index.d.ts +0 -125
  218. package/dist/spend-guard/index.d.ts.map +0 -1
  219. package/dist/spend-guard/index.js +0 -150
  220. package/dist/spend-guard/index.js.map +0 -1
  221. package/dist/swap/router/cache.d.ts +0 -13
  222. package/dist/swap/router/cache.d.ts.map +0 -1
  223. package/dist/swap/router/cache.js +0 -30
  224. package/dist/swap/router/cache.js.map +0 -1
  225. package/dist/swap/router/flashbots.d.ts +0 -10
  226. package/dist/swap/router/flashbots.d.ts.map +0 -1
  227. package/dist/swap/router/flashbots.js +0 -43
  228. package/dist/swap/router/flashbots.js.map +0 -1
  229. package/dist/swap/router/health.d.ts +0 -17
  230. package/dist/swap/router/health.d.ts.map +0 -1
  231. package/dist/swap/router/health.js +0 -38
  232. package/dist/swap/router/health.js.map +0 -1
  233. package/dist/swap/router/index.d.ts +0 -10
  234. package/dist/swap/router/index.d.ts.map +0 -1
  235. package/dist/swap/router/index.js +0 -10
  236. package/dist/swap/router/index.js.map +0 -1
  237. package/dist/swap/router/providers/cowswap.d.ts +0 -11
  238. package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
  239. package/dist/swap/router/providers/cowswap.js +0 -79
  240. package/dist/swap/router/providers/cowswap.js.map +0 -1
  241. package/dist/swap/router/providers/index.d.ts +0 -20
  242. package/dist/swap/router/providers/index.d.ts.map +0 -1
  243. package/dist/swap/router/providers/index.js +0 -32
  244. package/dist/swap/router/providers/index.js.map +0 -1
  245. package/dist/swap/router/providers/jupiter.d.ts +0 -12
  246. package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
  247. package/dist/swap/router/providers/jupiter.js +0 -73
  248. package/dist/swap/router/providers/jupiter.js.map +0 -1
  249. package/dist/swap/router/providers/lifi.d.ts +0 -11
  250. package/dist/swap/router/providers/lifi.d.ts.map +0 -1
  251. package/dist/swap/router/providers/lifi.js +0 -123
  252. package/dist/swap/router/providers/lifi.js.map +0 -1
  253. package/dist/swap/router/providers/oneinch.d.ts +0 -13
  254. package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
  255. package/dist/swap/router/providers/oneinch.js +0 -71
  256. package/dist/swap/router/providers/oneinch.js.map +0 -1
  257. package/dist/swap/router/providers/paraswap.d.ts +0 -11
  258. package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
  259. package/dist/swap/router/providers/paraswap.js +0 -73
  260. package/dist/swap/router/providers/paraswap.js.map +0 -1
  261. package/dist/swap/router/providers/uniswap.d.ts +0 -31
  262. package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
  263. package/dist/swap/router/providers/uniswap.js +0 -116
  264. package/dist/swap/router/providers/uniswap.js.map +0 -1
  265. package/dist/swap/router/providers/zerox.d.ts +0 -13
  266. package/dist/swap/router/providers/zerox.d.ts.map +0 -1
  267. package/dist/swap/router/providers/zerox.js +0 -94
  268. package/dist/swap/router/providers/zerox.js.map +0 -1
  269. package/dist/swap/router/router.d.ts +0 -86
  270. package/dist/swap/router/router.d.ts.map +0 -1
  271. package/dist/swap/router/router.js +0 -224
  272. package/dist/swap/router/router.js.map +0 -1
  273. package/dist/swap/router/rsi/engine.d.ts +0 -60
  274. package/dist/swap/router/rsi/engine.d.ts.map +0 -1
  275. package/dist/swap/router/rsi/engine.js +0 -483
  276. package/dist/swap/router/rsi/engine.js.map +0 -1
  277. package/dist/swap/router/rsi/index.d.ts +0 -3
  278. package/dist/swap/router/rsi/index.d.ts.map +0 -1
  279. package/dist/swap/router/rsi/index.js +0 -3
  280. package/dist/swap/router/rsi/index.js.map +0 -1
  281. package/dist/swap/router/rsi/types.d.ts +0 -106
  282. package/dist/swap/router/rsi/types.d.ts.map +0 -1
  283. package/dist/swap/router/rsi/types.js +0 -3
  284. package/dist/swap/router/rsi/types.js.map +0 -1
  285. package/dist/swap/router/types.d.ts +0 -120
  286. package/dist/swap/router/types.d.ts.map +0 -1
  287. package/dist/swap/router/types.js +0 -16
  288. package/dist/swap/router/types.js.map +0 -1
  289. package/dist/tax/engine.d.ts +0 -131
  290. package/dist/tax/engine.d.ts.map +0 -1
  291. package/dist/tax/engine.js +0 -307
  292. package/dist/tax/engine.js.map +0 -1
  293. package/dist/tax/index.d.ts +0 -9
  294. package/dist/tax/index.d.ts.map +0 -1
  295. package/dist/tax/index.js +0 -8
  296. package/dist/tax/index.js.map +0 -1
  297. package/dist/tax/lots.d.ts +0 -60
  298. package/dist/tax/lots.d.ts.map +0 -1
  299. package/dist/tax/lots.js +0 -129
  300. package/dist/tax/lots.js.map +0 -1
  301. package/dist/tax/types.d.ts +0 -113
  302. package/dist/tax/types.d.ts.map +0 -1
  303. package/dist/tax/types.js +0 -18
  304. package/dist/tax/types.js.map +0 -1
  305. package/dist/yield/index.d.ts +0 -26
  306. package/dist/yield/index.d.ts.map +0 -1
  307. package/dist/yield/index.js +0 -25
  308. package/dist/yield/index.js.map +0 -1
  309. package/dist/yield/rates.d.ts +0 -114
  310. package/dist/yield/rates.d.ts.map +0 -1
  311. package/dist/yield/rates.js +0 -351
  312. package/dist/yield/rates.js.map +0 -1
  313. package/dist/yield/types.d.ts +0 -134
  314. package/dist/yield/types.d.ts.map +0 -1
  315. package/dist/yield/types.js +0 -24
  316. package/dist/yield/types.js.map +0 -1
  317. package/dist/yield/vault.d.ts +0 -112
  318. package/dist/yield/vault.d.ts.map +0 -1
  319. package/dist/yield/vault.js +0 -264
  320. package/dist/yield/vault.js.map +0 -1
@@ -1,300 +0,0 @@
1
- /**
2
- * MIT License
3
- *
4
- * Copyright (c) 2026 AgentNexus / agentwallet-sdk contributors
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining a copy
7
- * of this software and associated documentation files (the "Software"), to deal
8
- * in the Software without restriction, including without limitation the rights
9
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- * copies of the Software, and to permit persons to whom the Software is
11
- * furnished to do so, subject to the following conditions:
12
- *
13
- * The above copyright notice and this permission notice shall be included in all
14
- * copies or substantial portions of the Software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- * SOFTWARE.
23
- */
24
- import { ERC8004Client, } from './erc8004.js';
25
- import { ERC6551Client, DEFAULT_SALT, } from './erc6551.js';
26
- // ─── AgentIdentity ────────────────────────────────────────────────────────────
27
- /**
28
- * AgentIdentity — unified ERC-8004 + ERC-6551 identity manager.
29
- *
30
- * Provides a single interface to manage an agent's complete on-chain identity:
31
- * - ERC-8004: NFT registration with metadata and service endpoints
32
- * - ERC-6551: Token Bound Account (TBA) — the agent's autonomous wallet
33
- *
34
- * @example
35
- * ```typescript
36
- * import { AgentIdentity } from 'agentwallet-sdk';
37
- * import { createWalletClient, http } from 'viem';
38
- * import { privateKeyToAccount } from 'viem/accounts';
39
- * import { base } from 'viem/chains';
40
- *
41
- * const wallet = createWalletClient({
42
- * account: privateKeyToAccount('0xYOUR_PRIVATE_KEY'),
43
- * chain: base,
44
- * transport: http(),
45
- * });
46
- *
47
- * const identity = new AgentIdentity({
48
- * wallet,
49
- * chain: 'base',
50
- * registryAddress: '0xYOUR_ERC8004_REGISTRY',
51
- * });
52
- *
53
- * // 1. Register agent NFT (ERC-8004)
54
- * const { agentId } = await identity.register({
55
- * name: 'MyTradingAgent',
56
- * description: 'Autonomous DeFi trading agent',
57
- * x402Support: true,
58
- * });
59
- *
60
- * // 2. Deploy TBA (ERC-6551) — NFT now owns an autonomous wallet
61
- * await identity.deployTBA();
62
- * console.log('Agent TBA:', identity.tbaAddress);
63
- *
64
- * // 3. Execute from TBA (agent acts on-chain)
65
- * await identity.execute({
66
- * to: TASKBRIDGE_CONTRACT,
67
- * value: parseEther('0.01'),
68
- * data: encodedCalldata,
69
- * });
70
- * ```
71
- */
72
- export class AgentIdentity {
73
- constructor(config) {
74
- this._agentId = null;
75
- this._nftContract = null;
76
- this._tbaAccount = null;
77
- this.wallet = config.wallet;
78
- this.chain = config.chain ?? 'base';
79
- this.tbaSalt = config.tbaSalt ?? DEFAULT_SALT;
80
- // ERC-8004 client — optional (some agents may only use ERC-6551)
81
- if (config.registryAddress) {
82
- this.erc8004 = new ERC8004Client({
83
- registryAddress: config.registryAddress,
84
- chain: this.chain,
85
- rpcUrl: config.rpcUrl,
86
- });
87
- this._nftContract = config.registryAddress;
88
- }
89
- else {
90
- this.erc8004 = null;
91
- }
92
- // ERC-6551 client — always initialized
93
- this.erc6551 = new ERC6551Client({
94
- chain: this.chain,
95
- registryAddress: config.tbaRegistryAddress,
96
- implementationAddress: config.tbaImplementationAddress,
97
- rpcUrl: config.rpcUrl,
98
- });
99
- }
100
- // ─── ERC-8004: Registration ───────────────────────────────────────────────
101
- /**
102
- * Register this agent as an ERC-8004 identity NFT on-chain.
103
- *
104
- * Builds a spec-compliant agent registration file and mints an ERC-721 NFT
105
- * via the ERC-8004 Identity Registry. After registration, the NFT represents
106
- * the agent's permanent, portable on-chain identity.
107
- *
108
- * Non-custodial: the wallet signs the registration transaction locally.
109
- *
110
- * @param metadata - Agent metadata for the registration file
111
- * @param agentURI - Optional external URI (IPFS/HTTPS). Auto-builds data URI if omitted.
112
- * @returns Registration result with txHash and agentId
113
- * @throws Error if no registryAddress was provided in config
114
- */
115
- async register(metadata, agentURI) {
116
- if (!this.erc8004) {
117
- throw new Error('AgentIdentity: registryAddress is required for ERC-8004 registration. ' +
118
- 'Provide it in the constructor config.');
119
- }
120
- const result = await this.erc8004.registerAgent(this.wallet, metadata, agentURI);
121
- if (result.agentId !== null) {
122
- this._agentId = result.agentId;
123
- }
124
- return result;
125
- }
126
- /**
127
- * Restore a previously registered agent identity.
128
- *
129
- * Use this when you already have an agentId from a prior session.
130
- * Sets the internal agentId so deployTBA() and execute() work correctly.
131
- *
132
- * @param agentId - Previously registered ERC-8004 token ID
133
- * @param nftContract - The ERC-8004 registry contract (= registryAddress in config)
134
- */
135
- setAgentId(agentId, nftContract) {
136
- this._agentId = agentId;
137
- if (nftContract)
138
- this._nftContract = nftContract;
139
- }
140
- // ─── ERC-6551: TBA Deployment ─────────────────────────────────────────────
141
- /**
142
- * Deploy the Token Bound Account for this agent's NFT.
143
- *
144
- * The TBA address is deterministic — you can compute it before deployment
145
- * via `computeTBAAddress()`. This call deploys the actual smart contract at
146
- * that address, enabling the agent to act autonomously on-chain.
147
- *
148
- * Idempotent: calling deployTBA() on an already-deployed TBA is safe.
149
- *
150
- * @param nftContract - Override: NFT contract to bind the TBA to.
151
- * Defaults to the registryAddress (ERC-8004 registry is also the NFT contract).
152
- * @param tokenId - Override: token ID. Defaults to the registered agentId.
153
- * @returns Deployed TBAAccount
154
- * @throws Error if agentId not set (call register() first or use setAgentId())
155
- */
156
- async deployTBA(nftContract, tokenId) {
157
- const resolvedContract = nftContract ?? this._nftContract;
158
- const resolvedTokenId = tokenId ?? this._agentId;
159
- if (!resolvedContract) {
160
- throw new Error('AgentIdentity: NFT contract address unknown. ' +
161
- 'Provide registryAddress in config or pass nftContract to deployTBA().');
162
- }
163
- if (resolvedTokenId === null) {
164
- throw new Error('AgentIdentity: agentId not set. ' +
165
- 'Call register() first or use setAgentId() to restore a prior identity.');
166
- }
167
- const tbaAccount = await this.erc6551.createTBA(this.wallet, resolvedContract, resolvedTokenId, this.tbaSalt);
168
- this._tbaAccount = tbaAccount;
169
- return tbaAccount;
170
- }
171
- /**
172
- * Compute the deterministic TBA address without deploying.
173
- *
174
- * Useful for pre-computing the address to fund it before deployment,
175
- * or to check if a TBA already exists.
176
- *
177
- * @param nftContract - NFT contract (defaults to registryAddress)
178
- * @param tokenId - Token ID (defaults to agentId)
179
- * @returns Deterministic TBA address
180
- */
181
- computeTBAAddress(nftContract, tokenId) {
182
- const resolvedContract = nftContract ?? this._nftContract;
183
- const resolvedTokenId = tokenId ?? this._agentId;
184
- if (!resolvedContract || resolvedTokenId === null) {
185
- throw new Error('AgentIdentity: nftContract and tokenId required to compute TBA address.');
186
- }
187
- return this.erc6551.computeTBAAddress(resolvedContract, resolvedTokenId, this.tbaSalt);
188
- }
189
- /**
190
- * Load TBA state without deploying — useful for resuming a session.
191
- * Sets internal TBA state so execute() works without re-deploying.
192
- *
193
- * @param nftContract - NFT contract (defaults to registryAddress)
194
- * @param tokenId - Token ID (defaults to agentId)
195
- */
196
- async loadTBA(nftContract, tokenId) {
197
- const resolvedContract = nftContract ?? this._nftContract;
198
- const resolvedTokenId = tokenId ?? this._agentId;
199
- if (!resolvedContract || resolvedTokenId === null) {
200
- throw new Error('AgentIdentity: nftContract and tokenId required to load TBA.');
201
- }
202
- const tbaAccount = await this.erc6551.getTBAAccount(resolvedContract, resolvedTokenId, this.tbaSalt);
203
- this._tbaAccount = tbaAccount;
204
- return tbaAccount;
205
- }
206
- // ─── ERC-6551: Execution ──────────────────────────────────────────────────
207
- /**
208
- * Execute a call from the agent's TBA (the agent acts autonomously).
209
- *
210
- * Routes the call through the TBA's `execute()` function, which verifies
211
- * the caller owns the NFT before dispatching to the target contract.
212
- *
213
- * @param params - Call parameters (to, value, data, operation)
214
- * @returns Transaction hash and return data
215
- * @throws Error if TBA not deployed (call deployTBA() first)
216
- *
217
- * @example
218
- * ```typescript
219
- * // Agent bids on a TaskBridge task
220
- * await identity.execute({
221
- * to: TASKBRIDGE_ADDRESS,
222
- * value: 0n,
223
- * data: encodeFunctionData({
224
- * abi: TaskBridgeAbi,
225
- * functionName: 'bid',
226
- * args: [taskId, bidAmount],
227
- * }),
228
- * });
229
- * ```
230
- */
231
- async execute(params) {
232
- const tbaAddress = this.tbaAddress;
233
- if (!tbaAddress) {
234
- throw new Error('AgentIdentity: TBA not deployed. Call deployTBA() first or loadTBA() to restore.');
235
- }
236
- return this.erc6551.executeTBA(this.wallet, tbaAddress, params);
237
- }
238
- // ─── State accessors ──────────────────────────────────────────────────────
239
- /**
240
- * The agent's ERC-8004 token ID (null before registration).
241
- */
242
- get agentId() {
243
- return this._agentId;
244
- }
245
- /**
246
- * The agent's TBA address (null before deployTBA() or loadTBA()).
247
- */
248
- get tbaAddress() {
249
- return this._tbaAccount?.address ?? null;
250
- }
251
- /**
252
- * Full TBA account details (null before deployTBA() or loadTBA()).
253
- */
254
- get tbaAccount() {
255
- return this._tbaAccount;
256
- }
257
- /**
258
- * Whether the agent's ERC-8004 NFT is registered.
259
- */
260
- get isRegistered() {
261
- return this._agentId !== null;
262
- }
263
- /**
264
- * Whether the agent's TBA is deployed on-chain.
265
- */
266
- get isTBADeployed() {
267
- return this._tbaAccount?.isDeployed === true;
268
- }
269
- /**
270
- * The wallet account address (human principal / NFT owner).
271
- */
272
- get ownerAddress() {
273
- return this.wallet.account?.address ?? null;
274
- }
275
- /**
276
- * Full identity state snapshot.
277
- */
278
- get state() {
279
- return {
280
- agentId: this._agentId,
281
- tbaAddress: this.tbaAddress,
282
- isRegistered: this.isRegistered,
283
- isTBADeployed: this.isTBADeployed,
284
- owner: this.ownerAddress,
285
- };
286
- }
287
- /**
288
- * Direct access to the underlying ERC6551Client for advanced usage.
289
- */
290
- get erc6551Client() {
291
- return this.erc6551;
292
- }
293
- /**
294
- * Direct access to the underlying ERC8004Client (null if no registryAddress provided).
295
- */
296
- get erc8004Client() {
297
- return this.erc8004;
298
- }
299
- }
300
- //# sourceMappingURL=agent-identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-identity.js","sourceRoot":"","sources":["../../src/identity/agent-identity.ts"],"names":[],"mappings":"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"}