agentwallet-sdk 5.0.3 → 5.0.5

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 (269) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +30 -32
  3. package/dist/index.d.ts +213 -284
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/x402/chains/stellar/index.d.ts +136 -0
  8. package/dist/x402/chains/stellar/index.d.ts.map +1 -0
  9. package/dist/x402/chains/stellar/index.js +190 -0
  10. package/dist/x402/chains/stellar/index.js.map +1 -0
  11. package/package.json +2 -2
  12. package/dist/ap2/index.d.ts +0 -185
  13. package/dist/ap2/index.d.ts.map +0 -1
  14. package/dist/ap2/index.js +0 -255
  15. package/dist/ap2/index.js.map +0 -1
  16. package/dist/bridge/unified.d.ts +0 -101
  17. package/dist/bridge/unified.d.ts.map +0 -1
  18. package/dist/bridge/unified.js +0 -284
  19. package/dist/bridge/unified.js.map +0 -1
  20. package/dist/chains.d.ts +0 -62
  21. package/dist/chains.d.ts.map +0 -1
  22. package/dist/chains.js +0 -108
  23. package/dist/chains.js.map +0 -1
  24. package/dist/fiat/index.d.ts +0 -10
  25. package/dist/fiat/index.d.ts.map +0 -1
  26. package/dist/fiat/index.js +0 -9
  27. package/dist/fiat/index.js.map +0 -1
  28. package/dist/fiat/onramp.d.ts +0 -101
  29. package/dist/fiat/onramp.d.ts.map +0 -1
  30. package/dist/fiat/onramp.js +0 -155
  31. package/dist/fiat/onramp.js.map +0 -1
  32. package/dist/fiat/providers/index.d.ts +0 -16
  33. package/dist/fiat/providers/index.d.ts.map +0 -1
  34. package/dist/fiat/providers/index.js +0 -30
  35. package/dist/fiat/providers/index.js.map +0 -1
  36. package/dist/fiat/providers/moonpay.d.ts +0 -22
  37. package/dist/fiat/providers/moonpay.d.ts.map +0 -1
  38. package/dist/fiat/providers/moonpay.js +0 -107
  39. package/dist/fiat/providers/moonpay.js.map +0 -1
  40. package/dist/fiat/providers/stripe.d.ts +0 -26
  41. package/dist/fiat/providers/stripe.d.ts.map +0 -1
  42. package/dist/fiat/providers/stripe.js +0 -135
  43. package/dist/fiat/providers/stripe.js.map +0 -1
  44. package/dist/fiat/providers/transak.d.ts +0 -26
  45. package/dist/fiat/providers/transak.d.ts.map +0 -1
  46. package/dist/fiat/providers/transak.js +0 -119
  47. package/dist/fiat/providers/transak.js.map +0 -1
  48. package/dist/fiat/types.d.ts +0 -106
  49. package/dist/fiat/types.d.ts.map +0 -1
  50. package/dist/fiat/types.js +0 -13
  51. package/dist/fiat/types.js.map +0 -1
  52. package/dist/flash/executor.d.ts +0 -119
  53. package/dist/flash/executor.d.ts.map +0 -1
  54. package/dist/flash/executor.js +0 -195
  55. package/dist/flash/executor.js.map +0 -1
  56. package/dist/flash/index.d.ts +0 -28
  57. package/dist/flash/index.d.ts.map +0 -1
  58. package/dist/flash/index.js +0 -29
  59. package/dist/flash/index.js.map +0 -1
  60. package/dist/flash/scanner.d.ts +0 -133
  61. package/dist/flash/scanner.d.ts.map +0 -1
  62. package/dist/flash/scanner.js +0 -212
  63. package/dist/flash/scanner.js.map +0 -1
  64. package/dist/flash/types.d.ts +0 -136
  65. package/dist/flash/types.d.ts.map +0 -1
  66. package/dist/flash/types.js +0 -23
  67. package/dist/flash/types.js.map +0 -1
  68. package/dist/gas/index.d.ts +0 -4
  69. package/dist/gas/index.d.ts.map +0 -1
  70. package/dist/gas/index.js +0 -3
  71. package/dist/gas/index.js.map +0 -1
  72. package/dist/gas/sponsor.d.ts +0 -70
  73. package/dist/gas/sponsor.d.ts.map +0 -1
  74. package/dist/gas/sponsor.js +0 -193
  75. package/dist/gas/sponsor.js.map +0 -1
  76. package/dist/gas/types.d.ts +0 -76
  77. package/dist/gas/types.d.ts.map +0 -1
  78. package/dist/gas/types.js +0 -21
  79. package/dist/gas/types.js.map +0 -1
  80. package/dist/identity/agent-identity.d.ts +0 -276
  81. package/dist/identity/agent-identity.d.ts.map +0 -1
  82. package/dist/identity/agent-identity.js +0 -300
  83. package/dist/identity/agent-identity.js.map +0 -1
  84. package/dist/identity/erc6551.d.ts +0 -441
  85. package/dist/identity/erc6551.d.ts.map +0 -1
  86. package/dist/identity/erc6551.js +0 -517
  87. package/dist/identity/erc6551.js.map +0 -1
  88. package/dist/mev/index.d.ts +0 -4
  89. package/dist/mev/index.d.ts.map +0 -1
  90. package/dist/mev/index.js +0 -8
  91. package/dist/mev/index.js.map +0 -1
  92. package/dist/mev/protection.d.ts +0 -54
  93. package/dist/mev/protection.d.ts.map +0 -1
  94. package/dist/mev/protection.js +0 -185
  95. package/dist/mev/protection.js.map +0 -1
  96. package/dist/mev/risk.d.ts +0 -19
  97. package/dist/mev/risk.d.ts.map +0 -1
  98. package/dist/mev/risk.js +0 -95
  99. package/dist/mev/risk.js.map +0 -1
  100. package/dist/mev/types.d.ts +0 -49
  101. package/dist/mev/types.d.ts.map +0 -1
  102. package/dist/mev/types.js +0 -2
  103. package/dist/mev/types.js.map +0 -1
  104. package/dist/plugins/elizaos.d.ts +0 -52
  105. package/dist/plugins/elizaos.d.ts.map +0 -1
  106. package/dist/plugins/elizaos.js +0 -89
  107. package/dist/plugins/elizaos.js.map +0 -1
  108. package/dist/settlement/index.d.ts +0 -4
  109. package/dist/settlement/index.d.ts.map +0 -1
  110. package/dist/settlement/index.js +0 -3
  111. package/dist/settlement/index.js.map +0 -1
  112. package/dist/settlement/types.d.ts +0 -66
  113. package/dist/settlement/types.d.ts.map +0 -1
  114. package/dist/settlement/types.js +0 -37
  115. package/dist/settlement/types.js.map +0 -1
  116. package/dist/settlement/verifier.d.ts +0 -75
  117. package/dist/settlement/verifier.d.ts.map +0 -1
  118. package/dist/settlement/verifier.js +0 -354
  119. package/dist/settlement/verifier.js.map +0 -1
  120. package/dist/solana/bridge.d.ts +0 -144
  121. package/dist/solana/bridge.d.ts.map +0 -1
  122. package/dist/solana/bridge.js +0 -352
  123. package/dist/solana/bridge.js.map +0 -1
  124. package/dist/solana/index.d.ts +0 -8
  125. package/dist/solana/index.d.ts.map +0 -1
  126. package/dist/solana/index.js +0 -6
  127. package/dist/solana/index.js.map +0 -1
  128. package/dist/solana/swap.d.ts +0 -85
  129. package/dist/solana/swap.d.ts.map +0 -1
  130. package/dist/solana/swap.js +0 -173
  131. package/dist/solana/swap.js.map +0 -1
  132. package/dist/solana/types.d.ts +0 -126
  133. package/dist/solana/types.d.ts.map +0 -1
  134. package/dist/solana/types.js +0 -10
  135. package/dist/solana/types.js.map +0 -1
  136. package/dist/solana/wallet.d.ts +0 -83
  137. package/dist/solana/wallet.d.ts.map +0 -1
  138. package/dist/solana/wallet.js +0 -164
  139. package/dist/solana/wallet.js.map +0 -1
  140. package/dist/solana/x402.d.ts +0 -69
  141. package/dist/solana/x402.d.ts.map +0 -1
  142. package/dist/solana/x402.js +0 -154
  143. package/dist/solana/x402.js.map +0 -1
  144. package/dist/solver/adapter.d.ts +0 -47
  145. package/dist/solver/adapter.d.ts.map +0 -1
  146. package/dist/solver/adapter.js +0 -146
  147. package/dist/solver/adapter.js.map +0 -1
  148. package/dist/solver/analyzer.d.ts +0 -48
  149. package/dist/solver/analyzer.d.ts.map +0 -1
  150. package/dist/solver/analyzer.js +0 -171
  151. package/dist/solver/analyzer.js.map +0 -1
  152. package/dist/solver/builder.d.ts +0 -31
  153. package/dist/solver/builder.d.ts.map +0 -1
  154. package/dist/solver/builder.js +0 -60
  155. package/dist/solver/builder.js.map +0 -1
  156. package/dist/solver/index.d.ts +0 -22
  157. package/dist/solver/index.d.ts.map +0 -1
  158. package/dist/solver/index.js +0 -25
  159. package/dist/solver/index.js.map +0 -1
  160. package/dist/solver/types.d.ts +0 -115
  161. package/dist/solver/types.d.ts.map +0 -1
  162. package/dist/solver/types.js +0 -10
  163. package/dist/solver/types.js.map +0 -1
  164. package/dist/spend-guard/index.d.ts +0 -125
  165. package/dist/spend-guard/index.d.ts.map +0 -1
  166. package/dist/spend-guard/index.js +0 -150
  167. package/dist/spend-guard/index.js.map +0 -1
  168. package/dist/swap/router/cache.d.ts +0 -13
  169. package/dist/swap/router/cache.d.ts.map +0 -1
  170. package/dist/swap/router/cache.js +0 -30
  171. package/dist/swap/router/cache.js.map +0 -1
  172. package/dist/swap/router/flashbots.d.ts +0 -10
  173. package/dist/swap/router/flashbots.d.ts.map +0 -1
  174. package/dist/swap/router/flashbots.js +0 -43
  175. package/dist/swap/router/flashbots.js.map +0 -1
  176. package/dist/swap/router/health.d.ts +0 -17
  177. package/dist/swap/router/health.d.ts.map +0 -1
  178. package/dist/swap/router/health.js +0 -38
  179. package/dist/swap/router/health.js.map +0 -1
  180. package/dist/swap/router/index.d.ts +0 -10
  181. package/dist/swap/router/index.d.ts.map +0 -1
  182. package/dist/swap/router/index.js +0 -10
  183. package/dist/swap/router/index.js.map +0 -1
  184. package/dist/swap/router/providers/cowswap.d.ts +0 -11
  185. package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
  186. package/dist/swap/router/providers/cowswap.js +0 -79
  187. package/dist/swap/router/providers/cowswap.js.map +0 -1
  188. package/dist/swap/router/providers/index.d.ts +0 -20
  189. package/dist/swap/router/providers/index.d.ts.map +0 -1
  190. package/dist/swap/router/providers/index.js +0 -32
  191. package/dist/swap/router/providers/index.js.map +0 -1
  192. package/dist/swap/router/providers/jupiter.d.ts +0 -12
  193. package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
  194. package/dist/swap/router/providers/jupiter.js +0 -73
  195. package/dist/swap/router/providers/jupiter.js.map +0 -1
  196. package/dist/swap/router/providers/lifi.d.ts +0 -11
  197. package/dist/swap/router/providers/lifi.d.ts.map +0 -1
  198. package/dist/swap/router/providers/lifi.js +0 -123
  199. package/dist/swap/router/providers/lifi.js.map +0 -1
  200. package/dist/swap/router/providers/oneinch.d.ts +0 -13
  201. package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
  202. package/dist/swap/router/providers/oneinch.js +0 -71
  203. package/dist/swap/router/providers/oneinch.js.map +0 -1
  204. package/dist/swap/router/providers/paraswap.d.ts +0 -11
  205. package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
  206. package/dist/swap/router/providers/paraswap.js +0 -73
  207. package/dist/swap/router/providers/paraswap.js.map +0 -1
  208. package/dist/swap/router/providers/uniswap.d.ts +0 -31
  209. package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
  210. package/dist/swap/router/providers/uniswap.js +0 -237
  211. package/dist/swap/router/providers/uniswap.js.map +0 -1
  212. package/dist/swap/router/providers/zerox.d.ts +0 -13
  213. package/dist/swap/router/providers/zerox.d.ts.map +0 -1
  214. package/dist/swap/router/providers/zerox.js +0 -94
  215. package/dist/swap/router/providers/zerox.js.map +0 -1
  216. package/dist/swap/router/router.d.ts +0 -86
  217. package/dist/swap/router/router.d.ts.map +0 -1
  218. package/dist/swap/router/router.js +0 -224
  219. package/dist/swap/router/router.js.map +0 -1
  220. package/dist/swap/router/rsi/engine.d.ts +0 -60
  221. package/dist/swap/router/rsi/engine.d.ts.map +0 -1
  222. package/dist/swap/router/rsi/engine.js +0 -483
  223. package/dist/swap/router/rsi/engine.js.map +0 -1
  224. package/dist/swap/router/rsi/index.d.ts +0 -3
  225. package/dist/swap/router/rsi/index.d.ts.map +0 -1
  226. package/dist/swap/router/rsi/index.js +0 -3
  227. package/dist/swap/router/rsi/index.js.map +0 -1
  228. package/dist/swap/router/rsi/types.d.ts +0 -106
  229. package/dist/swap/router/rsi/types.d.ts.map +0 -1
  230. package/dist/swap/router/rsi/types.js +0 -3
  231. package/dist/swap/router/rsi/types.js.map +0 -1
  232. package/dist/swap/router/types.d.ts +0 -120
  233. package/dist/swap/router/types.d.ts.map +0 -1
  234. package/dist/swap/router/types.js +0 -16
  235. package/dist/swap/router/types.js.map +0 -1
  236. package/dist/tax/engine.d.ts +0 -131
  237. package/dist/tax/engine.d.ts.map +0 -1
  238. package/dist/tax/engine.js +0 -307
  239. package/dist/tax/engine.js.map +0 -1
  240. package/dist/tax/index.d.ts +0 -9
  241. package/dist/tax/index.d.ts.map +0 -1
  242. package/dist/tax/index.js +0 -12
  243. package/dist/tax/index.js.map +0 -1
  244. package/dist/tax/lots.d.ts +0 -60
  245. package/dist/tax/lots.d.ts.map +0 -1
  246. package/dist/tax/lots.js +0 -129
  247. package/dist/tax/lots.js.map +0 -1
  248. package/dist/tax/types.d.ts +0 -113
  249. package/dist/tax/types.d.ts.map +0 -1
  250. package/dist/tax/types.js +0 -18
  251. package/dist/tax/types.js.map +0 -1
  252. package/dist/verifiable-intent/index.d.ts +0 -84
  253. package/dist/verifiable-intent/index.js +0 -385
  254. package/dist/yield/index.d.ts +0 -26
  255. package/dist/yield/index.d.ts.map +0 -1
  256. package/dist/yield/index.js +0 -29
  257. package/dist/yield/index.js.map +0 -1
  258. package/dist/yield/rates.d.ts +0 -114
  259. package/dist/yield/rates.d.ts.map +0 -1
  260. package/dist/yield/rates.js +0 -351
  261. package/dist/yield/rates.js.map +0 -1
  262. package/dist/yield/types.d.ts +0 -134
  263. package/dist/yield/types.d.ts.map +0 -1
  264. package/dist/yield/types.js +0 -24
  265. package/dist/yield/types.js.map +0 -1
  266. package/dist/yield/vault.d.ts +0 -112
  267. package/dist/yield/vault.d.ts.map +0 -1
  268. package/dist/yield/vault.js +0 -264
  269. package/dist/yield/vault.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/swap/router/router.ts"],"names":[],"mappings":"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"}
