@paraswap/dex-lib 3.7.0-stata.2 → 3.7.0-stata.4
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 +26 -9
- package/build/dex/aave-v3-stata/aave-v3-stata.js.map +1 -1
- package/build/dex/aave-v3-stata/tokens.d.ts +1 -0
- package/build/dex/aave-v3-stata/tokens.js +5 -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 -13
- package/src/dex/aave-v3-stata/tokens.ts +7 -0
|
@@ -106,24 +106,41 @@ class AaveV3Stata extends simple_exchange_1.SimpleExchange {
|
|
|
106
106
|
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
|
|
107
107
|
const src = (0, tokens_1.getTokenType)(this.network, srcToken.address);
|
|
108
108
|
const dest = (0, tokens_1.getTokenType)(this.network, destToken.address);
|
|
109
|
+
// one of the tokens must be stata
|
|
110
|
+
if (![src, dest].includes(types_1.TokenType.STATA_TOKEN) || src === dest) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
109
113
|
const isSrcStata = src === types_1.TokenType.STATA_TOKEN;
|
|
114
|
+
const [stataToken, otherAddressLower] = isSrcStata
|
|
115
|
+
? [
|
|
116
|
+
(0, tokens_1.getTokenFromAddress)(this.network, srcToken.address),
|
|
117
|
+
destToken.address.toLowerCase(),
|
|
118
|
+
]
|
|
119
|
+
: [
|
|
120
|
+
(0, tokens_1.getTokenFromAddress)(this.network, destToken.address),
|
|
121
|
+
srcToken.address.toLowerCase(),
|
|
122
|
+
];
|
|
110
123
|
// the token itself can only swap from/to underlying and aToken, so
|
|
111
124
|
// - at least one must be stata
|
|
112
125
|
// - maximum one can be stata
|
|
113
126
|
// - second one must be underlying or aUnderlying
|
|
114
|
-
if (![src, dest].includes(types_1.TokenType.STATA_TOKEN) ||
|
|
115
|
-
src === dest ||
|
|
116
|
-
src === types_1.TokenType.UNKNOWN ||
|
|
117
|
-
dest === types_1.TokenType.UNKNOWN) {
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
127
|
// on the buy side (mint, withdraw) we only support the underlying<->stata conversion, not the aUnderlying
|
|
121
|
-
if (side === constants_1.SwapSide.
|
|
122
|
-
|
|
128
|
+
if (side === constants_1.SwapSide.SELL) {
|
|
129
|
+
if (otherAddressLower !== stataToken.underlying.toLowerCase() &&
|
|
130
|
+
otherAddressLower !== stataToken.underlyingAToken.toLowerCase()) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
if (otherAddressLower !== stataToken.underlying.toLowerCase()) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
123
139
|
const stata = isSrcStata ? srcToken : destToken;
|
|
124
140
|
const stataAddressLower = stata.address.toLowerCase();
|
|
125
141
|
// following what is done on wstETH
|
|
126
|
-
if (
|
|
142
|
+
if (!this.state[stataAddressLower]?.blockNumber ||
|
|
143
|
+
blockNumber > this.state[stataAddressLower].blockNumber) {
|
|
127
144
|
const cached = await this.dexHelper.cache.get(this.dexKey, this.network, `state_${stataAddressLower}`);
|
|
128
145
|
if (cached) {
|
|
129
146
|
this.state[stataAddressLower] = utils_1.Utils.Parse(cached);
|
|
@@ -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,mCAA+E;AAC/E,wDAAoD;AACpD,qCAAuD;AACvD,4CAA+C;AAC/C,mCAAyC;AACzC,
|
|
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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"}
|
|
@@ -7,3 +7,4 @@ export declare const Tokens: {
|
|
|
7
7
|
};
|
|
8
8
|
export declare function setTokensOnNetwork(network: Network, tokens: StataToken[]): void;
|
|
9
9
|
export declare function getTokenType(network: Network, address: string): TokenType;
|
|
10
|
+
export declare function getTokenFromAddress(network: Network, address: string): StataToken;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTokenType = exports.setTokensOnNetwork = exports.Tokens = void 0;
|
|
3
|
+
exports.getTokenFromAddress = exports.getTokenType = exports.setTokensOnNetwork = exports.Tokens = void 0;
|
|
4
4
|
const types_1 = require("./types");
|
|
5
5
|
exports.Tokens = {};
|
|
6
6
|
const TokensByAddress = {};
|
|
@@ -36,4 +36,8 @@ function getTokenType(network, address) {
|
|
|
36
36
|
return types_1.TokenType.UNKNOWN;
|
|
37
37
|
}
|
|
38
38
|
exports.getTokenType = getTokenType;
|
|
39
|
+
function getTokenFromAddress(network, address) {
|
|
40
|
+
return TokensByAddress[network][address.toLowerCase()];
|
|
41
|
+
}
|
|
42
|
+
exports.getTokenFromAddress = getTokenFromAddress;
|
|
39
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"}
|
|
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;AACzD,CAAC;AALD,kDAKC"}
|
package/package.json
CHANGED
|
@@ -20,7 +20,11 @@ import { SimpleExchange } from '../simple-exchange';
|
|
|
20
20
|
import { AaveV3StataConfig, Adapters } from './config';
|
|
21
21
|
import { Interface } from '@ethersproject/abi';
|
|
22
22
|
import { fetchTokenList } from './utils';
|
|
23
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
getTokenFromAddress,
|
|
25
|
+
getTokenType,
|
|
26
|
+
setTokensOnNetwork,
|
|
27
|
+
} from './tokens';
|
|
24
28
|
import { uint256ToBigInt } from '../../lib/decoders';
|
|
25
29
|
import TokenABI from '../../abi/aavev3stata/Token.json';
|
|
26
30
|
import { writeFileSync } from 'fs';
|
|
@@ -148,30 +152,50 @@ export class AaveV3Stata
|
|
|
148
152
|
): Promise<null | ExchangePrices<AaveV3StataData>> {
|
|
149
153
|
const src = getTokenType(this.network, srcToken.address);
|
|
150
154
|
const dest = getTokenType(this.network, destToken.address);
|
|
155
|
+
|
|
156
|
+
// one of the tokens must be stata
|
|
157
|
+
if (![src, dest].includes(TokenType.STATA_TOKEN) || src === dest) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
|
|
151
161
|
const isSrcStata = src === TokenType.STATA_TOKEN;
|
|
152
162
|
|
|
163
|
+
const [stataToken, otherAddressLower] = isSrcStata
|
|
164
|
+
? [
|
|
165
|
+
getTokenFromAddress(this.network, srcToken.address),
|
|
166
|
+
destToken.address.toLowerCase(),
|
|
167
|
+
]
|
|
168
|
+
: [
|
|
169
|
+
getTokenFromAddress(this.network, destToken.address),
|
|
170
|
+
srcToken.address.toLowerCase(),
|
|
171
|
+
];
|
|
172
|
+
|
|
153
173
|
// the token itself can only swap from/to underlying and aToken, so
|
|
154
174
|
// - at least one must be stata
|
|
155
175
|
// - maximum one can be stata
|
|
156
176
|
// - second one must be underlying or aUnderlying
|
|
157
|
-
if (
|
|
158
|
-
![src, dest].includes(TokenType.STATA_TOKEN) ||
|
|
159
|
-
src === dest ||
|
|
160
|
-
src === TokenType.UNKNOWN ||
|
|
161
|
-
dest === TokenType.UNKNOWN
|
|
162
|
-
) {
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
177
|
// on the buy side (mint, withdraw) we only support the underlying<->stata conversion, not the aUnderlying
|
|
167
|
-
if (side === SwapSide.
|
|
168
|
-
|
|
178
|
+
if (side === SwapSide.SELL) {
|
|
179
|
+
if (
|
|
180
|
+
otherAddressLower !== stataToken.underlying.toLowerCase() &&
|
|
181
|
+
otherAddressLower !== stataToken.underlyingAToken.toLowerCase()
|
|
182
|
+
) {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
} else {
|
|
186
|
+
if (otherAddressLower !== stataToken.underlying.toLowerCase()) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
169
190
|
|
|
170
191
|
const stata = isSrcStata ? srcToken : destToken;
|
|
171
192
|
const stataAddressLower = stata.address.toLowerCase();
|
|
172
193
|
|
|
173
194
|
// following what is done on wstETH
|
|
174
|
-
if (
|
|
195
|
+
if (
|
|
196
|
+
!this.state[stataAddressLower]?.blockNumber ||
|
|
197
|
+
blockNumber > this.state[stataAddressLower].blockNumber
|
|
198
|
+
) {
|
|
175
199
|
const cached = await this.dexHelper.cache.get(
|
|
176
200
|
this.dexKey,
|
|
177
201
|
this.network,
|
|
@@ -39,3 +39,10 @@ export function getTokenType(network: Network, address: string): TokenType {
|
|
|
39
39
|
if (token.underlyingAToken === addressLower) return TokenType.A_TOKEN;
|
|
40
40
|
return TokenType.UNKNOWN;
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
export function getTokenFromAddress(
|
|
44
|
+
network: Network,
|
|
45
|
+
address: string,
|
|
46
|
+
): StataToken {
|
|
47
|
+
return TokensByAddress[network][address.toLowerCase()];
|
|
48
|
+
}
|