@paraswap/dex-lib 3.7.3-idle → 3.7.3-idle.3
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.
- package/build/dex/aave-v3-stata/aave-v3-stata.js +22 -17
- package/build/dex/aave-v3-stata/aave-v3-stata.js.map +1 -1
- package/build/dex/aave-v3-stata/tokens.js +1 -1
- package/build/dex/aave-v3-stata/tokens.js.map +1 -1
- package/build/dex/idle-dao/idle-dao.js +10 -8
- package/build/dex/idle-dao/idle-dao.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/idle-dao/idle-dao-e2e.test.ts +1 -1
- package/src/dex/idle-dao/idle-dao.ts +18 -9
|
@@ -38,14 +38,14 @@ const utils_2 = require("./utils");
|
|
|
38
38
|
const tokens_1 = require("./tokens");
|
|
39
39
|
const decoders_1 = require("../../lib/decoders");
|
|
40
40
|
const Token_json_1 = __importDefault(require("../../abi/aavev3stata/Token.json"));
|
|
41
|
+
const utils_3 = require("../../executor/utils");
|
|
42
|
+
const constants_2 = require("../../executor/constants");
|
|
41
43
|
// import { IStaticATokenLM_ABI } from '@bgd-labs/aave-address-book';
|
|
42
44
|
// slimmed down version of @bgd-labs/aave-address-book
|
|
43
45
|
// required as version of web3-utils used is buggy
|
|
44
46
|
//import IStaticATokenFactory_ABI from '../../abi/aave-v3-stata/StaticATokenFactory.json';
|
|
45
47
|
exports.TOKEN_LIST_CACHE_KEY = 'stata-token-list';
|
|
46
48
|
const TOKEN_LIST_TTL_SECONDS = 24 * 60 * 60; // 1 day
|
|
47
|
-
const TOKEN_LIST_LOCAL_TTL_SECONDS = 3 * 60 * 60; // 3h
|
|
48
|
-
// const RAY = BigInt(1e27);
|
|
49
49
|
const RAY = BigInt(`1${'0'.repeat(27)}`);
|
|
50
50
|
class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
51
51
|
constructor(network, dexKey, dexHelper, config = config_1.AaveV3StataConfig[dexKey][network], adapters = config_1.Adapters[network]) {
|
|
@@ -60,14 +60,17 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
60
60
|
this.state = {};
|
|
61
61
|
this.logger = dexHelper.getLogger(dexKey);
|
|
62
62
|
}
|
|
63
|
-
// Initialize pricing is called once in the start of
|
|
64
|
-
// pricing service. It is intended to setup the integration
|
|
65
|
-
// for pricing requests. It is optional for a DEX to
|
|
66
|
-
// implement this function
|
|
67
63
|
async initializePricing(blockNumber) {
|
|
68
|
-
let cachedTokenList = await this.dexHelper.cache.
|
|
64
|
+
let cachedTokenList = await this.dexHelper.cache.get(this.dexKey, this.network, exports.TOKEN_LIST_CACHE_KEY);
|
|
69
65
|
if (cachedTokenList !== null) {
|
|
70
|
-
|
|
66
|
+
const tokenListParsed = JSON.parse(cachedTokenList);
|
|
67
|
+
(0, tokens_1.setTokensOnNetwork)(this.network, tokenListParsed);
|
|
68
|
+
tokenListParsed.forEach((token) => {
|
|
69
|
+
this.state[token.address] = {
|
|
70
|
+
blockNumber: 0,
|
|
71
|
+
rate: 0n,
|
|
72
|
+
};
|
|
73
|
+
});
|
|
71
74
|
return;
|
|
72
75
|
}
|
|
73
76
|
let tokenList = await (0, utils_2.fetchTokenList)(this.dexHelper.web3Provider, blockNumber, this.config.factoryAddress, this.dexHelper.multiWrapper);
|
|
@@ -84,10 +87,11 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
84
87
|
// Returns the list of contract adapters (name and index)
|
|
85
88
|
// for a buy/sell. Return null if there are no adapters.
|
|
86
89
|
getAdapters(side) {
|
|
87
|
-
return
|
|
90
|
+
return null;
|
|
88
91
|
}
|
|
89
92
|
_getPoolIdentifier(srcToken, destToken) {
|
|
90
93
|
return (this.dexKey +
|
|
94
|
+
'-' +
|
|
91
95
|
[srcToken.address.toLowerCase(), destToken.address.toLowerCase()]
|
|
92
96
|
.sort((a, b) => (a > b ? 1 : -1))
|
|
93
97
|
.join('_'));
|
|
@@ -136,9 +140,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
136
140
|
return null;
|
|
137
141
|
}
|
|
138
142
|
}
|
|
139
|
-
const
|
|
140
|
-
const stataAddressLower = stata.address.toLowerCase();
|
|
141
|
-
// following what is done on wstETH
|
|
143
|
+
const stataAddressLower = stataToken.address.toLowerCase();
|
|
142
144
|
if (!this.state[stataAddressLower]?.blockNumber ||
|
|
143
145
|
blockNumber > this.state[stataAddressLower].blockNumber) {
|
|
144
146
|
const cached = await this.dexHelper.cache.get(this.dexKey, this.network, `state_${stataAddressLower}`);
|
|
@@ -148,7 +150,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
148
150
|
else {
|
|
149
151
|
const results = await this.dexHelper.multiWrapper.tryAggregate(true, [
|
|
150
152
|
{
|
|
151
|
-
target:
|
|
153
|
+
target: stataToken.address,
|
|
152
154
|
callData: AaveV3Stata.stata.encodeFunctionData('rate'),
|
|
153
155
|
decodeFunction: decoders_1.uint256ToBigInt,
|
|
154
156
|
},
|
|
@@ -157,7 +159,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
157
159
|
blockNumber,
|
|
158
160
|
rate: results[0].returnData,
|
|
159
161
|
};
|
|
160
|
-
this.dexHelper.cache.setex(this.dexKey, this.network,
|
|
162
|
+
this.dexHelper.cache.setex(this.dexKey, this.network, `state_${stataAddressLower}`, 60, utils_1.Utils.Serialize(this.state[stataAddressLower]));
|
|
161
163
|
}
|
|
162
164
|
}
|
|
163
165
|
return [
|
|
@@ -182,12 +184,12 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
182
184
|
}
|
|
183
185
|
}),
|
|
184
186
|
unit: (0, utils_1.getBigIntPow)((side === constants_1.SwapSide.SELL ? destToken : srcToken).decimals),
|
|
185
|
-
gasCost:
|
|
187
|
+
gasCost: 270000,
|
|
186
188
|
exchange: this.dexKey,
|
|
187
189
|
data: {
|
|
188
190
|
srcType: src,
|
|
189
191
|
destType: dest,
|
|
190
|
-
exchange:
|
|
192
|
+
exchange: stataToken.address,
|
|
191
193
|
},
|
|
192
194
|
poolAddresses: [stataAddressLower],
|
|
193
195
|
},
|
|
@@ -272,6 +274,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
272
274
|
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, _, executorAddress) {
|
|
273
275
|
const { exchange, srcType, destType } = data;
|
|
274
276
|
let swapData;
|
|
277
|
+
let returnAmountPos = undefined;
|
|
275
278
|
if (side === constants_1.SwapSide.SELL) {
|
|
276
279
|
if (srcType === types_1.TokenType.STATA_TOKEN) {
|
|
277
280
|
// e.g. sell srcAmount 100 srcToken stataUSDC for destToken USDC
|
|
@@ -281,6 +284,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
281
284
|
executorAddress,
|
|
282
285
|
destType === types_1.TokenType.UNDERLYING, // withdraw from aToken
|
|
283
286
|
]);
|
|
287
|
+
returnAmountPos = constants_2.RETURN_AMOUNT_POS_32;
|
|
284
288
|
}
|
|
285
289
|
else {
|
|
286
290
|
// sell srcAmount 100 srcToken USDC for destToken stataUSDC
|
|
@@ -290,6 +294,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
290
294
|
0,
|
|
291
295
|
srcType === types_1.TokenType.UNDERLYING, // deposit to aave
|
|
292
296
|
]);
|
|
297
|
+
returnAmountPos = (0, utils_3.extractReturnAmountPosition)(AaveV3Stata.stata, types_1.StataFunctions.deposit);
|
|
293
298
|
}
|
|
294
299
|
}
|
|
295
300
|
else {
|
|
@@ -314,7 +319,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
314
319
|
dexFuncHasRecipient: true,
|
|
315
320
|
exchangeData: swapData,
|
|
316
321
|
targetExchange: exchange,
|
|
317
|
-
returnAmountPos
|
|
322
|
+
returnAmountPos,
|
|
318
323
|
};
|
|
319
324
|
}
|
|
320
325
|
// This is called once before getTopPoolsForToken is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aave-v3-stata.js","sourceRoot":"","sources":["../../../src/dex/aave-v3-stata/aave-v3-stata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,+CAAoD;AACpD,2EAA6D;AAC7D,uCAAyE;AAGzE,
|
|
1
|
+
{"version":3,"file":"aave-v3-stata.js","sourceRoot":"","sources":["../../../src/dex/aave-v3-stata/aave-v3-stata.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ function getTokenType(network, address) {
|
|
|
37
37
|
}
|
|
38
38
|
exports.getTokenType = getTokenType;
|
|
39
39
|
function getTokenFromAddress(network, address) {
|
|
40
|
-
return TokensByAddress[network][address.toLowerCase()];
|
|
40
|
+
return TokensByAddress[network]?.[address.toLowerCase()];
|
|
41
41
|
}
|
|
42
42
|
exports.getTokenFromAddress = getTokenFromAddress;
|
|
43
43
|
//# sourceMappingURL=tokens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/dex/aave-v3-stata/tokens.ts"],"names":[],"mappings":";;;AACA,mCAAgD;AAEnC,QAAA,MAAM,GACjB,EAAE,CAAC;AAEL,MAAM,eAAe,GAEjB,EAAE,CAAC;AAEP,SAAgB,kBAAkB,CAAC,OAAgB,EAAE,MAAoB;IACvE,IAAI,cAAM,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;QACjC,cAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KACtB;IAED,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;QAC1C,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KAC/B;IAED,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;QACxB,+CAA+C;QAC/C,qDAAqD;QACrD,iEAAiE;QAEjE,cAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAC3C,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAChD,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACnD,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;KAC1D;AACH,CAAC;AAnBD,gDAmBC;AAED,SAAgB,YAAY,CAAC,OAAgB,EAAE,OAAe;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAEvD,IAAI,CAAC,KAAK;QAAE,OAAO,iBAAS,CAAC,OAAO,CAAC;IACrC,IAAI,KAAK,CAAC,OAAO,KAAK,YAAY;QAAE,OAAO,iBAAS,CAAC,WAAW,CAAC;IACjE,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY;QAAE,OAAO,iBAAS,CAAC,UAAU,CAAC;IACnE,IAAI,KAAK,CAAC,gBAAgB,KAAK,YAAY;QAAE,OAAO,iBAAS,CAAC,OAAO,CAAC;IACtE,OAAO,iBAAS,CAAC,OAAO,CAAC;AAC3B,CAAC;AATD,oCASC;AAED,SAAgB,mBAAmB,CACjC,OAAgB,EAChB,OAAe;IAEf,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/dex/aave-v3-stata/tokens.ts"],"names":[],"mappings":";;;AACA,mCAAgD;AAEnC,QAAA,MAAM,GACjB,EAAE,CAAC;AAEL,MAAM,eAAe,GAEjB,EAAE,CAAC;AAEP,SAAgB,kBAAkB,CAAC,OAAgB,EAAE,MAAoB;IACvE,IAAI,cAAM,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;QACjC,cAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KACtB;IAED,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;QAC1C,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KAC/B;IAED,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;QACxB,+CAA+C;QAC/C,qDAAqD;QACrD,iEAAiE;QAEjE,cAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAC3C,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAChD,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACnD,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;KAC1D;AACH,CAAC;AAnBD,gDAmBC;AAED,SAAgB,YAAY,CAAC,OAAgB,EAAE,OAAe;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAEvD,IAAI,CAAC,KAAK;QAAE,OAAO,iBAAS,CAAC,OAAO,CAAC;IACrC,IAAI,KAAK,CAAC,OAAO,KAAK,YAAY;QAAE,OAAO,iBAAS,CAAC,WAAW,CAAC;IACjE,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY;QAAE,OAAO,iBAAS,CAAC,UAAU,CAAC;IACnE,IAAI,KAAK,CAAC,gBAAgB,KAAK,YAAY;QAAE,OAAO,iBAAS,CAAC,OAAO,CAAC;IACtE,OAAO,iBAAS,CAAC,OAAO,CAAC;AAC3B,CAAC;AATD,oCASC;AAED,SAAgB,mBAAmB,CACjC,OAAgB,EAChB,OAAe;IAEf,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3D,CAAC;AALD,kDAKC"}
|
|
@@ -39,6 +39,7 @@ const utils_2 = require("./utils");
|
|
|
39
39
|
const tokens_1 = require("./tokens");
|
|
40
40
|
const idle_cdo_factory_json_1 = __importDefault(require("../../abi/idle-dao/idle-cdo-factory.json"));
|
|
41
41
|
const idle_cdo_json_1 = __importDefault(require("../../abi/idle-dao/idle-cdo.json"));
|
|
42
|
+
const utils_3 = require("../../executor/utils");
|
|
42
43
|
exports.TOKEN_LIST_CACHE_KEY = 'token-list';
|
|
43
44
|
const TOKEN_LIST_TTL_SECONDS = 24 * 60 * 60;
|
|
44
45
|
const TOKEN_LIST_LOCAL_TTL_SECONDS = 3 * 60 * 60;
|
|
@@ -73,7 +74,7 @@ class IdleDao extends simple_exchange_1.SimpleExchange {
|
|
|
73
74
|
}, {});
|
|
74
75
|
}
|
|
75
76
|
async initializePricing(blockNumber) {
|
|
76
|
-
let cachedTokenList = await this.dexHelper.cache.
|
|
77
|
+
let cachedTokenList = await this.dexHelper.cache.get(this.dexKey, this.network, exports.TOKEN_LIST_CACHE_KEY);
|
|
77
78
|
if (cachedTokenList !== null) {
|
|
78
79
|
const tokens = JSON.parse(cachedTokenList);
|
|
79
80
|
(0, tokens_1.setTokensOnNetwork)(this.network, tokens, this.dexHelper);
|
|
@@ -178,12 +179,8 @@ class IdleDao extends simple_exchange_1.SimpleExchange {
|
|
|
178
179
|
}
|
|
179
180
|
// Returns estimated gas cost of calldata for this DEX in multiSwap
|
|
180
181
|
getCalldataGasCost(poolPrices) {
|
|
181
|
-
// TODO: update if there is any payload in getAdapterParam
|
|
182
182
|
return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
|
|
183
183
|
}
|
|
184
|
-
// Encode params required by the exchange adapter
|
|
185
|
-
// Used for multiSwap, buy & megaSwap
|
|
186
|
-
// Hint: abiCoder.encodeParameter() could be useful
|
|
187
184
|
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
188
185
|
return {
|
|
189
186
|
// target exchange is not used by the contract
|
|
@@ -193,8 +190,10 @@ class IdleDao extends simple_exchange_1.SimpleExchange {
|
|
|
193
190
|
};
|
|
194
191
|
}
|
|
195
192
|
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, _, executorAddress) {
|
|
193
|
+
let returnAmountPos = undefined;
|
|
196
194
|
const [Interface, swapCallee, swapFunction, swapFunctionParams] = (() => {
|
|
197
195
|
if (data.fromIdleToken) {
|
|
196
|
+
returnAmountPos = (0, utils_3.extractReturnAmountPosition)(this.cdo, types_1.PoolFunctions[`withdraw${data.idleToken.tokenType}`]);
|
|
198
197
|
return [
|
|
199
198
|
this.cdo,
|
|
200
199
|
data.idleToken.cdoAddress,
|
|
@@ -202,6 +201,7 @@ class IdleDao extends simple_exchange_1.SimpleExchange {
|
|
|
202
201
|
[srcAmount],
|
|
203
202
|
];
|
|
204
203
|
}
|
|
204
|
+
returnAmountPos = (0, utils_3.extractReturnAmountPosition)(this.cdo, types_1.PoolFunctions[`deposit${data.idleToken.tokenType}`]);
|
|
205
205
|
return [
|
|
206
206
|
this.cdo,
|
|
207
207
|
data.idleToken.cdoAddress,
|
|
@@ -215,18 +215,20 @@ class IdleDao extends simple_exchange_1.SimpleExchange {
|
|
|
215
215
|
dexFuncHasRecipient: false,
|
|
216
216
|
exchangeData,
|
|
217
217
|
targetExchange: swapCallee,
|
|
218
|
-
returnAmountPos: undefined,
|
|
218
|
+
returnAmountPos: side === constants_1.SwapSide.SELL ? returnAmountPos : undefined,
|
|
219
219
|
};
|
|
220
220
|
}
|
|
221
221
|
async getTopPoolsForToken(tokenAddress, limit) {
|
|
222
|
+
if (!this.tokenList) {
|
|
223
|
+
const blockNumber = await this.dexHelper.web3Provider.eth.getBlockNumber();
|
|
224
|
+
this.initializePricing(blockNumber);
|
|
225
|
+
}
|
|
222
226
|
const idleTokens = (0, tokens_1.getPoolsByTokenAddress)(tokenAddress);
|
|
223
227
|
return idleTokens
|
|
224
228
|
.map((idleToken) => ({
|
|
225
|
-
// TODO: Re-check?
|
|
226
229
|
// liquidity is infinite, tokens are minted when swapping for idle tokens
|
|
227
230
|
liquidityUSD: 1e12,
|
|
228
231
|
exchange: this.dexKey,
|
|
229
|
-
// address: idleToken.idleAddress,
|
|
230
232
|
address: idleToken.cdoAddress,
|
|
231
233
|
connectorTokens: [(0, tokens_1.getTokenFromIdleToken)(idleToken)],
|
|
232
234
|
}))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idle-dao.js","sourceRoot":"","sources":["../../../src/dex/idle-dao/idle-dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAuC;AACvC,4CAA+C;AAY/C,+CAAkE;AAClE,2EAA6D;AAC7D,uCAAkE;AAGlE,mCAAuE;AACvE,wDAAoD;AACpD,qCAA4C;AAC5C,mCAA6C;AAC7C,qCAKkB;AAClB,qGAAmE;AACnE,qFAAuD;
|
|
1
|
+
{"version":3,"file":"idle-dao.js","sourceRoot":"","sources":["../../../src/dex/idle-dao/idle-dao.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@ function testForNetwork(
|
|
|
25
25
|
|
|
26
26
|
const sideToContractMethods = new Map([
|
|
27
27
|
[SwapSide.SELL, [ContractMethod.swapExactAmountIn]],
|
|
28
|
-
|
|
28
|
+
[SwapSide.BUY, [ContractMethod.swapExactAmountOut]],
|
|
29
29
|
]);
|
|
30
30
|
|
|
31
31
|
describe(`${network}`, () => {
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
} from './tokens';
|
|
29
29
|
import FACTORY_ABI from '../../abi/idle-dao/idle-cdo-factory.json';
|
|
30
30
|
import CDO_ABI from '../../abi/idle-dao/idle-cdo.json';
|
|
31
|
+
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
31
32
|
|
|
32
33
|
export const TOKEN_LIST_CACHE_KEY = 'token-list';
|
|
33
34
|
const TOKEN_LIST_TTL_SECONDS = 24 * 60 * 60;
|
|
@@ -96,11 +97,10 @@ export class IdleDao extends SimpleExchange implements IDex<IdleDaoData> {
|
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
async initializePricing(blockNumber: number) {
|
|
99
|
-
let cachedTokenList = await this.dexHelper.cache.
|
|
100
|
+
let cachedTokenList = await this.dexHelper.cache.get(
|
|
100
101
|
this.dexKey,
|
|
101
102
|
this.network,
|
|
102
103
|
TOKEN_LIST_CACHE_KEY,
|
|
103
|
-
TOKEN_LIST_LOCAL_TTL_SECONDS,
|
|
104
104
|
);
|
|
105
105
|
|
|
106
106
|
if (cachedTokenList !== null) {
|
|
@@ -271,13 +271,9 @@ export class IdleDao extends SimpleExchange implements IDex<IdleDaoData> {
|
|
|
271
271
|
|
|
272
272
|
// Returns estimated gas cost of calldata for this DEX in multiSwap
|
|
273
273
|
getCalldataGasCost(poolPrices: PoolPrices<IdleDaoData>): number | number[] {
|
|
274
|
-
// TODO: update if there is any payload in getAdapterParam
|
|
275
274
|
return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
|
|
276
275
|
}
|
|
277
276
|
|
|
278
|
-
// Encode params required by the exchange adapter
|
|
279
|
-
// Used for multiSwap, buy & megaSwap
|
|
280
|
-
// Hint: abiCoder.encodeParameter() could be useful
|
|
281
277
|
getAdapterParam(
|
|
282
278
|
srcToken: string,
|
|
283
279
|
destToken: string,
|
|
@@ -305,6 +301,8 @@ export class IdleDao extends SimpleExchange implements IDex<IdleDaoData> {
|
|
|
305
301
|
_: Context,
|
|
306
302
|
executorAddress: Address,
|
|
307
303
|
): DexExchangeParam {
|
|
304
|
+
let returnAmountPos = undefined;
|
|
305
|
+
|
|
308
306
|
const [Interface, swapCallee, swapFunction, swapFunctionParams] = ((): [
|
|
309
307
|
Interface,
|
|
310
308
|
Address,
|
|
@@ -312,6 +310,10 @@ export class IdleDao extends SimpleExchange implements IDex<IdleDaoData> {
|
|
|
312
310
|
Param,
|
|
313
311
|
] => {
|
|
314
312
|
if (data.fromIdleToken) {
|
|
313
|
+
returnAmountPos = extractReturnAmountPosition(
|
|
314
|
+
this.cdo,
|
|
315
|
+
PoolFunctions[`withdraw${data.idleToken.tokenType}`],
|
|
316
|
+
);
|
|
315
317
|
return [
|
|
316
318
|
this.cdo,
|
|
317
319
|
data.idleToken.cdoAddress,
|
|
@@ -320,6 +322,10 @@ export class IdleDao extends SimpleExchange implements IDex<IdleDaoData> {
|
|
|
320
322
|
];
|
|
321
323
|
}
|
|
322
324
|
|
|
325
|
+
returnAmountPos = extractReturnAmountPosition(
|
|
326
|
+
this.cdo,
|
|
327
|
+
PoolFunctions[`deposit${data.idleToken.tokenType}`],
|
|
328
|
+
);
|
|
323
329
|
return [
|
|
324
330
|
this.cdo,
|
|
325
331
|
data.idleToken.cdoAddress,
|
|
@@ -338,7 +344,7 @@ export class IdleDao extends SimpleExchange implements IDex<IdleDaoData> {
|
|
|
338
344
|
dexFuncHasRecipient: false,
|
|
339
345
|
exchangeData,
|
|
340
346
|
targetExchange: swapCallee,
|
|
341
|
-
returnAmountPos: undefined,
|
|
347
|
+
returnAmountPos: side === SwapSide.SELL ? returnAmountPos : undefined,
|
|
342
348
|
};
|
|
343
349
|
}
|
|
344
350
|
|
|
@@ -346,15 +352,18 @@ export class IdleDao extends SimpleExchange implements IDex<IdleDaoData> {
|
|
|
346
352
|
tokenAddress: Address,
|
|
347
353
|
limit: number,
|
|
348
354
|
): Promise<PoolLiquidity[]> {
|
|
355
|
+
if (!this.tokenList) {
|
|
356
|
+
const blockNumber =
|
|
357
|
+
await this.dexHelper.web3Provider.eth.getBlockNumber();
|
|
358
|
+
this.initializePricing(blockNumber);
|
|
359
|
+
}
|
|
349
360
|
const idleTokens: IdleToken[] = getPoolsByTokenAddress(tokenAddress);
|
|
350
361
|
|
|
351
362
|
return idleTokens
|
|
352
363
|
.map((idleToken: IdleToken) => ({
|
|
353
|
-
// TODO: Re-check?
|
|
354
364
|
// liquidity is infinite, tokens are minted when swapping for idle tokens
|
|
355
365
|
liquidityUSD: 1e12,
|
|
356
366
|
exchange: this.dexKey,
|
|
357
|
-
// address: idleToken.idleAddress,
|
|
358
367
|
address: idleToken.cdoAddress,
|
|
359
368
|
connectorTokens: [getTokenFromIdleToken(idleToken)],
|
|
360
369
|
}))
|