curvance 4.1.2 → 5.1.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 (115) hide show
  1. package/README.md +65 -10
  2. package/dist/abis/OptimizerReader.json +43 -45
  3. package/dist/abis/ProtocolReader.json +279 -55
  4. package/dist/chains/arbitrum.js +3 -3
  5. package/dist/chains/arbitrum.js.map +1 -1
  6. package/dist/classes/Api.d.ts +2 -2
  7. package/dist/classes/Api.d.ts.map +1 -1
  8. package/dist/classes/Api.js +87 -14
  9. package/dist/classes/Api.js.map +1 -1
  10. package/dist/classes/BorrowableCToken.d.ts +9 -1
  11. package/dist/classes/BorrowableCToken.d.ts.map +1 -1
  12. package/dist/classes/BorrowableCToken.js +67 -12
  13. package/dist/classes/BorrowableCToken.js.map +1 -1
  14. package/dist/classes/CToken.d.ts +210 -21
  15. package/dist/classes/CToken.d.ts.map +1 -1
  16. package/dist/classes/CToken.js +692 -284
  17. package/dist/classes/CToken.js.map +1 -1
  18. package/dist/classes/Calldata.d.ts +2 -2
  19. package/dist/classes/Calldata.d.ts.map +1 -1
  20. package/dist/classes/Calldata.js +6 -2
  21. package/dist/classes/Calldata.js.map +1 -1
  22. package/dist/classes/DexAggregators/IDexAgg.d.ts +1 -1
  23. package/dist/classes/DexAggregators/Kuru.js +1 -1
  24. package/dist/classes/DexAggregators/Kuru.js.map +1 -1
  25. package/dist/classes/DexAggregators/KyberSwap.d.ts.map +1 -1
  26. package/dist/classes/DexAggregators/KyberSwap.js +112 -61
  27. package/dist/classes/DexAggregators/KyberSwap.js.map +1 -1
  28. package/dist/classes/DexAggregators/MultiDexAgg.d.ts +2 -2
  29. package/dist/classes/DexAggregators/MultiDexAgg.d.ts.map +1 -1
  30. package/dist/classes/DexAggregators/MultiDexAgg.js +30 -18
  31. package/dist/classes/DexAggregators/MultiDexAgg.js.map +1 -1
  32. package/dist/classes/DexAggregators/UnsupportedDexAgg.d.ts +19 -0
  33. package/dist/classes/DexAggregators/UnsupportedDexAgg.d.ts.map +1 -0
  34. package/dist/classes/DexAggregators/UnsupportedDexAgg.js +29 -0
  35. package/dist/classes/DexAggregators/UnsupportedDexAgg.js.map +1 -0
  36. package/dist/classes/DexAggregators/helpers.d.ts +30 -0
  37. package/dist/classes/DexAggregators/helpers.d.ts.map +1 -0
  38. package/dist/classes/DexAggregators/helpers.js +57 -0
  39. package/dist/classes/DexAggregators/helpers.js.map +1 -0
  40. package/dist/classes/DexAggregators/index.d.ts +2 -0
  41. package/dist/classes/DexAggregators/index.d.ts.map +1 -1
  42. package/dist/classes/DexAggregators/index.js +1 -0
  43. package/dist/classes/DexAggregators/index.js.map +1 -1
  44. package/dist/classes/ERC20.d.ts +3 -3
  45. package/dist/classes/ERC20.d.ts.map +1 -1
  46. package/dist/classes/ERC20.js +26 -10
  47. package/dist/classes/ERC20.js.map +1 -1
  48. package/dist/classes/FormatConverter.d.ts.map +1 -1
  49. package/dist/classes/FormatConverter.js +4 -1
  50. package/dist/classes/FormatConverter.js.map +1 -1
  51. package/dist/classes/Market.d.ts +46 -8
  52. package/dist/classes/Market.d.ts.map +1 -1
  53. package/dist/classes/Market.js +342 -111
  54. package/dist/classes/Market.js.map +1 -1
  55. package/dist/classes/NativeToken.d.ts +2 -2
  56. package/dist/classes/NativeToken.d.ts.map +1 -1
  57. package/dist/classes/NativeToken.js +21 -7
  58. package/dist/classes/NativeToken.js.map +1 -1
  59. package/dist/classes/OptimizerReader.d.ts +15 -7
  60. package/dist/classes/OptimizerReader.d.ts.map +1 -1
  61. package/dist/classes/OptimizerReader.js +108 -30
  62. package/dist/classes/OptimizerReader.js.map +1 -1
  63. package/dist/classes/OracleManager.d.ts.map +1 -1
  64. package/dist/classes/OracleManager.js +11 -4
  65. package/dist/classes/OracleManager.js.map +1 -1
  66. package/dist/classes/PositionManager.d.ts.map +1 -1
  67. package/dist/classes/PositionManager.js +1 -3
  68. package/dist/classes/PositionManager.js.map +1 -1
  69. package/dist/classes/ProtocolReader.d.ts +30 -9
  70. package/dist/classes/ProtocolReader.d.ts.map +1 -1
  71. package/dist/classes/ProtocolReader.js +158 -138
  72. package/dist/classes/ProtocolReader.js.map +1 -1
  73. package/dist/classes/Zapper.d.ts +5 -5
  74. package/dist/classes/Zapper.d.ts.map +1 -1
  75. package/dist/classes/Zapper.js +21 -18
  76. package/dist/classes/Zapper.js.map +1 -1
  77. package/dist/contracts/monad-mainnet.json +1 -1
  78. package/dist/feePolicy.d.ts +2 -0
  79. package/dist/feePolicy.d.ts.map +1 -1
  80. package/dist/feePolicy.js +19 -0
  81. package/dist/feePolicy.js.map +1 -1
  82. package/dist/format/borrow.d.ts.map +1 -1
  83. package/dist/format/borrow.js +7 -1
  84. package/dist/format/borrow.js.map +1 -1
  85. package/dist/format/health.d.ts +3 -2
  86. package/dist/format/health.d.ts.map +1 -1
  87. package/dist/format/health.js +10 -9
  88. package/dist/format/health.js.map +1 -1
  89. package/dist/format/leverage.js +5 -4
  90. package/dist/format/leverage.js.map +1 -1
  91. package/dist/helpers.d.ts +14 -11
  92. package/dist/helpers.d.ts.map +1 -1
  93. package/dist/helpers.js +171 -52
  94. package/dist/helpers.js.map +1 -1
  95. package/dist/integrations/merkl.d.ts +2 -1
  96. package/dist/integrations/merkl.d.ts.map +1 -1
  97. package/dist/integrations/merkl.js +199 -4
  98. package/dist/integrations/merkl.js.map +1 -1
  99. package/dist/integrations/snapshot.d.ts +28 -24
  100. package/dist/integrations/snapshot.d.ts.map +1 -1
  101. package/dist/integrations/snapshot.js +106 -42
  102. package/dist/integrations/snapshot.js.map +1 -1
  103. package/dist/retry-provider.d.ts +6 -0
  104. package/dist/retry-provider.d.ts.map +1 -1
  105. package/dist/retry-provider.js +103 -11
  106. package/dist/retry-provider.js.map +1 -1
  107. package/dist/setup.d.ts +8 -6
  108. package/dist/setup.d.ts.map +1 -1
  109. package/dist/setup.js +125 -45
  110. package/dist/setup.js.map +1 -1
  111. package/dist/validation.d.ts +1 -1
  112. package/dist/validation.d.ts.map +1 -1
  113. package/dist/validation.js +13 -7
  114. package/dist/validation.js.map +1 -1
  115. package/package.json +6 -3
