@paraswap/dex-lib 2.18.5 → 2.18.6-swaap-v2
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/.idea/aws.xml +17 -0
- package/.idea/codeStyles/Project.xml +19 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/paraswap-dex-lib.iml +9 -0
- package/.idea/vcs.xml +6 -0
- package/build/abi/swaap-v2/vault.json +918 -0
- package/build/config.js +4 -2
- package/build/config.js.map +1 -1
- package/build/dex/hashflow/hashflow.js +52 -68
- package/build/dex/hashflow/hashflow.js.map +1 -1
- package/build/dex/index.js +2 -0
- package/build/dex/index.js.map +1 -1
- package/build/dex/pancakeswap-v3/types.d.ts +14 -0
- package/build/dex/{test-dex → pancakeswap-v3}/types.js.map +1 -1
- package/build/dex/{test-dex → swaap-v2}/config.d.ts +1 -1
- package/build/dex/swaap-v2/config.js +25 -0
- package/build/dex/swaap-v2/config.js.map +1 -0
- package/build/dex/swaap-v2/constants.d.ts +9 -0
- package/build/dex/swaap-v2/constants.js +13 -0
- package/build/dex/swaap-v2/constants.js.map +1 -0
- package/build/dex/swaap-v2/rate-fetcher.d.ts +16 -0
- package/build/dex/swaap-v2/rate-fetcher.js +100 -0
- package/build/dex/swaap-v2/rate-fetcher.js.map +1 -0
- package/build/dex/swaap-v2/swaap-v2.d.ts +55 -0
- package/build/dex/swaap-v2/swaap-v2.js +465 -0
- package/build/dex/swaap-v2/swaap-v2.js.map +1 -0
- package/build/dex/swaap-v2/types.d.ts +64 -0
- package/build/dex/swaap-v2/types.js +7 -0
- package/build/dex/swaap-v2/types.js.map +1 -0
- package/build/dex/swaap-v2/utils.d.ts +7 -0
- package/build/dex/swaap-v2/utils.js +34 -0
- package/build/dex/swaap-v2/utils.js.map +1 -0
- package/build/dex/swaap-v2/validators.d.ts +5 -0
- package/build/dex/swaap-v2/validators.js +120 -0
- package/build/dex/swaap-v2/validators.js.map +1 -0
- package/build/types.d.ts +1 -0
- package/package.json +1 -1
- package/src/abi/swaap-v2/vault.json +918 -0
- package/src/config.ts +5 -2
- package/src/dex/hashflow/hashflow.ts +85 -110
- package/src/dex/index.ts +2 -0
- package/src/dex/swaap-v2/config.ts +25 -0
- package/src/dex/swaap-v2/constants.ts +14 -0
- package/src/dex/swaap-v2/rate-fetcher.ts +164 -0
- package/src/dex/swaap-v2/swaap-v2-e2e.test.ts +199 -0
- package/src/dex/swaap-v2/swaap-v2-integration.test.ts +142 -0
- package/src/dex/swaap-v2/swaap-v2.ts +714 -0
- package/src/dex/swaap-v2/types.ts +74 -0
- package/src/dex/swaap-v2/utils.ts +44 -0
- package/src/dex/swaap-v2/validators.ts +123 -0
- package/src/types.ts +1 -0
- package/tests/constants-e2e.ts +1 -1
- package/tests/utils-e2e.ts +5 -0
- package/build/abi/DirectSwap.json +0 -1018
- package/build/dex/test-dex/config.js +0 -15
- package/build/dex/test-dex/config.js.map +0 -1
- package/build/dex/test-dex/test-dex-pool.d.ts +0 -39
- package/build/dex/test-dex/test-dex-pool.js +0 -63
- package/build/dex/test-dex/test-dex-pool.js.map +0 -1
- package/build/dex/test-dex/test-dex.d.ts +0 -37
- package/build/dex/test-dex/test-dex.js +0 -126
- package/build/dex/test-dex/test-dex.js.map +0 -1
- package/build/dex/test-dex/types.d.ts +0 -6
- package/build/dex/woo-fi-v2/woo-fi-math.d.ts +0 -16
- package/build/dex/woo-fi-v2/woo-fi-math.js +0 -137
- package/build/dex/woo-fi-v2/woo-fi-math.js.map +0 -1
- /package/build/dex/{test-dex → pancakeswap-v3}/types.js +0 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import dotenv from 'dotenv';
|
|
3
|
+
dotenv.config();
|
|
4
|
+
|
|
5
|
+
import { DummyDexHelper } from '../../dex-helper/index';
|
|
6
|
+
import { Network, SwapSide } from '../../constants';
|
|
7
|
+
import { BI_POWS } from '../../bigint-constants';
|
|
8
|
+
import { SwaapV2 } from './swaap-v2';
|
|
9
|
+
import {
|
|
10
|
+
checkPoolPrices,
|
|
11
|
+
checkPoolsLiquidity,
|
|
12
|
+
checkConstantPoolPrices,
|
|
13
|
+
sleep,
|
|
14
|
+
} from '../../../tests/utils';
|
|
15
|
+
import { Tokens } from '../../../tests/constants-e2e';
|
|
16
|
+
|
|
17
|
+
async function testPricingOnNetwork(
|
|
18
|
+
swaapV2: SwaapV2,
|
|
19
|
+
network: Network,
|
|
20
|
+
dexKey: string,
|
|
21
|
+
blockNumber: number,
|
|
22
|
+
srcTokenSymbol: string,
|
|
23
|
+
destTokenSymbol: string,
|
|
24
|
+
side: SwapSide,
|
|
25
|
+
amounts: bigint[],
|
|
26
|
+
) {
|
|
27
|
+
const networkTokens = Tokens[network];
|
|
28
|
+
|
|
29
|
+
const pools = await swaapV2.getPoolIdentifiers(
|
|
30
|
+
networkTokens[srcTokenSymbol],
|
|
31
|
+
networkTokens[destTokenSymbol],
|
|
32
|
+
side,
|
|
33
|
+
blockNumber,
|
|
34
|
+
);
|
|
35
|
+
console.log(
|
|
36
|
+
`${srcTokenSymbol} <> ${destTokenSymbol} Pool Identifiers: `,
|
|
37
|
+
pools,
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
expect(pools.length).toBeGreaterThan(0);
|
|
41
|
+
|
|
42
|
+
const poolPrices = await swaapV2.getPricesVolume(
|
|
43
|
+
networkTokens[srcTokenSymbol],
|
|
44
|
+
networkTokens[destTokenSymbol],
|
|
45
|
+
amounts,
|
|
46
|
+
side,
|
|
47
|
+
blockNumber,
|
|
48
|
+
pools,
|
|
49
|
+
);
|
|
50
|
+
console.log(
|
|
51
|
+
`${srcTokenSymbol} <> ${destTokenSymbol} Pool Prices: `,
|
|
52
|
+
poolPrices,
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
expect(poolPrices).not.toBeNull();
|
|
56
|
+
if (swaapV2.hasConstantPriceLargeAmounts) {
|
|
57
|
+
checkConstantPoolPrices(poolPrices!, amounts, dexKey);
|
|
58
|
+
} else {
|
|
59
|
+
checkPoolPrices(poolPrices!, amounts, side, dexKey);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
describe('Swaap V2', function () {
|
|
64
|
+
const dexKey = 'SwaapV2';
|
|
65
|
+
let blockNumber: number;
|
|
66
|
+
let swaapV2: SwaapV2;
|
|
67
|
+
|
|
68
|
+
describe('Polygon', () => {
|
|
69
|
+
const network = Network.POLYGON;
|
|
70
|
+
const dexHelper = new DummyDexHelper(network);
|
|
71
|
+
|
|
72
|
+
const tokens = Tokens[network];
|
|
73
|
+
|
|
74
|
+
const srcTokenSymbol = 'WETH';
|
|
75
|
+
const destTokenSymbol = 'USDC';
|
|
76
|
+
|
|
77
|
+
const amountsForSell = [
|
|
78
|
+
0n,
|
|
79
|
+
1n * BI_POWS[tokens[srcTokenSymbol].decimals],
|
|
80
|
+
2n * BI_POWS[tokens[srcTokenSymbol].decimals],
|
|
81
|
+
];
|
|
82
|
+
|
|
83
|
+
const amountsForBuy = [
|
|
84
|
+
0n,
|
|
85
|
+
10n * BI_POWS[tokens[destTokenSymbol].decimals],
|
|
86
|
+
20n * BI_POWS[tokens[destTokenSymbol].decimals],
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
beforeAll(async () => {
|
|
90
|
+
swaapV2 = new SwaapV2(network, dexKey, dexHelper);
|
|
91
|
+
if (swaapV2.initializePricing) {
|
|
92
|
+
await swaapV2.initializePricing(0);
|
|
93
|
+
await sleep(5000);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
it('getPoolIdentifiers and getPricesVolume SELL', async function () {
|
|
98
|
+
await testPricingOnNetwork(
|
|
99
|
+
swaapV2,
|
|
100
|
+
network,
|
|
101
|
+
dexKey,
|
|
102
|
+
blockNumber,
|
|
103
|
+
srcTokenSymbol,
|
|
104
|
+
destTokenSymbol,
|
|
105
|
+
SwapSide.SELL,
|
|
106
|
+
amountsForSell,
|
|
107
|
+
);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it('getPoolIdentifiers and getPricesVolume BUY', async function () {
|
|
111
|
+
await testPricingOnNetwork(
|
|
112
|
+
swaapV2,
|
|
113
|
+
network,
|
|
114
|
+
dexKey,
|
|
115
|
+
blockNumber,
|
|
116
|
+
srcTokenSymbol,
|
|
117
|
+
destTokenSymbol,
|
|
118
|
+
SwapSide.BUY,
|
|
119
|
+
amountsForBuy,
|
|
120
|
+
);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('getTopPoolsForToken', async function () {
|
|
124
|
+
// We have to check without calling initializePricing, because
|
|
125
|
+
// pool-tracker is not calling that function
|
|
126
|
+
const newHashflow = new SwaapV2(network, dexKey, dexHelper);
|
|
127
|
+
const poolLiquidity = await newHashflow.getTopPoolsForToken(
|
|
128
|
+
tokens[srcTokenSymbol].address,
|
|
129
|
+
10,
|
|
130
|
+
);
|
|
131
|
+
console.log(`${srcTokenSymbol} Top Pools:`, poolLiquidity);
|
|
132
|
+
|
|
133
|
+
if (!newHashflow.hasConstantPriceLargeAmounts) {
|
|
134
|
+
checkPoolsLiquidity(
|
|
135
|
+
poolLiquidity,
|
|
136
|
+
Tokens[network][srcTokenSymbol].address,
|
|
137
|
+
dexKey,
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
});
|