@paraswap/dex-lib 3.8.1 → 3.8.2
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/prettier.xml +7 -0
- package/.idea/vcs.xml +6 -0
- package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js +3 -0
- package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/paraswap-limit-orders/paraswap-limit-orders-e2e.test.ts +152 -68
- package/src/dex/paraswap-limit-orders/paraswap-limit-orders.ts +3 -0
- package/tests/constants-e2e.ts +1 -1
- package/.vscode/launch.json +0 -53
- package/.vscode/settings.json +0 -2
- package/.vscode/tasks.json +0 -15
- package/build/abi/AaveV1_lending_pool.json +0 -27
- package/build/abi/platypus/asset.json +0 -490
- package/build/abi/platypus/avax-pool.json +0 -820
- package/build/abi/platypus/oracle.json +0 -119
- package/build/abi/platypus/pool.json +0 -677
- package/build/abi/smardex/all/smardex-router.json +0 -648
- package/build/abi/smardex/layer-1/smardex-factory.json +0 -242
- package/build/abi/smardex/layer-1/smardex-pool.json +0 -506
- package/build/abi/smardex/layer-2/smardex-factory.json +0 -185
- package/build/abi/smardex/layer-2/smardex-pool.json +0 -578
- package/build/abi/swaap-v1/pool.json +0 -1346
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +0 -52
- package/build/abi/wombat/pool.json +0 -1289
- package/build/dex/aave-v1/aave-v1.d.ts +0 -34
- package/build/dex/aave-v1/aave-v1.js +0 -181
- package/build/dex/aave-v1/aave-v1.js.map +0 -1
- package/build/dex/aave-v1/config.d.ts +0 -11
- package/build/dex/aave-v1/config.js +0 -20
- package/build/dex/aave-v1/config.js.map +0 -1
- package/build/dex/aave-v1/tokens-mainnet.json +0 -134
- package/build/dex/aave-v1/tokens.d.ts +0 -3
- package/build/dex/aave-v1/tokens.js +0 -50
- package/build/dex/aave-v1/tokens.js.map +0 -1
- package/build/dex/aave-v1/types.d.ts +0 -12
- package/build/dex/aave-v1/types.js +0 -3
- package/build/dex/aave-v1/types.js.map +0 -1
- package/build/dex/aave-v2/tokens-avalanche.json +0 -44
- package/build/dex/aave-v2/tokens-mainnet.json +0 -188
- package/build/dex/aave-v2/tokens-polygon.json +0 -44
- package/build/dex/bProtocol.d.ts +0 -18
- package/build/dex/bProtocol.js +0 -39
- package/build/dex/bProtocol.js.map +0 -1
- package/build/dex/bancor.d.ts +0 -26
- package/build/dex/bancor.js +0 -58
- package/build/dex/bancor.js.map +0 -1
- package/build/dex/compound.d.ts +0 -18
- package/build/dex/compound.js +0 -46
- package/build/dex/compound.js.map +0 -1
- package/build/dex/curve-v2.d.ts +0 -58
- package/build/dex/curve-v2.js +0 -180
- package/build/dex/curve-v2.js.map +0 -1
- package/build/dex/dodo-v1.d.ts +0 -33
- package/build/dex/dodo-v1.js +0 -63
- package/build/dex/dodo-v1.js.map +0 -1
- package/build/dex/lido.d.ts +0 -19
- package/build/dex/lido.js +0 -42
- package/build/dex/lido.js.map +0 -1
- package/build/dex/maker-psm/scripts/gem.abi.json +0 -136
- package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
- package/build/dex/maker-psm/scripts/validate-state.js +0 -185
- package/build/dex/maker-psm/scripts/validate-state.js.map +0 -1
- package/build/dex/maker-psm/scripts/vat.abi.json +0 -243
- package/build/dex/onebit.d.ts +0 -25
- package/build/dex/onebit.js +0 -42
- package/build/dex/onebit.js.map +0 -1
- package/build/dex/platypus/asset.d.ts +0 -14
- package/build/dex/platypus/asset.js +0 -97
- package/build/dex/platypus/asset.js.map +0 -1
- package/build/dex/platypus/config.d.ts +0 -11
- package/build/dex/platypus/config.js +0 -69
- package/build/dex/platypus/config.js.map +0 -1
- package/build/dex/platypus/platypus.d.ts +0 -63
- package/build/dex/platypus/platypus.js +0 -487
- package/build/dex/platypus/platypus.js.map +0 -1
- package/build/dex/platypus/pool-avax.d.ts +0 -8
- package/build/dex/platypus/pool-avax.js +0 -54
- package/build/dex/platypus/pool-avax.js.map +0 -1
- package/build/dex/platypus/pool-base.d.ts +0 -19
- package/build/dex/platypus/pool-base.js +0 -86
- package/build/dex/platypus/pool-base.js.map +0 -1
- package/build/dex/platypus/pool-pure.d.ts +0 -8
- package/build/dex/platypus/pool-pure.js +0 -37
- package/build/dex/platypus/pool-pure.js.map +0 -1
- package/build/dex/platypus/pool-subscriber.d.ts +0 -14
- package/build/dex/platypus/pool-subscriber.js +0 -167
- package/build/dex/platypus/pool-subscriber.js.map +0 -1
- package/build/dex/platypus/pool.d.ts +0 -8
- package/build/dex/platypus/pool.js +0 -58
- package/build/dex/platypus/pool.js.map +0 -1
- package/build/dex/platypus/types.d.ts +0 -92
- package/build/dex/platypus/types.js +0 -10
- package/build/dex/platypus/types.js.map +0 -1
- package/build/dex/quickswap/spiritswap-v3.d.ts +0 -6
- package/build/dex/quickswap/spiritswap-v3.js +0 -19
- package/build/dex/quickswap/spiritswap-v3.js.map +0 -1
- package/build/dex/smardex/config.d.ts +0 -4
- package/build/dex/smardex/config.js +0 -64
- package/build/dex/smardex/config.js.map +0 -1
- package/build/dex/smardex/constants.d.ts +0 -18
- package/build/dex/smardex/constants.js +0 -33
- package/build/dex/smardex/constants.js.map +0 -1
- package/build/dex/smardex/sdk/constants.d.ts +0 -6
- package/build/dex/smardex/sdk/constants.js +0 -13
- package/build/dex/smardex/sdk/constants.js.map +0 -1
- package/build/dex/smardex/sdk/core.d.ts +0 -113
- package/build/dex/smardex/sdk/core.js +0 -499
- package/build/dex/smardex/sdk/core.js.map +0 -1
- package/build/dex/smardex/sdk/errors.d.ts +0 -15
- package/build/dex/smardex/sdk/errors.js +0 -22
- package/build/dex/smardex/sdk/errors.js.map +0 -1
- package/build/dex/smardex/sdk/types.d.ts +0 -62
- package/build/dex/smardex/sdk/types.js +0 -3
- package/build/dex/smardex/sdk/types.js.map +0 -1
- package/build/dex/smardex/sdk/utils.d.ts +0 -44
- package/build/dex/smardex/sdk/utils.js +0 -133
- package/build/dex/smardex/sdk/utils.js.map +0 -1
- package/build/dex/smardex/smardex-event-pool.d.ts +0 -28
- package/build/dex/smardex/smardex-event-pool.js +0 -119
- package/build/dex/smardex/smardex-event-pool.js.map +0 -1
- package/build/dex/smardex/smardex.d.ts +0 -65
- package/build/dex/smardex/smardex.js +0 -519
- package/build/dex/smardex/smardex.js.map +0 -1
- package/build/dex/smardex/types.d.ts +0 -55
- package/build/dex/smardex/types.js +0 -3
- package/build/dex/smardex/types.js.map +0 -1
- package/build/dex/smoothy.d.ts +0 -26
- package/build/dex/smoothy.js +0 -48
- package/build/dex/smoothy.js.map +0 -1
- package/build/dex/solidly/forks-override/cone.d.ts +0 -22
- package/build/dex/solidly/forks-override/cone.js +0 -53
- package/build/dex/solidly/forks-override/cone.js.map +0 -1
- package/build/dex/solidly/forks-override/solisnek.d.ts +0 -8
- package/build/dex/solidly/forks-override/solisnek.js +0 -15
- package/build/dex/solidly/forks-override/solisnek.js.map +0 -1
- package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +0 -1
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js +0 -53
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +0 -1
- package/build/dex/stable-pool.d.ts +0 -28
- package/build/dex/stable-pool.js +0 -55
- package/build/dex/stable-pool.js.map +0 -1
- package/build/dex/swaap-v1/config.d.ts +0 -17
- package/build/dex/swaap-v1/config.js +0 -56
- package/build/dex/swaap-v1/config.js.map +0 -1
- package/build/dex/swaap-v1/constants.d.ts +0 -6
- package/build/dex/swaap-v1/constants.js +0 -17
- package/build/dex/swaap-v1/constants.js.map +0 -1
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +0 -25
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +0 -62
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +0 -1
- package/build/dex/swaap-v1/libraries/Const.d.ts +0 -18
- package/build/dex/swaap-v1/libraries/Const.js +0 -26
- package/build/dex/swaap-v1/libraries/Const.js.map +0 -1
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +0 -77
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +0 -316
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +0 -1
- package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +0 -75
- package/build/dex/swaap-v1/libraries/LogExpMath.js +0 -418
- package/build/dex/swaap-v1/libraries/LogExpMath.js.map +0 -1
- package/build/dex/swaap-v1/libraries/MathMMM.d.ts +0 -185
- package/build/dex/swaap-v1/libraries/MathMMM.js +0 -453
- package/build/dex/swaap-v1/libraries/MathMMM.js.map +0 -1
- package/build/dex/swaap-v1/libraries/Num.d.ts +0 -31
- package/build/dex/swaap-v1/libraries/Num.js +0 -167
- package/build/dex/swaap-v1/libraries/Num.js.map +0 -1
- package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +0 -23
- package/build/dex/swaap-v1/libraries/PoolQuotations.js +0 -131
- package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +0 -1
- package/build/dex/swaap-v1/libraries/Struct.d.ts +0 -56
- package/build/dex/swaap-v1/libraries/Struct.js +0 -3
- package/build/dex/swaap-v1/libraries/Struct.js.map +0 -1
- package/build/dex/swaap-v1/swaap-v1-pool.d.ts +0 -45
- package/build/dex/swaap-v1/swaap-v1-pool.js +0 -656
- package/build/dex/swaap-v1/swaap-v1-pool.js.map +0 -1
- package/build/dex/swaap-v1/swaap-v1.d.ts +0 -62
- package/build/dex/swaap-v1/swaap-v1.js +0 -383
- package/build/dex/swaap-v1/swaap-v1.js.map +0 -1
- package/build/dex/swaap-v1/types.d.ts +0 -106
- package/build/dex/swaap-v1/types.js +0 -9
- package/build/dex/swaap-v1/types.js.map +0 -1
- package/build/dex/trader-joe-v2.1.d.ts +0 -43
- package/build/dex/trader-joe-v2.1.js +0 -79
- package/build/dex/trader-joe-v2.1.js.map +0 -1
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +0 -17
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +0 -64
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +0 -1
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +0 -17
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +0 -79
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +0 -1
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Computes logarithm in base 2 for a given positive number.
|
|
3
|
-
* Result is rounded down.
|
|
4
|
-
*
|
|
5
|
-
* @param {bigint} value - value to compute the log2
|
|
6
|
-
* @returns {bigint} the log in base 2 of the value, 0 if given 0.
|
|
7
|
-
*/
|
|
8
|
-
export declare function log2(value: bigint): bigint;
|
|
9
|
-
/**
|
|
10
|
-
* Computes the square root of a number. If the number is not a perfect square, the value is rounded down.
|
|
11
|
-
* Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11).
|
|
12
|
-
*
|
|
13
|
-
* @param {bigint} value - value to compute the square root
|
|
14
|
-
* @returns {bigint} the square root of the value
|
|
15
|
-
*/
|
|
16
|
-
export declare function sqrt(value: bigint): bigint;
|
|
17
|
-
/**
|
|
18
|
-
* Evaluates the equality of two numbers at a precision of 1/1_000_000
|
|
19
|
-
*
|
|
20
|
-
* @param {bigint} x - value to compare
|
|
21
|
-
* @param {bigint} y - value to compare
|
|
22
|
-
* @returns {boolean} true if numbers are approximatively equal at 1/1_000_000, false otherwise
|
|
23
|
-
*/
|
|
24
|
-
export declare function approxEq(x: bigint, y: bigint): true | false;
|
|
25
|
-
/**
|
|
26
|
-
* Evaluates the equality of two ratio numbers at a precision of 1/1_000_000. xNum / xDen ~= yNum / yDen
|
|
27
|
-
*
|
|
28
|
-
* @param {bigint} _xNum - first number numerator
|
|
29
|
-
* @param {bigint} _xDen - first number denominator
|
|
30
|
-
* @param {bigint} _yNum - second number numerator
|
|
31
|
-
* @param {bigint} _yDen - second number denominator
|
|
32
|
-
* @returns {boolean} true if the two ratios are approximatively equal at 1/1_000_000, false otherwise
|
|
33
|
-
*/
|
|
34
|
-
export declare function ratioApproxEq(_xNum: bigint, _xDen: bigint, _yNum: bigint, _yDen: bigint): true | false;
|
|
35
|
-
/**
|
|
36
|
-
* Computes the ratio of two numbers
|
|
37
|
-
*
|
|
38
|
-
* @param {bigint} numerator - numerator number
|
|
39
|
-
* @param {bigint} denominator - denominator number
|
|
40
|
-
* @param {number} decimals - decimals
|
|
41
|
-
* @returns {bigint} ratio of the two numbers. returns 0 if denominator is 0
|
|
42
|
-
*/
|
|
43
|
-
export declare function priceRatio(numerator: bigint, denominator: bigint, decimals?: number): bigint;
|
|
44
|
-
export declare function abs(value: bigint): bigint;
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.abs = exports.priceRatio = exports.ratioApproxEq = exports.approxEq = exports.sqrt = exports.log2 = void 0;
|
|
4
|
-
const utils_1 = require("ethers/lib/utils");
|
|
5
|
-
// Constants to compute approximate equality
|
|
6
|
-
const APPROX_EQ_PRECISION = 1n;
|
|
7
|
-
const APPROX_EQ_BASE_PRECISION = 1000000n;
|
|
8
|
-
/**
|
|
9
|
-
* Computes logarithm in base 2 for a given positive number.
|
|
10
|
-
* Result is rounded down.
|
|
11
|
-
*
|
|
12
|
-
* @param {bigint} value - value to compute the log2
|
|
13
|
-
* @returns {bigint} the log in base 2 of the value, 0 if given 0.
|
|
14
|
-
*/
|
|
15
|
-
/* eslint-disable no-param-reassign */
|
|
16
|
-
function log2(value) {
|
|
17
|
-
let result = 0n;
|
|
18
|
-
if (value >> 128n > 0n) {
|
|
19
|
-
value >>= 128n;
|
|
20
|
-
result += 128n;
|
|
21
|
-
}
|
|
22
|
-
if (value >> 64n > 0n) {
|
|
23
|
-
value >>= 64n;
|
|
24
|
-
result += 64n;
|
|
25
|
-
}
|
|
26
|
-
if (value >> 32n > 0n) {
|
|
27
|
-
value >>= 32n;
|
|
28
|
-
result += 32n;
|
|
29
|
-
}
|
|
30
|
-
if (value >> 16n > 0n) {
|
|
31
|
-
value >>= 16n;
|
|
32
|
-
result += 16n;
|
|
33
|
-
}
|
|
34
|
-
if (value >> 8n > 0n) {
|
|
35
|
-
value >>= 8n;
|
|
36
|
-
result += 8n;
|
|
37
|
-
}
|
|
38
|
-
if (value >> 4n > 0n) {
|
|
39
|
-
value >>= 4n;
|
|
40
|
-
result += 4n;
|
|
41
|
-
}
|
|
42
|
-
if (value >> 2n > 0n) {
|
|
43
|
-
value >>= 2n;
|
|
44
|
-
result += 2n;
|
|
45
|
-
}
|
|
46
|
-
if (value >> 1n > 0n) {
|
|
47
|
-
result += 1n;
|
|
48
|
-
}
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
exports.log2 = log2;
|
|
52
|
-
/**
|
|
53
|
-
* Computes the square root of a number. If the number is not a perfect square, the value is rounded down.
|
|
54
|
-
* Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11).
|
|
55
|
-
*
|
|
56
|
-
* @param {bigint} value - value to compute the square root
|
|
57
|
-
* @returns {bigint} the square root of the value
|
|
58
|
-
*/
|
|
59
|
-
function sqrt(value) {
|
|
60
|
-
if (value === 0n) {
|
|
61
|
-
return 0n;
|
|
62
|
-
}
|
|
63
|
-
// For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.
|
|
64
|
-
//
|
|
65
|
-
// We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have
|
|
66
|
-
// `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.
|
|
67
|
-
//
|
|
68
|
-
// This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`
|
|
69
|
-
// → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`
|
|
70
|
-
// → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`
|
|
71
|
-
//
|
|
72
|
-
// Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.
|
|
73
|
-
let result = 1n << (log2(value) / 2n);
|
|
74
|
-
// At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,
|
|
75
|
-
// since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at
|
|
76
|
-
// every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision
|
|
77
|
-
// into the expected uint128 result.
|
|
78
|
-
result = (result + value / result) >> 1n;
|
|
79
|
-
result = (result + value / result) >> 1n;
|
|
80
|
-
result = (result + value / result) >> 1n;
|
|
81
|
-
result = (result + value / result) >> 1n;
|
|
82
|
-
result = (result + value / result) >> 1n;
|
|
83
|
-
result = (result + value / result) >> 1n;
|
|
84
|
-
result = (result + value / result) >> 1n;
|
|
85
|
-
return result < value / result ? result : value / result;
|
|
86
|
-
}
|
|
87
|
-
exports.sqrt = sqrt;
|
|
88
|
-
/**
|
|
89
|
-
* Evaluates the equality of two numbers at a precision of 1/1_000_000
|
|
90
|
-
*
|
|
91
|
-
* @param {bigint} x - value to compare
|
|
92
|
-
* @param {bigint} y - value to compare
|
|
93
|
-
* @returns {boolean} true if numbers are approximatively equal at 1/1_000_000, false otherwise
|
|
94
|
-
*/
|
|
95
|
-
function approxEq(x, y) {
|
|
96
|
-
return x > y
|
|
97
|
-
? x < y + (y * APPROX_EQ_PRECISION) / APPROX_EQ_BASE_PRECISION
|
|
98
|
-
: y < x + (x * APPROX_EQ_PRECISION) / APPROX_EQ_BASE_PRECISION;
|
|
99
|
-
}
|
|
100
|
-
exports.approxEq = approxEq;
|
|
101
|
-
/**
|
|
102
|
-
* Evaluates the equality of two ratio numbers at a precision of 1/1_000_000. xNum / xDen ~= yNum / yDen
|
|
103
|
-
*
|
|
104
|
-
* @param {bigint} _xNum - first number numerator
|
|
105
|
-
* @param {bigint} _xDen - first number denominator
|
|
106
|
-
* @param {bigint} _yNum - second number numerator
|
|
107
|
-
* @param {bigint} _yDen - second number denominator
|
|
108
|
-
* @returns {boolean} true if the two ratios are approximatively equal at 1/1_000_000, false otherwise
|
|
109
|
-
*/
|
|
110
|
-
function ratioApproxEq(_xNum, _xDen, _yNum, _yDen) {
|
|
111
|
-
return approxEq(_xNum * _yDen, _xDen * _yNum);
|
|
112
|
-
}
|
|
113
|
-
exports.ratioApproxEq = ratioApproxEq;
|
|
114
|
-
/**
|
|
115
|
-
* Computes the ratio of two numbers
|
|
116
|
-
*
|
|
117
|
-
* @param {bigint} numerator - numerator number
|
|
118
|
-
* @param {bigint} denominator - denominator number
|
|
119
|
-
* @param {number} decimals - decimals
|
|
120
|
-
* @returns {bigint} ratio of the two numbers. returns 0 if denominator is 0
|
|
121
|
-
*/
|
|
122
|
-
function priceRatio(numerator, denominator, decimals = 18) {
|
|
123
|
-
if (denominator === 0n) {
|
|
124
|
-
return 0n;
|
|
125
|
-
}
|
|
126
|
-
return (BigInt((0, utils_1.parseUnits)(numerator.toString(), decimals).toString()) / denominator);
|
|
127
|
-
}
|
|
128
|
-
exports.priceRatio = priceRatio;
|
|
129
|
-
function abs(value) {
|
|
130
|
-
return value === -0n || value < 0n ? -value : value;
|
|
131
|
-
}
|
|
132
|
-
exports.abs = abs;
|
|
133
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/dex/smardex/sdk/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
|
|
2
|
-
import { SmardexFees, SmardexPoolState } from './types';
|
|
3
|
-
import { Interface } from '@ethersproject/abi';
|
|
4
|
-
import { IDexHelper } from '../../dex-helper';
|
|
5
|
-
import { Address, Log, Logger, Token } from '../../types';
|
|
6
|
-
import { DeepReadonly } from 'ts-essentials';
|
|
7
|
-
export declare class SmardexEventPool extends StatefulEventSubscriber<SmardexPoolState> {
|
|
8
|
-
protected poolInterface: Interface;
|
|
9
|
-
protected dexHelper: IDexHelper;
|
|
10
|
-
poolAddress: Address;
|
|
11
|
-
protected smardexFeesMultiCallEntry?: {
|
|
12
|
-
target: string;
|
|
13
|
-
callData: string;
|
|
14
|
-
} | undefined;
|
|
15
|
-
protected smardexFeesMulticallDecoder?: ((values: any[]) => SmardexFees) | undefined;
|
|
16
|
-
private isLayerOne;
|
|
17
|
-
constructor(poolInterface: Interface, dexHelper: IDexHelper, poolAddress: Address, token0: Token, token1: Token, logger: Logger, smardexFeesMultiCallEntry?: {
|
|
18
|
-
target: string;
|
|
19
|
-
callData: string;
|
|
20
|
-
} | undefined, smardexFeesMulticallDecoder?: ((values: any[]) => SmardexFees) | undefined, isLayerOne?: boolean);
|
|
21
|
-
fetchPairFeesAndLastTimestamp(blockNumber: number): Promise<{
|
|
22
|
-
feesLP: bigint;
|
|
23
|
-
feesPool: bigint;
|
|
24
|
-
priceAverageLastTimestamp: number;
|
|
25
|
-
}>;
|
|
26
|
-
protected processLog(state: DeepReadonly<SmardexPoolState>, log: Readonly<Log>): Promise<DeepReadonly<SmardexPoolState> | null>;
|
|
27
|
-
generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<SmardexPoolState>>;
|
|
28
|
-
}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SmardexEventPool = void 0;
|
|
4
|
-
const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
|
|
5
|
-
const abi_1 = require("@ethersproject/abi");
|
|
6
|
-
const constants_1 = require("./constants");
|
|
7
|
-
const coder = new abi_1.AbiCoder();
|
|
8
|
-
class SmardexEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
9
|
-
constructor(poolInterface, dexHelper, poolAddress, token0, token1, logger, smardexFeesMultiCallEntry, smardexFeesMulticallDecoder, isLayerOne = true) {
|
|
10
|
-
super('Smardex', `${token0.address}_${token1.address}`, dexHelper, logger);
|
|
11
|
-
this.poolInterface = poolInterface;
|
|
12
|
-
this.dexHelper = dexHelper;
|
|
13
|
-
this.poolAddress = poolAddress;
|
|
14
|
-
this.smardexFeesMultiCallEntry = smardexFeesMultiCallEntry;
|
|
15
|
-
this.smardexFeesMulticallDecoder = smardexFeesMulticallDecoder;
|
|
16
|
-
this.isLayerOne = isLayerOne;
|
|
17
|
-
}
|
|
18
|
-
async fetchPairFeesAndLastTimestamp(blockNumber) {
|
|
19
|
-
let calldata = [
|
|
20
|
-
{
|
|
21
|
-
target: this.poolAddress,
|
|
22
|
-
callData: this.poolInterface.encodeFunctionData('getPriceAverage', []),
|
|
23
|
-
},
|
|
24
|
-
];
|
|
25
|
-
if (!this.isLayerOne) {
|
|
26
|
-
calldata.push(this.smardexFeesMultiCallEntry);
|
|
27
|
-
}
|
|
28
|
-
const data = await this.dexHelper.multiContract.methods
|
|
29
|
-
.aggregate(calldata)
|
|
30
|
-
.call({}, blockNumber);
|
|
31
|
-
const priceAverageLastTimestamp = coder.decode(['uint256', 'uint256', 'uint256'], data.returnData[0])[2];
|
|
32
|
-
const fees = this.isLayerOne
|
|
33
|
-
? constants_1.FEES_LAYER_ONE
|
|
34
|
-
: this.smardexFeesMulticallDecoder(data.returnData[1]);
|
|
35
|
-
return {
|
|
36
|
-
feesLP: fees.feesLP,
|
|
37
|
-
feesPool: fees.feesPool,
|
|
38
|
-
priceAverageLastTimestamp: priceAverageLastTimestamp.toNumber(),
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
// This methode overrides previous state with new state.
|
|
42
|
-
// Problem: Smardex Pair state is updated partially on different events
|
|
43
|
-
// This is why we must fetch pair's missing state in Events
|
|
44
|
-
async processLog(state, log) {
|
|
45
|
-
if (!Object.values(constants_1.TOPICS).includes(log.topics[0]))
|
|
46
|
-
return null;
|
|
47
|
-
const event = this.poolInterface.parseLog(log);
|
|
48
|
-
switch (event.name) {
|
|
49
|
-
case 'Sync':
|
|
50
|
-
const fetchedSync = await this.fetchPairFeesAndLastTimestamp(log.blockNumber);
|
|
51
|
-
return {
|
|
52
|
-
reserves0: event.args.reserve0.toString(),
|
|
53
|
-
reserves1: event.args.reserve1.toString(),
|
|
54
|
-
fictiveReserves0: event.args.fictiveReserve0.toString(),
|
|
55
|
-
fictiveReserves1: event.args.fictiveReserve1.toString(),
|
|
56
|
-
priceAverage0: event.args.priceAverage0.toString(),
|
|
57
|
-
priceAverage1: event.args.priceAverage1.toString(),
|
|
58
|
-
priceAverageLastTimestamp: fetchedSync.priceAverageLastTimestamp,
|
|
59
|
-
feesLP: fetchedSync.feesLP,
|
|
60
|
-
feesPool: fetchedSync.feesPool,
|
|
61
|
-
};
|
|
62
|
-
case 'FeesChanged': // only triggerd on L2
|
|
63
|
-
return {
|
|
64
|
-
reserves0: state.reserves0,
|
|
65
|
-
reserves1: state.reserves1,
|
|
66
|
-
fictiveReserves0: state.fictiveReserves0,
|
|
67
|
-
fictiveReserves1: state.fictiveReserves1,
|
|
68
|
-
priceAverage0: state.priceAverage0,
|
|
69
|
-
priceAverage1: state.priceAverage1,
|
|
70
|
-
priceAverageLastTimestamp: state.priceAverageLastTimestamp,
|
|
71
|
-
feesLP: BigInt(event.args.feesLP),
|
|
72
|
-
feesPool: BigInt(event.args.feesPool),
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
async generateState(blockNumber = 'latest') {
|
|
78
|
-
const coder = new abi_1.AbiCoder();
|
|
79
|
-
let calldata = [
|
|
80
|
-
{
|
|
81
|
-
target: this.poolAddress,
|
|
82
|
-
callData: this.poolInterface.encodeFunctionData('getReserves', []),
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
target: this.poolAddress,
|
|
86
|
-
callData: this.poolInterface.encodeFunctionData('getFictiveReserves', []),
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
target: this.poolAddress,
|
|
90
|
-
callData: this.poolInterface.encodeFunctionData('getPriceAverage', []),
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
if (!this.isLayerOne) {
|
|
94
|
-
calldata.push(this.smardexFeesMultiCallEntry);
|
|
95
|
-
}
|
|
96
|
-
const data = await this.dexHelper.multiContract.methods
|
|
97
|
-
.aggregate(calldata)
|
|
98
|
-
.call({}, blockNumber);
|
|
99
|
-
const [reserves0, reserves1] = coder.decode(['uint256', 'uint256'], data.returnData[0]);
|
|
100
|
-
const [fictiveReserve0, fictiveReserve1] = coder.decode(['uint256', 'uint256'], data.returnData[1]);
|
|
101
|
-
const [priceAverage0, priceAverage1, priceAverageLastTimestamp] = coder.decode(['uint256', 'uint256', 'uint256'], data.returnData[2]);
|
|
102
|
-
const fees = this.isLayerOne
|
|
103
|
-
? constants_1.FEES_LAYER_ONE
|
|
104
|
-
: this.smardexFeesMulticallDecoder(data.returnData[3]);
|
|
105
|
-
return {
|
|
106
|
-
reserves0: reserves0.toString(),
|
|
107
|
-
reserves1: reserves1.toString(),
|
|
108
|
-
fictiveReserves0: fictiveReserve0.toString(),
|
|
109
|
-
fictiveReserves1: fictiveReserve1.toString(),
|
|
110
|
-
priceAverage0: priceAverage0.toString(),
|
|
111
|
-
priceAverage1: priceAverage1.toString(),
|
|
112
|
-
priceAverageLastTimestamp: priceAverageLastTimestamp.toNumber(),
|
|
113
|
-
feesLP: fees.feesLP,
|
|
114
|
-
feesPool: fees.feesPool,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
exports.SmardexEventPool = SmardexEventPool;
|
|
119
|
-
//# sourceMappingURL=smardex-event-pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smardex-event-pool.js","sourceRoot":"","sources":["../../../src/dex/smardex/smardex-event-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import { Contract } from 'web3-eth-contract';
|
|
3
|
-
import { Network, SwapSide } from '../../constants';
|
|
4
|
-
import { AdapterExchangeParam, Address, ExchangePrices, Logger, NumberAsString, PoolLiquidity, PoolPrices, SimpleExchangeParam, Token, TransferFeeParams } from '../../types';
|
|
5
|
-
import { IDexHelper } from '../../dex-helper/index';
|
|
6
|
-
import { SmardexFees, SmardexPair, SmardexPoolOrderedParams, SmardexPoolState } from './types';
|
|
7
|
-
import { SimpleExchange } from '../simple-exchange';
|
|
8
|
-
import { SmardexRouterFunctions } from '../smardex/constants';
|
|
9
|
-
import { SmardexData, SmardexParam } from '../smardex/types';
|
|
10
|
-
import { IDex } from '../..';
|
|
11
|
-
export declare class Smardex extends SimpleExchange implements IDex<SmardexData, SmardexParam> {
|
|
12
|
-
protected network: Network;
|
|
13
|
-
dexHelper: IDexHelper;
|
|
14
|
-
protected adapters: import("../../types").AdapterMappings;
|
|
15
|
-
pairs: {
|
|
16
|
-
[key: string]: SmardexPair;
|
|
17
|
-
};
|
|
18
|
-
factory: Contract;
|
|
19
|
-
routerInterface: Interface;
|
|
20
|
-
exchangeRouterInterface: Interface;
|
|
21
|
-
static directFunctionName: SmardexRouterFunctions[];
|
|
22
|
-
factoryAddress: string;
|
|
23
|
-
routerAddress: string;
|
|
24
|
-
protected subgraphURL: string | undefined;
|
|
25
|
-
protected initCode: string;
|
|
26
|
-
logger: Logger;
|
|
27
|
-
readonly hasConstantPriceLargeAmounts = false;
|
|
28
|
-
readonly isFeeOnTransferSupported: boolean;
|
|
29
|
-
readonly SRC_TOKEN_DEX_TRANSFERS = 1;
|
|
30
|
-
readonly DEST_TOKEN_DEX_TRANSFERS = 1;
|
|
31
|
-
static dexKeysWithNetwork: {
|
|
32
|
-
key: string;
|
|
33
|
-
networks: Network[];
|
|
34
|
-
}[];
|
|
35
|
-
constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings);
|
|
36
|
-
getAdapters(side: SwapSide): {
|
|
37
|
-
name: string;
|
|
38
|
-
index: number;
|
|
39
|
-
}[] | null;
|
|
40
|
-
getPoolIdentifiers(_from: Token, _to: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
41
|
-
getPricesVolume(_from: Token, _to: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams): Promise<ExchangePrices<SmardexData> | null>;
|
|
42
|
-
getBuyPricePath(amount: bigint, params: SmardexPoolOrderedParams[]): Promise<bigint>;
|
|
43
|
-
getSellPricePath(amount: bigint, params: SmardexPoolOrderedParams[]): Promise<bigint>;
|
|
44
|
-
getBuyPrice(priceParams: SmardexPoolOrderedParams, destAmount: bigint): Promise<bigint>;
|
|
45
|
-
getSellPrice(priceParams: SmardexPoolOrderedParams, srcAmount: bigint): Promise<bigint>;
|
|
46
|
-
getCalldataGasCost(_poolPrices: PoolPrices<SmardexData>): number | number[];
|
|
47
|
-
findPair(from: Token, to: Token): Promise<SmardexPair | null>;
|
|
48
|
-
batchCatchUpPairs(pairs: [Token, Token][], blockNumber: number): Promise<void>;
|
|
49
|
-
getFeesMultiCallData(pairAddress: string): {
|
|
50
|
-
callEntry: {
|
|
51
|
-
target: string;
|
|
52
|
-
callData: string;
|
|
53
|
-
};
|
|
54
|
-
callDecoder: (values: any[]) => SmardexFees;
|
|
55
|
-
} | null;
|
|
56
|
-
protected addPool(pair: SmardexPair, reserves0: string, reserves1: string, fictiveReserves0: string, fictiveReserves1: string, priceAverage0: string, priceAverage1: string, feesLp: bigint, feesPool: bigint, blockNumber: number, priceAverageLastTimestamp: number): Promise<void>;
|
|
57
|
-
getManyPoolReserves(pairs: SmardexPair[], blockNumber: number): Promise<SmardexPoolState[]>;
|
|
58
|
-
protected fixPath(path: Address[], srcToken: Address, destToken: Address): string[];
|
|
59
|
-
getPairOrderedParams(from: Token, to: Token, blockNumber: number, tokenDexTransferFee: number): Promise<SmardexPoolOrderedParams | null>;
|
|
60
|
-
getWETHAddress(srcToken: Address, destToken: Address, weth?: Address): string;
|
|
61
|
-
getAdapterParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, toAmount: NumberAsString, data: SmardexData, side: SwapSide): AdapterExchangeParam;
|
|
62
|
-
getSimpleParam(src: Address, dest: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: SmardexData, side: SwapSide): Promise<SimpleExchangeParam>;
|
|
63
|
-
isLayer1(): boolean;
|
|
64
|
-
getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
|
|
65
|
-
}
|