@@ -1,15 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.KyberSwap = void 0;
7
4
  const setup_1 = require("../../setup");
8
5
  const helpers_1 = require("../../helpers");
9
- const ERC20_1 = require("../ERC20");
10
- const FormatConverter_1 = __importDefault(require("../FormatConverter"));
11
6
  const validation_1 = require("../../validation");
12
7
  const ethers_1 = require("ethers");
8
+ const helpers_2 = require("./helpers");
13
9
  // ── Calldata validation ─────────────────────────────────────────────
14
10
  // The KyberSwap API returns an opaque calldata blob. We trust the API to
15
11
  // embed the fee params we requested, but verify before submitting the tx.
@@ -20,31 +16,60 @@ const ethers_1 = require("ethers");
20
16
  * API always sets on Monad. Router-inert (consumed by executor only).
21
17
  * Must match KyberSwapChecker.REQUIRED_FLAGS on-chain. */
22
18
  const REQUIRED_FLAGS = 0x280n;
23
- /** ABI type string for KyberSwap's SwapExecutionParams struct. */
19
+ const CHECKER_FEE_BPS = 4n;
20
+ const KYBER_SWAP_SELECTOR = '0xe21fd0e9';
21
+ /** ABI type string for KyberSwap MetaAggregationRouterV2's SwapExecutionParams struct. */
24
22
  const SWAP_PARAMS_TYPE = 'tuple(address callTarget, address approveTarget, ' +
23
+ 'bytes targetData, ' +
25
24
  'tuple(address srcToken, address dstToken, address[] srcReceivers, ' +
26
25
  'uint256[] srcAmounts, address[] feeReceivers, uint256[] feeAmounts, ' +
27
26
  'address dstReceiver, uint256 amount, uint256 minReturnAmount, ' +
28
27
  'uint256 flags, bytes permit) desc, ' +
29
- 'bytes targetData, bytes clientData)';
28
+ 'bytes clientData)';
29
+ function normalizeCalldataAddress(value, context) {
30
+ return (0, validation_1.validateAddress)(value, context).toLowerCase();
31
+ }
32
+ function validateEqualAddress(actual, expected, context) {
33
+ if (normalizeCalldataAddress(actual, context) !== normalizeCalldataAddress(expected, `${context} expected`)) {
34
+ throw new Error(`KyberSwap calldata ${context}=${actual}, expected ${expected}`);
35
+ }
36
+ }
37
+ function validateRecipientAddress(actual, expected) {
38
+ const normalizedActual = normalizeCalldataAddress(actual, 'dstReceiver');
39
+ if (normalizedActual === helpers_1.EMPTY_ADDRESS.toLowerCase()) {
40
+ return;
41
+ }
42
+ if (normalizedActual !== normalizeCalldataAddress(expected, 'dstReceiver expected')) {
43
+ throw new Error(`KyberSwap calldata dstReceiver=${actual}, expected ${expected}`);
44
+ }
45
+ }
30
46
  /**
31
- * Decode and validate fee-related fields in KyberSwap swap calldata.
47
+ * Decode and validate checker-bound fields in KyberSwap swap calldata.
32
48
  * Catches API misconfigurations before the tx hits the on-chain checker.
33
49
  *
34
50
  * @param calldata - Raw calldata from KyberSwap build API
35
- * @param feeBps - Expected fee BPS (0n to skip fee validation)
36
- * @param feeReceiver - Expected fee receiver address (undefined to skip)
51
+ * @param expected - Swap parameters the build calldata must preserve
37
52
  */
