@paraswap/dex-lib 3.7.0-stata.5 → 3.7.0-stata.7
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.
|
@@ -39,14 +39,13 @@ 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
41
|
const utils_3 = require("../../executor/utils");
|
|
42
|
+
const constants_2 = require("../../executor/constants");
|
|
42
43
|
// import { IStaticATokenLM_ABI } from '@bgd-labs/aave-address-book';
|
|
43
44
|
// slimmed down version of @bgd-labs/aave-address-book
|
|
44
45
|
// required as version of web3-utils used is buggy
|
|
45
46
|
//import IStaticATokenFactory_ABI from '../../abi/aave-v3-stata/StaticATokenFactory.json';
|
|
46
47
|
exports.TOKEN_LIST_CACHE_KEY = 'stata-token-list';
|
|
47
48
|
const TOKEN_LIST_TTL_SECONDS = 24 * 60 * 60; // 1 day
|
|
48
|
-
const TOKEN_LIST_LOCAL_TTL_SECONDS = 3 * 60 * 60; // 3h
|
|
49
|
-
// const RAY = BigInt(1e27);
|
|
50
49
|
const RAY = BigInt(`1${'0'.repeat(27)}`);
|
|
51
50
|
class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
52
51
|
constructor(network, dexKey, dexHelper, config = config_1.AaveV3StataConfig[dexKey][network], adapters = config_1.Adapters[network]) {
|
|
@@ -61,14 +60,17 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
61
60
|
this.state = {};
|
|
62
61
|
this.logger = dexHelper.getLogger(dexKey);
|
|
63
62
|
}
|
|
64
|
-
// Initialize pricing is called once in the start of
|
|
65
|
-
// pricing service. It is intended to setup the integration
|
|
66
|
-
// for pricing requests. It is optional for a DEX to
|
|
67
|
-
// implement this function
|
|
68
63
|
async initializePricing(blockNumber) {
|
|
69
|
-
let cachedTokenList = await this.dexHelper.cache.
|
|
64
|
+
let cachedTokenList = await this.dexHelper.cache.get(this.dexKey, this.network, exports.TOKEN_LIST_CACHE_KEY);
|
|
70
65
|
if (cachedTokenList !== null) {
|
|
71
|
-
|
|
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
|
+
});
|
|
72
74
|
return;
|
|
73
75
|
}
|
|
74
76
|
let tokenList = await (0, utils_2.fetchTokenList)(this.dexHelper.web3Provider, blockNumber, this.config.factoryAddress, this.dexHelper.multiWrapper);
|
|
@@ -85,10 +87,11 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
85
87
|
// Returns the list of contract adapters (name and index)
|
|
86
88
|
// for a buy/sell. Return null if there are no adapters.
|
|
87
89
|
getAdapters(side) {
|
|
88
|
-
return
|
|
90
|
+
return null;
|
|
89
91
|
}
|
|
90
92
|
_getPoolIdentifier(srcToken, destToken) {
|
|
91
93
|
return (this.dexKey +
|
|
94
|
+
'-' +
|
|
92
95
|
[srcToken.address.toLowerCase(), destToken.address.toLowerCase()]
|
|
93
96
|
.sort((a, b) => (a > b ? 1 : -1))
|
|
94
97
|
.join('_'));
|
|
@@ -181,7 +184,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
181
184
|
}
|
|
182
185
|
}),
|
|
183
186
|
unit: (0, utils_1.getBigIntPow)((side === constants_1.SwapSide.SELL ? destToken : srcToken).decimals),
|
|
184
|
-
gasCost:
|
|
187
|
+
gasCost: 270000,
|
|
185
188
|
exchange: this.dexKey,
|
|
186
189
|
data: {
|
|
187
190
|
srcType: src,
|
|
@@ -281,7 +284,7 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
281
284
|
executorAddress,
|
|
282
285
|
destType === types_1.TokenType.UNDERLYING, // withdraw from aToken
|
|
283
286
|
]);
|
|
284
|
-
returnAmountPos =
|
|
287
|
+
returnAmountPos = constants_2.RETURN_AMOUNT_POS_32;
|
|
285
288
|
}
|
|
286
289
|
else {
|
|
287
290
|
// sell srcAmount 100 srcToken USDC for destToken stataUSDC
|
|
@@ -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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"}
|
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';
|
|
@@ -28,6 +34,7 @@ import {
|
|
|
28
34
|
import { uint256ToBigInt } from '../../lib/decoders';
|
|
29
35
|
import TokenABI from '../../abi/aavev3stata/Token.json';
|
|
30
36
|
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
37
|
+
import { RETURN_AMOUNT_POS_32 } from '../../executor/constants';
|
|
31
38
|
// import { IStaticATokenLM_ABI } from '@bgd-labs/aave-address-book';
|
|
32
39
|
// slimmed down version of @bgd-labs/aave-address-book
|
|
33
40
|
// required as version of web3-utils used is buggy
|
|
@@ -35,8 +42,6 @@ import { extractReturnAmountPosition } from '../../executor/utils';
|
|
|
35
42
|
|
|
36
43
|
export const TOKEN_LIST_CACHE_KEY = 'stata-token-list';
|
|
37
44
|
const TOKEN_LIST_TTL_SECONDS = 24 * 60 * 60; // 1 day
|
|
38
|
-
const TOKEN_LIST_LOCAL_TTL_SECONDS = 3 * 60 * 60; // 3h
|
|
39
|
-
// const RAY = BigInt(1e27);
|
|
40
45
|
const RAY = BigInt(`1${'0'.repeat(27)}`);
|
|
41
46
|
|
|
42
47
|
export class AaveV3Stata
|
|
@@ -68,19 +73,22 @@ export class AaveV3Stata
|
|
|
68
73
|
this.logger = dexHelper.getLogger(dexKey);
|
|
69
74
|
}
|
|
70
75
|
|
|
71
|
-
// Initialize pricing is called once in the start of
|
|
72
|
-
// pricing service. It is intended to setup the integration
|
|
73
|
-
// for pricing requests. It is optional for a DEX to
|
|
74
|
-
// implement this function
|
|
75
76
|
async initializePricing(blockNumber: number) {
|
|
76
|
-
let cachedTokenList = await this.dexHelper.cache.
|
|
77
|
+
let cachedTokenList = await this.dexHelper.cache.get(
|
|
77
78
|
this.dexKey,
|
|
78
79
|
this.network,
|
|
79
80
|
TOKEN_LIST_CACHE_KEY,
|
|
80
|
-
TOKEN_LIST_LOCAL_TTL_SECONDS,
|
|
81
81
|
);
|
|
82
82
|
if (cachedTokenList !== null) {
|
|
83
|
-
|
|
83
|
+
const tokenListParsed = JSON.parse(cachedTokenList);
|
|
84
|
+
setTokensOnNetwork(this.network, tokenListParsed);
|
|
85
|
+
|
|
86
|
+
tokenListParsed.forEach((token: StataToken) => {
|
|
87
|
+
this.state[token.address] = {
|
|
88
|
+
blockNumber: 0,
|
|
89
|
+
rate: 0n,
|
|
90
|
+
};
|
|
91
|
+
});
|
|
84
92
|
return;
|
|
85
93
|
}
|
|
86
94
|
|
|
@@ -113,12 +121,13 @@ export class AaveV3Stata
|
|
|
113
121
|
// Returns the list of contract adapters (name and index)
|
|
114
122
|
// for a buy/sell. Return null if there are no adapters.
|
|
115
123
|
getAdapters(side: SwapSide): { name: string; index: number }[] | null {
|
|
116
|
-
return
|
|
124
|
+
return null;
|
|
117
125
|
}
|
|
118
126
|
|
|
119
127
|
private _getPoolIdentifier(srcToken: Token, destToken: Token): string {
|
|
120
128
|
return (
|
|
121
129
|
this.dexKey +
|
|
130
|
+
'-' +
|
|
122
131
|
[srcToken.address.toLowerCase(), destToken.address.toLowerCase()]
|
|
123
132
|
.sort((a, b) => (a > b ? 1 : -1))
|
|
124
133
|
.join('_')
|
|
@@ -248,7 +257,7 @@ export class AaveV3Stata
|
|
|
248
257
|
unit: getBigIntPow(
|
|
249
258
|
(side === SwapSide.SELL ? destToken : srcToken).decimals,
|
|
250
259
|
),
|
|
251
|
-
gasCost:
|
|
260
|
+
gasCost: 270000, // 250_000 from underlying, far less from aToken
|
|
252
261
|
exchange: this.dexKey,
|
|
253
262
|
data: {
|
|
254
263
|
srcType: src,
|
|
@@ -366,12 +375,7 @@ export class AaveV3Stata
|
|
|
366
375
|
destType === TokenType.UNDERLYING, // withdraw from aToken
|
|
367
376
|
]);
|
|
368
377
|
|
|
369
|
-
returnAmountPos =
|
|
370
|
-
AaveV3Stata.stata,
|
|
371
|
-
StataFunctions.redeem,
|
|
372
|
-
'',
|
|
373
|
-
1,
|
|
374
|
-
);
|
|
378
|
+
returnAmountPos = RETURN_AMOUNT_POS_32;
|
|
375
379
|
} else {
|
|
376
380
|
// sell srcAmount 100 srcToken USDC for destToken stataUSDC
|
|
377
381
|
swapData = AaveV3Stata.stata.encodeFunctionData(
|