@paraswap/dex-lib 2.50.8 → 2.50.9
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/abi/Redstone.json +739 -0
- package/build/abi/angle/stagToken.json +963 -0
- package/build/abi/angle-transmuter/MorphoOracle.json +193 -0
- package/build/abi/angle-transmuter/MorphoVault.json +2506 -0
- package/build/abi/angle-transmuter/Pyth.json +1534 -0
- package/build/abi/angle-transmuter/Transmuter.json +1711 -0
- package/build/abi/pharaoh/PharaohPool.abi.json +1582 -0
- package/build/abi/smardex/smardex-factory.json +185 -0
- package/build/abi/smardex/smardex-pool.json +578 -0
- package/build/abi/smardex/smardex-router.json +648 -0
- package/build/abi/trader-joe-v2_1/FactoryABI.json +1208 -0
- package/build/abi/trader-joe-v2_1/PairABI.json +1493 -0
- package/build/abi/trader-joe-v2_1/RouterABI.json +1489 -0
- package/build/abi/trader-joe-v2_1/StateMulticall.json +193 -0
- package/build/abi/wombat/pool.json +1289 -0
- package/build/config.js +8 -7
- package/build/config.js.map +1 -1
- package/build/dex/aave-v2/tokens-avalanche.json +44 -0
- package/build/dex/aave-v2/tokens-mainnet.json +188 -0
- package/build/dex/aave-v2/tokens-polygon.json +44 -0
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +56 -0
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +197 -0
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +1 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +48 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.js +222 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -0
- package/build/dex/angle-staked-stable/config.d.ts +4 -0
- package/build/dex/angle-staked-stable/config.js +139 -0
- package/build/dex/angle-staked-stable/config.js.map +1 -0
- package/build/dex/angle-staked-stable/types.d.ts +15 -0
- package/build/dex/angle-staked-stable/types.js +3 -0
- package/build/dex/angle-staked-stable/types.js.map +1 -0
- package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +61 -0
- package/build/dex/angle-transmuter/angle-transmuter-pool.js +415 -0
- package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +1 -0
- package/build/dex/angle-transmuter/angle-transmuter.d.ts +59 -0
- package/build/dex/angle-transmuter/angle-transmuter.js +262 -0
- package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -0
- package/build/dex/angle-transmuter/backedOracle.d.ts +19 -0
- package/build/dex/angle-transmuter/backedOracle.js +56 -0
- package/build/dex/angle-transmuter/backedOracle.js.map +1 -0
- package/build/dex/angle-transmuter/config.d.ts +4 -0
- package/build/dex/angle-transmuter/config.js +30 -0
- package/build/dex/angle-transmuter/config.js.map +1 -0
- package/build/dex/angle-transmuter/constants.d.ts +77 -0
- package/build/dex/angle-transmuter/constants.js +94 -0
- package/build/dex/angle-transmuter/constants.js.map +1 -0
- package/build/dex/angle-transmuter/morphoOracle.d.ts +42 -0
- package/build/dex/angle-transmuter/morphoOracle.js +179 -0
- package/build/dex/angle-transmuter/morphoOracle.js.map +1 -0
- package/build/dex/angle-transmuter/morphoVault.d.ts +19 -0
- package/build/dex/angle-transmuter/morphoVault.js +78 -0
- package/build/dex/angle-transmuter/morphoVault.js.map +1 -0
- package/build/dex/angle-transmuter/pyth.d.ts +19 -0
- package/build/dex/angle-transmuter/pyth.js +70 -0
- package/build/dex/angle-transmuter/pyth.js.map +1 -0
- package/build/dex/angle-transmuter/redstone.d.ts +20 -0
- package/build/dex/angle-transmuter/redstone.js +73 -0
- package/build/dex/angle-transmuter/redstone.js.map +1 -0
- package/build/dex/angle-transmuter/transmuter.d.ts +52 -0
- package/build/dex/angle-transmuter/transmuter.js +374 -0
- package/build/dex/angle-transmuter/transmuter.js.map +1 -0
- package/build/dex/angle-transmuter/types.d.ts +188 -0
- package/build/dex/angle-transmuter/types.js +33 -0
- package/build/dex/angle-transmuter/types.js.map +1 -0
- package/build/dex/angle-transmuter/utils.d.ts +9 -0
- package/build/dex/angle-transmuter/utils.js +252 -0
- package/build/dex/angle-transmuter/utils.js.map +1 -0
- package/build/dex/index.js +2 -0
- package/build/dex/index.js.map +1 -1
- package/build/dex/smardex/subgraph-queries.d.ts +1 -0
- package/build/dex/smardex/subgraph-queries.js +17 -0
- package/build/dex/smardex/subgraph-queries.js.map +1 -0
- package/build/dex/smardex/usd-reserves.d.ts +23 -0
- package/build/dex/smardex/usd-reserves.js +86 -0
- package/build/dex/smardex/usd-reserves.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/config.d.ts +4 -0
- package/build/dex/trader-joe-v2-1-2/config.js +47 -0
- package/build/dex/trader-joe-v2-1-2/config.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/constants.d.ts +20 -0
- package/build/dex/trader-joe-v2-1-2/constants.js +22 -0
- package/build/dex/trader-joe-v2-1-2/constants.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/math/index.d.ts +37 -0
- package/build/dex/trader-joe-v2-1-2/math/index.js +291 -0
- package/build/dex/trader-joe-v2-1-2/math/index.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +60 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +248 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +53 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +307 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/types.d.ts +82 -0
- package/build/dex/trader-joe-v2-1-2/types.js +9 -0
- package/build/dex/trader-joe-v2-1-2/types.js.map +1 -0
- package/build/dex/trader-joe-v2_1/config.d.ts +4 -0
- package/build/dex/trader-joe-v2_1/config.js +47 -0
- package/build/dex/trader-joe-v2_1/config.js.map +1 -0
- package/build/dex/trader-joe-v2_1/constants.d.ts +20 -0
- package/build/dex/trader-joe-v2_1/constants.js +22 -0
- package/build/dex/trader-joe-v2_1/constants.js.map +1 -0
- package/build/dex/trader-joe-v2_1/math/index.d.ts +37 -0
- package/build/dex/trader-joe-v2_1/math/index.js +291 -0
- package/build/dex/trader-joe-v2_1/math/index.js.map +1 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +384 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +1 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +60 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +247 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +1 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +53 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +307 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +1 -0
- package/build/dex/trader-joe-v2_1/types.d.ts +82 -0
- package/build/dex/trader-joe-v2_1/types.js +9 -0
- package/build/dex/trader-joe-v2_1/types.js.map +1 -0
- package/build/dex/wombat/wombat-pool-poller.d.ts +22 -0
- package/build/dex/wombat/wombat-pool-poller.js +164 -0
- package/build/dex/wombat/wombat-pool-poller.js.map +1 -0
- package/build/dex-helper/Cache.d.ts +31 -0
- package/build/dex-helper/Cache.js +106 -0
- package/build/dex-helper/Cache.js.map +1 -0
- package/build/dex-helper/RedisBatcher.d.ts +20 -0
- package/build/dex-helper/RedisBatcher.js +75 -0
- package/build/dex-helper/RedisBatcher.js.map +1 -0
- package/build/dex-helper/RedisWrapper.d.ts +37 -0
- package/build/dex-helper/RedisWrapper.js +165 -0
- package/build/dex-helper/RedisWrapper.js.map +1 -0
- package/package.json +1 -1
- package/src/abi/angle/stagToken.json +963 -0
- package/src/config.ts +8 -7
- package/src/dex/angle-staked-stable/angle-staked-stable-e2e.test.ts +146 -0
- package/src/dex/angle-staked-stable/angle-staked-stable-events.test.ts +95 -0
- package/src/dex/angle-staked-stable/angle-staked-stable-integration.test.ts +476 -0
- package/src/dex/angle-staked-stable/angle-staked-stable-pool.ts +325 -0
- package/src/dex/angle-staked-stable/angle-staked-stable.ts +312 -0
- package/src/dex/angle-staked-stable/config.ts +139 -0
- package/src/dex/angle-staked-stable/types.ts +16 -0
- package/src/dex/index.ts +2 -0
- package/tests/constants-e2e.ts +112 -1
- package/build/dex/sdai/config.d.ts +0 -11
- package/build/dex/sdai/config.js +0 -21
- package/build/dex/sdai/config.js.map +0 -1
- package/build/dex/sdai/constants.d.ts +0 -2
- package/build/dex/sdai/constants.js +0 -6
- package/build/dex/sdai/constants.js.map +0 -1
- package/build/dex/sdai/scripts/validate-state.d.ts +0 -1
- package/build/dex/sdai/scripts/validate-state.js +0 -102
- package/build/dex/sdai/scripts/validate-state.js.map +0 -1
- package/build/dex/sdai/sdai-pool.d.ts +0 -16
- package/build/dex/sdai/sdai-pool.js +0 -85
- package/build/dex/sdai/sdai-pool.js.map +0 -1
- package/build/dex/sdai/sdai.d.ts +0 -51
- package/build/dex/sdai/sdai.js +0 -172
- package/build/dex/sdai/sdai.js.map +0 -1
- package/build/dex/sdai/types.d.ts +0 -21
- package/build/dex/sdai/types.js +0 -11
- package/build/dex/sdai/types.js.map +0 -1
- package/build/dex/sdai/utils.d.ts +0 -4
- package/build/dex/sdai/utils.js +0 -39
- package/build/dex/sdai/utils.js.map +0 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { DexParams } from './types';
|
|
2
|
+
import { DexConfigMap, AdapterMappings } from '../../types';
|
|
3
|
+
import { Network, SwapSide } from '../../constants';
|
|
4
|
+
|
|
5
|
+
export const AngleStakedStableConfig: DexConfigMap<DexParams> = {
|
|
6
|
+
// USDA <-> stUSD
|
|
7
|
+
AngleStakedStableUSD: {
|
|
8
|
+
[Network.ARBITRUM]: {
|
|
9
|
+
agToken: '0x0000206329b97db379d5e1bf586bbdb969c63274',
|
|
10
|
+
stakeToken: '0x0022228a2cc5e7ef0274a7baa600d44da5ab5776',
|
|
11
|
+
},
|
|
12
|
+
[Network.MAINNET]: {
|
|
13
|
+
agToken: '0x0000206329b97db379d5e1bf586bbdb969c63274',
|
|
14
|
+
stakeToken: '0x0022228a2cc5e7ef0274a7baa600d44da5ab5776',
|
|
15
|
+
},
|
|
16
|
+
[Network.OPTIMISM]: {
|
|
17
|
+
agToken: '0x0000206329b97db379d5e1bf586bbdb969c63274',
|
|
18
|
+
stakeToken: '0x0022228a2cc5e7ef0274a7baa600d44da5ab5776',
|
|
19
|
+
},
|
|
20
|
+
[Network.POLYGON]: {
|
|
21
|
+
agToken: '0x0000206329b97db379d5e1bf586bbdb969c63274',
|
|
22
|
+
stakeToken: '0x0022228a2cc5e7ef0274a7baa600d44da5ab5776',
|
|
23
|
+
},
|
|
24
|
+
[Network.BASE]: {
|
|
25
|
+
agToken: '0x0000206329b97db379d5e1bf586bbdb969c63274',
|
|
26
|
+
stakeToken: '0x0022228a2cc5e7ef0274a7baa600d44da5ab5776',
|
|
27
|
+
},
|
|
28
|
+
[Network.BSC]: {
|
|
29
|
+
agToken: '0x0000206329b97db379d5e1bf586bbdb969c63274',
|
|
30
|
+
stakeToken: '0x0022228a2cc5e7ef0274a7baa600d44da5ab5776',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
// EURA <-> stEUR
|
|
34
|
+
AngleStakedStableEUR: {
|
|
35
|
+
[Network.ARBITRUM]: {
|
|
36
|
+
agToken: '0xfa5ed56a203466cbbc2430a43c66b9d8723528e7',
|
|
37
|
+
stakeToken: '0x004626a008b1acdc4c74ab51644093b155e59a23',
|
|
38
|
+
},
|
|
39
|
+
[Network.MAINNET]: {
|
|
40
|
+
agToken: '0x1a7e4e63778b4f12a199c062f3efdd288afcbce8',
|
|
41
|
+
stakeToken: '0x004626a008b1acdc4c74ab51644093b155e59a23',
|
|
42
|
+
},
|
|
43
|
+
[Network.OPTIMISM]: {
|
|
44
|
+
agToken: '0x9485aca5bbbe1667ad97c7fe7c4531a624c8b1ed',
|
|
45
|
+
stakeToken: '0x004626a008b1acdc4c74ab51644093b155e59a23',
|
|
46
|
+
},
|
|
47
|
+
[Network.POLYGON]: {
|
|
48
|
+
agToken: '0xe0b52e49357fd4daf2c15e02058dce6bc0057db4',
|
|
49
|
+
stakeToken: '0x004626a008b1acdc4c74ab51644093b155e59a23',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const Adapters: Record<number, AdapterMappings> = {
|
|
55
|
+
[Network.ARBITRUM]: {
|
|
56
|
+
[SwapSide.SELL]: [
|
|
57
|
+
{
|
|
58
|
+
name: 'ArbitrumAdapter03',
|
|
59
|
+
index: 1,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
[SwapSide.BUY]: [
|
|
63
|
+
{
|
|
64
|
+
name: 'ArbitrumBuyAdapter',
|
|
65
|
+
index: 10,
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
[Network.MAINNET]: {
|
|
70
|
+
[SwapSide.SELL]: [
|
|
71
|
+
{
|
|
72
|
+
name: 'Adapter06',
|
|
73
|
+
index: 1,
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
[SwapSide.BUY]: [
|
|
77
|
+
{
|
|
78
|
+
name: 'BuyAdapter02',
|
|
79
|
+
index: 4,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
[Network.OPTIMISM]: {
|
|
84
|
+
[SwapSide.SELL]: [
|
|
85
|
+
{
|
|
86
|
+
name: 'OptimismAdapter02',
|
|
87
|
+
index: 1,
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
[SwapSide.BUY]: [
|
|
91
|
+
{
|
|
92
|
+
name: 'OptimismBuyAdapter',
|
|
93
|
+
index: 6,
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
[Network.BASE]: {
|
|
98
|
+
[SwapSide.SELL]: [
|
|
99
|
+
{
|
|
100
|
+
name: 'BaseAdapter01',
|
|
101
|
+
index: 11,
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
[SwapSide.BUY]: [
|
|
105
|
+
{
|
|
106
|
+
name: 'BaseBuyAdapter',
|
|
107
|
+
index: 7,
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
[Network.POLYGON]: {
|
|
112
|
+
[SwapSide.SELL]: [
|
|
113
|
+
{
|
|
114
|
+
name: 'PolygonAdapter02',
|
|
115
|
+
index: 10,
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
[SwapSide.BUY]: [
|
|
119
|
+
{
|
|
120
|
+
name: 'PolygonBuyAdapter',
|
|
121
|
+
index: 9,
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
[Network.BSC]: {
|
|
126
|
+
[SwapSide.SELL]: [
|
|
127
|
+
{
|
|
128
|
+
name: 'BscAdapter02',
|
|
129
|
+
index: 10,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
[SwapSide.BUY]: [
|
|
133
|
+
{
|
|
134
|
+
name: 'BscBuyAdapter',
|
|
135
|
+
index: 8,
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Address } from '../../types';
|
|
2
|
+
|
|
3
|
+
export type PoolState = {
|
|
4
|
+
totalAssets: bigint;
|
|
5
|
+
totalSupply: bigint;
|
|
6
|
+
lastUpdate: bigint;
|
|
7
|
+
rate: bigint;
|
|
8
|
+
paused: boolean;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type AngleStakedStableData = { exchange: Address };
|
|
12
|
+
|
|
13
|
+
export type DexParams = {
|
|
14
|
+
agToken: Address;
|
|
15
|
+
stakeToken: Address;
|
|
16
|
+
};
|
package/src/dex/index.ts
CHANGED
|
@@ -79,6 +79,7 @@ import { SpiritSwapV3 } from './quickswap/spiritswap-v3';
|
|
|
79
79
|
import { TraderJoeV21 } from './trader-joe-v2.1';
|
|
80
80
|
import { PancakeswapV3 } from './pancakeswap-v3/pancakeswap-v3';
|
|
81
81
|
import { Algebra } from './algebra/algebra';
|
|
82
|
+
import { AngleStakedStable } from './angle-staked-stable/angle-staked-stable';
|
|
82
83
|
import { QuickPerps } from './quick-perps/quick-perps';
|
|
83
84
|
import { NomiswapV2 } from './uniswap-v2/nomiswap-v2';
|
|
84
85
|
import { Dexalot } from './dexalot/dexalot';
|
|
@@ -164,6 +165,7 @@ const Dexes = [
|
|
|
164
165
|
MaverickV1,
|
|
165
166
|
Camelot,
|
|
166
167
|
SwaapV2,
|
|
168
|
+
AngleStakedStable,
|
|
167
169
|
QuickPerps,
|
|
168
170
|
NomiswapV2,
|
|
169
171
|
SolidlyV3,
|
package/tests/constants-e2e.ts
CHANGED
|
@@ -323,6 +323,22 @@ export const Tokens: {
|
|
|
323
323
|
address: '0xc411db5f5eb3f7d552f9b8454b2d74097ccde6e3',
|
|
324
324
|
decimals: 6,
|
|
325
325
|
},
|
|
326
|
+
EURA: {
|
|
327
|
+
address: '0x1a7e4e63778b4f12a199c062f3efdd288afcbce8',
|
|
328
|
+
decimals: 18,
|
|
329
|
+
},
|
|
330
|
+
stEUR: {
|
|
331
|
+
address: '0x004626a008b1acdc4c74ab51644093b155e59a23',
|
|
332
|
+
decimals: 18,
|
|
333
|
+
},
|
|
334
|
+
USDA: {
|
|
335
|
+
address: '0x0000206329b97DB379d5E1Bf586BbDB969C63274',
|
|
336
|
+
decimals: 18,
|
|
337
|
+
},
|
|
338
|
+
stUSD: {
|
|
339
|
+
address: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
340
|
+
decimals: 18,
|
|
341
|
+
},
|
|
326
342
|
GHO: {
|
|
327
343
|
address: '0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f',
|
|
328
344
|
decimals: 18,
|
|
@@ -489,6 +505,22 @@ export const Tokens: {
|
|
|
489
505
|
address: '0xa3fa99a148fa48d14ed51d610c367c61876997f1',
|
|
490
506
|
decimals: 18,
|
|
491
507
|
},
|
|
508
|
+
EURA: {
|
|
509
|
+
address: '0xe0b52e49357fd4daf2c15e02058dce6bc0057db4',
|
|
510
|
+
decimals: 18,
|
|
511
|
+
},
|
|
512
|
+
stEUR: {
|
|
513
|
+
address: '0x004626a008b1acdc4c74ab51644093b155e59a23',
|
|
514
|
+
decimals: 18,
|
|
515
|
+
},
|
|
516
|
+
USDA: {
|
|
517
|
+
address: '0x0000206329b97DB379d5E1Bf586BbDB969C63274',
|
|
518
|
+
decimals: 18,
|
|
519
|
+
},
|
|
520
|
+
stUSD: {
|
|
521
|
+
address: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
522
|
+
decimals: 18,
|
|
523
|
+
},
|
|
492
524
|
BUSD: {
|
|
493
525
|
address: '0x9C9e5fD8bbc25984B178FdCE6117Defa39d2db39',
|
|
494
526
|
decimals: 18,
|
|
@@ -687,6 +719,18 @@ export const Tokens: {
|
|
|
687
719
|
address: '0xFdc66A08B0d0Dc44c17bbd471B88f49F50CdD20F',
|
|
688
720
|
decimals: 18,
|
|
689
721
|
},
|
|
722
|
+
EURA: {
|
|
723
|
+
address: '0x12f31B73D812C6Bb0d735a218c086d44D5fe5f89',
|
|
724
|
+
decimals: 18,
|
|
725
|
+
},
|
|
726
|
+
USDA: {
|
|
727
|
+
address: '0x0000206329b97DB379d5E1Bf586BbDB969C63274',
|
|
728
|
+
decimals: 18,
|
|
729
|
+
},
|
|
730
|
+
stUSD: {
|
|
731
|
+
address: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
732
|
+
decimals: 18,
|
|
733
|
+
},
|
|
690
734
|
},
|
|
691
735
|
[Network.AVALANCHE]: {
|
|
692
736
|
PHAR: {
|
|
@@ -937,6 +981,22 @@ export const Tokens: {
|
|
|
937
981
|
address: '0x6bB7A17AcC227fd1F6781D1EEDEAE01B42047eE0',
|
|
938
982
|
decimals: 18,
|
|
939
983
|
},
|
|
984
|
+
EURA: {
|
|
985
|
+
address: '0xfa5ed56a203466cbbc2430a43c66b9d8723528e7',
|
|
986
|
+
decimals: 18,
|
|
987
|
+
},
|
|
988
|
+
stEUR: {
|
|
989
|
+
address: '0x004626a008b1acdc4c74ab51644093b155e59a23',
|
|
990
|
+
decimals: 18,
|
|
991
|
+
},
|
|
992
|
+
USDA: {
|
|
993
|
+
address: '0x0000206329b97DB379d5E1Bf586BbDB969C63274',
|
|
994
|
+
decimals: 18,
|
|
995
|
+
},
|
|
996
|
+
stUSD: {
|
|
997
|
+
address: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
998
|
+
decimals: 18,
|
|
999
|
+
},
|
|
940
1000
|
GRAIL: {
|
|
941
1001
|
address: '0x3d9907f9a368ad0a51be60f7da3b97cf940982d8',
|
|
942
1002
|
decimals: 18,
|
|
@@ -1008,6 +1068,22 @@ export const Tokens: {
|
|
|
1008
1068
|
address: '0x68f180fcCe6836688e9084f035309E29Bf0A2095',
|
|
1009
1069
|
decimals: 8,
|
|
1010
1070
|
},
|
|
1071
|
+
EURA: {
|
|
1072
|
+
address: '0x9485aca5bbbe1667ad97c7fe7c4531a624c8b1ed',
|
|
1073
|
+
decimals: 18,
|
|
1074
|
+
},
|
|
1075
|
+
stEUR: {
|
|
1076
|
+
address: '0x004626a008b1acdc4c74ab51644093b155e59a23',
|
|
1077
|
+
decimals: 18,
|
|
1078
|
+
},
|
|
1079
|
+
USDA: {
|
|
1080
|
+
address: '0x0000206329b97DB379d5E1Bf586BbDB969C63274',
|
|
1081
|
+
decimals: 18,
|
|
1082
|
+
},
|
|
1083
|
+
stUSD: {
|
|
1084
|
+
address: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
1085
|
+
decimals: 18,
|
|
1086
|
+
},
|
|
1011
1087
|
frxETH: {
|
|
1012
1088
|
address: '0x6806411765Af15Bddd26f8f544A34cC40cb9838B',
|
|
1013
1089
|
decimals: 18,
|
|
@@ -1076,6 +1152,18 @@ export const Tokens: {
|
|
|
1076
1152
|
address: '0xFd4330b0312fdEEC6d4225075b82E00493FF2e3f',
|
|
1077
1153
|
decimals: 18,
|
|
1078
1154
|
},
|
|
1155
|
+
EURA: {
|
|
1156
|
+
address: '0xA61BeB4A3d02decb01039e378237032B351125B4',
|
|
1157
|
+
decimals: 18,
|
|
1158
|
+
},
|
|
1159
|
+
USDA: {
|
|
1160
|
+
address: '0x0000206329b97DB379d5E1Bf586BbDB969C63274',
|
|
1161
|
+
decimals: 18,
|
|
1162
|
+
},
|
|
1163
|
+
stUSD: {
|
|
1164
|
+
address: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
1165
|
+
decimals: 18,
|
|
1166
|
+
},
|
|
1079
1167
|
ETH: { address: ETHER_ADDRESS, decimals: 18 },
|
|
1080
1168
|
},
|
|
1081
1169
|
};
|
|
@@ -1128,7 +1216,7 @@ export const Holders: {
|
|
|
1128
1216
|
EURS: '0xC1056Adeb61a01964Ea265cA95EffB7016f9Ed78',
|
|
1129
1217
|
EURT: '0x6914FC70fAC4caB20a8922E900C4BA57fEECf8E1',
|
|
1130
1218
|
CRV: '0x7a16fF8270133F063aAb6C9977183D9e72835428',
|
|
1131
|
-
jEUR: '
|
|
1219
|
+
jEUR: '0x937Df4e3d6dB229A10ff0098ab3A1bCC40C33ea4',
|
|
1132
1220
|
UST: '0xf16e9b0d03470827a95cdfd0cb8a8a3b46969b91',
|
|
1133
1221
|
SAITAMA: '0x763d5d93f27615aac852b70549f5877b92193864',
|
|
1134
1222
|
aETH: '0xc03c4476fbe25138bf724fa1b95551c6e6b8fd2c',
|
|
@@ -1144,6 +1232,10 @@ export const Holders: {
|
|
|
1144
1232
|
aEthWETH: '0x645C4c0c95C1Aa6EF25d12f4a25038cA9b0C6Cc7',
|
|
1145
1233
|
dUSDC: '0x2FC2F705110A7F46Ce85F701d7217EF1018f01A3',
|
|
1146
1234
|
PSP: '0xE5E5440a1CE69C5cf67BFFA74d185e57c31b43E5',
|
|
1235
|
+
EURA: '0xa116f421ff82a9704428259fd8cc63347127b777',
|
|
1236
|
+
stEUR: '0xdC7Aa225964267c7E0EfB35f4931426209E90312',
|
|
1237
|
+
USDA: '0x2686bC6A56D205010637CE1DF124b20Cb19E4054',
|
|
1238
|
+
stUSD: '0x4e83c0a323b68E3Bc7CC8a4E35326Fd0544A291E',
|
|
1147
1239
|
crvUSD: '0xA920De414eA4Ab66b97dA1bFE9e6EcA7d4219635',
|
|
1148
1240
|
GHO: '0x844Dc85EdD8492A56228D293cfEbb823EF3E10EC',
|
|
1149
1241
|
wibBTC: '0xFbdCA68601f835b27790D98bbb8eC7f05FDEaA9B',
|
|
@@ -1189,6 +1281,10 @@ export const Holders: {
|
|
|
1189
1281
|
amUSDC: '0x6e7f19cd23049c7118e14470e2bf85d2e26ee0ae',
|
|
1190
1282
|
MAI: '0x9a8cf02f3e56c664ce75e395d0e4f3dc3dafe138',
|
|
1191
1283
|
SDEX: '0xB0470cF15B22a6A32c49a7C20E3821B944A76058',
|
|
1284
|
+
EURA: '0x9A760aa1Fe631fD9aC0Aee0965736121c7c132cc',
|
|
1285
|
+
stEUR: '0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701',
|
|
1286
|
+
USDA: '0x741383AbD73891b40822A069f14d6fc5b5685020',
|
|
1287
|
+
stUSD: '0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701',
|
|
1192
1288
|
crvUSD: '0x9D3a22A71C2bddFEF006f1c207C06B0A5f42f95F',
|
|
1193
1289
|
},
|
|
1194
1290
|
[Network.FANTOM]: {
|
|
@@ -1239,6 +1335,9 @@ export const Holders: {
|
|
|
1239
1335
|
USDFI: '0x2E00D722e091836B39Db3e4dcE6eE51c90c5B221',
|
|
1240
1336
|
SDEX: '0xB0470cF15B22a6A32c49a7C20E3821B944A76058',
|
|
1241
1337
|
BNBx: '0xFF4606bd3884554CDbDabd9B6e25E2faD4f6fc54',
|
|
1338
|
+
EURA: '0x4A5362ef534FFB27510E4E4C9A215BB5436377C2',
|
|
1339
|
+
USDA: '0x230c1f68aBE6033Cba3Fe0D2C0D7097e9923C3bC',
|
|
1340
|
+
stUSD: '0x0022228a2cc5E7eF0274A7Baa600d44da5aB5776',
|
|
1242
1341
|
},
|
|
1243
1342
|
[Network.AVALANCHE]: {
|
|
1244
1343
|
AVAX: '0xD6216fC19DB775Df9774a6E33526131dA7D19a2c',
|
|
@@ -1302,6 +1401,10 @@ export const Holders: {
|
|
|
1302
1401
|
RDNT: '0x62383739d68dd0f844103db8dfb05a7eded5bbe6',
|
|
1303
1402
|
SDEX: '0xb0470cf15b22a6a32c49a7c20e3821b944a76058',
|
|
1304
1403
|
wstETH: '0x916792f7734089470de27297903bed8a4630b26d',
|
|
1404
|
+
EURA: '0x6dd7b830896b56812aa667bdd14b71c8b3252f8e',
|
|
1405
|
+
stEUR: '0xE588611e7A2392507879E3be80531654b85C16aA',
|
|
1406
|
+
USDA: '0xa86ff337db9107b54862d30d1a598f8be847b05e',
|
|
1407
|
+
stUSD: '0xa9ddd91249dfdd450e81e1c56ab60e1a62651701',
|
|
1305
1408
|
crvUSD: '0x171c53d55b1bcb725f660677d9e8bad7fd084282',
|
|
1306
1409
|
},
|
|
1307
1410
|
[Network.OPTIMISM]: {
|
|
@@ -1321,6 +1424,10 @@ export const Holders: {
|
|
|
1321
1424
|
rETH: '0x4c2e69e58b14de9afedfb94319519ce34e087283',
|
|
1322
1425
|
WBTC: '0xb9c8f0d3254007ee4b98970b94544e473cd610ec',
|
|
1323
1426
|
frxETH: '0x4d4edf8291d169f975b99914b6ab3326abb45938',
|
|
1427
|
+
EURA: '0xC18dAC166eDa9538933258d21A272C1775C19c73',
|
|
1428
|
+
stEUR: '0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701',
|
|
1429
|
+
USDA: '0xC18dAC166eDa9538933258d21A272C1775C19c73',
|
|
1430
|
+
stUSD: '0xC98b0729695A25152B8D5b6B95709070605A7F60',
|
|
1324
1431
|
crvUSD: '0xD1A992417a0ABFFa632Cbde4DA9F5DcF85CAa858',
|
|
1325
1432
|
},
|
|
1326
1433
|
[Network.ZKEVM]: {
|
|
@@ -1341,6 +1448,10 @@ export const Holders: {
|
|
|
1341
1448
|
BAL: '0x854b004700885a61107b458f11ecc169a019b764',
|
|
1342
1449
|
GOLD: '0x1374c25b3710758c326ee0c70ec48b595d5ccf8c',
|
|
1343
1450
|
SDEX: '0xa5d378c05192e3f1f365d6298921879c4d51c5a3',
|
|
1451
|
+
EURA: '0x5b5614b9fffab7c751799eb12d5cb9165c8c40ad',
|
|
1452
|
+
stEUR: '0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701',
|
|
1453
|
+
USDA: '0x177772af6669aca61c23d325ab4213e8ba56c79d',
|
|
1454
|
+
stUSD: '0x8deeffb6047b8ee91b09334eb2a4ca120f43f596',
|
|
1344
1455
|
ALB: '0x365c6d588e8611125de3bea5b9280c304fa54113',
|
|
1345
1456
|
},
|
|
1346
1457
|
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { SDaiParams } from './types';
|
|
2
|
-
import { DexConfigMap } from '../../types';
|
|
3
|
-
export declare const SDaiConfig: DexConfigMap<SDaiParams>;
|
|
4
|
-
export declare const Adapters: {
|
|
5
|
-
[chainId: number]: {
|
|
6
|
-
[side: string]: {
|
|
7
|
-
name: string;
|
|
8
|
-
index: number;
|
|
9
|
-
}[];
|
|
10
|
-
};
|
|
11
|
-
};
|
package/build/dex/sdai/config.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Adapters = exports.SDaiConfig = void 0;
|
|
4
|
-
const constants_1 = require("../../constants");
|
|
5
|
-
const core_1 = require("@paraswap/core");
|
|
6
|
-
exports.SDaiConfig = {
|
|
7
|
-
sdai: {
|
|
8
|
-
[constants_1.Network.MAINNET]: {
|
|
9
|
-
sdaiAddress: '0x83F20F44975D03b1b09e64809B757c47f942BEeA',
|
|
10
|
-
daiAddress: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
|
|
11
|
-
potAddress: '0x197E90f9FAD81970bA7976f33CbD77088E5D7cf7',
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
exports.Adapters = {
|
|
16
|
-
[constants_1.Network.MAINNET]: {
|
|
17
|
-
[core_1.SwapSide.SELL]: [{ name: 'Adapter06', index: 1 }],
|
|
18
|
-
[core_1.SwapSide.BUY]: [{ name: 'BuyAdapter02', index: 4 }],
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/sdai/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAC1C,yCAA0C;AAE7B,QAAA,UAAU,GAA6B;IAClD,IAAI,EAAE;QACJ,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,WAAW,EAAE,4CAA4C;YACzD,UAAU,EAAE,4CAA4C;YACxD,UAAU,EAAE,4CAA4C;SACzD;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAIjB;IACF,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;QACjB,CAAC,eAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAClD,CAAC,eAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrD;CACF,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SDAI_REDEEM_GAS_COST = exports.SDAI_DEPOSIT_GAS_COST = void 0;
|
|
4
|
-
exports.SDAI_DEPOSIT_GAS_COST = 165000;
|
|
5
|
-
exports.SDAI_REDEEM_GAS_COST = 90000;
|
|
6
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/sdai/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,MAAO,CAAC;AAChC,QAAA,oBAAoB,GAAG,KAAM,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
/* eslint-disable no-console */
|
|
7
|
-
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
|
-
dotenv_1.default.config();
|
|
9
|
-
const constants_1 = require("../../../constants");
|
|
10
|
-
const dex_helper_1 = require("../../../dex-helper");
|
|
11
|
-
const ethers_1 = require("ethers");
|
|
12
|
-
const sdai_1 = require("../sdai");
|
|
13
|
-
const config_1 = require("../config");
|
|
14
|
-
const utils_1 = require("../utils");
|
|
15
|
-
const abi_1 = require("@ethersproject/abi");
|
|
16
|
-
const pot_json_1 = __importDefault(require("../../../abi/maker-psm/pot.json"));
|
|
17
|
-
const network = constants_1.Network.MAINNET;
|
|
18
|
-
const dexKey = 'sdai';
|
|
19
|
-
const { potAddress } = config_1.SDaiConfig[dexKey][network];
|
|
20
|
-
const blockHeaders = {};
|
|
21
|
-
const dexHelper = new dex_helper_1.DummyDexHelper(network);
|
|
22
|
-
const logger = dexHelper.getLogger(dexKey);
|
|
23
|
-
function preprocessField(value) {
|
|
24
|
-
if (typeof value === 'bigint' ||
|
|
25
|
-
typeof value === 'number' ||
|
|
26
|
-
ethers_1.ethers.BigNumber.isBigNumber(value)) {
|
|
27
|
-
return value.toString();
|
|
28
|
-
}
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
31
|
-
function compareAndLogDifferences(obj1, obj2, keyNames, checkEachKey = false) {
|
|
32
|
-
let isValid = true;
|
|
33
|
-
let keys = keyNames;
|
|
34
|
-
if (checkEachKey) {
|
|
35
|
-
// find common keys
|
|
36
|
-
const keys1 = Object.keys(obj1);
|
|
37
|
-
const keys2 = new Set(Object.keys(obj2));
|
|
38
|
-
keys = keys1.filter(key => keys2.has(key));
|
|
39
|
-
}
|
|
40
|
-
for (let fieldName of keys) {
|
|
41
|
-
const value1 = preprocessField(obj1[fieldName]);
|
|
42
|
-
const value2 = preprocessField(obj2[fieldName]);
|
|
43
|
-
if (value1 !== value2) {
|
|
44
|
-
console.log(`${fieldName.toString()} mismatch: actual: ${value1} vs pool: ${value2}`);
|
|
45
|
-
isValid = false;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return isValid;
|
|
49
|
-
}
|
|
50
|
-
async function isPoolStateEqualToReal(state, blockNumber) {
|
|
51
|
-
const expected = await (0, utils_1.getOnChainState)(dexHelper.multiContract, potAddress, new abi_1.Interface(pot_json_1.default), blockNumber);
|
|
52
|
-
const isValidState = compareAndLogDifferences(state, expected, [
|
|
53
|
-
'rho',
|
|
54
|
-
'dsr',
|
|
55
|
-
'dsr',
|
|
56
|
-
]);
|
|
57
|
-
return isValidState;
|
|
58
|
-
}
|
|
59
|
-
async function checkPoolStateForBlockRange(startBlockNumber, endBlockNumber) {
|
|
60
|
-
const network = constants_1.Network.MAINNET;
|
|
61
|
-
const dexKey = 'sdai';
|
|
62
|
-
const dexHelper = new dex_helper_1.DummyDexHelper(network);
|
|
63
|
-
const sdai = new sdai_1.SDai(network, dexKey, dexHelper);
|
|
64
|
-
const pool = await sdai.eventPool;
|
|
65
|
-
const logsToDispatch = await dexHelper.provider.getLogs({
|
|
66
|
-
fromBlock: startBlockNumber,
|
|
67
|
-
toBlock: endBlockNumber,
|
|
68
|
-
address: potAddress,
|
|
69
|
-
});
|
|
70
|
-
console.log(logsToDispatch.length);
|
|
71
|
-
// group logs by block number
|
|
72
|
-
const logsByBlockNumber = {};
|
|
73
|
-
for (let log of logsToDispatch) {
|
|
74
|
-
if (!logsByBlockNumber[log.blockNumber]) {
|
|
75
|
-
logsByBlockNumber[log.blockNumber] = [];
|
|
76
|
-
}
|
|
77
|
-
logsByBlockNumber[log.blockNumber].push(log);
|
|
78
|
-
}
|
|
79
|
-
const sortedBlocks = Object.keys(logsByBlockNumber)
|
|
80
|
-
.map(Number)
|
|
81
|
-
.sort((a, b) => Number(a) - Number(b));
|
|
82
|
-
for (let blockNumber of sortedBlocks) {
|
|
83
|
-
if (!blockHeaders[blockNumber]) {
|
|
84
|
-
blockHeaders[blockNumber] = await dexHelper.web3Provider.eth.getBlock(blockNumber);
|
|
85
|
-
}
|
|
86
|
-
await pool?.update(logsByBlockNumber[blockNumber], {
|
|
87
|
-
[blockNumber]: blockHeaders[blockNumber],
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
const state = pool?.getState(startBlockNumber);
|
|
91
|
-
return isPoolStateEqualToReal(state, endBlockNumber);
|
|
92
|
-
}
|
|
93
|
-
async function main() {
|
|
94
|
-
// use findBreakingBlock to find the block where the state is broken
|
|
95
|
-
// console.log(await findBreakingBlock(startBlockNumber, endBlockNumber));
|
|
96
|
-
// previously broken block 150502863
|
|
97
|
-
console.log(await checkPoolStateForBlockRange(19199247 - 10000, 19199247));
|
|
98
|
-
}
|
|
99
|
-
main()
|
|
100
|
-
.then(() => console.log('Done'))
|
|
101
|
-
.catch(e => console.error(e));
|
|
102
|
-
//# sourceMappingURL=validate-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-state.js","sourceRoot":"","sources":["../../../../src/dex/sdai/scripts/validate-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
|
|
2
|
-
import { Interface } from '@ethersproject/abi';
|
|
3
|
-
import type { IDexHelper } from '../../dex-helper';
|
|
4
|
-
import type { AsyncOrSync, DeepReadonly } from 'ts-essentials';
|
|
5
|
-
import type { Address, BlockHeader, Log, Logger } from '../../types';
|
|
6
|
-
import type { SDaiPoolState } from './types';
|
|
7
|
-
export declare class SDaiEventPool extends StatefulEventSubscriber<SDaiPoolState> {
|
|
8
|
-
protected dexHelper: IDexHelper;
|
|
9
|
-
private potAddress;
|
|
10
|
-
private potInterface;
|
|
11
|
-
constructor(parentName: string, dexHelper: IDexHelper, potAddress: Address, potInterface: Interface, logger: Logger);
|
|
12
|
-
protected processLog(state: DeepReadonly<SDaiPoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): AsyncOrSync<DeepReadonly<SDaiPoolState> | null>;
|
|
13
|
-
generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<SDaiPoolState>>;
|
|
14
|
-
convertToSDai(daiAmount: bigint, blockNumber: number): bigint;
|
|
15
|
-
convertToDai(sdaiAmount: bigint, blockNumber: number): bigint;
|
|
16
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SDaiEventPool = void 0;
|
|
4
|
-
const bigint_constants_1 = require("../../bigint-constants");
|
|
5
|
-
const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
|
|
6
|
-
const utils_1 = require("./utils");
|
|
7
|
-
const RAY = bigint_constants_1.BI_POWS[27];
|
|
8
|
-
const ZERO = BigInt(0);
|
|
9
|
-
const TWO = BigInt(2);
|
|
10
|
-
const HALF = RAY / TWO;
|
|
11
|
-
// function file(bytes32,uint256)
|
|
12
|
-
const FILE_TOPICHASH = `0x29ae811400000000000000000000000000000000000000000000000000000000`;
|
|
13
|
-
// function drip()
|
|
14
|
-
const DRIP_TOPICHASH = `0x9f678cca00000000000000000000000000000000000000000000000000000000`;
|
|
15
|
-
// function cage()
|
|
16
|
-
const CAGE_TOPICHASH = `0x6924500900000000000000000000000000000000000000000000000000000000`;
|
|
17
|
-
// bytes32 repr of "dsr" string
|
|
18
|
-
const DSR_TOPIC = `0x6473720000000000000000000000000000000000000000000000000000000000`;
|
|
19
|
-
const rpow = (x, n) => {
|
|
20
|
-
if (!x && !n)
|
|
21
|
-
return RAY;
|
|
22
|
-
if (!x)
|
|
23
|
-
return ZERO;
|
|
24
|
-
let z = n % TWO > ZERO ? x : RAY;
|
|
25
|
-
for (n = n / TWO; n; n /= TWO) {
|
|
26
|
-
x = (x * x + HALF) / RAY;
|
|
27
|
-
if (n % TWO > ZERO) {
|
|
28
|
-
z = (z * x + HALF) / RAY;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return z;
|
|
32
|
-
};
|
|
33
|
-
const calcChi = (state, currentTimestamp) => {
|
|
34
|
-
currentTimestamp || (currentTimestamp = Math.floor(Date.now() / 1000));
|
|
35
|
-
if (!state.live)
|
|
36
|
-
return RAY;
|
|
37
|
-
const { dsr: dsr_, chi: chi_, rho: rho_ } = state;
|
|
38
|
-
const now = BigInt(currentTimestamp);
|
|
39
|
-
const rho = BigInt(rho_);
|
|
40
|
-
const dsr = BigInt(dsr_);
|
|
41
|
-
const chi = BigInt(chi_);
|
|
42
|
-
return now > rho ? (rpow(dsr, now - rho) * chi) / RAY : chi;
|
|
43
|
-
};
|
|
44
|
-
class SDaiEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
45
|
-
constructor(parentName, dexHelper, potAddress, potInterface, logger) {
|
|
46
|
-
super(parentName, 'sdai', dexHelper, logger);
|
|
47
|
-
this.dexHelper = dexHelper;
|
|
48
|
-
this.potAddress = potAddress;
|
|
49
|
-
this.potInterface = potInterface;
|
|
50
|
-
this.addressesSubscribed = [potAddress];
|
|
51
|
-
}
|
|
52
|
-
processLog(state, log, blockHeader) {
|
|
53
|
-
if (log.topics[0] === FILE_TOPICHASH && log.topics[2] === DSR_TOPIC) {
|
|
54
|
-
return {
|
|
55
|
-
...state,
|
|
56
|
-
dsr: BigInt(log.topics[3]).toString(),
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
if (log.topics[0] === DRIP_TOPICHASH) {
|
|
60
|
-
return {
|
|
61
|
-
...state,
|
|
62
|
-
rho: blockHeader.timestamp.toString(),
|
|
63
|
-
chi: calcChi(state, +blockHeader.timestamp).toString(),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
async generateState(blockNumber = 'latest') {
|
|
69
|
-
return (0, utils_1.getOnChainState)(this.dexHelper.multiContract, this.potAddress, this.potInterface, blockNumber);
|
|
70
|
-
}
|
|
71
|
-
convertToSDai(daiAmount, blockNumber) {
|
|
72
|
-
const state = this.getState(blockNumber);
|
|
73
|
-
if (!state)
|
|
74
|
-
throw new Error(`SDai state at ${blockNumber} does not exists`);
|
|
75
|
-
return (daiAmount * RAY) / calcChi(state);
|
|
76
|
-
}
|
|
77
|
-
convertToDai(sdaiAmount, blockNumber) {
|
|
78
|
-
const state = this.getState(blockNumber);
|
|
79
|
-
if (!state)
|
|
80
|
-
throw new Error(`SDai state at ${blockNumber} does not exists`);
|
|
81
|
-
return (sdaiAmount * calcChi(state)) / RAY;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
exports.SDaiEventPool = SDaiEventPool;
|
|
85
|
-
//# sourceMappingURL=sdai-pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sdai-pool.js","sourceRoot":"","sources":["../../../src/dex/sdai/sdai-pool.ts"],"names":[],"mappings":"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"}
|