agentwallet-sdk 3.2.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/README.md +2 -536
  2. package/dist/bridge/abis.d.ts +48 -171
  3. package/dist/bridge/abis.d.ts.map +1 -1
  4. package/dist/bridge/abis.js.map +1 -1
  5. package/dist/bridge/client.d.ts +2 -41
  6. package/dist/bridge/client.d.ts.map +1 -1
  7. package/dist/bridge/client.js +35 -168
  8. package/dist/bridge/client.js.map +1 -1
  9. package/dist/bridge/index.d.ts +2 -4
  10. package/dist/bridge/index.d.ts.map +1 -1
  11. package/dist/bridge/index.js +1 -8
  12. package/dist/bridge/index.js.map +1 -1
  13. package/dist/bridge/types.d.ts +15 -134
  14. package/dist/bridge/types.d.ts.map +1 -1
  15. package/dist/bridge/types.js +16 -170
  16. package/dist/bridge/types.js.map +1 -1
  17. package/dist/identity/erc8004.d.ts +2 -240
  18. package/dist/identity/erc8004.d.ts.map +1 -1
  19. package/dist/identity/erc8004.js +58 -334
  20. package/dist/identity/erc8004.js.map +1 -1
  21. package/dist/index.d.ts +313 -134
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +11 -56
  24. package/dist/index.js.map +1 -1
  25. package/dist/swap/SwapModule.d.ts +6 -50
  26. package/dist/swap/SwapModule.d.ts.map +1 -1
  27. package/dist/swap/SwapModule.js +25 -153
  28. package/dist/swap/SwapModule.js.map +1 -1
  29. package/dist/swap/abi.d.ts +47 -165
  30. package/dist/swap/abi.d.ts.map +1 -1
  31. package/dist/swap/abi.js.map +1 -1
  32. package/dist/swap/index.d.ts +2 -3
  33. package/dist/swap/index.d.ts.map +1 -1
  34. package/dist/swap/index.js +1 -4
  35. package/dist/swap/index.js.map +1 -1
  36. package/dist/swap/types.d.ts +6 -36
  37. package/dist/swap/types.d.ts.map +1 -1
  38. package/dist/swap/types.js +0 -1
  39. package/dist/swap/types.js.map +1 -1
  40. package/dist/types.d.ts +1 -2
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +0 -1
  43. package/dist/types.js.map +1 -1
  44. package/dist/x402/__tests__/budget.test.d.ts +2 -0
  45. package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
  46. package/dist/x402/__tests__/budget.test.js +114 -0
  47. package/dist/x402/__tests__/budget.test.js.map +1 -0
  48. package/dist/x402/__tests__/client.test.d.ts +2 -0
  49. package/dist/x402/__tests__/client.test.d.ts.map +1 -0
  50. package/dist/x402/__tests__/client.test.js +107 -0
  51. package/dist/x402/__tests__/client.test.js.map +1 -0
  52. package/dist/x402/chains/abstract/index.d.ts +135 -0
  53. package/dist/x402/chains/abstract/index.d.ts.map +1 -0
  54. package/dist/x402/chains/abstract/index.js +190 -0
  55. package/dist/x402/chains/abstract/index.js.map +1 -0
  56. package/dist/x402/client.d.ts.map +1 -1
  57. package/dist/x402/client.js +1 -2
  58. package/dist/x402/client.js.map +1 -1
  59. package/dist/x402/index.d.ts +3 -1
  60. package/dist/x402/index.d.ts.map +1 -1
  61. package/dist/x402/index.js +3 -1
  62. package/dist/x402/index.js.map +1 -1
  63. package/dist/x402/types.d.ts +3 -5
  64. package/dist/x402/types.d.ts.map +1 -1
  65. package/dist/x402/types.js +2 -17
  66. package/dist/x402/types.js.map +1 -1
  67. package/package.json +12 -32
  68. package/dist/ap2/index.d.ts +0 -185
  69. package/dist/ap2/index.d.ts.map +0 -1
  70. package/dist/ap2/index.js +0 -255
  71. package/dist/ap2/index.js.map +0 -1
  72. package/dist/bridge/unified.d.ts +0 -101
  73. package/dist/bridge/unified.d.ts.map +0 -1
  74. package/dist/bridge/unified.js +0 -284
  75. package/dist/bridge/unified.js.map +0 -1
  76. package/dist/chains.d.ts +0 -62
  77. package/dist/chains.d.ts.map +0 -1
  78. package/dist/chains.js +0 -108
  79. package/dist/chains.js.map +0 -1
  80. package/dist/fiat/index.d.ts +0 -10
  81. package/dist/fiat/index.d.ts.map +0 -1
  82. package/dist/fiat/index.js +0 -9
  83. package/dist/fiat/index.js.map +0 -1
  84. package/dist/fiat/onramp.d.ts +0 -101
  85. package/dist/fiat/onramp.d.ts.map +0 -1
  86. package/dist/fiat/onramp.js +0 -155
  87. package/dist/fiat/onramp.js.map +0 -1
  88. package/dist/fiat/providers/index.d.ts +0 -16
  89. package/dist/fiat/providers/index.d.ts.map +0 -1
  90. package/dist/fiat/providers/index.js +0 -30
  91. package/dist/fiat/providers/index.js.map +0 -1
  92. package/dist/fiat/providers/moonpay.d.ts +0 -22
  93. package/dist/fiat/providers/moonpay.d.ts.map +0 -1
  94. package/dist/fiat/providers/moonpay.js +0 -107
  95. package/dist/fiat/providers/moonpay.js.map +0 -1
  96. package/dist/fiat/providers/stripe.d.ts +0 -26
  97. package/dist/fiat/providers/stripe.d.ts.map +0 -1
  98. package/dist/fiat/providers/stripe.js +0 -135
  99. package/dist/fiat/providers/stripe.js.map +0 -1
  100. package/dist/fiat/providers/transak.d.ts +0 -26
  101. package/dist/fiat/providers/transak.d.ts.map +0 -1
  102. package/dist/fiat/providers/transak.js +0 -119
  103. package/dist/fiat/providers/transak.js.map +0 -1
  104. package/dist/fiat/types.d.ts +0 -106
  105. package/dist/fiat/types.d.ts.map +0 -1
  106. package/dist/fiat/types.js +0 -13
  107. package/dist/fiat/types.js.map +0 -1
  108. package/dist/flash/executor.d.ts +0 -119
  109. package/dist/flash/executor.d.ts.map +0 -1
  110. package/dist/flash/executor.js +0 -195
  111. package/dist/flash/executor.js.map +0 -1
  112. package/dist/flash/index.d.ts +0 -28
  113. package/dist/flash/index.d.ts.map +0 -1
  114. package/dist/flash/index.js +0 -25
  115. package/dist/flash/index.js.map +0 -1
  116. package/dist/flash/scanner.d.ts +0 -133
  117. package/dist/flash/scanner.d.ts.map +0 -1
  118. package/dist/flash/scanner.js +0 -212
  119. package/dist/flash/scanner.js.map +0 -1
  120. package/dist/flash/types.d.ts +0 -136
  121. package/dist/flash/types.d.ts.map +0 -1
  122. package/dist/flash/types.js +0 -23
  123. package/dist/flash/types.js.map +0 -1
  124. package/dist/gas/index.d.ts +0 -4
  125. package/dist/gas/index.d.ts.map +0 -1
  126. package/dist/gas/index.js +0 -3
  127. package/dist/gas/index.js.map +0 -1
  128. package/dist/gas/sponsor.d.ts +0 -70
  129. package/dist/gas/sponsor.d.ts.map +0 -1
  130. package/dist/gas/sponsor.js +0 -193
  131. package/dist/gas/sponsor.js.map +0 -1
  132. package/dist/gas/types.d.ts +0 -76
  133. package/dist/gas/types.d.ts.map +0 -1
  134. package/dist/gas/types.js +0 -21
  135. package/dist/gas/types.js.map +0 -1
  136. package/dist/identity/agent-identity.d.ts +0 -276
  137. package/dist/identity/agent-identity.d.ts.map +0 -1
  138. package/dist/identity/agent-identity.js +0 -300
  139. package/dist/identity/agent-identity.js.map +0 -1
  140. package/dist/identity/erc6551.d.ts +0 -441
  141. package/dist/identity/erc6551.d.ts.map +0 -1
  142. package/dist/identity/erc6551.js +0 -517
  143. package/dist/identity/erc6551.js.map +0 -1
  144. package/dist/mev/index.d.ts +0 -4
  145. package/dist/mev/index.d.ts.map +0 -1
  146. package/dist/mev/index.js +0 -4
  147. package/dist/mev/index.js.map +0 -1
  148. package/dist/mev/protection.d.ts +0 -54
  149. package/dist/mev/protection.d.ts.map +0 -1
  150. package/dist/mev/protection.js +0 -185
  151. package/dist/mev/protection.js.map +0 -1
  152. package/dist/mev/risk.d.ts +0 -19
  153. package/dist/mev/risk.d.ts.map +0 -1
  154. package/dist/mev/risk.js +0 -95
  155. package/dist/mev/risk.js.map +0 -1
  156. package/dist/mev/types.d.ts +0 -49
  157. package/dist/mev/types.d.ts.map +0 -1
  158. package/dist/mev/types.js +0 -2
  159. package/dist/mev/types.js.map +0 -1
  160. package/dist/settlement/index.d.ts +0 -4
  161. package/dist/settlement/index.d.ts.map +0 -1
  162. package/dist/settlement/index.js +0 -3
  163. package/dist/settlement/index.js.map +0 -1
  164. package/dist/settlement/types.d.ts +0 -66
  165. package/dist/settlement/types.d.ts.map +0 -1
  166. package/dist/settlement/types.js +0 -37
  167. package/dist/settlement/types.js.map +0 -1
  168. package/dist/settlement/verifier.d.ts +0 -75
  169. package/dist/settlement/verifier.d.ts.map +0 -1
  170. package/dist/settlement/verifier.js +0 -354
  171. package/dist/settlement/verifier.js.map +0 -1
  172. package/dist/solana/bridge.d.ts +0 -144
  173. package/dist/solana/bridge.d.ts.map +0 -1
  174. package/dist/solana/bridge.js +0 -352
  175. package/dist/solana/bridge.js.map +0 -1
  176. package/dist/solana/index.d.ts +0 -8
  177. package/dist/solana/index.d.ts.map +0 -1
  178. package/dist/solana/index.js +0 -6
  179. package/dist/solana/index.js.map +0 -1
  180. package/dist/solana/swap.d.ts +0 -85
  181. package/dist/solana/swap.d.ts.map +0 -1
  182. package/dist/solana/swap.js +0 -173
  183. package/dist/solana/swap.js.map +0 -1
  184. package/dist/solana/types.d.ts +0 -126
  185. package/dist/solana/types.d.ts.map +0 -1
  186. package/dist/solana/types.js +0 -10
  187. package/dist/solana/types.js.map +0 -1
  188. package/dist/solana/wallet.d.ts +0 -83
  189. package/dist/solana/wallet.d.ts.map +0 -1
  190. package/dist/solana/wallet.js +0 -164
  191. package/dist/solana/wallet.js.map +0 -1
  192. package/dist/solana/x402.d.ts +0 -69
  193. package/dist/solana/x402.d.ts.map +0 -1
  194. package/dist/solana/x402.js +0 -154
  195. package/dist/solana/x402.js.map +0 -1
  196. package/dist/solver/adapter.d.ts +0 -47
  197. package/dist/solver/adapter.d.ts.map +0 -1
  198. package/dist/solver/adapter.js +0 -138
  199. package/dist/solver/adapter.js.map +0 -1
  200. package/dist/solver/analyzer.d.ts +0 -48
  201. package/dist/solver/analyzer.d.ts.map +0 -1
  202. package/dist/solver/analyzer.js +0 -89
  203. package/dist/solver/analyzer.js.map +0 -1
  204. package/dist/solver/builder.d.ts +0 -31
  205. package/dist/solver/builder.d.ts.map +0 -1
  206. package/dist/solver/builder.js +0 -60
  207. package/dist/solver/builder.js.map +0 -1
  208. package/dist/solver/index.d.ts +0 -22
  209. package/dist/solver/index.d.ts.map +0 -1
  210. package/dist/solver/index.js +0 -21
  211. package/dist/solver/index.js.map +0 -1
  212. package/dist/solver/types.d.ts +0 -115
  213. package/dist/solver/types.d.ts.map +0 -1
  214. package/dist/solver/types.js +0 -10
  215. package/dist/solver/types.js.map +0 -1
  216. package/dist/swap/router/cache.d.ts +0 -13
  217. package/dist/swap/router/cache.d.ts.map +0 -1
  218. package/dist/swap/router/cache.js +0 -30
  219. package/dist/swap/router/cache.js.map +0 -1
  220. package/dist/swap/router/flashbots.d.ts +0 -10
  221. package/dist/swap/router/flashbots.d.ts.map +0 -1
  222. package/dist/swap/router/flashbots.js +0 -43
  223. package/dist/swap/router/flashbots.js.map +0 -1
  224. package/dist/swap/router/health.d.ts +0 -17
  225. package/dist/swap/router/health.d.ts.map +0 -1
  226. package/dist/swap/router/health.js +0 -38
  227. package/dist/swap/router/health.js.map +0 -1
  228. package/dist/swap/router/index.d.ts +0 -10
  229. package/dist/swap/router/index.d.ts.map +0 -1
  230. package/dist/swap/router/index.js +0 -10
  231. package/dist/swap/router/index.js.map +0 -1
  232. package/dist/swap/router/providers/cowswap.d.ts +0 -11
  233. package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
  234. package/dist/swap/router/providers/cowswap.js +0 -79
  235. package/dist/swap/router/providers/cowswap.js.map +0 -1
  236. package/dist/swap/router/providers/index.d.ts +0 -20
  237. package/dist/swap/router/providers/index.d.ts.map +0 -1
  238. package/dist/swap/router/providers/index.js +0 -32
  239. package/dist/swap/router/providers/index.js.map +0 -1
  240. package/dist/swap/router/providers/jupiter.d.ts +0 -12
  241. package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
  242. package/dist/swap/router/providers/jupiter.js +0 -73
  243. package/dist/swap/router/providers/jupiter.js.map +0 -1
  244. package/dist/swap/router/providers/lifi.d.ts +0 -11
  245. package/dist/swap/router/providers/lifi.d.ts.map +0 -1
  246. package/dist/swap/router/providers/lifi.js +0 -123
  247. package/dist/swap/router/providers/lifi.js.map +0 -1
  248. package/dist/swap/router/providers/oneinch.d.ts +0 -13
  249. package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
  250. package/dist/swap/router/providers/oneinch.js +0 -71
  251. package/dist/swap/router/providers/oneinch.js.map +0 -1
  252. package/dist/swap/router/providers/paraswap.d.ts +0 -11
  253. package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
  254. package/dist/swap/router/providers/paraswap.js +0 -73
  255. package/dist/swap/router/providers/paraswap.js.map +0 -1
  256. package/dist/swap/router/providers/uniswap.d.ts +0 -31
  257. package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
  258. package/dist/swap/router/providers/uniswap.js +0 -116
  259. package/dist/swap/router/providers/uniswap.js.map +0 -1
  260. package/dist/swap/router/providers/zerox.d.ts +0 -13
  261. package/dist/swap/router/providers/zerox.d.ts.map +0 -1
  262. package/dist/swap/router/providers/zerox.js +0 -94
  263. package/dist/swap/router/providers/zerox.js.map +0 -1
  264. package/dist/swap/router/router.d.ts +0 -86
  265. package/dist/swap/router/router.d.ts.map +0 -1
  266. package/dist/swap/router/router.js +0 -224
  267. package/dist/swap/router/router.js.map +0 -1
  268. package/dist/swap/router/rsi/engine.d.ts +0 -60
  269. package/dist/swap/router/rsi/engine.d.ts.map +0 -1
  270. package/dist/swap/router/rsi/engine.js +0 -483
  271. package/dist/swap/router/rsi/engine.js.map +0 -1
  272. package/dist/swap/router/rsi/index.d.ts +0 -3
  273. package/dist/swap/router/rsi/index.d.ts.map +0 -1
  274. package/dist/swap/router/rsi/index.js +0 -3
  275. package/dist/swap/router/rsi/index.js.map +0 -1
  276. package/dist/swap/router/rsi/types.d.ts +0 -106
  277. package/dist/swap/router/rsi/types.d.ts.map +0 -1
  278. package/dist/swap/router/rsi/types.js +0 -3
  279. package/dist/swap/router/rsi/types.js.map +0 -1
  280. package/dist/swap/router/types.d.ts +0 -120
  281. package/dist/swap/router/types.d.ts.map +0 -1
  282. package/dist/swap/router/types.js +0 -16
  283. package/dist/swap/router/types.js.map +0 -1
  284. package/dist/tax/engine.d.ts +0 -131
  285. package/dist/tax/engine.d.ts.map +0 -1
  286. package/dist/tax/engine.js +0 -307
  287. package/dist/tax/engine.js.map +0 -1
  288. package/dist/tax/index.d.ts +0 -9
  289. package/dist/tax/index.d.ts.map +0 -1
  290. package/dist/tax/index.js +0 -8
  291. package/dist/tax/index.js.map +0 -1
  292. package/dist/tax/lots.d.ts +0 -60
  293. package/dist/tax/lots.d.ts.map +0 -1
  294. package/dist/tax/lots.js +0 -129
  295. package/dist/tax/lots.js.map +0 -1
  296. package/dist/tax/types.d.ts +0 -113
  297. package/dist/tax/types.d.ts.map +0 -1
  298. package/dist/tax/types.js +0 -18
  299. package/dist/tax/types.js.map +0 -1
  300. package/dist/yield/index.d.ts +0 -26
  301. package/dist/yield/index.d.ts.map +0 -1
  302. package/dist/yield/index.js +0 -25
  303. package/dist/yield/index.js.map +0 -1
  304. package/dist/yield/rates.d.ts +0 -114
  305. package/dist/yield/rates.d.ts.map +0 -1
  306. package/dist/yield/rates.js +0 -351
  307. package/dist/yield/rates.js.map +0 -1
  308. package/dist/yield/types.d.ts +0 -134
  309. package/dist/yield/types.d.ts.map +0 -1
  310. package/dist/yield/types.js +0 -24
  311. package/dist/yield/types.js.map +0 -1
  312. package/dist/yield/vault.d.ts +0 -112
  313. package/dist/yield/vault.d.ts.map +0 -1
  314. package/dist/yield/vault.js +0 -264
  315. package/dist/yield/vault.js.map +0 -1
