@paraswap/dex-lib 2.36.3-dexalot → 2.36.3-sequential-preprocessing.0
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/config.js +0 -2
- package/build/config.js.map +1 -1
- package/build/dex/hashflow/hashflow.d.ts +1 -0
- package/build/dex/hashflow/hashflow.js +1 -0
- package/build/dex/hashflow/hashflow.js.map +1 -1
- package/build/dex/idex.d.ts +1 -0
- package/build/dex/index.d.ts +1 -0
- package/build/dex/index.js +4 -2
- package/build/dex/index.js.map +1 -1
- package/build/types.d.ts +0 -1
- package/package.json +1 -1
- package/src/config.ts +0 -3
- package/src/dex/hashflow/hashflow.ts +2 -1
- package/src/dex/idex.ts +1 -0
- package/src/dex/index.ts +6 -2
- package/src/types.ts +0 -1
- package/.idea/aws.xml +0 -17
- package/.idea/codeStyles/Project.xml +0 -19
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/paraswap-dex-lib.iml +0 -9
- package/.idea/vcs.xml +0 -6
- package/build/abi/algebra/AlgebraPool.abi.json +0 -727
- package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
- package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
- package/build/abi/dexalot/DexalotMainnetRFQ.json +0 -887
- package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
- package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
- package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
- package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
- package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
- package/build/abi/wBETH.json +0 -1527
- package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
- package/build/abi/woo-fi/WooPP.abi.json +0 -548
- package/build/abi/woo-fi/Wooracle.abi.json +0 -260
- package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
- package/build/dex/aave-v3/tokens/avalanche.json +0 -74
- package/build/dex/aave-v3/tokens/fantom.json +0 -62
- package/build/dex/aave-v3/tokens/optimism.json +0 -50
- package/build/dex/aave-v3/tokens/polygon.json +0 -116
- package/build/dex/algebra/algebra-pool.d.ts +0 -46
- package/build/dex/algebra/algebra-pool.js +0 -336
- package/build/dex/algebra/algebra-pool.js.map +0 -1
- package/build/dex/balancer-v2/LinearMath.d.ts +0 -19
- package/build/dex/balancer-v2/LinearMath.js +0 -179
- package/build/dex/balancer-v2/LinearMath.js.map +0 -1
- package/build/dex/balancer-v2/LinearPool.d.ts +0 -47
- package/build/dex/balancer-v2/LinearPool.js +0 -324
- package/build/dex/balancer-v2/LinearPool.js.map +0 -1
- package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -47
- package/build/dex/balancer-v2/PhantomStablePool.js +0 -294
- package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
- package/build/dex/balancer-v2/StableMath.d.ts +0 -9
- package/build/dex/balancer-v2/StableMath.js +0 -272
- package/build/dex/balancer-v2/StableMath.js.map +0 -1
- package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -75
- package/build/dex/balancer-v2/balancer-v2-pool.js +0 -417
- package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
- package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
- package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
- package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
- package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
- package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
- package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
- package/build/dex/dexalot/config.d.ts +0 -4
- package/build/dex/dexalot/config.js +0 -18
- package/build/dex/dexalot/config.js.map +0 -1
- package/build/dex/dexalot/constants.d.ts +0 -15
- package/build/dex/dexalot/constants.js +0 -22
- package/build/dex/dexalot/constants.js.map +0 -1
- package/build/dex/dexalot/dexalot.d.ts +0 -69
- package/build/dex/dexalot/dexalot.js +0 -614
- package/build/dex/dexalot/dexalot.js.map +0 -1
- package/build/dex/dexalot/rate-fetcher.d.ts +0 -28
- package/build/dex/dexalot/rate-fetcher.js +0 -100
- package/build/dex/dexalot/rate-fetcher.js.map +0 -1
- package/build/dex/dexalot/types.d.ts +0 -114
- package/build/dex/dexalot/types.js +0 -12
- package/build/dex/dexalot/types.js.map +0 -1
- package/build/dex/dexalot/validators.d.ts +0 -5
- package/build/dex/dexalot/validators.js +0 -45
- package/build/dex/dexalot/validators.js.map +0 -1
- package/build/dex/pancakeswap-v3/types.d.ts +0 -14
- package/build/dex/pancakeswap-v3/types.js +0 -3
- package/build/dex/pancakeswap-v3/types.js.map +0 -1
- package/build/dex/quickswap/camelot-v3.d.ts +0 -6
- package/build/dex/quickswap/camelot-v3.js +0 -19
- package/build/dex/quickswap/camelot-v3.js.map +0 -1
- package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
- package/build/dex/quickswap/zyberswap-v3.js +0 -19
- package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
- package/build/dex/quickswap-v3.d.ts +0 -21
- package/build/dex/quickswap-v3.js +0 -40
- package/build/dex/quickswap-v3.js.map +0 -1
- package/build/dex/ramses-v2/config.d.ts +0 -4
- package/build/dex/ramses-v2/config.js +0 -28
- package/build/dex/ramses-v2/config.js.map +0 -1
- package/build/dex/ramses-v2/constants.d.ts +0 -28
- package/build/dex/ramses-v2/constants.js +0 -35
- package/build/dex/ramses-v2/constants.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
- package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
- package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
- package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
- package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
- package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
- package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
- package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
- package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
- package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
- package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
- package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
- package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
- package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
- package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
- package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
- package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
- package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
- package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
- package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
- package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
- package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
- package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
- package/build/dex/ramses-v2/contract-math/utils.js +0 -16
- package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
- package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
- package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
- package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
- package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
- package/build/dex/ramses-v2/ramses-v2.js +0 -690
- package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
- package/build/dex/ramses-v2/types.d.ts +0 -154
- package/build/dex/ramses-v2/types.js +0 -9
- package/build/dex/ramses-v2/types.js.map +0 -1
- package/build/dex/ramses-v2/utils.d.ts +0 -6
- package/build/dex/ramses-v2/utils.js +0 -71
- package/build/dex/ramses-v2/utils.js.map +0 -1
- package/build/dex/sushiswap-v3/config.d.ts +0 -4
- package/build/dex/sushiswap-v3/config.js +0 -132
- package/build/dex/sushiswap-v3/config.js.map +0 -1
- package/build/dex/sushiswap-v3/constants.d.ts +0 -4
- package/build/dex/sushiswap-v3/constants.js +0 -32
- package/build/dex/sushiswap-v3/constants.js.map +0 -1
- package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
- package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
- package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
- package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
- package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
- package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
- package/build/dex/sushiswap-v3/token.d.ts +0 -6
- package/build/dex/sushiswap-v3/token.js +0 -23
- package/build/dex/sushiswap-v3/token.js.map +0 -1
- package/build/dex/sushiswap-v3/types.d.ts +0 -15
- package/build/dex/sushiswap-v3/types.js +0 -18
- package/build/dex/sushiswap-v3/types.js.map +0 -1
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
- package/build/dex/woo-fi/config.d.ts +0 -4
- package/build/dex/woo-fi/config.js +0 -141
- package/build/dex/woo-fi/config.js.map +0 -1
- package/build/dex/woo-fi/constants.d.ts +0 -5
- package/build/dex/woo-fi/constants.js +0 -20
- package/build/dex/woo-fi/constants.js.map +0 -1
- package/build/dex/woo-fi/types.d.ts +0 -48
- package/build/dex/woo-fi/types.js +0 -3
- package/build/dex/woo-fi/types.js.map +0 -1
- package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
- package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
- package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
- package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
- package/build/dex/woo-fi/woo-fi-math.js +0 -300
- package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
- package/build/dex/woo-fi/woo-fi.d.ts +0 -65
- package/build/dex/woo-fi/woo-fi.js +0 -480
- package/build/dex/woo-fi/woo-fi.js.map +0 -1
- package/src/abi/dexalot/DexalotMainnetRFQ.json +0 -887
- package/src/dex/dexalot/config.ts +0 -18
- package/src/dex/dexalot/constants.ts +0 -29
- package/src/dex/dexalot/dexalot-e2e.test.ts +0 -192
- package/src/dex/dexalot/dexalot-integration.test.ts +0 -188
- package/src/dex/dexalot/dexalot.ts +0 -935
- package/src/dex/dexalot/rate-fetcher.ts +0 -197
- package/src/dex/dexalot/types.ts +0 -131
- package/src/dex/dexalot/validators.ts +0 -46
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { IDexHelper } from '../../dex-helper';
|
|
2
|
-
import { Logger } from '../../types';
|
|
3
|
-
import { DexalotRateFetcherConfig } from './types';
|
|
4
|
-
import { Network } from '../../constants';
|
|
5
|
-
export declare class RateFetcher {
|
|
6
|
-
private dexHelper;
|
|
7
|
-
private dexKey;
|
|
8
|
-
private network;
|
|
9
|
-
private logger;
|
|
10
|
-
private pairsFetcher;
|
|
11
|
-
private pairsCacheKey;
|
|
12
|
-
private pairsCacheTTL;
|
|
13
|
-
private rateFetcher;
|
|
14
|
-
private pricesCacheKey;
|
|
15
|
-
private pricesCacheTTL;
|
|
16
|
-
private tokensAddrCacheKey;
|
|
17
|
-
private tokensCacheKey;
|
|
18
|
-
private tokensCacheTTL;
|
|
19
|
-
private blacklistFetcher;
|
|
20
|
-
private blacklistCacheKey;
|
|
21
|
-
private blacklistCacheTTL;
|
|
22
|
-
constructor(dexHelper: IDexHelper, dexKey: string, network: Network, logger: Logger, config: DexalotRateFetcherConfig);
|
|
23
|
-
start(): void;
|
|
24
|
-
stop(): void;
|
|
25
|
-
private handlePairsResponse;
|
|
26
|
-
private handleRatesResponse;
|
|
27
|
-
private handleBlacklistResponse;
|
|
28
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RateFetcher = void 0;
|
|
4
|
-
const fetcher_1 = require("../../lib/fetcher/fetcher");
|
|
5
|
-
const validators_1 = require("../../lib/validators");
|
|
6
|
-
const validators_2 = require("./validators");
|
|
7
|
-
class RateFetcher {
|
|
8
|
-
constructor(dexHelper, dexKey, network, logger, config) {
|
|
9
|
-
this.dexHelper = dexHelper;
|
|
10
|
-
this.dexKey = dexKey;
|
|
11
|
-
this.network = network;
|
|
12
|
-
this.logger = logger;
|
|
13
|
-
this.pairsCacheKey = config.rateConfig.pairsCacheKey;
|
|
14
|
-
this.pairsCacheTTL = config.rateConfig.pairsCacheTTLSecs;
|
|
15
|
-
this.pricesCacheKey = config.rateConfig.pricesCacheKey;
|
|
16
|
-
this.pricesCacheTTL = config.rateConfig.pricesCacheTTLSecs;
|
|
17
|
-
this.tokensAddrCacheKey = config.rateConfig.tokensAddrCacheKey;
|
|
18
|
-
this.tokensCacheKey = config.rateConfig.tokensCacheKey;
|
|
19
|
-
this.tokensCacheTTL = config.rateConfig.tokensCacheTTLSecs;
|
|
20
|
-
this.blacklistCacheKey = config.rateConfig.blacklistCacheKey;
|
|
21
|
-
this.blacklistCacheTTL = config.rateConfig.blacklistCacheTTLSecs;
|
|
22
|
-
this.pairsFetcher = new fetcher_1.Fetcher(dexHelper.httpRequest, {
|
|
23
|
-
info: {
|
|
24
|
-
requestOptions: config.rateConfig.pairsReqParams,
|
|
25
|
-
caster: (data) => {
|
|
26
|
-
return (0, validators_1.validateAndCast)(data, validators_2.pairsResponseValidator);
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
handler: this.handlePairsResponse.bind(this),
|
|
30
|
-
}, config.rateConfig.pairsIntervalMs, logger);
|
|
31
|
-
this.rateFetcher = new fetcher_1.Fetcher(dexHelper.httpRequest, {
|
|
32
|
-
info: {
|
|
33
|
-
requestOptions: config.rateConfig.pricesReqParams,
|
|
34
|
-
caster: (data) => {
|
|
35
|
-
return (0, validators_1.validateAndCast)(data, validators_2.pricesResponseValidator);
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
handler: this.handleRatesResponse.bind(this),
|
|
39
|
-
}, config.rateConfig.pricesIntervalMs, logger);
|
|
40
|
-
this.blacklistFetcher = new fetcher_1.Fetcher(dexHelper.httpRequest, {
|
|
41
|
-
info: {
|
|
42
|
-
requestOptions: config.rateConfig.blacklistReqParams,
|
|
43
|
-
caster: (data) => {
|
|
44
|
-
return (0, validators_1.validateAndCast)(data, validators_2.blacklistResponseValidator);
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
handler: this.handleBlacklistResponse.bind(this),
|
|
48
|
-
}, config.rateConfig.blacklistIntervalMs, logger);
|
|
49
|
-
}
|
|
50
|
-
start() {
|
|
51
|
-
this.pairsFetcher.startPolling();
|
|
52
|
-
this.rateFetcher.startPolling();
|
|
53
|
-
this.blacklistFetcher.startPolling();
|
|
54
|
-
}
|
|
55
|
-
stop() {
|
|
56
|
-
this.pairsFetcher.stopPolling();
|
|
57
|
-
this.rateFetcher.stopPolling();
|
|
58
|
-
this.blacklistFetcher.stopPolling();
|
|
59
|
-
}
|
|
60
|
-
handlePairsResponse(resp) {
|
|
61
|
-
const pairs = resp;
|
|
62
|
-
const dexPairs = {};
|
|
63
|
-
const tokenMap = {};
|
|
64
|
-
const tokenAddrMap = {};
|
|
65
|
-
Object.keys(pairs).forEach(pair => {
|
|
66
|
-
dexPairs[pair.toLowerCase()] = pairs[pair];
|
|
67
|
-
tokenAddrMap[pairs[pair].base.toLowerCase()] =
|
|
68
|
-
pairs[pair].baseAddress.toLowerCase();
|
|
69
|
-
tokenAddrMap[pairs[pair].quote.toLowerCase()] =
|
|
70
|
-
pairs[pair].quoteAddress.toLowerCase();
|
|
71
|
-
tokenMap[pairs[pair].baseAddress.toLowerCase()] = {
|
|
72
|
-
address: pairs[pair].baseAddress.toLowerCase(),
|
|
73
|
-
symbol: pairs[pair].base,
|
|
74
|
-
decimals: pairs[pair].baseDecimals,
|
|
75
|
-
};
|
|
76
|
-
tokenMap[pairs[pair].quoteAddress.toLowerCase()] = {
|
|
77
|
-
address: pairs[pair].quoteAddress.toLowerCase(),
|
|
78
|
-
symbol: pairs[pair].quote,
|
|
79
|
-
decimals: pairs[pair].quoteDecimals,
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
this.dexHelper.cache.setex(this.dexKey, this.network, this.pairsCacheKey, this.pairsCacheTTL, JSON.stringify(dexPairs));
|
|
83
|
-
this.dexHelper.cache.setex(this.dexKey, this.network, this.tokensCacheKey, this.tokensCacheTTL, JSON.stringify(tokenMap));
|
|
84
|
-
this.dexHelper.cache.setex(this.dexKey, this.network, this.tokensAddrCacheKey, this.tokensCacheTTL, JSON.stringify(tokenAddrMap));
|
|
85
|
-
}
|
|
86
|
-
handleRatesResponse(resp) {
|
|
87
|
-
const { prices } = resp;
|
|
88
|
-
const dexPrices = {};
|
|
89
|
-
Object.keys(prices).forEach(pair => {
|
|
90
|
-
dexPrices[pair.toLowerCase()] = prices[pair];
|
|
91
|
-
});
|
|
92
|
-
this.dexHelper.cache.setex(this.dexKey, this.network, this.pricesCacheKey, this.pricesCacheTTL, JSON.stringify(dexPrices));
|
|
93
|
-
}
|
|
94
|
-
async handleBlacklistResponse(resp) {
|
|
95
|
-
const { blacklist } = resp;
|
|
96
|
-
this.dexHelper.cache.setex(this.dexKey, this.network, this.blacklistCacheKey, this.blacklistCacheTTL, JSON.stringify(blacklist.map((item) => item.toLowerCase())));
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
exports.RateFetcher = RateFetcher;
|
|
100
|
-
//# sourceMappingURL=rate-fetcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rate-fetcher.js","sourceRoot":"","sources":["../../../src/dex/dexalot/rate-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { RequestHeaders } from '../../dex-helper';
|
|
2
|
-
import { Token } from '../../types';
|
|
3
|
-
import { Method } from '../../dex-helper/irequest-wrapper';
|
|
4
|
-
declare type RFQOrder = {
|
|
5
|
-
nonceAndMeta: string;
|
|
6
|
-
expiry: number;
|
|
7
|
-
makerAsset: string;
|
|
8
|
-
takerAsset: string;
|
|
9
|
-
maker: string;
|
|
10
|
-
taker: string;
|
|
11
|
-
makerAmount: string;
|
|
12
|
-
takerAmount: string;
|
|
13
|
-
signature?: string;
|
|
14
|
-
};
|
|
15
|
-
export declare type RFQResponse = {
|
|
16
|
-
order: RFQOrder;
|
|
17
|
-
signature: string;
|
|
18
|
-
};
|
|
19
|
-
export declare type RFQResponseError = {
|
|
20
|
-
Reason: string;
|
|
21
|
-
ReasonCode: string;
|
|
22
|
-
Success: boolean;
|
|
23
|
-
RetryAfter?: number;
|
|
24
|
-
};
|
|
25
|
-
export declare type DexalotData = {
|
|
26
|
-
quoteData?: RFQOrder;
|
|
27
|
-
};
|
|
28
|
-
export declare type DexParams = {
|
|
29
|
-
mainnetRFQAddress: string;
|
|
30
|
-
};
|
|
31
|
-
export declare enum ClobSide {
|
|
32
|
-
BID = "BID",
|
|
33
|
-
ASK = "ASK"
|
|
34
|
-
}
|
|
35
|
-
export declare class DexalotRfqError extends Error {
|
|
36
|
-
}
|
|
37
|
-
export declare type PairData = {
|
|
38
|
-
base: string;
|
|
39
|
-
quote: string;
|
|
40
|
-
liquidityUSD: number;
|
|
41
|
-
isSrcBase?: boolean;
|
|
42
|
-
};
|
|
43
|
-
export declare type PairDataMap = {
|
|
44
|
-
[pair: string]: PairData;
|
|
45
|
-
};
|
|
46
|
-
export declare type PairDataResp = {
|
|
47
|
-
base: string;
|
|
48
|
-
quote: string;
|
|
49
|
-
liquidityUSD: number;
|
|
50
|
-
baseAddress: string;
|
|
51
|
-
quoteAddress: string;
|
|
52
|
-
baseDecimals: number;
|
|
53
|
-
quoteDecimals: number;
|
|
54
|
-
};
|
|
55
|
-
export declare type DexalotPairsResponse = {
|
|
56
|
-
[pair: string]: PairDataResp;
|
|
57
|
-
};
|
|
58
|
-
declare type PriceData = {
|
|
59
|
-
bids: string[][];
|
|
60
|
-
asks: string[][];
|
|
61
|
-
};
|
|
62
|
-
export declare type PriceDataMap = {
|
|
63
|
-
[pair: string]: PriceData;
|
|
64
|
-
};
|
|
65
|
-
export declare type DexalotPricesResponse = {
|
|
66
|
-
prices: PriceDataMap;
|
|
67
|
-
};
|
|
68
|
-
export declare type TokenAddrDataMap = {
|
|
69
|
-
[symbol: string]: string;
|
|
70
|
-
};
|
|
71
|
-
export declare type TokenDataMap = {
|
|
72
|
-
[address: string]: Token;
|
|
73
|
-
};
|
|
74
|
-
export declare type DexalotBlacklistResponse = {
|
|
75
|
-
blacklist: string[];
|
|
76
|
-
};
|
|
77
|
-
export declare type DexalotRateFetcherConfig = {
|
|
78
|
-
rateConfig: {
|
|
79
|
-
pairsReqParams: {
|
|
80
|
-
url: string;
|
|
81
|
-
headers?: RequestHeaders;
|
|
82
|
-
params?: any;
|
|
83
|
-
};
|
|
84
|
-
pricesReqParams: {
|
|
85
|
-
url: string;
|
|
86
|
-
headers?: RequestHeaders;
|
|
87
|
-
params?: any;
|
|
88
|
-
};
|
|
89
|
-
blacklistReqParams: {
|
|
90
|
-
url: string;
|
|
91
|
-
headers?: RequestHeaders;
|
|
92
|
-
params?: any;
|
|
93
|
-
};
|
|
94
|
-
pairsIntervalMs: number;
|
|
95
|
-
pricesIntervalMs: number;
|
|
96
|
-
blacklistIntervalMs: number;
|
|
97
|
-
pairsCacheKey: string;
|
|
98
|
-
pricesCacheKey: string;
|
|
99
|
-
tokensAddrCacheKey: string;
|
|
100
|
-
tokensCacheKey: string;
|
|
101
|
-
blacklistCacheKey: string;
|
|
102
|
-
blacklistCacheTTLSecs: number;
|
|
103
|
-
pairsCacheTTLSecs: number;
|
|
104
|
-
pricesCacheTTLSecs: number;
|
|
105
|
-
tokensCacheTTLSecs: number;
|
|
106
|
-
};
|
|
107
|
-
};
|
|
108
|
-
export declare type DexalotAPIParameters = {
|
|
109
|
-
url: string;
|
|
110
|
-
headers?: RequestHeaders;
|
|
111
|
-
params?: any;
|
|
112
|
-
method?: Method;
|
|
113
|
-
};
|
|
114
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DexalotRfqError = exports.ClobSide = void 0;
|
|
4
|
-
var ClobSide;
|
|
5
|
-
(function (ClobSide) {
|
|
6
|
-
ClobSide["BID"] = "BID";
|
|
7
|
-
ClobSide["ASK"] = "ASK";
|
|
8
|
-
})(ClobSide = exports.ClobSide || (exports.ClobSide = {}));
|
|
9
|
-
class DexalotRfqError extends Error {
|
|
10
|
-
}
|
|
11
|
-
exports.DexalotRfqError = DexalotRfqError;
|
|
12
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/dexalot/types.ts"],"names":[],"mappings":";;;AAoCA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,uBAAW,CAAA;AACb,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAED,MAAa,eAAgB,SAAQ,KAAK;CAAG;AAA7C,0CAA6C"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import joi from 'joi';
|
|
2
|
-
export declare const pairsResponseValidator: joi.ObjectSchema<any>;
|
|
3
|
-
export declare const pricesResponseValidator: joi.ObjectSchema<any>;
|
|
4
|
-
export declare const tokensResponseValidator: joi.ObjectSchema<any>;
|
|
5
|
-
export declare const blacklistResponseValidator: joi.ObjectSchema<any>;
|
|
@@ -1,45 +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
|
-
exports.blacklistResponseValidator = exports.tokensResponseValidator = exports.pricesResponseValidator = exports.pairsResponseValidator = void 0;
|
|
7
|
-
const joi_1 = __importDefault(require("joi"));
|
|
8
|
-
const pairValidator = joi_1.default.object({
|
|
9
|
-
base: joi_1.default.string().min(1).required(),
|
|
10
|
-
quote: joi_1.default.string().min(1).required(),
|
|
11
|
-
liquidityUSD: joi_1.default.number().min(0).required(),
|
|
12
|
-
baseAddress: joi_1.default.string().min(1).required(),
|
|
13
|
-
quoteAddress: joi_1.default.string().min(1).required(),
|
|
14
|
-
baseDecimals: joi_1.default.number().min(0).required(),
|
|
15
|
-
quoteDecimals: joi_1.default.number().min(0).required(),
|
|
16
|
-
});
|
|
17
|
-
exports.pairsResponseValidator = joi_1.default
|
|
18
|
-
.object()
|
|
19
|
-
.pattern(joi_1.default.string(), pairValidator);
|
|
20
|
-
const orderbookRecordValidator = joi_1.default
|
|
21
|
-
.array()
|
|
22
|
-
.items(joi_1.default.string().min(1))
|
|
23
|
-
.length(2);
|
|
24
|
-
const orderbookValidator = joi_1.default.object({
|
|
25
|
-
bids: joi_1.default.array().items(orderbookRecordValidator).required(),
|
|
26
|
-
asks: joi_1.default.array().items(orderbookRecordValidator).required(),
|
|
27
|
-
});
|
|
28
|
-
exports.pricesResponseValidator = joi_1.default.object({
|
|
29
|
-
prices: joi_1.default.object().pattern(joi_1.default.string(), orderbookValidator),
|
|
30
|
-
});
|
|
31
|
-
const tokenValidator = joi_1.default.object({
|
|
32
|
-
symbol: joi_1.default.string().min(1).required(),
|
|
33
|
-
name: joi_1.default.string().min(1).required(),
|
|
34
|
-
description: joi_1.default.string().min(1).required(),
|
|
35
|
-
address: joi_1.default.string().min(1).required(),
|
|
36
|
-
decimals: joi_1.default.number().min(0).required(),
|
|
37
|
-
type: joi_1.default.string().min(1).required(),
|
|
38
|
-
});
|
|
39
|
-
exports.tokensResponseValidator = joi_1.default.object({
|
|
40
|
-
tokens: joi_1.default.object().pattern(joi_1.default.string(), tokenValidator),
|
|
41
|
-
});
|
|
42
|
-
exports.blacklistResponseValidator = joi_1.default.object({
|
|
43
|
-
blacklist: joi_1.default.array().items(joi_1.default.string().min(1)).required(),
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=validators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/dex/dexalot/validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Address } from '../../types';
|
|
2
|
-
export declare type DexParams = {
|
|
3
|
-
router: Address;
|
|
4
|
-
quoter: Address;
|
|
5
|
-
factory: Address;
|
|
6
|
-
stateMulticall: Address;
|
|
7
|
-
uniswapMulticall: Address;
|
|
8
|
-
supportedFees: bigint[];
|
|
9
|
-
feeProtocols: bigint[];
|
|
10
|
-
chunksCount: number;
|
|
11
|
-
deployer?: Address;
|
|
12
|
-
subgraphURL: string;
|
|
13
|
-
initHash: string;
|
|
14
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-v3/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,19 +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
|
-
exports.CamelotV3 = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const config_1 = require("./config");
|
|
9
|
-
const quickswap_v3_1 = require("./quickswap-v3");
|
|
10
|
-
const config = lodash_1.default.pick(config_1.QuickSwapConfig, ['CamelotV3']).CamelotV3;
|
|
11
|
-
class CamelotV3 extends quickswap_v3_1.QuickSwapV3 {
|
|
12
|
-
// public static dexKeysWithNetwork
|
|
13
|
-
constructor(dexHelper) {
|
|
14
|
-
super(dexHelper, 'camelotv3', config[dexHelper.config.data.network].router);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.CamelotV3 = CamelotV3;
|
|
18
|
-
CamelotV3.dexKeys = ['camelotv3'];
|
|
19
|
-
//# sourceMappingURL=camelot-v3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"camelot-v3.js","sourceRoot":"","sources":["../../../src/dex/quickswap/camelot-v3.ts"],"names":[],"mappings":";;;;;;AACA,oDAAuB;AACvB,qCAA2C;AAC3C,iDAA6C;AAE7C,MAAM,MAAM,GAAG,gBAAC,CAAC,IAAI,CAAC,wBAAe,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAEhE,MAAa,SAAU,SAAQ,0BAAW;IAGxC,mCAAmC;IACnC,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;;AANH,8BAOC;AANQ,iBAAO,GAAG,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -1,19 +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
|
-
exports.ZyberSwapV3 = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const config_1 = require("./config");
|
|
9
|
-
const quickswap_v3_1 = require("./quickswap-v3");
|
|
10
|
-
const config = lodash_1.default.pick(config_1.QuickSwapConfig, ['ZyberSwapV3']).ZyberSwapV3;
|
|
11
|
-
class ZyberSwapV3 extends quickswap_v3_1.QuickSwapV3 {
|
|
12
|
-
// public static dexKeysWithNetwork
|
|
13
|
-
constructor(dexHelper) {
|
|
14
|
-
super(dexHelper, 'zyberswapv3', config[dexHelper.config.data.network].router);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.ZyberSwapV3 = ZyberSwapV3;
|
|
18
|
-
ZyberSwapV3.dexKeys = ['zyberswapv3'];
|
|
19
|
-
//# sourceMappingURL=zyberswap-v3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zyberswap-v3.js","sourceRoot":"","sources":["../../../src/dex/quickswap/zyberswap-v3.ts"],"names":[],"mappings":";;;;;;AACA,oDAAuB;AACvB,qCAA2C;AAC3C,iDAA6C;AAE7C,MAAM,MAAM,GAAG,gBAAC,CAAC,IAAI,CAAC,wBAAe,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;AAEpE,MAAa,WAAY,SAAQ,0BAAW;IAG1C,mCAAmC;IACnC,YAAY,SAAqB;QAC/B,KAAK,CACH,SAAS,EACT,aAAa,EACb,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAC7C,CAAC;IACJ,CAAC;;AAVH,kCAWC;AAVQ,mBAAO,GAAG,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { SwapSide } from '../constants';
|
|
2
|
-
import { Address } from '../types';
|
|
3
|
-
import { IDexTxBuilder } from './idex';
|
|
4
|
-
import { UniswapV3, UniswapV3Param } from './uniswap-v3';
|
|
5
|
-
import { IDexHelper } from '../dex-helper';
|
|
6
|
-
export declare type QuickSwapV3Data = {
|
|
7
|
-
deadline?: number;
|
|
8
|
-
path: {
|
|
9
|
-
tokenIn: Address;
|
|
10
|
-
tokenOut: Address;
|
|
11
|
-
}[];
|
|
12
|
-
};
|
|
13
|
-
export declare class QuickSwapV3 extends UniswapV3 implements IDexTxBuilder<QuickSwapV3Data, UniswapV3Param> {
|
|
14
|
-
static dexKeys: string[];
|
|
15
|
-
constructor(dexHelper: IDexHelper);
|
|
16
|
-
protected encodePath(path: {
|
|
17
|
-
tokenIn: Address;
|
|
18
|
-
tokenOut: Address;
|
|
19
|
-
fee: number;
|
|
20
|
-
}[], side: SwapSide): string;
|
|
21
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QuickSwapV3 = void 0;
|
|
4
|
-
const constants_1 = require("../constants");
|
|
5
|
-
const uniswap_v3_1 = require("./uniswap-v3");
|
|
6
|
-
const solidity_1 = require("@ethersproject/solidity");
|
|
7
|
-
const QUICKSWAP_V3_ROUTER_ADDRESSES = {
|
|
8
|
-
[constants_1.Network.POLYGON]: '0xf5b509bb0909a69b1c207e495f687a596c168e12',
|
|
9
|
-
};
|
|
10
|
-
class QuickSwapV3 extends uniswap_v3_1.UniswapV3 {
|
|
11
|
-
constructor(dexHelper) {
|
|
12
|
-
super(dexHelper, 'quickswapv3', QUICKSWAP_V3_ROUTER_ADDRESSES[dexHelper.config.data.network]);
|
|
13
|
-
}
|
|
14
|
-
// override parent as QuickSwapV3 handles fees dynamically.
|
|
15
|
-
encodePath(path, side) {
|
|
16
|
-
if (path.length === 0) {
|
|
17
|
-
return '0x';
|
|
18
|
-
}
|
|
19
|
-
const { _path, types } = path.reduce(({ _path, types }, curr, index) => {
|
|
20
|
-
if (index === 0) {
|
|
21
|
-
return {
|
|
22
|
-
types: ['address', 'address'],
|
|
23
|
-
_path: [curr.tokenIn, curr.tokenOut],
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
return {
|
|
28
|
-
types: [...types, 'address'],
|
|
29
|
-
_path: [..._path, curr.tokenOut],
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}, { _path: [], types: [] });
|
|
33
|
-
return side === constants_1.SwapSide.BUY
|
|
34
|
-
? (0, solidity_1.pack)(types.reverse(), _path.reverse())
|
|
35
|
-
: (0, solidity_1.pack)(types, _path);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.QuickSwapV3 = QuickSwapV3;
|
|
39
|
-
QuickSwapV3.dexKeys = ['quickswapv3'];
|
|
40
|
-
//# sourceMappingURL=quickswap-v3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quickswap-v3.js","sourceRoot":"","sources":["../../src/dex/quickswap-v3.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAIjD,6CAAyD;AACzD,sDAA+C;AAG/C,MAAM,6BAA6B,GAAmC;IACpE,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,4CAA4C;CAChE,CAAC;AAWF,MAAa,WACX,SAAQ,sBAAS;IAKjB,YAAY,SAAqB;QAC/B,KAAK,CACH,SAAS,EACT,aAAa,EACb,6BAA6B,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,2DAA2D;IACjD,UAAU,CAClB,IAIG,EACH,IAAc;QAEd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAClC,CACE,EAAE,KAAK,EAAE,KAAK,EAAwC,EACtD,IAAI,EACJ,KAAK,EACiC,EAAE;YACxC,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO;oBACL,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;oBAC7B,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;iBACrC,CAAC;aACH;iBAAM;gBACL,OAAO;oBACL,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;oBAC5B,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;iBACjC,CAAC;aACH;QACH,CAAC,EACD,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzB,CAAC;QAEF,OAAO,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAC1B,CAAC,CAAC,IAAA,eAAI,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,CAAC,CAAC,IAAA,eAAI,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;;AAnDH,kCAoDC;AAhDQ,mBAAO,GAAG,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Adapters = exports.RamsesV2Config = void 0;
|
|
4
|
-
const constants_1 = require("../../constants");
|
|
5
|
-
const RAMSES_SUPPORTED_FEES = [10000n, 2500n, 500n, 100n];
|
|
6
|
-
exports.RamsesV2Config = {
|
|
7
|
-
RamsesV2: {
|
|
8
|
-
[constants_1.Network.ARBITRUM]: {
|
|
9
|
-
factory: '0xAA2cd7477c451E703f3B9Ba5663334914763edF8',
|
|
10
|
-
deployer: '0xb3e423ab9cE6C03D98326A3A2a0D7D96b0829f22',
|
|
11
|
-
quoter: '0xAA20EFF7ad2F523590dE6c04918DaAE0904E3b20',
|
|
12
|
-
router: '0xAA23611badAFB62D37E7295A682D21960ac85A90',
|
|
13
|
-
supportedFees: RAMSES_SUPPORTED_FEES,
|
|
14
|
-
stateMulticall: '0x50EE4112Cab9c79812F23bE079aB3911395ACc8e',
|
|
15
|
-
uniswapMulticall: '0x1F98415757620B543A52E61c46B32eB19261F984',
|
|
16
|
-
chunksCount: 10,
|
|
17
|
-
initHash: '0x1565b129f2d1790f12d45301b9b084335626f0c92410bc43130763b69971135d',
|
|
18
|
-
subgraphURL: 'https://api.thegraph.com/subgraphs/name/ramsesexchange/concentrated-liquidity-graph',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
exports.Adapters = {
|
|
23
|
-
[constants_1.Network.ARBITRUM]: {
|
|
24
|
-
[constants_1.SwapSide.SELL]: [{ name: 'ArbitrumAdapter01', index: 3 }],
|
|
25
|
-
[constants_1.SwapSide.BUY]: [{ name: 'ArbitrumBuyAdapter', index: 2 }],
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/ramses-v2/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEpD,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7C,QAAA,cAAc,GAA4B;IACrD,QAAQ,EAAE;QACR,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;YAClB,OAAO,EAAE,4CAA4C;YACrD,QAAQ,EAAE,4CAA4C;YACtD,MAAM,EAAE,4CAA4C;YACpD,MAAM,EAAE,4CAA4C;YACpD,aAAa,EAAE,qBAAqB;YACpC,cAAc,EAAE,4CAA4C;YAC5D,gBAAgB,EAAE,4CAA4C;YAC9D,WAAW,EAAE,EAAE;YACf,QAAQ,EACN,oEAAoE;YACtE,WAAW,EACT,qFAAqF;SACxF;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAAoC;IACvD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;QAClB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1D,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAC3D;CACF,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export declare const UNISWAPV3_TICK_GAS_COST = 24000;
|
|
2
|
-
export declare const UNISWAPV3_TICK_BASE_OVERHEAD = 75000;
|
|
3
|
-
export declare const UNISWAPV3_POOL_SEARCH_OVERHEAD = 10000;
|
|
4
|
-
export declare const TICK_BITMAP_TO_USE = 4n;
|
|
5
|
-
export declare const TICK_BITMAP_BUFFER = 8n;
|
|
6
|
-
export declare const MAX_PRICING_COMPUTATION_STEPS_ALLOWED = 128;
|
|
7
|
-
export declare const UNISWAPV3_SUBGRAPH_URL = "https://api.thegraph.com/subgraphs/name/ramsesexchange/concentrated-liquidity-graph";
|
|
8
|
-
export declare const UNISWAPV3_EFFICIENCY_FACTOR = 3;
|
|
9
|
-
export declare const ZERO_TICK_INFO: {
|
|
10
|
-
liquidityGross: bigint;
|
|
11
|
-
liquidityNet: bigint;
|
|
12
|
-
tickCumulativeOutside: bigint;
|
|
13
|
-
secondsPerLiquidityOutsideX128: bigint;
|
|
14
|
-
secondsOutside: bigint;
|
|
15
|
-
initialized: boolean;
|
|
16
|
-
};
|
|
17
|
-
export declare const ZERO_ORACLE_OBSERVATION: {
|
|
18
|
-
blockTimestamp: bigint;
|
|
19
|
-
tickCumulative: bigint;
|
|
20
|
-
secondsPerLiquidityCumulativeX128: bigint;
|
|
21
|
-
initialized: boolean;
|
|
22
|
-
};
|
|
23
|
-
export declare const OUT_OF_RANGE_ERROR_POSTFIX = "INVALID_TICK_BIT_MAP_RANGES";
|
|
24
|
-
export declare const DEFAULT_POOL_INIT_CODE_HASH = "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54";
|
|
25
|
-
export declare enum DirectMethods {
|
|
26
|
-
directSell = "directUniV3Swap",
|
|
27
|
-
directBuy = "directUniV3Buy"
|
|
28
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DirectMethods = exports.DEFAULT_POOL_INIT_CODE_HASH = exports.OUT_OF_RANGE_ERROR_POSTFIX = exports.ZERO_ORACLE_OBSERVATION = exports.ZERO_TICK_INFO = exports.UNISWAPV3_EFFICIENCY_FACTOR = exports.UNISWAPV3_SUBGRAPH_URL = exports.MAX_PRICING_COMPUTATION_STEPS_ALLOWED = exports.TICK_BITMAP_BUFFER = exports.TICK_BITMAP_TO_USE = exports.UNISWAPV3_POOL_SEARCH_OVERHEAD = exports.UNISWAPV3_TICK_BASE_OVERHEAD = exports.UNISWAPV3_TICK_GAS_COST = void 0;
|
|
4
|
-
exports.UNISWAPV3_TICK_GAS_COST = 24000; // Ceiled
|
|
5
|
-
exports.UNISWAPV3_TICK_BASE_OVERHEAD = 75000;
|
|
6
|
-
exports.UNISWAPV3_POOL_SEARCH_OVERHEAD = 10000;
|
|
7
|
-
// This is used for price calculation. If out of scope, return 0n
|
|
8
|
-
exports.TICK_BITMAP_TO_USE = 4n;
|
|
9
|
-
// This is used to check if the state is still valid.
|
|
10
|
-
exports.TICK_BITMAP_BUFFER = 8n;
|
|
11
|
-
exports.MAX_PRICING_COMPUTATION_STEPS_ALLOWED = 128;
|
|
12
|
-
exports.UNISWAPV3_SUBGRAPH_URL = 'https://api.thegraph.com/subgraphs/name/ramsesexchange/concentrated-liquidity-graph';
|
|
13
|
-
exports.UNISWAPV3_EFFICIENCY_FACTOR = 3;
|
|
14
|
-
exports.ZERO_TICK_INFO = {
|
|
15
|
-
liquidityGross: 0n,
|
|
16
|
-
liquidityNet: 0n,
|
|
17
|
-
tickCumulativeOutside: 0n,
|
|
18
|
-
secondsPerLiquidityOutsideX128: 0n,
|
|
19
|
-
secondsOutside: 0n,
|
|
20
|
-
initialized: false,
|
|
21
|
-
};
|
|
22
|
-
exports.ZERO_ORACLE_OBSERVATION = {
|
|
23
|
-
blockTimestamp: 0n,
|
|
24
|
-
tickCumulative: 0n,
|
|
25
|
-
secondsPerLiquidityCumulativeX128: 0n,
|
|
26
|
-
initialized: false,
|
|
27
|
-
};
|
|
28
|
-
exports.OUT_OF_RANGE_ERROR_POSTFIX = `INVALID_TICK_BIT_MAP_RANGES`;
|
|
29
|
-
exports.DEFAULT_POOL_INIT_CODE_HASH = `0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`;
|
|
30
|
-
var DirectMethods;
|
|
31
|
-
(function (DirectMethods) {
|
|
32
|
-
DirectMethods["directSell"] = "directUniV3Swap";
|
|
33
|
-
DirectMethods["directBuy"] = "directUniV3Buy";
|
|
34
|
-
})(DirectMethods = exports.DirectMethods || (exports.DirectMethods = {}));
|
|
35
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/ramses-v2/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,KAAM,CAAC,CAAC,SAAS;AAC3C,QAAA,4BAA4B,GAAG,KAAM,CAAC;AACtC,QAAA,8BAA8B,GAAG,KAAM,CAAC;AAErD,iEAAiE;AACpD,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC,qDAAqD;AACxC,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAExB,QAAA,qCAAqC,GAAG,GAAG,CAAC;AAE5C,QAAA,sBAAsB,GACjC,qFAAqF,CAAC;AAE3E,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAEhC,QAAA,cAAc,GAAG;IAC5B,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,qBAAqB,EAAE,EAAE;IACzB,8BAA8B,EAAE,EAAE;IAClC,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,KAAK;CACnB,CAAC;AAEW,QAAA,uBAAuB,GAAG;IACrC,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,iCAAiC,EAAE,EAAE;IACrC,WAAW,EAAE,KAAK;CACnB,CAAC;AAEW,QAAA,0BAA0B,GAAG,6BAA6B,CAAC;AAE3D,QAAA,2BAA2B,GAAG,oEAAoE,CAAC;AAEhH,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,+CAA8B,CAAA;IAC9B,6CAA4B,CAAA;AAC9B,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB"}
|