@@ -1,224 +0,0 @@
1
- import { buildDefaultProviders } from './providers/index.js';
2
- import { QuoteCache } from './cache.js';
3
- import { ProviderHealthTracker } from './health.js';
4
- import { FlashbotsProtectRpc } from './flashbots.js';
5
- import { SwapRSIEngine } from './rsi/engine.js';
6
- const DEFAULT_TIMEOUT_MS = 5000;
7
- const DEFAULT_STRATEGY = 'best-net-output';
8
- const DEFAULT_SLIPPAGE_BPS = 50;
9
- const DEFAULT_CACHE_TTL_MS = 3000;
10
- // ─── Strategy Scoring ────────────────────────────────────────────────────────
11
- export function scoreQuote(quote, strategy) {
12
- // If we have USD pricing info, use normalized scoring
13
- if (quote.toTokenDecimals !== undefined && quote.toTokenPriceUsd !== undefined) {
14
- const outputUsd = (Number(quote.toAmount) / Math.pow(10, quote.toTokenDecimals)) * quote.toTokenPriceUsd;
15
- const slippageCostUsd = outputUsd * (quote.priceImpact / 100);
16
- switch (strategy) {
17
- case 'best-net-output':
18
- return outputUsd - quote.gasEstimateUsd - slippageCostUsd;
19
- case 'fastest':
20
- return -quote.estimatedTimeMs;
21
- case 'lowest-gas':
22
- return -quote.gasEstimateUsd;
23
- case 'mev-protected':
24
- return quote.mevProtected
25
- ? (outputUsd - quote.gasEstimateUsd) * 1.01
26
- : outputUsd - quote.gasEstimateUsd;
27
- }
28
- }
29
- // Fallback: original scoring (for quotes without USD info)
30
- switch (strategy) {
31
- case 'best-net-output':
32
- return Number(quote.toAmount) - quote.gasEstimateUsd * 1e6;
33
- case 'fastest':
34
- return -quote.estimatedTimeMs;
35
- case 'lowest-gas':
36
- return -Number(quote.gasEstimate);
37
- case 'mev-protected':
38
- return quote.mevProtected ? Number(quote.toAmount) * 1.01 : Number(quote.toAmount);
39
- }
40
- }
41
- // ─── SmartSwapRouter ─────────────────────────────────────────────────────────
42
- export class SmartSwapRouter {
43
- constructor(config = {}) {
44
- this.strategy = config.strategy ?? DEFAULT_STRATEGY;
45
- this.timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
46
- this.slippageBps = config.slippageBps ?? DEFAULT_SLIPPAGE_BPS;
47
- this.includeProviders = config.providers ? new Set(config.providers) : null;
48
- this.excludeProviders = new Set(config.excludeProviders ?? []);
49
- const ttl = config.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;
50
- this.cache = ttl > 0 ? new QuoteCache(ttl) : null;
51
- this.health = new ProviderHealthTracker(config.healthMaxFailures ?? 3, config.healthCooldownMs ?? 60000);
52
- this.providers = buildDefaultProviders({
53
- oneInchApiKey: config.oneInchApiKey,
54
- zeroxApiKey: config.zeroxApiKey,
55
- fetchers: config.fetchers,
56
- });
57
- // [MAX-ADDED] RSI engine — opt-in, disabled by default
58
- if (config.rsi?.enabled) {
59
- this.rsiEngine = new SwapRSIEngine(config.rsi, config.goals);
60
- }
61
- }
62
- /**
63
- * Get quotes from all applicable providers in parallel, ranked by strategy.
64
- * Providers that fail or don't support the chain/pair return null and are skipped.
65
- * Results are cached for cacheTtlMs (default 3s) to deduplicate burst requests.
66
- */
67
- async getQuotes(params) {
68
- // Cache check
69
- if (this.cache) {
70
- const cached = this.cache.get(params);
71
- if (cached)
72
- return cached;
73
- }
74
- const chain = params.chain.toLowerCase();
75
- const enrichedParams = {
76
- ...params,
77
- slippageBps: params.slippageBps ?? this.slippageBps,
78
- };
79
- // Filter providers for this chain + health status
80
- const eligible = this.providers.filter((p) => {
81
- if (this.excludeProviders.has(p.name))
82
- return false;
83
- if (this.includeProviders && !this.includeProviders.has(p.name))
84
- return false;
85
- if (!p.supportedChains.includes(chain))
86
- return false;
87
- return this.health.isHealthy(p.name);
88
- });
89
- if (eligible.length === 0)
90
- return [];
91
- // Query all in parallel with timeout
92
- const results = await Promise.allSettled(eligible.map((p) => p.getQuote(enrichedParams, this.timeoutMs)));
93
- const quotes = [];
94
- for (let i = 0; i < results.length; i++) {
95
- const r = results[i];
96
- const providerName = eligible[i].name;
97
- if (r.status === 'fulfilled' && r.value !== null) {
98
- this.health.recordSuccess(providerName);
99
- quotes.push(r.value);
100
- }
101
- else if (r.status === 'rejected') {
102
- this.health.recordFailure(providerName);
103
- }
104
- // null result (unsupported) → don't penalize health
105
- }
106
- // Rank by strategy
107
- quotes.sort((a, b) => scoreQuote(b, this.strategy) - scoreQuote(a, this.strategy));
108
- // [MAX-ADDED] Apply RSI learned weights if engine is active
109
- if (this.rsiEngine) {
110
- const weights = this.rsiEngine.getProviderWeights(chain, params.fromToken, params.toToken);
111
- for (const q of quotes) {
112
- const w = weights[q.provider] ?? 1.0;
113
- if (w !== 1.0) {
114
- q.netOutput = BigInt(Math.round(Number(q.netOutput) * w));
115
- }
116
- }
117
- // Re-sort after weight adjustment
118
- quotes.sort((a, b) => scoreQuote(b, this.strategy) - scoreQuote(a, this.strategy));
119
- // Check directives
120
- const directiveResult = this.rsiEngine.evaluateDirectives({ chain });
121
- if (!directiveResult.proceed) {
122
- // Return empty — directive blocks this swap (e.g. gas too high)
123
- return [];
124
- }
125
- }
126
- // Store in cache
127
- if (this.cache) {
128
- this.cache.set(params, quotes);
129
- }
130
- return quotes;
131
- }
132
- /**
133
- * Execute the best quote (or a specific one) via the provided wallet.
134
- * Supports pre-flight simulation, Flashbots Protect routing, and receipt confirmation.
135
- */
136
- async executeSwap(quote, wallet, options) {
137
- if (!quote.txData) {
138
- throw new Error(`SmartSwapRouter: Quote from '${quote.provider}' does not include txData. ` +
139
- `Use the provider's SDK directly to execute, or re-quote with a fromAddress.`);
140
- }
141
- // Pre-flight simulation
142
- if (options?.simulate !== false && wallet.simulateTransaction) {
143
- const sim = await wallet.simulateTransaction(quote.txData);
144
- if (!sim.success) {
145
- throw new Error(`SmartSwapRouter: Simulation failed — ${sim.error}. Transaction not sent.`);
146
- }
147
- }
148
- let txHash;
149
- // Flashbots Protect routing (Ethereum mainnet only)
150
- if (options?.flashbotsProtect && quote.txData) {
151
- if (!wallet.signTransaction) {
152
- throw new Error('SmartSwapRouter: flashbotsProtect requires wallet.signTransaction()');
153
- }
154
- const signedTx = await wallet.signTransaction(quote.txData);
155
- const flashbots = new FlashbotsProtectRpc();
156
- txHash = await flashbots.sendTransaction(signedTx);
157
- }
158
- else {
159
- if (!wallet.sendTransaction) {
160
- throw new Error('SmartSwapRouter: wallet must implement sendTransaction()');
161
- }
162
- txHash = await wallet.sendTransaction(quote.txData);
163
- }
164
- // Optional receipt confirmation
165
- if (options?.waitForReceipt && wallet.waitForTransaction) {
166
- const receipt = await wallet.waitForTransaction(txHash, options.confirmations ?? 1);
167
- return {
168
- txHash,
169
- quote,
170
- chain: 'unknown',
171
- receipt,
172
- success: receipt.status === 'success',
173
- };
174
- }
175
- return {
176
- txHash,
177
- quote,
178
- chain: 'unknown',
179
- };
180
- }
181
- /**
182
- * Return provider names that support the given chain.
183
- */
184
- getProviders(chain) {
185
- const lower = chain.toLowerCase();
186
- return this.providers
187
- .filter((p) => p.supportedChains.includes(lower))
188
- .map((p) => p.name);
189
- }
190
- /**
191
- * Return all chains supported by at least one provider.
192
- */
193
- getSupportedChains() {
194
- const chains = new Set();
195
- this.providers.forEach((p) => p.supportedChains.forEach((c) => chains.add(c)));
196
- return Array.from(chains).sort();
197
- }
198
- /**
199
- * Score a quote with the router's current strategy (exposed for testing/comparison).
200
- */
201
- scoreQuote(quote) {
202
- return scoreQuote(quote, this.strategy);
203
- }
204
- /**
205
- * Return health stats for all tracked providers.
206
- */
207
- getProviderHealth() {
208
- return this.health.getStats();
209
- }
210
- // ── [MAX-ADDED] RSI Engine access ──────────────────────────────────────────
211
- /** Get the RSI engine instance (if enabled) */
212
- getRSIEngine() {
213
- return this.rsiEngine;
214
- }
215
- /** Load previously persisted RSI state */
216
- loadRSIState(state) {
217
- this.rsiEngine?.loadState(state);
218
- }
219
- /** Export current RSI state for persistence */
220
- exportRSIState() {
221
- return this.rsiEngine?.exportState();
222
- }
223
- }
224
- //# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/swap/router/router.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import type { RSIConfig, RSIState, WalletGoals, WalletDirective, SwapOutcome, MutationResult } from './types.js';
2
- export declare class SwapRSIEngine {
3
- private state;
4
- private config;
5
- private pendingOutcomes;
6
- constructor(config: RSIConfig, goals?: WalletGoals);
7
- /** Record a swap outcome. Triggers mutation cycle when learningWindow is reached. */
8
- recordOutcome(outcome: SwapOutcome): MutationResult | null;
9
- /** Get learned provider weight for a specific chain+pair.
10
- * Returns multiplier (1.0 = neutral, >1 = preferred, <1 = deprioritized) */
11
- getProviderWeight(provider: string, chain: string, fromToken: string, toToken: string): number;
12
- /** Get all provider weights for a chain+pair (for SmartSwapRouter integration).
13
- * Builds a merged map: pair weights override chain weights override global weights. */
14
- getProviderWeights(chain: string, fromToken: string, toToken: string): Record<string, number>;
15
- /** Analyze recent outcomes and adjust provider weights */
16
- runMutationCycle(): MutationResult;
17
- private calculateSavingsVsBaseline;
18
- private calculateWinRates;
19
- private calculateQuoteAccuracy;
20
- private calculateAvgLatency;
21
- /** Check if a swap should proceed based on directives */
22
- evaluateDirectives(params: {
23
- chain: string;
24
- gasGwei?: number;
25
- amountUsd?: number;
26
- }): {
27
- proceed: boolean;
28
- reason?: string;
29
- adjustments?: Record<string, number>;
30
- };
31
- /** Detect arbitrage opportunities from recent quotes */
32
- detectArbOpportunities(quotes: Array<{
33
- provider: string;
34
- toAmount: bigint;
35
- }>): {
36
- detected: boolean;
37
- spreadBps: number;
38
- bestProvider: string;
39
- worstProvider: string;
40
- } | null;
41
- /** Add or replace a directive */
42
- setDirective(directive: WalletDirective): void;
43
- /** Get all directives */
44
- getDirectives(): WalletDirective[];
45
- /** Export full state for persistence */
46
- exportState(): RSIState;
47
- /** Load state from previous session */
48
- loadState(state: RSIState): void;
49
- /** Get current goals */
50
- getGoals(): WalletGoals;
51
- /** Update goals */
52
- setGoals(goals: WalletGoals): void;
53
- /** Get mutation history */
54
- getMutationHistory(): MutationResult[];
55
- /** Get total outcomes recorded */
56
- getTotalOutcomes(): number;
57
- /** Reset all learned weights back to 1.0 */
58
- resetWeights(): void;
59
- }
60
- //# sourceMappingURL=engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/swap/router/rsi/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,eAAe,EACf,WAAW,EACX,cAAc,EAEf,MAAM,YAAY,CAAC;AAiBpB,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,eAAe,CAAqB;gBAEhC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,WAAW;IA4BlD,qFAAqF;IACrF,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI;IAmB1D;iFAC6E;IAC7E,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM;IAaT;4FACwF;IACxF,kBAAkB,CAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAwBzB,0DAA0D;IAC1D,gBAAgB,IAAI,cAAc;IAmOlC,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAoB3B,yDAAyD;IACzD,kBAAkB,CAAC,MAAM,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC;IAqDD,wDAAwD;IACxD,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG;QAC7E,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,IAAI;IAiCR,iCAAiC;IACjC,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAS9C,yBAAyB;IACzB,aAAa,IAAI,eAAe,EAAE;IAMlC,wCAAwC;IACxC,WAAW,IAAI,QAAQ;IAIvB,uCAAuC;IACvC,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAIhC,wBAAwB;IACxB,QAAQ,IAAI,WAAW;IAIvB,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIlC,2BAA2B;IAC3B,kBAAkB,IAAI,cAAc,EAAE;IAItC,kCAAkC;IAClC,gBAAgB,IAAI,MAAM;IAI1B,4CAA4C;IAC5C,YAAY,IAAI,IAAI;CAGrB"}