38
- function validateSwapCalldata(calldata, feeBps, feeReceiver) {
39
- // No fee configured — nothing to validate in the calldata
40
- if (!feeBps || feeBps === 0n || !feeReceiver)
41
- return;
53
+ function validateSwapCalldata(calldata, expected) {
42
54
  try {
55
+ const selector = calldata.slice(0, 10).toLowerCase();
56
+ if (selector !== KYBER_SWAP_SELECTOR) {
57
+ throw new Error(`KyberSwap calldata selector=${selector}, expected ${KYBER_SWAP_SELECTOR}`);
58
+ }
43
59
  // Strip 4-byte selector (0x + 8 hex chars = 10 chars)
44
60
  const encoded = '0x' + calldata.slice(10);
45
61
  const coder = ethers_1.AbiCoder.defaultAbiCoder();
46
62
  const [execution] = coder.decode([SWAP_PARAMS_TYPE], encoded);
47
63
  const desc = execution.desc;
64
+ validateEqualAddress(desc.srcToken, expected.tokenIn, 'srcToken');
65
+ validateEqualAddress(desc.dstToken, expected.tokenOut, 'dstToken');
66
+ validateRecipientAddress(desc.dstReceiver, expected.recipient);
67
+ if (BigInt(desc.amount) !== expected.amount) {
68
+ throw new Error(`KyberSwap calldata amount=${desc.amount}, expected ${expected.amount}`);
69
+ }
70
+ if (BigInt(desc.minReturnAmount) < expected.minReturnAmount) {
71
+ throw new Error(`KyberSwap calldata minReturnAmount=${desc.minReturnAmount}, expected at least ${expected.minReturnAmount}`);
72
+ }
48
73
  // Validate _FEE_IN_BPS flag — without it, feeAmounts[0]=4 means
49
74
  // 4 wei instead of 4 BPS
50
75
  const flags = BigInt(desc.flags);
@@ -53,17 +78,44 @@ function validateSwapCalldata(calldata, feeBps, feeReceiver) {
53
78
  `expected ${REQUIRED_FLAGS} (0x${REQUIRED_FLAGS.toString(16)}). ` +
54
79
  `Without _FEE_IN_BPS, fee is interpreted as absolute tokens.`);
55
80
  }
81
+ if (normalizeCalldataAddress(execution.approveTarget, 'approveTarget') !== helpers_1.EMPTY_ADDRESS.toLowerCase()) {
82
+ throw new Error(`KyberSwap calldata approveTarget=${execution.approveTarget}, expected ${helpers_1.EMPTY_ADDRESS}`);
83
+ }
84
+ if (normalizeCalldataAddress(execution.callTarget, 'callTarget') === helpers_1.EMPTY_ADDRESS.toLowerCase()) {
85
+ throw new Error(`KyberSwap calldata callTarget cannot be ${helpers_1.EMPTY_ADDRESS}`);
86
+ }
87
+ if (execution.targetData.length === 0 || execution.targetData === '0x') {
88
+ throw new Error('KyberSwap calldata targetData cannot be empty');
89
+ }
90
+ if (desc.permit.length !== 0 && desc.permit !== '0x') {
91
+ throw new Error('KyberSwap calldata permit must be empty');
92
+ }
93
+ if (desc.srcReceivers.length === 0 || desc.srcReceivers.length !== desc.srcAmounts.length) {
94
+ throw new Error(`KyberSwap calldata srcReceivers/srcAmounts length mismatch: ${desc.srcReceivers.length}/${desc.srcAmounts.length}`);
95
+ }
96
+ for (const receiver of desc.srcReceivers) {
97
+ if (normalizeCalldataAddress(receiver, 'srcReceiver') === helpers_1.EMPTY_ADDRESS.toLowerCase()) {
98
+ throw new Error(`KyberSwap calldata srcReceiver cannot be ${helpers_1.EMPTY_ADDRESS}`);
99
+ }
100
+ }
101
+ const totalSourceAmount = desc.srcAmounts.reduce((total, amount) => total + BigInt(amount), 0n);
102
+ if (totalSourceAmount !== expected.amount) {
103
+ throw new Error(`KyberSwap calldata srcAmounts total=${totalSourceAmount}, expected ${expected.amount}`);
104
+ }
56
105
  // Validate fee receiver
57
106
  if (desc.feeReceivers.length !== 1) {
58
107
  throw new Error(`KyberSwap calldata has ${desc.feeReceivers.length} fee receivers, expected 1`);
59
108
  }
60
- if (desc.feeReceivers[0].toLowerCase() !== feeReceiver.toLowerCase()) {
109
+ if (!expected.feeReceiver) {
110
+ throw new Error('KyberSwap calldata feeReceiver expected but no fee receiver was configured');
111
+ }
112
+ if (desc.feeReceivers[0].toLowerCase() !== expected.feeReceiver.toLowerCase()) {
61
113
  throw new Error(`KyberSwap calldata feeReceiver=${desc.feeReceivers[0]}, ` +
62
- `expected ${feeReceiver}`);
114
+ `expected ${expected.feeReceiver}`);
63
115
  }
64
116
  // Validate fee amount
65
- if (desc.feeAmounts.length !== 1 || BigInt(desc.feeAmounts[0]) !== feeBps) {
66
- throw new Error(`KyberSwap calldata feeAmount=${desc.feeAmounts[0]}, expected ${feeBps}`);
117
+ if (desc.feeAmounts.length !== 1 || BigInt(desc.feeAmounts[0]) !== expected.feeBps) {
118
+ throw new Error(`KyberSwap calldata feeAmount=${desc.feeAmounts[0]}, expected ${expected.feeBps}`);
67
119
  }
68
120
  }
69
121
  catch (e) {
@@ -71,8 +123,16 @@ function validateSwapCalldata(calldata, feeBps, feeReceiver) {
71
123
  if (e.message?.startsWith('KyberSwap calldata'))
72
124
  throw e;
73
125
  // ABI decode failure — calldata structure doesn't match expected format.
74
- // Log but don't block the on-chain checker will catch structural issues.
75
- console.warn('Failed to validate KyberSwap calldata structure:', e.message);
126
+ // The on-chain checker remains the final guard, but the SDK should
127
+ // fail before returning malformed checker-rejected calldata.
128
+ throw new Error(`KyberSwap calldata could not be decoded for fee validation: ${e.message}`);
129
+ }
130
+ }
131
+ function validateCheckerFeePolicy(dao, feeBps, feeReceiver) {
132
+ if (feeBps !== CHECKER_FEE_BPS || !feeReceiver || feeReceiver.toLowerCase() !== dao.toLowerCase()) {
133
+ throw new Error(`KyberSwap checker requires feeBps=${CHECKER_FEE_BPS} and feeReceiver=${dao}; ` +
134
+ `got feeBps=${feeBps?.toString() ?? "undefined"} ` +
135
+ `feeReceiver=${feeReceiver ?? "undefined"}`);
76
136
  }
77
137
  }
78
138
  ;
@@ -93,47 +153,29 @@ class KyberSwap {
93
153
  this.api = `${api}/${this.chain}`;
94
154
  }
95
155
  async getAvailableTokens(provider, query = null, account = null, page = 1, pageSize = 25) {
96
- let zap_tokens = [];
97
- let tokens_set = new Set();
98
- for (const market of setup_1.all_markets) {
99
- for (const token of market.tokens) {
100
- const asset = token.getAsset(true);
101
- if (tokens_set.has(asset.address)) {
102
- continue;
103
- }
104
- tokens_set.add(asset.address);
105
- if (query) {
106
- const lowerQuery = query.toLowerCase();
107
- if (!token.name.toLowerCase().includes(lowerQuery) && !token.symbol.toLowerCase().includes(lowerQuery)) {
108
- continue;
109
- }
110
- }
111
- zap_tokens.push({
112
- interface: token.getAsset(true),
113
- type: 'simple',
114
- quote: async (tokenIn, tokenOut, amount, slippage) => {
115
- const wallet = account ?? helpers_1.EMPTY_ADDRESS;
116
- const erc20in = new ERC20_1.ERC20(provider, tokenIn, undefined, undefined, null);
117
- const decimalsIn = erc20in.decimals ?? await erc20in.contract.decimals();
118
- const amount_bigint = (0, helpers_1.toBigInt)(amount, decimalsIn);
119
- const erc20Out = new ERC20_1.ERC20(provider, tokenOut, undefined, undefined, null);
120
- const decimalsOut = erc20Out.decimals ?? await erc20Out.contract.decimals();
121
- const results = await this.quote(wallet, tokenIn, tokenOut, amount_bigint, FormatConverter_1.default.percentageToBps(slippage));
122
- return {
123
- minOut_raw: results.min_out,
124
- output_raw: results.out,
125
- minOut: FormatConverter_1.default.bigIntToDecimal(results.min_out, decimalsOut),
126
- output: FormatConverter_1.default.bigIntToDecimal(results.out, decimalsOut),
127
- extra: results.raw
128
- };
129
- }
130
- });
156
+ void page;
157
+ void pageSize;
158
+ return (0, helpers_2.buildLocalSimpleZapTokens)(setup_1.all_markets, provider, query, account, (wallet, tokenIn, tokenOut, amount, formattedSlippage, feeBps, feeReceiver) => this.quote(wallet, tokenIn, tokenOut, amount, formattedSlippage, feeBps, feeReceiver), (tokenIn, tokenOut, amount) => {
159
+ const feePolicy = setup_1.setup_config?.feePolicy;
160
+ if (feePolicy == null) {
161
+ return { feeBps: 0n };
131
162
  }
132
- }
133
- // https://ks-setting.kyberswap.com/api/v1/tokens?chainIds=143&page=1&pageSize=25&isWhitelisted=true
134
- return zap_tokens;
163
+ const feeBps = feePolicy.getFeeBps({
164
+ operation: 'zap',
165
+ inputToken: tokenIn,
166
+ outputToken: tokenOut,
167
+ inputAmount: amount,
168
+ currentLeverage: null,
169
+ targetLeverage: null,
170
+ });
171
+ return {
172
+ feeBps,
173
+ feeReceiver: feeBps > 0n ? feePolicy.feeReceiver : undefined,
174
+ };
175
+ });
135
176
  }
136
177
  async quoteAction(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver) {
178
+ const actionSlippage = (0, helpers_1.toContractSwapSlippage)(slippage, feeBps);
137
179
  const quote = await this.quote(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver);
138
180
  // Fee-aware slippage expansion: KyberSwap deducts its `currency_in`
139
181
  // fee before the swap executes, so on-chain `_swapSafe` measures
@@ -147,17 +189,18 @@ class KyberSwap {
147
189
  inputAmount: BigInt(amount),
148
190
  outputToken: tokenOut,
149
191
  target: quote.to,
150
- slippage: (0, helpers_1.toContractSwapSlippage)(slippage, feeBps),
192
+ slippage: actionSlippage,
151
193
  call: quote.calldata
152
194
  };
153
195
  return { action, quote };
154
196
  }
155
197
  async quoteMin(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver) {
156
198
  const quote = await this.quote(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver);
157
- return quote.out;
199
+ return quote.min_out;
158
200
  }
159
201
  async quote(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver) {
160
202
  (0, validation_1.validateSlippageBps)(slippage, 'KyberSwap quote');
203
+ validateCheckerFeePolicy(this.dao, feeBps, feeReceiver);
161
204
  const params = new URLSearchParams({
162
205
  tokenIn,
163
206
  tokenOut,
@@ -222,7 +265,15 @@ class KyberSwap {
222
265
  const validatedRouter = (0, validation_1.validateRouterAddress)(build_data.data.routerAddress, this.router, 'KyberSwap');
223
266
  // Validate that the API actually embedded the fee params we requested.
224
267
  // Without this, a misconfigured API response silently reverts on-chain.
225
- validateSwapCalldata(build_data.data.data, feeBps ?? 0n, feeReceiver);
268
+ validateSwapCalldata(build_data.data.data, {
269
+ tokenIn,
270
+ tokenOut,
271
+ amount,
272
+ recipient: wallet,
273
+ minReturnAmount: min_out,
274
+ feeBps: feeBps ?? 0n,
275
+ feeReceiver,
276
+ });
226
277
  return {
227
278
  to: validatedRouter,
228
279
  calldata: build_data.data.data,
@@ -1 +1 @@
1
- {"version":3,"file":"KyberSwap.js","sourceRoot":"","sources":["../../../src/classes/DexAggregators/KyberSwap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KyberSwap.js","sourceRoot":"","sources":["../../../src/classes/DexAggregators/KyberSwap.ts"],"names":[],"mappings":"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"}
@@ -46,12 +46,12 @@ export declare class MultiDexAgg implements IDexAgg {
46
46
  /**
47
47
  * Returns the minimum output from the best quote.
48
48
  */
49
- quoteMin(wallet: string, tokenIn: string, tokenOut: string, amount: bigint, slippage: bigint, feeBps?: bigint, feeReceiver?: address): Promise<BigInt>;
49
+ quoteMin(wallet: string, tokenIn: string, tokenOut: string, amount: bigint, slippage: bigint, feeBps?: bigint, feeReceiver?: address): Promise<bigint>;
50
50
  /**
51
51
  * Returns the best quote across all aggregators.
52
52
  */
53
53
  quote(wallet: string, tokenIn: string, tokenOut: string, amount: bigint, slippage: bigint, feeBps?: bigint, feeReceiver?: address): Promise<Quote>;
54
- private _bestQuote;
54
+ private _bestQuoteByValue;
55
55
  private _bestQuoteAction;
56
56
  /**
57
57
  * Wraps a promise with a timeout.
@@ -1 +1 @@
1
- {"version":3,"file":"MultiDexAgg.d.ts","sourceRoot":"","sources":["../../../src/classes/DexAggregators/MultiDexAgg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,sBAAsB,EAAc,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,OAAO,EAAE,EAAE,KAAK,EAAa,MAAM,WAAW,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAC9B,4FAA4F;IAC5F,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAaD;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,OAAO;IACvC,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAA8B;IAE5C,yFAAyF;IACzF,IAAI,GAAG,IAAI,OAAO,CAA6B;IAC/C,IAAI,MAAM,IAAI,OAAO,CAAgC;gBAEzC,WAAW,EAAE,OAAO,EAAE,EAAE,MAAM,GAAE,iBAAsB;IAalE;;;OAGG;IACG,kBAAkB,CACpB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,GAAE,MAAM,GAAG,IAAW,EAC3B,OAAO,GAAE,OAAO,GAAG,IAAW,GAC/B,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0BtB;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IASvL;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5J;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;YAa1I,UAAU;YAuBV,gBAAgB;IAuB9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,SAAS;IA+CjB;;OAEG;IACH,OAAO,CAAC,eAAe;CAe1B"}
1
+ {"version":3,"file":"MultiDexAgg.d.ts","sourceRoot":"","sources":["../../../src/classes/DexAggregators/MultiDexAgg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,sBAAsB,EAAc,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,OAAO,EAAE,EAAE,KAAK,EAAa,MAAM,WAAW,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAC9B,4FAA4F;IAC5F,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAeD;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,OAAO;IACvC,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAA8B;IAE5C,yFAAyF;IACzF,IAAI,GAAG,IAAI,OAAO,CAA6B;IAC/C,IAAI,MAAM,IAAI,OAAO,CAAgC;gBAEzC,WAAW,EAAE,OAAO,EAAE,EAAE,MAAM,GAAE,iBAAsB;IAalE;;;OAGG;IACG,kBAAkB,CACpB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,GAAE,MAAM,GAAG,IAAW,EAC3B,OAAO,GAAE,OAAO,GAAG,IAAW,GAC/B,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0BtB;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IASvL;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB5J;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;YAsB1I,iBAAiB;YA8BjB,gBAAgB;IAuB9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,OAAO,CAAC,SAAS;IAgDjB;;OAEG;IACH,OAAO,CAAC,eAAe;CAmB1B"}
@@ -75,8 +75,8 @@ class MultiDexAgg {
75
75
  if (this.aggregators.length === 1) {
76
76
  return this.primary.quoteMin(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver);
77
77
  }
78
- const best = await this._bestQuote(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver);
79
- return best.quote.out;
78
+ const best = await this._bestQuoteByValue(wallet, tokenIn, tokenOut, amount, slippage, (quote) => quote.min_out, feeBps, feeReceiver);
79
+ return best.quote.min_out;
80
80
  }
81
81
  /**
82
82
  * Returns the best quote across all aggregators.
@@ -85,19 +85,19 @@ class MultiDexAgg {
85
85
  if (this.aggregators.length === 1) {
86
86
  return this.primary.quote(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver);
87
87
  }
88
- const best = await this._bestQuote(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver);
88
+ const best = await this._bestQuoteByValue(wallet, tokenIn, tokenOut, amount, slippage, (quote) => quote.out, feeBps, feeReceiver);
89
89
  return best.quote;
90
90
  }
91
91
  // -----------------------------------------------------------------------
92
92
  // Internal: fan-out for quote()
93
93
  // -----------------------------------------------------------------------
94
- async _bestQuote(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver) {
94
+ async _bestQuoteByValue(wallet, tokenIn, tokenOut, amount, slippage, selectValue, feeBps, feeReceiver) {
95
95
  const results = await Promise.allSettled(this.aggregators.map(agg => this._withTimeout(agg.quote(wallet, tokenIn, tokenOut, amount, slippage, feeBps, feeReceiver)
96
96
  .then(quote => {
97
97
  this._validateQuote(quote, agg);
98
98
  return { aggregator: agg, quote };
99
99
  }), agg)));
100
- return this._pickBest(results, tokenIn, tokenOut, amount);
100
+ return this._pickBest(results, tokenIn, tokenOut, amount, selectValue);
101
101
  }
102
102
  // -----------------------------------------------------------------------
103
103
  // Internal: fan-out for quoteAction()
@@ -108,7 +108,7 @@ class MultiDexAgg {
108
108
  this._validateQuote(quote, agg);
109
109
  return { aggregator: agg, action, quote };
110
110
  }), agg)));
111
- return this._pickBest(results, tokenIn, tokenOut, amount);
111
+ return this._pickBest(results, tokenIn, tokenOut, amount, (quote) => quote.min_out);
112
112
  }
113
113
  // -----------------------------------------------------------------------
114
114
  // Shared helpers
@@ -117,21 +117,32 @@ class MultiDexAgg {
117
117
  * Wraps a promise with a timeout.
118
118
  */
119
119
  _withTimeout(promise, agg) {
120
- const timeout = new Promise((_, reject) => setTimeout(() => reject(new Error(`${agg.constructor.name} timed out after ${this.config.quoteTimeoutMs}ms`)), this.config.quoteTimeoutMs));
121
- return Promise.race([promise, timeout]);
120
+ let timeoutId;
121
+ const timeout = new Promise((_, reject) => {
122
+ timeoutId = setTimeout(() => reject(new Error(`${agg.constructor.name} timed out after ${this.config.quoteTimeoutMs}ms`)), this.config.quoteTimeoutMs);
123
+ });
124
+ return Promise.race([promise, timeout]).finally(() => {
125
+ if (timeoutId != undefined) {
126
+ clearTimeout(timeoutId);
127
+ }
128
+ });
122
129
  }
123
130
  /**
124
131
  * Validates a quote response has the required fields.
125
132
  */
126
133
  _validateQuote(quote, agg) {
127
- if (!quote?.out || !quote?.calldata || !quote?.to) {
134
+ if (quote == null ||
135
+ quote.out == undefined ||
136
+ quote.min_out == undefined ||
137
+ quote.calldata == undefined ||
138
+ quote.to == undefined) {
128
139
  throw new Error(`${agg.constructor.name} returned incomplete quote`);
129
140
  }
130
141
  }
131
142
  /**
132
143
  * From settled results, filter outliers and pick the best output.
133
144
  */
134
- _pickBest(results, tokenIn, tokenOut, amount) {
145
+ _pickBest(results, tokenIn, tokenOut, amount, selectValue) {
135
146
  const quotes = [];
136
147
  const errors = [];
137
148
  for (let i = 0; i < results.length; i++) {
@@ -152,13 +163,13 @@ class MultiDexAgg {
152
163
  }
153
164
  // Filter outliers if enough data points
154
165
  const validQuotes = quotes.length >= 3
155
- ? this._filterOutliers(quotes)
166
+ ? this._filterOutliers(quotes, selectValue)
156
167
  : quotes;
157
168
  const candidates = validQuotes.length > 0 ? validQuotes : quotes;
158
- // Return highest output
169
+ // Return highest selected value.
159
170
  let best = candidates[0];
160
171
  for (const candidate of candidates) {
161
- if (candidate.quote.out > best.quote.out) {
172
+ if (selectValue(candidate.quote) > selectValue(best.quote)) {
162
173
  best = candidate;
163
174
  }
164
175
  }
@@ -167,16 +178,17 @@ class MultiDexAgg {
167
178
  /**
168
179
  * Filters quotes whose output deviates more than the threshold from the median.
169
180
  */
170
- _filterOutliers(quotes) {
171
- const outputs = quotes.map(q => q.quote.out).sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
181
+ _filterOutliers(quotes, selectValue) {
182
+ const outputs = quotes.map((quote) => selectValue(quote.quote)).sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
172
183
  const median = outputs[Math.floor(outputs.length / 2)];
173
184
  if (median === 0n)
174
185
  return quotes;
175
186
  const threshold = BigInt(this.config.outlierThresholdPercent);
176
187
  return quotes.filter(q => {
177
- const diff = q.quote.out > median
178
- ? q.quote.out - median
179
- : median - q.quote.out;
188
+ const value = selectValue(q.quote);
189
+ const diff = value > median
190
+ ? value - median
191
+ : median - value;
180
192
  return (diff * 100n / median) <= threshold;
181
193
  });
182
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MultiDexAgg.js","sourceRoot":"","sources":["../../../src/classes/DexAggregators/MultiDexAgg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiDexAgg.js","sourceRoot":"","sources":["../../../src/classes/DexAggregators/MultiDexAgg.ts"],"names":[],"mappings":";;;AAyBA;;;;;;;;;;;;;GAaG;AACH,MAAa,WAAW;IACZ,WAAW,CAAY;IACvB,OAAO,CAAU;IACjB,MAAM,CAA8B;IAE5C,yFAAyF;IACzF,IAAI,GAAG,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAErD,YAAY,WAAsB,EAAE,SAA4B,EAAE;QAC9D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACV,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,IAAI,EAAE;YAC7D,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,MAAM;SAClD,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACpB,QAAgC,EAChC,QAAuB,IAAI,EAC3B,UAA0B,IAAI;QAE9B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAChF,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;gBAAE,SAAS;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,OAAe,EAAE,QAAgB,EAAE,MAAc,EAAE,QAAgB,EAAE,MAAe,EAAE,WAAqB;QACzI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACtG,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3G,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAe,EAAE,QAAgB,EAAE,MAAc,EAAE,QAAgB,EAAE,MAAe,EAAE,WAAqB;QACtI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACrC,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EACxB,MAAM,EACN,WAAW,CACd,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,OAAe,EAAE,QAAgB,EAAE,MAAc,EAAE,QAAgB,EAAE,MAAe,EAAE,WAAqB;QACnI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACrC,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EACpB,MAAM,EACN,WAAW,CACd,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,0EAA0E;IAC1E,gCAAgC;IAChC,0EAA0E;IAElE,KAAK,CAAC,iBAAiB,CAC3B,MAAc,EACd,OAAe,EACf,QAAgB,EAChB,MAAc,EACd,QAAgB,EAChB,WAA+B,EAC/B,MAAe,EACf,WAAqB;QAErB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACvB,IAAI,CAAC,YAAY,CACb,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;aACtE,IAAI,CAAC,KAAK,CAAC,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAiB,CAAC;QACrD,CAAC,CAAC,EACN,GAAG,CACN,CACJ,CACJ,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IAED,0EAA0E;IAC1E,sCAAsC;IACtC,0EAA0E;IAElE,KAAK,CAAC,gBAAgB,CAC1B,MAAc,EAAE,OAAe,EAAE,QAAgB,EAAE,MAAc,EAAE,QAAgB,EAAE,MAAe,EAAE,WAAqB;QAE3H,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACvB,IAAI,CAAC,YAAY,CACb,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;aAC5E,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YACxB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAuB,CAAC;QACnE,CAAC,CAAC,EACN,GAAG,CACN,CACJ,CACJ,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,0EAA0E;IAC1E,iBAAiB;IACjB,0EAA0E;IAE1E;;OAEG;IACK,YAAY,CAAI,OAAmB,EAAE,GAAY;QACrD,IAAI,SAAoD,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC7C,SAAS,GAAG,UAAU,CAClB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,oBAAoB,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,EAClG,IAAI,CAAC,MAAM,CAAC,cAAc,CAC7B,CAAC;QACN,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACjD,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBACzB,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAY,EAAE,GAAY;QAC7C,IACI,KAAK,IAAI,IAAI;YACb,KAAK,CAAC,GAAG,IAAI,SAAS;YACtB,KAAK,CAAC,OAAO,IAAI,SAAS;YAC1B,KAAK,CAAC,QAAQ,IAAI,SAAS;YAC3B,KAAK,CAAC,EAAE,IAAI,SAAS,EACvB,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,4BAA4B,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAED;;OAEG;IACK,SAAS,CACb,OAAkC,EAClC,OAAe,EACf,QAAgB,EAChB,MAAc,EACd,WAA+B;QAE/B,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,IAAI,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,2BAA2B,OAAO,MAAM,QAAQ,aAAa,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9H,CAAC;QACN,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,CAAC,CAAE,CAAC;QACtB,CAAC;QAED,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC;QAEb,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjE,iCAAiC;QACjC,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,IAAI,GAAG,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,eAAe,CACnB,MAAW,EACX,WAA+B;QAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE,CAAC;QAExD,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC;QAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAE9D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACrB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM;gBACvB,CAAC,CAAC,KAAK,GAAG,MAAM;gBAChB,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,SAAS,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAlRD,kCAkRC"}
@@ -0,0 +1,19 @@
1
+ import { address, curvance_read_provider } from "../../types";
2
+ import { ZapToken } from "../CToken";
3
+ import { Swap } from "../Zapper";
4
+ import IDexAgg, { Quote, QuoteArgs } from "./IDexAgg";
5
+ export declare class UnsupportedDexAgg implements IDexAgg {
6
+ private readonly chain;
7
+ dao: address;
8
+ router: address;
9
+ constructor(chain: string);
10
+ getAvailableTokens(_provider: curvance_read_provider, _query?: string | null, _account?: address | null): Promise<ZapToken[]>;
11
+ quoteAction(..._args: QuoteArgs): Promise<{
12
+ action: Swap;
13
+ quote: Quote;
14
+ }>;
15
+ quoteMin(..._args: QuoteArgs): Promise<bigint>;
16
+ quote(..._args: QuoteArgs): Promise<Quote>;
17
+ private unsupportedError;
18
+ }
19
+ //# sourceMappingURL=UnsupportedDexAgg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedDexAgg.d.ts","sourceRoot":"","sources":["../../../src/classes/DexAggregators/UnsupportedDexAgg.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtD,qBAAa,iBAAkB,YAAW,OAAO;IAIjC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,GAAG,EAAE,OAAO,CAAiB;IAC7B,MAAM,EAAE,OAAO,CAAiB;gBAEH,KAAK,EAAE,MAAM;IAEpC,kBAAkB,CACpB,SAAS,EAAE,sBAAsB,EACjC,MAAM,GAAE,MAAM,GAAG,IAAW,EAC5B,QAAQ,GAAE,OAAO,GAAG,IAAW,GAChC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIhB,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IAIzE,QAAQ,CAAC,GAAG,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C,KAAK,CAAC,GAAG,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAIhD,OAAO,CAAC,gBAAgB;CAG3B"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnsupportedDexAgg = void 0;
4
+ const helpers_1 = require("../../helpers");
5
+ class UnsupportedDexAgg {
6
+ chain;
7
+ dao = helpers_1.EMPTY_ADDRESS;
8
+ router = helpers_1.EMPTY_ADDRESS;
9
+ constructor(chain) {
10
+ this.chain = chain;
11
+ }
12
+ async getAvailableTokens(_provider, _query = null, _account = null) {
13
+ return [];
14
+ }
15
+ async quoteAction(..._args) {
16
+ throw this.unsupportedError();
17
+ }
18
+ async quoteMin(..._args) {
19
+ throw this.unsupportedError();
20
+ }
21
+ async quote(..._args) {
22
+ throw this.unsupportedError();
23
+ }
24
+ unsupportedError() {
25
+ return new Error(`DEX aggregation is not configured for ${this.chain}.`);
26
+ }
27
+ }
28
+ exports.UnsupportedDexAgg = UnsupportedDexAgg;
29
+ //# sourceMappingURL=UnsupportedDexAgg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedDexAgg.js","sourceRoot":"","sources":["../../../src/classes/DexAggregators/UnsupportedDexAgg.ts"],"names":[],"mappings":";;;AAAA,2CAA8C;AAM9C,MAAa,iBAAiB;IAIG;IAH7B,GAAG,GAAY,uBAAa,CAAC;IAC7B,MAAM,GAAY,uBAAa,CAAC;IAEhC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C,KAAK,CAAC,kBAAkB,CACpB,SAAiC,EACjC,SAAwB,IAAI,EAC5B,WAA2B,IAAI;QAE/B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAG,KAAgB;QACjC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAgB;QAC9B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAG,KAAgB;QAC3B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAEO,gBAAgB;QACpB,OAAO,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC7E,CAAC;CACJ;AA7BD,8CA6BC"}
@@ -0,0 +1,30 @@
1
+ import { address, Percentage, TokenInput, curvance_read_provider } from "../../types";
2
+ import { ZapToken } from "../CToken";
3
+ import { ERC20 } from "../ERC20";
4
+ import type { Quote } from "./IDexAgg";
5
+ type MarketTokenSource = {
6
+ name: string;
7
+ symbol: string;
8
+ getAsset: (asErc20: true) => ERC20;
9
+ };
10
+ type MarketSource = {
11
+ tokens: MarketTokenSource[];
12
+ };
13
+ type ZapQuoteResult = Quote & {
14
+ raw?: any;
15
+ };
16
+ type QuoteFn = (wallet: string, tokenIn: string, tokenOut: string, amount: bigint, slippage: bigint, feeBps?: bigint, feeReceiver?: address) => Promise<ZapQuoteResult>;
17
+ type QuoteFeeResolver = (tokenIn: string, tokenOut: string, amount: bigint) => {
18
+ feeBps: bigint;
19
+ feeReceiver?: address | undefined;
20
+ };
21
+ export declare function createSimpleZapQuote(provider: curvance_read_provider, account: address | null, quoteFn: QuoteFn, resolveFee?: QuoteFeeResolver): (tokenIn: string, tokenOut: string, amount: TokenInput, slippage: Percentage) => Promise<{
22
+ minOut_raw: bigint;
23
+ output_raw: bigint;
24
+ minOut: import("decimal.js").Decimal;
25
+ output: import("decimal.js").Decimal;
26
+ extra: any;
27
+ }>;
28
+ export declare function buildLocalSimpleZapTokens(markets: MarketSource[], provider: curvance_read_provider, query: string | null, account: address | null, quoteFn: QuoteFn, resolveFee?: QuoteFeeResolver): ZapToken[];
29
+ export {};
30
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/classes/DexAggregators/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,KAAK,CAAC;CACtC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,KAAK,cAAc,GAAG,KAAK,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC;AAE5C,KAAK,OAAO,GAAG,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,OAAO,KACpB,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,KAAK,gBAAgB,GAAG,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,KACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAAC;AAE3D,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,gBAAgB,IAGzB,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,QAAQ,UAAU,EAClB,UAAU,UAAU;;;;;;GA4B3B;AAED,wBAAgB,yBAAyB,CACrC,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,gBAAgB,GAC9B,QAAQ,EAAE,CAgCZ"}