@@ -1,60 +0,0 @@
1
- /**
2
- * Tax / P&L Engine — Cost Basis Lot Manager
3
- *
4
- * ⚠️ DISCLAIMER: For informational purposes only. Consult a tax professional.
5
- *
6
- * Manages tax lots (individual purchase/acquisition records) for each token.
7
- * Supports FIFO, LIFO, and Specific Identification disposal ordering.
8
- */
9
- import type { TaxLot, CostBasisMethod } from './types.js';
10
- export declare class LotManager {
11
- private lots;
12
- private getLotKey;
13
- /**
14
- * Add a new tax lot (e.g., after buying or receiving a token).
15
- */
16
- addLot(lot: TaxLot): void;
17
- /**
18
- * Get all lots for a token on a specific chain.
19
- */
20
- getLots(token: string, chain: string): TaxLot[];
21
- /**
22
- * Get a specific lot by ID (used by determineGainType for acquisition date lookup).
23
- */
24
- getLotById(lotId: string): TaxLot | undefined;
25
- /**
26
- * Dispose of lots using FIFO / LIFO / Specific Identification.
27
- * Updates the lot inventory in place and returns an audit trail of disposals.
28
- *
29
- * If no lots are tracked (pre-existing wallet), returns [] with zero cost basis.
30
- */
31
- disposeLots(params: {
32
- token: string;
33
- chain: string;
34
- amount: bigint;
35
- method: CostBasisMethod;
36
- specificLotIds?: string[];
37
- }): Array<{
38
- lotId: string;
39
- amountUsed: bigint;
40
- costBasisUsed: number;
41
- acquiredAt: number;
42
- }>;
43
- /**
44
- * Get total holdings across all lots for a token on a chain.
45
- */
46
- getTotalHolding(token: string, chain: string): {
47
- amount: bigint;
48
- costBasisUsd: number;
49
- };
50
- /**
51
- * Export lot state for persistence (e.g., to database or JSON file).
52
- * Note: bigint values will need special serialization if persisting to JSON.
53
- */
54
- exportState(): Record<string, TaxLot[]>;
55
- /**
56
- * Load lot state from a previous session.
57
- */
58
- loadState(state: Record<string, TaxLot[]>): void;
59
- }
60
- //# sourceMappingURL=lots.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lots.d.ts","sourceRoot":"","sources":["../../src/tax/lots.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAoC;IAEhD,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOzB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/C;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQ7C;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,eAAe,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA2D3F;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAQvF;;;OAGG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAQvC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;CAGjD"}
package/dist/tax/lots.js DELETED
@@ -1,129 +0,0 @@
1
- /**
2
- * Tax / P&L Engine — Cost Basis Lot Manager
3
- *
4
- * ⚠️ DISCLAIMER: For informational purposes only. Consult a tax professional.
5
- *
6
- * Manages tax lots (individual purchase/acquisition records) for each token.
7
- * Supports FIFO, LIFO, and Specific Identification disposal ordering.
8
- */
9
- export class LotManager {
10
- constructor() {
11
- this.lots = new Map(); // key: "chain:token"
12
- }
13
- getLotKey(token, chain) {
14
- return `${chain}:${token}`;
15
- }
16
- /**
17
- * Add a new tax lot (e.g., after buying or receiving a token).
18
- */
19
- addLot(lot) {
20
- const key = this.getLotKey(lot.token, lot.chain);
21
- const existing = this.lots.get(key) ?? [];
22
- existing.push(lot);
23
- this.lots.set(key, existing);
24
- }
25
- /**
26
- * Get all lots for a token on a specific chain.
27
- */
28
- getLots(token, chain) {
29
- return this.lots.get(this.getLotKey(token, chain)) ?? [];
30
- }
31
- /**
32
- * Get a specific lot by ID (used by determineGainType for acquisition date lookup).
33
- */
34
- getLotById(lotId) {
35
- for (const lots of this.lots.values()) {
36
- const found = lots.find(l => l.id === lotId);
37
- if (found)
38
- return found;
39
- }
40
- return undefined;
41
- }
42
- /**
43
- * Dispose of lots using FIFO / LIFO / Specific Identification.
44
- * Updates the lot inventory in place and returns an audit trail of disposals.
45
- *
46
- * If no lots are tracked (pre-existing wallet), returns [] with zero cost basis.
47
- */
48
- disposeLots(params) {
49
- const key = this.getLotKey(params.token, params.chain);
50
- let lots = this.lots.get(key) ?? [];
51
- if (lots.length === 0) {
52
- // No lots tracked — zero cost basis (common for pre-existing wallets)
53
- return [];
54
- }
55
- // Order lots by method
56
- let sorted;
57
- if (params.method === 'fifo') {
58
- sorted = [...lots].sort((a, b) => a.acquiredAt - b.acquiredAt);
59
- }
60
- else if (params.method === 'lifo') {
61
- sorted = [...lots].sort((a, b) => b.acquiredAt - a.acquiredAt);
62
- }
63
- else {
64
- // specific-id: use only the explicitly requested lots
65
- sorted = lots.filter(l => params.specificLotIds?.includes(l.id));
66
- }
67
- const disposals = [];
68
- let remaining = params.amount;
69
- for (const lot of sorted) {
70
- if (remaining === 0n)
71
- break;
72
- const amountUsed = remaining > lot.amount ? lot.amount : remaining;
73
- const fraction = Number(amountUsed) / Number(lot.amount);
74
- const costBasisUsed = lot.costBasisUsd * fraction;
75
- disposals.push({
76
- lotId: lot.id,
77
- amountUsed,
78
- costBasisUsed,
79
- acquiredAt: lot.acquiredAt,
80
- });
81
- remaining -= amountUsed;
82
- // Update the lot inventory
83
- if (amountUsed === lot.amount) {
84
- // Lot fully consumed — remove it
85
- lots = lots.filter(l => l.id !== lot.id);
86
- }
87
- else {
88
- // Lot partially consumed — reduce amount and cost basis; perUnit stays unchanged
89
- const idx = lots.findIndex(l => l.id === lot.id);
90
- lots[idx] = {
91
- ...lot,
92
- amount: lot.amount - amountUsed,
93
- costBasisUsd: lot.costBasisUsd * (1 - fraction),
94
- costBasisPerUnit: lot.costBasisPerUnit, // unchanged — reflects original purchase price
95
- };
96
- }
97
- }
98
- this.lots.set(key, lots);
99
- return disposals;
100
- }
101
- /**
102
- * Get total holdings across all lots for a token on a chain.
103
- */
104
- getTotalHolding(token, chain) {
105
- const lots = this.getLots(token, chain);
106
- return {
107
- amount: lots.reduce((sum, l) => sum + l.amount, 0n),
108
- costBasisUsd: lots.reduce((sum, l) => sum + l.costBasisUsd, 0),
109
- };
110
- }
111
- /**
112
- * Export lot state for persistence (e.g., to database or JSON file).
113
- * Note: bigint values will need special serialization if persisting to JSON.
114
- */
115
- exportState() {
116
- const state = {};
117
- for (const [key, lots] of this.lots) {
118
- state[key] = lots;
119
- }
120
- return state;
121
- }
122
- /**
123
- * Load lot state from a previous session.
124
- */
125
- loadState(state) {
126
- this.lots = new Map(Object.entries(state));
127
- }
128
- }
129
- //# sourceMappingURL=lots.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lots.js","sourceRoot":"","sources":["../../src/tax/lots.ts"],"names":[],"mappings":"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"}
@@ -1,113 +0,0 @@
1
- /**
2
- * Tax / P&L Engine — Types
3
- *
4
- * ⚠️ DISCLAIMER: This module is for informational purposes only.
5
- * Tax laws vary by jurisdiction and change frequently. Always consult
6
- * a qualified tax professional before filing. This is NOT tax advice.
7
- *
8
- * Models IRS rules for crypto (US-centric, adaptable):
9
- * - FIFO / LIFO / Specific Identification cost basis methods
10
- * - Short-term capital gains: held < 365 days (taxed as ordinary income)
11
- * - Long-term capital gains: held ≥ 365 days (preferential rates)
12
- * - Wash sale rule: NOT currently applicable to crypto (as of 2024) — noted here
13
- * for awareness. If legislation changes, this engine will need updating.
14
- * - Yield / interest received = ordinary income (taxed at full rate)
15
- * - Gas fees = deductible as part of cost basis / selling expenses
16
- */
17
- export type TaxEventType = 'swap' | 'deposit' | 'withdrawal' | 'yield-received' | 'bridge' | 'gas-paid' | 'fiat-on-ramp';
18
- export type CostBasisMethod = 'fifo' | 'lifo' | 'specific-id';
19
- export type GainType = 'short-term' | 'long-term';
20
- export interface TaxLot {
21
- id: string;
22
- token: string;
23
- tokenAddress: string;
24
- chain: string;
25
- amount: bigint;
26
- costBasisUsd: number;
27
- costBasisPerUnit: number;
28
- acquiredAt: number;
29
- acquiredTxHash?: string;
30
- acquiredFrom: TaxEventType;
31
- }
32
- export interface TaxEvent {
33
- id: string;
34
- type: TaxEventType;
35
- timestamp: number;
36
- txHash?: string;
37
- chain: string;
38
- /** For swaps: token disposed of */
39
- disposedToken?: string;
40
- disposedAmount?: bigint;
41
- disposedValueUsd?: number;
42
- /** For swaps: token acquired */
43
- acquiredToken?: string;
44
- acquiredAmount?: bigint;
45
- acquiredValueUsd?: number;
46
- /** Gas paid in USD */
47
- gasPaidUsd?: number;
48
- /** Notes */
49
- notes?: string;
50
- }
51
- export interface RealizedGain {
52
- eventId: string;
53
- txHash?: string;
54
- timestamp: number;
55
- chain: string;
56
- token: string;
57
- /** Amount disposed */
58
- amountDisposed: bigint;
59
- /** Sale proceeds (market value at disposal) */
60
- proceedsUsd: number;
61
- /** Cost basis of lots disposed */
62
- costBasisUsd: number;
63
- /** Realized gain (proceeds - costBasis - fees) */
64
- realizedGainUsd: number;
65
- /** Short or long term */
66
- gainType: GainType;
67
- /** Lots used (for audit trail) */
68
- lotsUsed: Array<{
69
- lotId: string;
70
- amountUsed: bigint;
71
- costBasisUsed: number;
72
- }>;
73
- }
74
- export interface TaxSummary {
75
- year: number;
76
- totalProceeds: number;
77
- totalCostBasis: number;
78
- /** Short-term gains (< 1 year hold) */
79
- shortTermGain: number;
80
- /** Long-term gains (≥ 1 year hold) */
81
- longTermGain: number;
82
- /** Total net gain */
83
- totalNetGain: number;
84
- /** Total yield/interest received (ordinary income) */
85
- ordinaryIncome: number;
86
- /** Total gas fees paid (cost basis adjustments) */
87
- totalGasPaid: number;
88
- /** Number of taxable events */
89
- taxableEventCount: number;
90
- }
91
- export interface TaxExportRow {
92
- date: string;
93
- type: string;
94
- asset: string;
95
- amount: string;
96
- proceeds: string;
97
- costBasis: string;
98
- gain: string;
99
- gainType: string;
100
- txHash: string;
101
- chain: string;
102
- }
103
- export interface TaxEngineConfig {
104
- /** Cost basis method (default: 'fifo') */
105
- method?: CostBasisMethod;
106
- /** Tax year for summary (default: current year) */
107
- taxYear?: number;
108
- /** Your jurisdiction (default: 'US') */
109
- jurisdiction?: 'US' | 'EU' | 'UK' | 'OTHER';
110
- /** Track gas fees as deductible expenses (default: true) */
111
- trackGasFees?: boolean;
112
- }
113
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tax/types.ts"],"names":[],"mappings":"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"}
package/dist/tax/types.js DELETED
@@ -1,18 +0,0 @@
1
- /**
2
- * Tax / P&L Engine — Types
3
- *
4
- * ⚠️ DISCLAIMER: This module is for informational purposes only.
5
- * Tax laws vary by jurisdiction and change frequently. Always consult
6
- * a qualified tax professional before filing. This is NOT tax advice.
7
- *
8
- * Models IRS rules for crypto (US-centric, adaptable):
9
- * - FIFO / LIFO / Specific Identification cost basis methods
10
- * - Short-term capital gains: held < 365 days (taxed as ordinary income)
11
- * - Long-term capital gains: held ≥ 365 days (preferential rates)
12
- * - Wash sale rule: NOT currently applicable to crypto (as of 2024) — noted here
13
- * for awareness. If legislation changes, this engine will need updating.
14
- * - Yield / interest received = ordinary income (taxed at full rate)
15
- * - Gas fees = deductible as part of cost basis / selling expenses
16
- */
17
- export {};
18
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tax/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Yield Vault Module
3
- *
4
- * Puts idle agent capital to work across DeFi vaults and RWA tokens.
5
- *
6
- * Quick start:
7
- * import { YieldVault, YieldRateFetcher } from './yield/index.js';
8
- *
9
- * const vault = new YieldVault({ enabled: true });
10
- * const opportunities = await vault.scan({ token: 'USDC', amountUsd: 10_000 });
11
- * const best = opportunities.find(o => o.viable);
12
- * if (best) {
13
- * const tx = vault.buildDepositTx({
14
- * protocol: best.best.protocol,
15
- * token: 'USDC',
16
- * amount: 10_000_000_000n, // 10k USDC (6 decimals)
17
- * chain: best.best.chain,
18
- * walletAddress: '0xYourAgentWallet',
19
- * });
20
- * // agent signs + sends tx
21
- * }
22
- */
23
- export { YieldVault } from './vault.js';
24
- export { YieldRateFetcher, PROTOCOL_ADDRESSES } from './rates.js';
25
- export type { YieldProtocol, YieldCategory, YieldPosition, YieldRate, YieldOpportunity, YieldVaultConfig, DepositResult, WithdrawResult, } from './types.js';
26
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/yield/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAElE,YAAY,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Yield Vault Module
3
- *
4
- * Puts idle agent capital to work across DeFi vaults and RWA tokens.
5
- *
6
- * Quick start:
7
- * import { YieldVault, YieldRateFetcher } from './yield/index.js';
8
- *
9
- * const vault = new YieldVault({ enabled: true });
10
- * const opportunities = await vault.scan({ token: 'USDC', amountUsd: 10_000 });
11
- * const best = opportunities.find(o => o.viable);
12
- * if (best) {
13
- * const tx = vault.buildDepositTx({
14
- * protocol: best.best.protocol,
15
- * token: 'USDC',
16
- * amount: 10_000_000_000n, // 10k USDC (6 decimals)
17
- * chain: best.best.chain,
18
- * walletAddress: '0xYourAgentWallet',
19
- * });
20
- * // agent signs + sends tx
21
- * }
22
- */
23
- export { YieldVault } from './vault.js';
24
- export { YieldRateFetcher, PROTOCOL_ADDRESSES } from './rates.js';
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/yield/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,114 +0,0 @@
1
- /**
2
- * Yield Rate Fetcher
3
- *
4
- * Fetches current APY rates from DeFi protocols and RWA token sources.
5
- * When a provider is not supplied (tests, offline, no RPC), returns accurate
6
- * mock rates based on current market conditions (~Q1 2026).
7
- *
8
- * DeFi risk scores (0-100, lower = safer):
9
- * Aave V3: 15 — battle-tested, billions TVL, audited
10
- * Compound V3: 20 — mature, lower TVL than Aave
11
- * Morpho Blue: 25 — newer architecture, peer-to-peer matching
12
- *
13
- * RWA risk scores:
14
- * USDC-collateralized RWA: 10–20 (T-bill backed, regulated issuers)
15
- */
16
- import { ethers } from 'ethers';
17
- import type { YieldRate, YieldVaultConfig } from './types.js';
18
- export declare const PROTOCOL_ADDRESSES: {
19
- readonly 'aave-v3': {
20
- readonly ethereum: {
21
- readonly pool: "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2";
22
- readonly dataProvider: "0x7B4EB56E7CD4b454BA8ff71E4518426369a138a3";
23
- };
24
- readonly base: {
25
- readonly pool: "0xA238Dd80C259a72e81d7e4664a9801593F98d1c5";
26
- readonly dataProvider: "0x2d8A3C5677189723C4cB8873CfC9C8976ddf54D8";
27
- };
28
- readonly arbitrum: {
29
- readonly pool: "0x794a61358D6845594F94dc1DB02A252b5b4814aD";
30
- readonly dataProvider: "0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654";
31
- };
32
- };
33
- readonly 'compound-v3': {
34
- readonly ethereum: {
35
- readonly comet: "0xc3d688B66703497DAA19211EEdff47f25384cdc3";
36
- };
37
- readonly base: {
38
- readonly comet: "0xb125E6687d4313864e53df431d5425969c15Eb2";
39
- };
40
- readonly arbitrum: {
41
- readonly comet: "0x9c4ec768c28520B50860ea7a15bd7213a9fF58bf";
42
- };
43
- };
44
- readonly usdy: {
45
- readonly ethereum: {
46
- readonly token: "0x96F6eF951840721AdBF7B6A2Ce4A795F61F8f60a";
47
- };
48
- readonly arbitrum: {
49
- readonly token: "0x7fAb54cb9d83BDAF0e94b1C2bA96F64Fb7D86b7A";
50
- };
51
- };
52
- };
53
- export declare class YieldRateFetcher {
54
- /**
55
- * Fetch current supply APY for Aave V3.
56
- *
57
- * On-chain: queries getReserveData() on the Aave Data Provider.
58
- * currentLiquidityRate is in ray format (1e27 = 100% APY).
59
- * APY = (1 + rate / 1e27 / SECONDS_PER_YEAR)^SECONDS_PER_YEAR - 1
60
- *
61
- * Falls back to accurate mock rates when provider is not available.
62
- *
63
- * Risk score: 15 (battle-tested, billions TVL, multiple audits)
64
- */
65
- fetchAaveRate(token: string, chain: string, provider?: ethers.JsonRpcProvider): Promise<YieldRate>;
66
- /**
67
- * Fetch current supply APY for Compound V3.
68
- *
69
- * On-chain: calls getSupplyRate(utilization) on the Comet contract.
70
- * supplyRate is per-second (18 decimals).
71
- * APY = (1 + supplyRate / 1e18)^SECONDS_PER_YEAR - 1
72
- *
73
- * Risk score: 20 (mature protocol, lower TVL than Aave)
74
- */
75
- fetchCompoundRate(token: string, chain: string, provider?: ethers.JsonRpcProvider): Promise<YieldRate>;
76
- /**
77
- * Fetch APY for Morpho Blue.
78
- *
79
- * Morpho Blue uses peer-to-peer rate matching — on-chain query is complex
80
- * (varies per market). We use well-calibrated estimates based on current
81
- * market conditions. Real implementation would query Morpho's API or
82
- * aggregate across market IDs.
83
- *
84
- * Risk score: 25 (newer architecture, audited, growing TVL)
85
- */
86
- fetchMorphoRate(token: string, chain: string, _provider?: ethers.JsonRpcProvider): Promise<YieldRate>;
87
- /**
88
- * Get current RWA token rates.
89
- *
90
- * RWA tokens are backed by tokenized T-bills and short-duration government bonds.
91
- * Rates (~4.8–5.2% APY as of Q1 2026) track the Fed Funds rate.
92
- *
93
- * Agent-friendliness matrix:
94
- * ┌──────────┬──────────────┬───────────┬───────────────────────────────────┐
95
- * │ Protocol │ KYC Required │ Min Dep. │ Chains │
96
- * ├──────────┼──────────────┼───────────┼───────────────────────────────────┤
97
- * │ BUIDL │ ✅ YES │ $1,000,000│ Ethereum only │
98
- * │ OUSG │ ✅ YES │ ~$5,000 │ Ethereum, Base │
99
- * │ USDY │ ❌ NO │ ~$500 │ Ethereum, Arbitrum (best for bots)│
100
- * │ USYC │ ❌ NO │ ~$1,000 │ Ethereum, Base │
101
- * │ wUSTB │ ❌ NO │ ~$100 │ Ethereum │
102
- * └──────────┴──────────────┴───────────┴───────────────────────────────────┘
103
- *
104
- * ⚠️ BUIDL: $1M minimum is a HARD requirement. Do not recommend to retail agents.
105
- */
106
- fetchRWARates(chains: string[]): Promise<YieldRate[]>;
107
- /**
108
- * Fetch all rates across DeFi protocols and RWA tokens.
109
- * Applies config filters (KYC, chains, tokens).
110
- * Returns sorted by APY descending.
111
- */
112
- fetchAllRates(config: YieldVaultConfig): Promise<YieldRate[]>;
113
- }
114
- //# sourceMappingURL=rates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rates.d.ts","sourceRoot":"","sources":["../../src/yield/rates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBrB,CAAC;AAsDX,qBAAa,gBAAgB;IAC3B;;;;;;;;;;OAUG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,eAAe,GAChC,OAAO,CAAC,SAAS,CAAC;IAuCrB;;;;;;;;OAQG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,eAAe,GAChC,OAAO,CAAC,SAAS,CAAC;IAoCrB;;;;;;;;;OASG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,eAAe,GACjC,OAAO,CAAC,SAAS,CAAC;IAmBrB;;;;;;;;;;;;;;;;;;OAkBG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAgG3D;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAsCpE"}