@paraswap/dex-lib 3.7.3 → 3.7.4-stata
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.d.ts +0 -2
- package/build/dex/aave-v3-stata/aave-v3-stata.js +84 -41
- 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 +11 -5
- package/build/dex/aave-v3-stata/tokens.js.map +1 -1
- package/build/dex/balancer-v2/balancer-v2.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/build/dex/index.js +2 -0
- package/build/dex/index.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js +1 -0
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3.js +1 -0
- package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.js +1 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3.js +1 -0
- package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
- package/package.json +1 -1
- package/src/abi/aavev3stata/Factory.json +128 -0
- package/src/abi/aavev3stata/Token.json +735 -0
- package/src/dex/aave-v3-stata/aave-v3-stata-e2e.test.ts +355 -0
- package/src/dex/aave-v3-stata/aave-v3-stata-integration.test.ts +282 -0
- package/src/dex/aave-v3-stata/aave-v3-stata.ts +517 -0
- package/src/dex/aave-v3-stata/config.ts +61 -0
- package/src/dex/aave-v3-stata/tokens.ts +48 -0
- package/src/dex/aave-v3-stata/types.ts +69 -0
- package/src/dex/aave-v3-stata/utils.ts +84 -0
- package/src/dex/balancer-v2/balancer-v2.ts +0 -1
- package/src/dex/index.ts +2 -0
- package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +2 -0
- package/src/dex/solidly-v3/solidly-v3.ts +2 -0
- package/src/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.ts +2 -0
- package/src/dex/uniswap-v3/uniswap-v3.ts +2 -0
- package/tests/constants-e2e.ts +78 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// import {
|
|
2
|
+
// IStaticATokenFactory_ABI,
|
|
3
|
+
// IStaticATokenLM_ABI,
|
|
4
|
+
// } from '@bgd-labs/aave-address-book';
|
|
5
|
+
import { Interface } from '@ethersproject/abi';
|
|
6
|
+
import Web3 from 'web3';
|
|
7
|
+
import { MultiCallParams, MultiWrapper } from '../../lib/multi-wrapper';
|
|
8
|
+
import { stringDecode, uint8ToNumber, addressDecode } from '../../lib/decoders';
|
|
9
|
+
import { StataToken } from './types';
|
|
10
|
+
import FactoryABI from '../../abi/aavev3stata/Factory.json';
|
|
11
|
+
import TokenABI from '../../abi/aavev3stata/Token.json';
|
|
12
|
+
import { AbiItem } from 'web3-utils';
|
|
13
|
+
|
|
14
|
+
// const stataInterface = new Interface(IStaticATokenLM_ABI);
|
|
15
|
+
const stataInterface = new Interface(TokenABI);
|
|
16
|
+
|
|
17
|
+
async function getTokenMetaData(
|
|
18
|
+
blockNumber: number,
|
|
19
|
+
stataTokens: string[],
|
|
20
|
+
multiWrapper: MultiWrapper,
|
|
21
|
+
): Promise<StataToken[]> {
|
|
22
|
+
const calls: MultiCallParams<any>[] = stataTokens
|
|
23
|
+
.map(token => {
|
|
24
|
+
return [
|
|
25
|
+
{
|
|
26
|
+
target: token,
|
|
27
|
+
callData: stataInterface.encodeFunctionData('symbol'),
|
|
28
|
+
decodeFunction: stringDecode,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
target: token,
|
|
32
|
+
callData: stataInterface.encodeFunctionData('decimals'),
|
|
33
|
+
decodeFunction: uint8ToNumber,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
target: token,
|
|
37
|
+
callData: stataInterface.encodeFunctionData('asset'),
|
|
38
|
+
decodeFunction: addressDecode,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
target: token,
|
|
42
|
+
callData: stataInterface.encodeFunctionData('aToken'),
|
|
43
|
+
decodeFunction: addressDecode,
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
})
|
|
47
|
+
.flat();
|
|
48
|
+
|
|
49
|
+
const results = await multiWrapper.aggregate<string | number>(
|
|
50
|
+
calls,
|
|
51
|
+
blockNumber,
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
let tokenList: StataToken[] = [];
|
|
55
|
+
for (let i = 0, x = 0; i < stataTokens.length; ++i, x += 4) {
|
|
56
|
+
tokenList.push({
|
|
57
|
+
address: stataTokens[i].toLowerCase(),
|
|
58
|
+
stataSymbol: results[x] as string,
|
|
59
|
+
decimals: results[x + 1] as number,
|
|
60
|
+
underlying: (results[x + 2] as string).toLowerCase(),
|
|
61
|
+
underlyingAToken: (results[x + 3] as string).toLowerCase(),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return tokenList;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export const fetchTokenList = async (
|
|
68
|
+
web3Provider: Web3,
|
|
69
|
+
blockNumber: number,
|
|
70
|
+
factoryAddress: string,
|
|
71
|
+
multiWrapper: MultiWrapper,
|
|
72
|
+
): Promise<StataToken[]> => {
|
|
73
|
+
let factoryContract = new web3Provider.eth.Contract(
|
|
74
|
+
FactoryABI as AbiItem[],
|
|
75
|
+
// IStaticATokenFactory_ABI as any,
|
|
76
|
+
factoryAddress,
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
let stataList: string[] = await factoryContract.methods
|
|
80
|
+
.getStaticATokens()
|
|
81
|
+
.call();
|
|
82
|
+
|
|
83
|
+
return getTokenMetaData(blockNumber, stataList, multiWrapper);
|
|
84
|
+
};
|
|
@@ -82,7 +82,6 @@ import { hexConcat, hexlify, hexZeroPad, solidityPack } from 'ethers/lib/utils';
|
|
|
82
82
|
import BalancerVaultABI from '../../abi/balancer-v2/vault.json';
|
|
83
83
|
import { BigNumber } from 'ethers';
|
|
84
84
|
import { SpecialDex } from '../../executor/types';
|
|
85
|
-
import { S } from '@bgd-labs/aave-address-book/dist/AaveV2Ethereum-timF4kft';
|
|
86
85
|
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
87
86
|
|
|
88
87
|
// If you disable some pool, don't forget to clear the cache, otherwise changes won't be applied immediately
|
package/src/dex/index.ts
CHANGED
|
@@ -86,6 +86,7 @@ import { PharaohV1 } from './solidly/forks-override/pharaohV1';
|
|
|
86
86
|
import { EtherFi } from './etherfi';
|
|
87
87
|
import { Spark } from './spark/spark';
|
|
88
88
|
import { VelodromeSlipstream } from './uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream';
|
|
89
|
+
import { AaveV3Stata } from './aave-v3-stata/aave-v3-stata';
|
|
89
90
|
|
|
90
91
|
const LegacyDexes = [
|
|
91
92
|
CurveV2,
|
|
@@ -168,6 +169,7 @@ const Dexes = [
|
|
|
168
169
|
Swell,
|
|
169
170
|
PharaohV1,
|
|
170
171
|
Spark,
|
|
172
|
+
AaveV3Stata,
|
|
171
173
|
];
|
|
172
174
|
|
|
173
175
|
export type LegacyDexConstructor = new (dexHelper: IDexHelper) => IDexTxBuilder<
|
package/tests/constants-e2e.ts
CHANGED
|
@@ -439,6 +439,14 @@ export const Tokens: {
|
|
|
439
439
|
address: '0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee',
|
|
440
440
|
decimals: 18,
|
|
441
441
|
},
|
|
442
|
+
stataUSDT: {
|
|
443
|
+
address: '0x862c57d48becb45583aeba3f489696d22466ca1b',
|
|
444
|
+
decimals: 6,
|
|
445
|
+
},
|
|
446
|
+
aaveUSDT: {
|
|
447
|
+
address: '0x23878914efe38d27c4d67ab83ed1b93a74d4086a',
|
|
448
|
+
decimals: 6,
|
|
449
|
+
},
|
|
442
450
|
},
|
|
443
451
|
[Network.POLYGON]: {
|
|
444
452
|
jGBP: {
|
|
@@ -449,6 +457,7 @@ export const Tokens: {
|
|
|
449
457
|
address: '0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063',
|
|
450
458
|
decimals: 18,
|
|
451
459
|
},
|
|
460
|
+
// native bridged wormhole
|
|
452
461
|
USDCe: {
|
|
453
462
|
address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
|
|
454
463
|
decimals: 6,
|
|
@@ -459,10 +468,24 @@ export const Tokens: {
|
|
|
459
468
|
address: '0xdf7837de1f2fa4631d716cf2502f8b230f1dcc32',
|
|
460
469
|
decimals: 2,
|
|
461
470
|
},
|
|
471
|
+
// wormhole
|
|
462
472
|
USDC: {
|
|
463
473
|
address: '0x576Cf361711cd940CD9C397BB98C4C896cBd38De',
|
|
464
474
|
decimals: 6,
|
|
465
475
|
},
|
|
476
|
+
// circle issued usdc
|
|
477
|
+
USDCn: {
|
|
478
|
+
address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
|
|
479
|
+
decimals: 6,
|
|
480
|
+
},
|
|
481
|
+
stataUSDCn: {
|
|
482
|
+
address: '0x2dCa80061632f3F87c9cA28364d1d0c30cD79a19',
|
|
483
|
+
decimals: 6,
|
|
484
|
+
},
|
|
485
|
+
aaveUSDCn: {
|
|
486
|
+
address: '0xa4d94019934d8333ef880abffbf2fdd611c762bd',
|
|
487
|
+
decimals: 6,
|
|
488
|
+
},
|
|
466
489
|
POPS: {
|
|
467
490
|
address: '0xa92A1576D11dB45c53be71d59245ac97ce0d8147',
|
|
468
491
|
decimals: 18,
|
|
@@ -832,6 +855,14 @@ export const Tokens: {
|
|
|
832
855
|
address: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
833
856
|
decimals: 18,
|
|
834
857
|
},
|
|
858
|
+
stataUSDT: {
|
|
859
|
+
address: '0x0471d185cc7be61e154277cab2396cd397663da6',
|
|
860
|
+
decimals: 18,
|
|
861
|
+
},
|
|
862
|
+
aaveUSDT: {
|
|
863
|
+
address: '0xa9251ca9de909cb71783723713b21e4233fbf1b1',
|
|
864
|
+
decimals: 18,
|
|
865
|
+
},
|
|
835
866
|
},
|
|
836
867
|
[Network.AVALANCHE]: {
|
|
837
868
|
LINKe: {
|
|
@@ -995,6 +1026,14 @@ export const Tokens: {
|
|
|
995
1026
|
address: '0x027dbcA046ca156De9622cD1e2D907d375e53aa7',
|
|
996
1027
|
decimals: 9,
|
|
997
1028
|
},
|
|
1029
|
+
stataUSDT: {
|
|
1030
|
+
address: '0x5525ee69bc1e354b356864187de486fab5ad67d7',
|
|
1031
|
+
decimals: 6,
|
|
1032
|
+
},
|
|
1033
|
+
aaveUSDT: {
|
|
1034
|
+
address: '0x6ab707aca953edaefbc4fd23ba73294241490620',
|
|
1035
|
+
decimals: 6,
|
|
1036
|
+
},
|
|
998
1037
|
},
|
|
999
1038
|
[Network.ARBITRUM]: {
|
|
1000
1039
|
SEN: {
|
|
@@ -1141,6 +1180,14 @@ export const Tokens: {
|
|
|
1141
1180
|
address: '0x0c880f6761f1af8d9aa9c466984b80dab9a8c9e8',
|
|
1142
1181
|
decimals: 18,
|
|
1143
1182
|
},
|
|
1183
|
+
stataUSDT: {
|
|
1184
|
+
address: '0xb165a74407fe1e519d6bcbdec1ed3202b35a4140',
|
|
1185
|
+
decimals: 6,
|
|
1186
|
+
},
|
|
1187
|
+
aaveUSDT: {
|
|
1188
|
+
address: '0x6ab707aca953edaefbc4fd23ba73294241490620',
|
|
1189
|
+
decimals: 6,
|
|
1190
|
+
},
|
|
1144
1191
|
},
|
|
1145
1192
|
[Network.OPTIMISM]: {
|
|
1146
1193
|
DAI: {
|
|
@@ -1242,6 +1289,14 @@ export const Tokens: {
|
|
|
1242
1289
|
address: '0x6806411765Af15Bddd26f8f544A34cC40cb9838B',
|
|
1243
1290
|
decimals: 18,
|
|
1244
1291
|
},
|
|
1292
|
+
stataUSDT: {
|
|
1293
|
+
address: '0x035c93db04e5aaea54e6cd0261c492a3e0638b37',
|
|
1294
|
+
decimals: 6,
|
|
1295
|
+
},
|
|
1296
|
+
aaveUSDT: {
|
|
1297
|
+
address: '0x6ab707aca953edaefbc4fd23ba73294241490620',
|
|
1298
|
+
decimals: 6,
|
|
1299
|
+
},
|
|
1245
1300
|
},
|
|
1246
1301
|
[Network.ZKEVM]: {
|
|
1247
1302
|
ETH: {
|
|
@@ -1346,6 +1401,14 @@ export const Tokens: {
|
|
|
1346
1401
|
address: '0x940181a94A35A4569E4529A3CDfB74e38FD98631',
|
|
1347
1402
|
decimals: 18,
|
|
1348
1403
|
},
|
|
1404
|
+
stataUSDC: {
|
|
1405
|
+
address: '0x4ea71a20e655794051d1ee8b6e4a3269b13ccacc',
|
|
1406
|
+
decimals: 6,
|
|
1407
|
+
},
|
|
1408
|
+
aaveUSDC: {
|
|
1409
|
+
address: '0x4e65fe4dba92790696d040ac24aa414708f5c0ab',
|
|
1410
|
+
decimals: 6,
|
|
1411
|
+
},
|
|
1349
1412
|
},
|
|
1350
1413
|
};
|
|
1351
1414
|
|
|
@@ -1437,6 +1500,8 @@ export const Holders: {
|
|
|
1437
1500
|
BNT: '0xf727e20e081aAE428E7c6bE07b156bB21ab587a7',
|
|
1438
1501
|
USDe: '0x74e6c48e667d698a4cf90665b6960a5bae39e603',
|
|
1439
1502
|
eETH: '0x0f1DfeF1a40557d279d0de6E49aB306891A638b8',
|
|
1503
|
+
stataUSDT: '0x6803364AceD5181877abC11E865FB27cB654a426',
|
|
1504
|
+
aaveUSDT: '0x32c98a981Fe7C333Bd4e8E7630E8e0CF5ce20987',
|
|
1440
1505
|
weETH: '0x267ed5f71EE47D3E45Bb1569Aa37889a2d10f91e',
|
|
1441
1506
|
},
|
|
1442
1507
|
[Network.POLYGON]: {
|
|
@@ -1478,8 +1543,11 @@ export const Holders: {
|
|
|
1478
1543
|
stEUR: '0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701',
|
|
1479
1544
|
USDA: '0x741383AbD73891b40822A069f14d6fc5b5685020',
|
|
1480
1545
|
stUSD: '0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701',
|
|
1546
|
+
stataUSDCn: '0xFAB1420c84fF5E058B8AD12604D24247e268f362',
|
|
1547
|
+
aaveUSDCn: '0xEBA9C3C1B41A846431F970aCA5Eee10f55969B76',
|
|
1481
1548
|
crvUSD: '0xB498de532C68dc3cd93D54187E082E5D789a9e47',
|
|
1482
1549
|
USDCe: '0xA67EFB69A4f58F568aAB1b9d51110102985835b0',
|
|
1550
|
+
USDCn: '0x4B6f17856215eab57c29ebfA18B0a0F74A3627bb',
|
|
1483
1551
|
},
|
|
1484
1552
|
[Network.FANTOM]: {
|
|
1485
1553
|
DAI: '0x370f4b2dcf75c94d8d4450b493661a9c6170d0b5',
|
|
@@ -1532,6 +1600,8 @@ export const Holders: {
|
|
|
1532
1600
|
EURA: '0x4A5362ef534FFB27510E4E4C9A215BB5436377C2',
|
|
1533
1601
|
USDA: '0x230c1f68aBE6033Cba3Fe0D2C0D7097e9923C3bC',
|
|
1534
1602
|
stUSD: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
1603
|
+
stataUSDT: '', // no holders yet
|
|
1604
|
+
aaveUSDT: '0x5DE3c5BE52D7aDbdC3aEFe2eA061A2ECE0C7d766',
|
|
1535
1605
|
},
|
|
1536
1606
|
[Network.AVALANCHE]: {
|
|
1537
1607
|
LINKe: '0x9efa0A617C0552F1558c95993aA8b8A68b3e709C',
|
|
@@ -1568,6 +1638,8 @@ export const Holders: {
|
|
|
1568
1638
|
BTCb: '0x2446bEb3905CfFbd2c5eB18F1f9c2996B05257c4',
|
|
1569
1639
|
AMPL: '0xfcaA5ea7F8eb0631BcA72C345025C0A5a6D93f0E',
|
|
1570
1640
|
PHAR: '0x654296D56532f62B7d91d335791d3c364a9385b5',
|
|
1641
|
+
stataUSDT: '', // no holders yet
|
|
1642
|
+
aaveUSDT: '0xB2d3ad6e99D2A043EF77e3812461Ad2D4Ae3da8B',
|
|
1571
1643
|
},
|
|
1572
1644
|
[Network.ARBITRUM]: {
|
|
1573
1645
|
SEN: '0x76d39045d856caf9bfae12ba611ca4a94449a4f1',
|
|
@@ -1604,6 +1676,8 @@ export const Holders: {
|
|
|
1604
1676
|
stEUR: '0xE588611e7A2392507879E3be80531654b85C16aA',
|
|
1605
1677
|
USDA: '0xa86ff337db9107b54862d30d1a598f8be847b05e',
|
|
1606
1678
|
stUSD: '0xa9ddd91249dfdd450e81e1c56ab60e1a62651701',
|
|
1679
|
+
stataUSDT: '0x403D37c861fb54b8F37a3A1870aBce335954840B',
|
|
1680
|
+
aaveUSDT: '0xAfa788fab589fe61C23DF76905558f4734444D67',
|
|
1607
1681
|
crvUSD: '0x9755e99bdb99495d3d31d953785d993c6df8552e',
|
|
1608
1682
|
},
|
|
1609
1683
|
[Network.OPTIMISM]: {
|
|
@@ -1631,6 +1705,8 @@ export const Holders: {
|
|
|
1631
1705
|
crvUSD: '0x528e7aF33043Da06ca3DD407626a71DbBD3173D6',
|
|
1632
1706
|
LUSD: '0xf0a9abb11958a071e168f2ee5bcbacf1abbde9cf',
|
|
1633
1707
|
GRAI: '0x92b051204816DC4fbA7AC1A68a2cf319A9a387CB',
|
|
1708
|
+
stataUSDT: '0xd55263b84685Ced7e10a77607C7fFD763D495B6e',
|
|
1709
|
+
aaveUSDT: '0x1Fd458C52fEb7Bb35097ebd9566DB6C269341FDD',
|
|
1634
1710
|
tBTC: '0xf7b4531e52211CC44379102F719cad29411dB053',
|
|
1635
1711
|
PSTAKE: '0xc45398444B83183b2018e0224B3D332b42D492Af',
|
|
1636
1712
|
},
|
|
@@ -1660,6 +1736,8 @@ export const Holders: {
|
|
|
1660
1736
|
AERO: '0x807877258b55bfefabdd469da1c72731c5070839',
|
|
1661
1737
|
tBTC: '0x9f1920d0cbb63ed03376a1e09fd2851d601234c8',
|
|
1662
1738
|
DOG: '0xbe3ab8a87730684ef1e476064c2e43c3e982f8e8',
|
|
1739
|
+
stataUSDC: '0x88Cac91ADDE2208039A227B373C2A692C0700547',
|
|
1740
|
+
aaveUSDC: '0x5DE3c5BE52D7aDbdC3aEFe2eA061A2ECE0C7d766',
|
|
1663
1741
|
USDM: '0x492EC4591c55962C5739A8dC98F0B401897Db038',
|
|
1664
1742
|
crvUSD: '0xBbAbDB1385deA5285113581A7024d6DC04131101',
|
|
1665
1743
|
cbETH: '0x50e011dD1e2b4906F1534623cD134B30422bb11E',
|