@paraswap/dex-lib 3.7.0-stata.4 → 3.7.0-stata.6
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 +20 -10
- 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/package.json +1 -1
- package/src/dex/aave-v3-stata/aave-v3-stata.ts +37 -12
- package/src/dex/aave-v3-stata/tokens.ts +1 -1
|
@@ -38,6 +38,7 @@ 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");
|
|
41
42
|
// import { IStaticATokenLM_ABI } from '@bgd-labs/aave-address-book';
|
|
42
43
|
// slimmed down version of @bgd-labs/aave-address-book
|
|
43
44
|
// required as version of web3-utils used is buggy
|
|
@@ -67,7 +68,14 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
67
68
|
async initializePricing(blockNumber) {
|
|
68
69
|
let cachedTokenList = await this.dexHelper.cache.getAndCacheLocally(this.dexKey, this.network, exports.TOKEN_LIST_CACHE_KEY, TOKEN_LIST_LOCAL_TTL_SECONDS);
|
|
69
70
|
if (cachedTokenList !== null) {
|
|
70
|
-
|
|
71
|
+
const tokenListParsed = JSON.parse(cachedTokenList);
|
|
72
|
+
(0, tokens_1.setTokensOnNetwork)(this.network, tokenListParsed);
|
|
73
|
+
tokenListParsed.forEach((token) => {
|
|
74
|
+
this.state[token.address] = {
|
|
75
|
+
blockNumber: 0,
|
|
76
|
+
rate: 0n,
|
|
77
|
+
};
|
|
78
|
+
});
|
|
71
79
|
return;
|
|
72
80
|
}
|
|
73
81
|
let tokenList = await (0, utils_2.fetchTokenList)(this.dexHelper.web3Provider, blockNumber, this.config.factoryAddress, this.dexHelper.multiWrapper);
|
|
@@ -84,10 +92,11 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
84
92
|
// Returns the list of contract adapters (name and index)
|
|
85
93
|
// for a buy/sell. Return null if there are no adapters.
|
|
86
94
|
getAdapters(side) {
|
|
87
|
-
return
|
|
95
|
+
return null;
|
|
88
96
|
}
|
|
89
97
|
_getPoolIdentifier(srcToken, destToken) {
|
|
90
98
|
return (this.dexKey +
|
|
99
|
+
'-' +
|
|
91
100
|
[srcToken.address.toLowerCase(), destToken.address.toLowerCase()]
|
|
92
101
|
.sort((a, b) => (a > b ? 1 : -1))
|
|
93
102
|
.join('_'));
|
|
@@ -136,9 +145,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
136
145
|
return null;
|
|
137
146
|
}
|
|
138
147
|
}
|
|
139
|
-
const
|
|
140
|
-
const stataAddressLower = stata.address.toLowerCase();
|
|
141
|
-
// following what is done on wstETH
|
|
148
|
+
const stataAddressLower = stataToken.address.toLowerCase();
|
|
142
149
|
if (!this.state[stataAddressLower]?.blockNumber ||
|
|
143
150
|
blockNumber > this.state[stataAddressLower].blockNumber) {
|
|
144
151
|
const cached = await this.dexHelper.cache.get(this.dexKey, this.network, `state_${stataAddressLower}`);
|
|
@@ -148,7 +155,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
148
155
|
else {
|
|
149
156
|
const results = await this.dexHelper.multiWrapper.tryAggregate(true, [
|
|
150
157
|
{
|
|
151
|
-
target:
|
|
158
|
+
target: stataToken.address,
|
|
152
159
|
callData: AaveV3Stata.stata.encodeFunctionData('rate'),
|
|
153
160
|
decodeFunction: decoders_1.uint256ToBigInt,
|
|
154
161
|
},
|
|
@@ -157,7 +164,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
157
164
|
blockNumber,
|
|
158
165
|
rate: results[0].returnData,
|
|
159
166
|
};
|
|
160
|
-
this.dexHelper.cache.setex(this.dexKey, this.network,
|
|
167
|
+
this.dexHelper.cache.setex(this.dexKey, this.network, `state_${stataAddressLower}`, 60, utils_1.Utils.Serialize(this.state[stataAddressLower]));
|
|
161
168
|
}
|
|
162
169
|
}
|
|
163
170
|
return [
|
|
@@ -182,12 +189,12 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
182
189
|
}
|
|
183
190
|
}),
|
|
184
191
|
unit: (0, utils_1.getBigIntPow)((side === constants_1.SwapSide.SELL ? destToken : srcToken).decimals),
|
|
185
|
-
gasCost:
|
|
192
|
+
gasCost: 270000,
|
|
186
193
|
exchange: this.dexKey,
|
|
187
194
|
data: {
|
|
188
195
|
srcType: src,
|
|
189
196
|
destType: dest,
|
|
190
|
-
exchange:
|
|
197
|
+
exchange: stataToken.address,
|
|
191
198
|
},
|
|
192
199
|
poolAddresses: [stataAddressLower],
|
|
193
200
|
},
|
|
@@ -272,6 +279,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
272
279
|
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, _, executorAddress) {
|
|
273
280
|
const { exchange, srcType, destType } = data;
|
|
274
281
|
let swapData;
|
|
282
|
+
let returnAmountPos = undefined;
|
|
275
283
|
if (side === constants_1.SwapSide.SELL) {
|
|
276
284
|
if (srcType === types_1.TokenType.STATA_TOKEN) {
|
|
277
285
|
// e.g. sell srcAmount 100 srcToken stataUSDC for destToken USDC
|
|
@@ -281,6 +289,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
281
289
|
executorAddress,
|
|
282
290
|
destType === types_1.TokenType.UNDERLYING, // withdraw from aToken
|
|
283
291
|
]);
|
|
292
|
+
returnAmountPos = (0, utils_3.extractReturnAmountPosition)(AaveV3Stata.stata, types_1.StataFunctions.redeem, '', 1);
|
|
284
293
|
}
|
|
285
294
|
else {
|
|
286
295
|
// sell srcAmount 100 srcToken USDC for destToken stataUSDC
|
|
@@ -290,6 +299,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
290
299
|
0,
|
|
291
300
|
srcType === types_1.TokenType.UNDERLYING, // deposit to aave
|
|
292
301
|
]);
|
|
302
|
+
returnAmountPos = (0, utils_3.extractReturnAmountPosition)(AaveV3Stata.stata, types_1.StataFunctions.deposit);
|
|
293
303
|
}
|
|
294
304
|
}
|
|
295
305
|
else {
|
|
@@ -314,7 +324,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
314
324
|
dexFuncHasRecipient: true,
|
|
315
325
|
exchangeData: swapData,
|
|
316
326
|
targetExchange: exchange,
|
|
317
|
-
returnAmountPos
|
|
327
|
+
returnAmountPos,
|
|
318
328
|
};
|
|
319
329
|
}
|
|
320
330
|
// 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"}
|
package/package.json
CHANGED
|
@@ -15,7 +15,13 @@ import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
|
|
|
15
15
|
import { Utils, getBigIntPow, getDexKeysWithNetwork } from '../../utils';
|
|
16
16
|
import { Context, IDex } from '../../dex/idex';
|
|
17
17
|
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
AaveV3StataData,
|
|
20
|
+
Rounding,
|
|
21
|
+
StataFunctions,
|
|
22
|
+
StataToken,
|
|
23
|
+
TokenType,
|
|
24
|
+
} from './types';
|
|
19
25
|
import { SimpleExchange } from '../simple-exchange';
|
|
20
26
|
import { AaveV3StataConfig, Adapters } from './config';
|
|
21
27
|
import { Interface } from '@ethersproject/abi';
|
|
@@ -27,7 +33,7 @@ import {
|
|
|
27
33
|
} from './tokens';
|
|
28
34
|
import { uint256ToBigInt } from '../../lib/decoders';
|
|
29
35
|
import TokenABI from '../../abi/aavev3stata/Token.json';
|
|
30
|
-
import {
|
|
36
|
+
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
31
37
|
// import { IStaticATokenLM_ABI } from '@bgd-labs/aave-address-book';
|
|
32
38
|
// slimmed down version of @bgd-labs/aave-address-book
|
|
33
39
|
// required as version of web3-utils used is buggy
|
|
@@ -80,7 +86,15 @@ export class AaveV3Stata
|
|
|
80
86
|
TOKEN_LIST_LOCAL_TTL_SECONDS,
|
|
81
87
|
);
|
|
82
88
|
if (cachedTokenList !== null) {
|
|
83
|
-
|
|
89
|
+
const tokenListParsed = JSON.parse(cachedTokenList);
|
|
90
|
+
setTokensOnNetwork(this.network, tokenListParsed);
|
|
91
|
+
|
|
92
|
+
tokenListParsed.forEach((token: StataToken) => {
|
|
93
|
+
this.state[token.address] = {
|
|
94
|
+
blockNumber: 0,
|
|
95
|
+
rate: 0n,
|
|
96
|
+
};
|
|
97
|
+
});
|
|
84
98
|
return;
|
|
85
99
|
}
|
|
86
100
|
|
|
@@ -113,12 +127,13 @@ export class AaveV3Stata
|
|
|
113
127
|
// Returns the list of contract adapters (name and index)
|
|
114
128
|
// for a buy/sell. Return null if there are no adapters.
|
|
115
129
|
getAdapters(side: SwapSide): { name: string; index: number }[] | null {
|
|
116
|
-
return
|
|
130
|
+
return null;
|
|
117
131
|
}
|
|
118
132
|
|
|
119
133
|
private _getPoolIdentifier(srcToken: Token, destToken: Token): string {
|
|
120
134
|
return (
|
|
121
135
|
this.dexKey +
|
|
136
|
+
'-' +
|
|
122
137
|
[srcToken.address.toLowerCase(), destToken.address.toLowerCase()]
|
|
123
138
|
.sort((a, b) => (a > b ? 1 : -1))
|
|
124
139
|
.join('_')
|
|
@@ -188,10 +203,8 @@ export class AaveV3Stata
|
|
|
188
203
|
}
|
|
189
204
|
}
|
|
190
205
|
|
|
191
|
-
const
|
|
192
|
-
const stataAddressLower = stata.address.toLowerCase();
|
|
206
|
+
const stataAddressLower = stataToken.address.toLowerCase();
|
|
193
207
|
|
|
194
|
-
// following what is done on wstETH
|
|
195
208
|
if (
|
|
196
209
|
!this.state[stataAddressLower]?.blockNumber ||
|
|
197
210
|
blockNumber > this.state[stataAddressLower].blockNumber
|
|
@@ -208,7 +221,7 @@ export class AaveV3Stata
|
|
|
208
221
|
true,
|
|
209
222
|
[
|
|
210
223
|
{
|
|
211
|
-
target:
|
|
224
|
+
target: stataToken.address,
|
|
212
225
|
callData: AaveV3Stata.stata.encodeFunctionData('rate'),
|
|
213
226
|
decodeFunction: uint256ToBigInt,
|
|
214
227
|
},
|
|
@@ -222,7 +235,7 @@ export class AaveV3Stata
|
|
|
222
235
|
this.dexHelper.cache.setex(
|
|
223
236
|
this.dexKey,
|
|
224
237
|
this.network,
|
|
225
|
-
|
|
238
|
+
`state_${stataAddressLower}`,
|
|
226
239
|
60,
|
|
227
240
|
Utils.Serialize(this.state[stataAddressLower]),
|
|
228
241
|
);
|
|
@@ -250,12 +263,12 @@ export class AaveV3Stata
|
|
|
250
263
|
unit: getBigIntPow(
|
|
251
264
|
(side === SwapSide.SELL ? destToken : srcToken).decimals,
|
|
252
265
|
),
|
|
253
|
-
gasCost:
|
|
266
|
+
gasCost: 270000, // 250_000 from underlying, far less from aToken
|
|
254
267
|
exchange: this.dexKey,
|
|
255
268
|
data: {
|
|
256
269
|
srcType: src,
|
|
257
270
|
destType: dest,
|
|
258
|
-
exchange:
|
|
271
|
+
exchange: stataToken.address,
|
|
259
272
|
},
|
|
260
273
|
poolAddresses: [stataAddressLower],
|
|
261
274
|
},
|
|
@@ -356,6 +369,7 @@ export class AaveV3Stata
|
|
|
356
369
|
): DexExchangeParam {
|
|
357
370
|
const { exchange, srcType, destType } = data;
|
|
358
371
|
let swapData;
|
|
372
|
+
let returnAmountPos = undefined;
|
|
359
373
|
|
|
360
374
|
if (side === SwapSide.SELL) {
|
|
361
375
|
if (srcType === TokenType.STATA_TOKEN) {
|
|
@@ -366,6 +380,13 @@ export class AaveV3Stata
|
|
|
366
380
|
executorAddress, // owner
|
|
367
381
|
destType === TokenType.UNDERLYING, // withdraw from aToken
|
|
368
382
|
]);
|
|
383
|
+
|
|
384
|
+
returnAmountPos = extractReturnAmountPosition(
|
|
385
|
+
AaveV3Stata.stata,
|
|
386
|
+
StataFunctions.redeem,
|
|
387
|
+
'',
|
|
388
|
+
1,
|
|
389
|
+
);
|
|
369
390
|
} else {
|
|
370
391
|
// sell srcAmount 100 srcToken USDC for destToken stataUSDC
|
|
371
392
|
swapData = AaveV3Stata.stata.encodeFunctionData(
|
|
@@ -377,6 +398,10 @@ export class AaveV3Stata
|
|
|
377
398
|
srcType === TokenType.UNDERLYING, // deposit to aave
|
|
378
399
|
],
|
|
379
400
|
);
|
|
401
|
+
returnAmountPos = extractReturnAmountPosition(
|
|
402
|
+
AaveV3Stata.stata,
|
|
403
|
+
StataFunctions.deposit,
|
|
404
|
+
);
|
|
380
405
|
}
|
|
381
406
|
} else {
|
|
382
407
|
if (srcType === TokenType.STATA_TOKEN) {
|
|
@@ -403,7 +428,7 @@ export class AaveV3Stata
|
|
|
403
428
|
dexFuncHasRecipient: true,
|
|
404
429
|
exchangeData: swapData,
|
|
405
430
|
targetExchange: exchange,
|
|
406
|
-
returnAmountPos
|
|
431
|
+
returnAmountPos,
|
|
407
432
|
};
|
|
408
433
|
}
|
|
409
434
|
|