@paraswap/dex-lib 4.8.5 → 4.8.6-clear.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/abi/clear/ClearVault.json +13 -0
- package/build/dex/clear/clear-factory.d.ts +9 -16
- package/build/dex/clear/clear-factory.js +56 -83
- package/build/dex/clear/clear-factory.js.map +1 -1
- package/build/dex/clear/clear.d.ts +11 -14
- package/build/dex/clear/clear.js +117 -166
- package/build/dex/clear/clear.js.map +1 -1
- package/build/dex/clear/config.js +1 -4
- package/build/dex/clear/config.js.map +1 -1
- package/build/dex/clear/types.d.ts +2 -14
- package/build/dex/index.js +2 -0
- package/build/dex/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -24,5 +24,18 @@
|
|
|
24
24
|
],
|
|
25
25
|
"stateMutability": "view",
|
|
26
26
|
"type": "function"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"inputs": [],
|
|
30
|
+
"name": "totalAssets",
|
|
31
|
+
"outputs": [
|
|
32
|
+
{
|
|
33
|
+
"internalType": "uint256",
|
|
34
|
+
"name": "totalManagedAssets",
|
|
35
|
+
"type": "uint256"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"stateMutability": "view",
|
|
39
|
+
"type": "function"
|
|
27
40
|
}
|
|
28
41
|
]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Contract } from 'ethers';
|
|
1
2
|
import { Interface } from '@ethersproject/abi';
|
|
2
3
|
import { DeepReadonly } from 'ts-essentials';
|
|
3
4
|
import { Log, Logger } from '../../types';
|
|
@@ -5,13 +6,11 @@ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
|
|
|
5
6
|
import { IDexHelper } from '../../dex-helper';
|
|
6
7
|
import { Address } from '../../types';
|
|
7
8
|
import { ClearVault, DexParams } from './types';
|
|
8
|
-
type OnVaultCreatedCallback = (vaults: DeepReadonly<ClearVault[]>) => void;
|
|
9
9
|
export declare class ClearFactory extends StatefulEventSubscriber<ClearVault[]> {
|
|
10
10
|
readonly parentName: string;
|
|
11
11
|
readonly config: DexParams;
|
|
12
12
|
protected network: number;
|
|
13
13
|
protected dexHelper: IDexHelper;
|
|
14
|
-
protected readonly onVaultCreated: OnVaultCreatedCallback;
|
|
15
14
|
handlers: {
|
|
16
15
|
[event: string]: (event: any, state: DeepReadonly<ClearVault[]>, log: Readonly<Log>) => Promise<DeepReadonly<ClearVault[]> | null>;
|
|
17
16
|
};
|
|
@@ -19,22 +18,16 @@ export declare class ClearFactory extends StatefulEventSubscriber<ClearVault[]>
|
|
|
19
18
|
addressesSubscribed: Address[];
|
|
20
19
|
protected factoryIface: Interface;
|
|
21
20
|
protected vaultIface: Interface;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*/
|
|
26
|
-
handleNewClearVault(): Promise<DeepReadonly<ClearVault[]> | null>;
|
|
27
|
-
/**
|
|
28
|
-
* Process incoming logs and dispatch to appropriate handlers
|
|
29
|
-
*/
|
|
21
|
+
protected factoryContract: Contract;
|
|
22
|
+
constructor(parentName: string, config: DexParams, network: number, dexHelper: IDexHelper, logger: Logger);
|
|
23
|
+
handleNewClearVault(event: any, state: DeepReadonly<ClearVault[]>, log: Readonly<Log>): Promise<DeepReadonly<ClearVault[]> | null>;
|
|
30
24
|
processLog(state: DeepReadonly<ClearVault[]>, log: Readonly<Log>): Promise<DeepReadonly<ClearVault[]> | null>;
|
|
31
|
-
getStateOrGenerate(blockNumber: number
|
|
25
|
+
getStateOrGenerate(blockNumber: number): Promise<DeepReadonly<ClearVault[]>>;
|
|
32
26
|
/**
|
|
33
|
-
* Generate state
|
|
34
|
-
* 1.
|
|
35
|
-
* 2.
|
|
36
|
-
* 3.
|
|
27
|
+
* Generate state:
|
|
28
|
+
* 1. vaultsLength() -> total count
|
|
29
|
+
* 2. getBatchVaultAddresses() -> all addresses
|
|
30
|
+
* 3. tokens() on each vault -> supported tokens
|
|
37
31
|
*/
|
|
38
32
|
generateState(blockNumber: number): Promise<DeepReadonly<ClearVault[]>>;
|
|
39
33
|
}
|
|
40
|
-
export {};
|
|
@@ -4,57 +4,61 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ClearFactory = void 0;
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
7
8
|
const abi_1 = require("@ethersproject/abi");
|
|
8
9
|
const utils_1 = require("../../utils");
|
|
9
10
|
const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
|
|
10
11
|
const ClearFactory_json_1 = __importDefault(require("../../abi/clear/ClearFactory.json"));
|
|
11
12
|
const ClearVault_json_1 = __importDefault(require("../../abi/clear/ClearVault.json"));
|
|
13
|
+
const decoders_1 = require("../../lib/decoders");
|
|
12
14
|
class ClearFactory extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
13
15
|
parentName;
|
|
14
16
|
config;
|
|
15
17
|
network;
|
|
16
18
|
dexHelper;
|
|
17
|
-
onVaultCreated;
|
|
18
19
|
handlers = {};
|
|
19
20
|
logDecoder;
|
|
20
21
|
addressesSubscribed;
|
|
21
22
|
factoryIface = new abi_1.Interface(ClearFactory_json_1.default);
|
|
22
23
|
vaultIface = new abi_1.Interface(ClearVault_json_1.default);
|
|
23
|
-
|
|
24
|
+
factoryContract;
|
|
25
|
+
constructor(parentName, config, network, dexHelper, logger) {
|
|
24
26
|
super(parentName, 'factory', dexHelper, logger);
|
|
25
27
|
this.parentName = parentName;
|
|
26
28
|
this.config = config;
|
|
27
29
|
this.network = network;
|
|
28
30
|
this.dexHelper = dexHelper;
|
|
29
|
-
this.onVaultCreated = onVaultCreated;
|
|
30
31
|
this.logDecoder = (log) => this.factoryIface.parseLog(log);
|
|
31
32
|
this.addressesSubscribed = [config.factoryAddress];
|
|
32
|
-
|
|
33
|
+
this.factoryContract = new ethers_1.Contract(config.factoryAddress, ClearFactory_json_1.default, dexHelper.provider);
|
|
33
34
|
this.handlers['NewClearVault'] = this.handleNewClearVault.bind(this);
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
async handleNewClearVault(event, state, log) {
|
|
37
|
+
const vaultAddress = event.args.vault.toLowerCase();
|
|
38
|
+
const [tokenResult] = await this.dexHelper.multiWrapper.tryAggregate(false, [
|
|
39
|
+
{
|
|
40
|
+
target: vaultAddress,
|
|
41
|
+
callData: this.vaultIface.encodeFunctionData('tokens'),
|
|
42
|
+
decodeFunction: decoders_1.addressArrayDecode,
|
|
43
|
+
},
|
|
44
|
+
], log.blockNumber);
|
|
45
|
+
if (!tokenResult.success || !tokenResult.returnData) {
|
|
46
|
+
this.logger.error(`${this.parentName}: Failed to fetch tokens for new vault ${vaultAddress}`);
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const newVault = {
|
|
50
|
+
address: vaultAddress,
|
|
51
|
+
tokens: tokenResult.returnData.map(addr => ({
|
|
52
|
+
address: addr.toLowerCase(),
|
|
53
|
+
})),
|
|
54
|
+
};
|
|
55
|
+
return [...state, newVault];
|
|
43
56
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Process incoming logs and dispatch to appropriate handlers
|
|
46
|
-
*/
|
|
47
57
|
async processLog(state, log) {
|
|
48
58
|
try {
|
|
49
|
-
|
|
50
|
-
try {
|
|
51
|
-
event = this.logDecoder(log);
|
|
52
|
-
}
|
|
53
|
-
catch (e) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
59
|
+
const event = this.logDecoder(log);
|
|
56
60
|
if (event.name in this.handlers) {
|
|
57
|
-
return
|
|
61
|
+
return this.handlers[event.name](event, state, log);
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
catch (e) {
|
|
@@ -62,88 +66,57 @@ class ClearFactory extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
|
62
66
|
}
|
|
63
67
|
return null;
|
|
64
68
|
}
|
|
65
|
-
async getStateOrGenerate(blockNumber
|
|
69
|
+
async getStateOrGenerate(blockNumber) {
|
|
66
70
|
let state = this.getState(blockNumber);
|
|
67
71
|
if (!state) {
|
|
68
72
|
state = await this.generateState(blockNumber);
|
|
69
|
-
|
|
70
|
-
this.setState(state, blockNumber);
|
|
73
|
+
this.setState(state, blockNumber);
|
|
71
74
|
}
|
|
72
75
|
return state;
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
75
|
-
* Generate state
|
|
76
|
-
* 1.
|
|
77
|
-
* 2.
|
|
78
|
-
* 3.
|
|
78
|
+
* Generate state:
|
|
79
|
+
* 1. vaultsLength() -> total count
|
|
80
|
+
* 2. getBatchVaultAddresses() -> all addresses
|
|
81
|
+
* 3. tokens() on each vault -> supported tokens
|
|
79
82
|
*/
|
|
80
83
|
async generateState(blockNumber) {
|
|
81
84
|
// Step 1: Get total number of vaults
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return BigInt(decoded[0].toString());
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
const [lengthResult] = await this.dexHelper.multiWrapper.tryAggregate(false, [lengthCall], blockNumber);
|
|
91
|
-
if (!lengthResult.success) {
|
|
92
|
-
this.logger.error(`${this.parentName}: Failed to fetch vaultsLength`);
|
|
93
|
-
return [];
|
|
94
|
-
}
|
|
95
|
-
const vaultsLength = Number(lengthResult.returnData);
|
|
96
|
-
if (vaultsLength === 0) {
|
|
97
|
-
this.logger.info(`${this.parentName}: No vaults found`);
|
|
85
|
+
const vaultsLengthBN = await this.factoryContract.vaultsLength({
|
|
86
|
+
blockTag: blockNumber,
|
|
87
|
+
});
|
|
88
|
+
const vaultsLength = vaultsLengthBN.toNumber();
|
|
89
|
+
if (vaultsLength === 0)
|
|
98
90
|
return [];
|
|
99
|
-
}
|
|
100
91
|
// Step 2: Get all vault addresses
|
|
101
|
-
const
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
]),
|
|
107
|
-
decodeFunction: (result) => {
|
|
108
|
-
const decoded = this.factoryIface.decodeFunctionResult('getBatchVaultAddresses', result);
|
|
109
|
-
return decoded[0];
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
const [batchResult] = await this.dexHelper.multiWrapper.tryAggregate(false, [batchCall], blockNumber);
|
|
113
|
-
if (!batchResult.success || !batchResult.returnData) {
|
|
114
|
-
this.logger.error(`${this.parentName}: Failed to fetch vault addresses`);
|
|
115
|
-
return [];
|
|
116
|
-
}
|
|
117
|
-
const vaultAddresses = batchResult.returnData.map(addr => addr.toLowerCase());
|
|
92
|
+
const vaultIndexes = [...Array(vaultsLength).keys()];
|
|
93
|
+
const vaultAddressesRaw = await this.factoryContract.getBatchVaultAddresses(vaultIndexes, {
|
|
94
|
+
blockTag: blockNumber,
|
|
95
|
+
});
|
|
96
|
+
const vaultAddresses = vaultAddressesRaw.map(a => a.toLowerCase());
|
|
118
97
|
// Step 3: Fetch tokens for each vault
|
|
119
98
|
const tokenCalls = vaultAddresses.map(vault => ({
|
|
120
99
|
target: vault,
|
|
121
100
|
callData: this.vaultIface.encodeFunctionData('tokens'),
|
|
122
|
-
decodeFunction:
|
|
123
|
-
const decoded = this.vaultIface.decodeFunctionResult('tokens', result);
|
|
124
|
-
return decoded[0];
|
|
125
|
-
},
|
|
101
|
+
decodeFunction: decoders_1.addressArrayDecode,
|
|
126
102
|
}));
|
|
127
|
-
const tokenResults = await this.dexHelper.multiWrapper.tryAggregate(false, tokenCalls, blockNumber
|
|
128
|
-
|
|
129
|
-
|
|
103
|
+
const tokenResults = await this.dexHelper.multiWrapper.tryAggregate(false, tokenCalls, blockNumber);
|
|
104
|
+
// Collect all valid vault data first
|
|
105
|
+
const vaults = vaultAddresses
|
|
106
|
+
.map((address, i) => {
|
|
130
107
|
const result = tokenResults[i];
|
|
131
108
|
if (!result.success || !result.returnData) {
|
|
132
|
-
this.logger.warn(`${this.parentName}: Failed to fetch tokens for vault ${
|
|
133
|
-
|
|
109
|
+
this.logger.warn(`${this.parentName}: Failed to fetch tokens for vault ${address}`);
|
|
110
|
+
return null;
|
|
134
111
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
address: vaultAddresses[i],
|
|
139
|
-
tokens: tokenAddresses.map(addr => ({
|
|
140
|
-
id: addr.toLowerCase(),
|
|
112
|
+
return {
|
|
113
|
+
address,
|
|
114
|
+
tokens: result.returnData.map(addr => ({
|
|
141
115
|
address: addr.toLowerCase(),
|
|
142
|
-
symbol: '',
|
|
143
|
-
decimals: '18',
|
|
144
116
|
})),
|
|
145
|
-
}
|
|
146
|
-
}
|
|
117
|
+
};
|
|
118
|
+
})
|
|
119
|
+
.filter(Boolean);
|
|
147
120
|
this.logger.info(`${this.parentName}: Generated state with ${vaults.length} vaults`);
|
|
148
121
|
return vaults;
|
|
149
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-factory.js","sourceRoot":"","sources":["../../../src/dex/clear/clear-factory.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAG/C,uCAAiD;AACjD,+EAA0E;AAK1E,0FAAgE;AAChE,sFAA4D;
|
|
1
|
+
{"version":3,"file":"clear-factory.js","sourceRoot":"","sources":["../../../src/dex/clear/clear-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import { AsyncOrSync } from 'ts-essentials';
|
|
3
2
|
import { Logger, Token, Address, PoolPrices, AdapterExchangeParam, PoolLiquidity, ExchangePrices, DexExchangeParam } from '../../types';
|
|
4
3
|
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
5
4
|
import { IDex } from '../idex';
|
|
@@ -21,7 +20,6 @@ export declare class Clear extends SimpleExchange implements IDex<ClearData> {
|
|
|
21
20
|
readonly network: Network;
|
|
22
21
|
readonly dexKey: string;
|
|
23
22
|
readonly dexHelper: IDexHelper;
|
|
24
|
-
static dexKeys: string[];
|
|
25
23
|
logger: Logger;
|
|
26
24
|
protected config: DexParams;
|
|
27
25
|
protected factory: ClearFactory;
|
|
@@ -32,25 +30,24 @@ export declare class Clear extends SimpleExchange implements IDex<ClearData> {
|
|
|
32
30
|
networks: Network[];
|
|
33
31
|
}[];
|
|
34
32
|
readonly clearSwapIface: Interface;
|
|
33
|
+
readonly clearVaultIface: Interface;
|
|
35
34
|
private vaults;
|
|
36
35
|
constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
|
|
37
|
-
/**
|
|
38
|
-
* Callback when factory detects new vaults
|
|
39
|
-
*/
|
|
40
|
-
private onVaultsUpdated;
|
|
41
36
|
getAdapters(_side: SwapSide): null;
|
|
42
37
|
initializePricing(blockNumber: number): Promise<void>;
|
|
43
|
-
|
|
44
|
-
* Deep copy vaults from readonly state to mutable cache
|
|
45
|
-
*/
|
|
46
|
-
private updateVaultsFromState;
|
|
47
|
-
releaseResources(): AsyncOrSync<void>;
|
|
48
|
-
private processMulticallResults;
|
|
49
|
-
private findVaultsForTokenPair;
|
|
50
|
-
getPoolIdentifiers(srcToken: Token, destToken: Token, _side: SwapSide, _blockNumber: number): Promise<string[]>;
|
|
38
|
+
getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
51
39
|
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<ClearData>>;
|
|
52
40
|
getAdapterParam(): AdapterExchangeParam;
|
|
53
41
|
getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: ClearData, _side: SwapSide): DexExchangeParam;
|
|
42
|
+
/**
|
|
43
|
+
* Gas cost for exchangeData calldata
|
|
44
|
+
* swap(address recipient, address vault, address srcToken, address destToken, uint256 srcAmount, uint256 destAmount, bool useIous)
|
|
45
|
+
*/
|
|
54
46
|
getCalldataGasCost(_poolPrices: PoolPrices<ClearData>): number | number[];
|
|
47
|
+
/**
|
|
48
|
+
* Fetch vaults with tokens, decimals and TVL for getTopPoolsForToken
|
|
49
|
+
* This method is called by PoolTracker service which doesn't call initializePricing
|
|
50
|
+
*/
|
|
51
|
+
updatePoolState(): Promise<void>;
|
|
55
52
|
getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
|
|
56
53
|
}
|
package/build/dex/clear/clear.js
CHANGED
|
@@ -44,7 +44,10 @@ const constants_1 = require("../../constants");
|
|
|
44
44
|
const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
|
|
45
45
|
const utils_1 = require("../../utils");
|
|
46
46
|
const ClearSwap_json_1 = __importDefault(require("../../abi/clear/ClearSwap.json"));
|
|
47
|
+
const ClearVault_json_1 = __importDefault(require("../../abi/clear/ClearVault.json"));
|
|
47
48
|
const clear_factory_1 = require("./clear-factory");
|
|
49
|
+
const decoders_1 = require("../../lib/decoders");
|
|
50
|
+
const utils_2 = require("../../executor/utils");
|
|
48
51
|
const CLEAR_GAS_COST = 150_000;
|
|
49
52
|
/**
|
|
50
53
|
* Clear DEX Integration for ParaSwap
|
|
@@ -59,7 +62,6 @@ class Clear extends simple_exchange_1.SimpleExchange {
|
|
|
59
62
|
network;
|
|
60
63
|
dexKey;
|
|
61
64
|
dexHelper;
|
|
62
|
-
static dexKeys = ['clear'];
|
|
63
65
|
logger;
|
|
64
66
|
config;
|
|
65
67
|
factory;
|
|
@@ -67,7 +69,7 @@ class Clear extends simple_exchange_1.SimpleExchange {
|
|
|
67
69
|
isFeeOnTransferSupported = false;
|
|
68
70
|
static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.ClearConfig);
|
|
69
71
|
clearSwapIface = new abi_1.Interface(ClearSwap_json_1.default);
|
|
70
|
-
|
|
72
|
+
clearVaultIface = new abi_1.Interface(ClearVault_json_1.default);
|
|
71
73
|
vaults = [];
|
|
72
74
|
constructor(network, dexKey, dexHelper) {
|
|
73
75
|
super(dexHelper, dexKey);
|
|
@@ -76,183 +78,82 @@ class Clear extends simple_exchange_1.SimpleExchange {
|
|
|
76
78
|
this.dexHelper = dexHelper;
|
|
77
79
|
this.config = config_1.ClearConfig[dexKey][network];
|
|
78
80
|
this.logger = dexHelper.getLogger(dexKey);
|
|
79
|
-
|
|
80
|
-
this.factory = new clear_factory_1.ClearFactory(dexKey, this.config, network, dexHelper, this.logger, this.onVaultsUpdated.bind(this));
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Callback when factory detects new vaults
|
|
84
|
-
*/
|
|
85
|
-
onVaultsUpdated(vaults) {
|
|
86
|
-
this.updateVaultsFromState(vaults);
|
|
87
|
-
this.logger.info(`${this.dexKey}: Vaults updated, count: ${this.vaults.length}`);
|
|
81
|
+
this.factory = new clear_factory_1.ClearFactory(dexKey, this.config, network, dexHelper, this.logger);
|
|
88
82
|
}
|
|
89
83
|
getAdapters(_side) {
|
|
90
84
|
return null;
|
|
91
85
|
}
|
|
92
86
|
async initializePricing(blockNumber) {
|
|
93
|
-
// Initialize factory and fetch initial state
|
|
94
87
|
await this.factory.initialize(blockNumber);
|
|
95
|
-
const vaults = await this.factory.getStateOrGenerate(blockNumber);
|
|
96
|
-
this.updateVaultsFromState(vaults);
|
|
97
|
-
this.logger.info(`${this.dexKey}: Initialized ${this.vaults.length} vaults`);
|
|
98
88
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
address: t.address,
|
|
109
|
-
symbol: t.symbol,
|
|
110
|
-
decimals: t.decimals,
|
|
111
|
-
})),
|
|
112
|
-
}));
|
|
113
|
-
}
|
|
114
|
-
releaseResources() {
|
|
115
|
-
this.logger.info(`${this.dexKey}: released resources`);
|
|
116
|
-
}
|
|
117
|
-
processMulticallResults(results, callInfos, amountsLength) {
|
|
118
|
-
const vaultResults = new Map();
|
|
119
|
-
for (let i = 0; i < results.length; i++) {
|
|
120
|
-
const result = results[i];
|
|
121
|
-
const info = callInfos[i];
|
|
122
|
-
if (!vaultResults.has(info.vaultAddress)) {
|
|
123
|
-
vaultResults.set(info.vaultAddress, {
|
|
124
|
-
poolIdentifier: info.poolIdentifier,
|
|
125
|
-
prices: new Array(amountsLength).fill(0n),
|
|
126
|
-
unit: 0n,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
if (!result.success) {
|
|
130
|
-
// Expected when no depeg exists - previewSwap reverts with AssetIsNotDepeg
|
|
131
|
-
this.logger.debug(info.isUnit
|
|
132
|
-
? `No price for vault ${info.vaultAddress} (no depeg)`
|
|
133
|
-
: `No swap available for amount index ${info.amountIndex} in vault ${info.vaultAddress}`);
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
const vaultData = vaultResults.get(info.vaultAddress);
|
|
137
|
-
if (info.isUnit) {
|
|
138
|
-
vaultData.unit = result.returnData.amountOut;
|
|
139
|
-
continue;
|
|
140
|
-
}
|
|
141
|
-
vaultData.prices[info.amountIndex] = result.returnData.amountOut;
|
|
142
|
-
}
|
|
143
|
-
return vaultResults;
|
|
144
|
-
}
|
|
145
|
-
findVaultsForTokenPair(srcToken, destToken) {
|
|
146
|
-
return this.vaults.filter(vault => {
|
|
147
|
-
const tokenAddresses = vault.tokens.map(t => t.address.toLowerCase());
|
|
148
|
-
return (tokenAddresses.includes(srcToken.toLowerCase()) &&
|
|
149
|
-
tokenAddresses.includes(destToken.toLowerCase()));
|
|
89
|
+
async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
|
|
90
|
+
if (side === constants_1.SwapSide.BUY)
|
|
91
|
+
return [];
|
|
92
|
+
const allVaults = this.factory.getState(blockNumber) || [];
|
|
93
|
+
const src = srcToken.address.toLowerCase();
|
|
94
|
+
const dest = destToken.address.toLowerCase();
|
|
95
|
+
const matchingVaults = allVaults.filter(vault => {
|
|
96
|
+
const addrs = vault.tokens.map(t => t.address);
|
|
97
|
+
return addrs.includes(src) && addrs.includes(dest);
|
|
150
98
|
});
|
|
99
|
+
return matchingVaults.map(vault => `${this.dexKey}_${vault.address}_${srcToken.address}_${destToken.address}`.toLowerCase());
|
|
151
100
|
}
|
|
152
|
-
async
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
return
|
|
101
|
+
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
|
|
102
|
+
// Only SELL side supported
|
|
103
|
+
if (side === constants_1.SwapSide.BUY) {
|
|
104
|
+
return null;
|
|
156
105
|
}
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
106
|
+
const poolIdentifiers = limitPools ||
|
|
107
|
+
(await this.getPoolIdentifiers(srcToken, destToken, side, blockNumber));
|
|
108
|
+
if (poolIdentifiers.length === 0) {
|
|
109
|
+
return null;
|
|
160
110
|
}
|
|
161
|
-
return vaults.map(vault => `${this.dexKey}_${vault.address}_${srcToken.address}_${destToken.address}`.toLowerCase());
|
|
162
|
-
}
|
|
163
|
-
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
|
|
164
111
|
try {
|
|
165
|
-
if (!this.config) {
|
|
166
|
-
this.logger.debug(`No config available for ${this.dexKey} on network ${this.network}`);
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
// Only SELL side supported
|
|
170
|
-
if (side === constants_1.SwapSide.BUY) {
|
|
171
|
-
return null;
|
|
172
|
-
}
|
|
173
|
-
const poolIdentifiers = limitPools ||
|
|
174
|
-
(await this.getPoolIdentifiers(srcToken, destToken, side, blockNumber));
|
|
175
|
-
if (poolIdentifiers.length === 0) {
|
|
176
|
-
this.logger.debug(`No pools found for ${srcToken.symbol}-${destToken.symbol}`);
|
|
177
|
-
return null;
|
|
178
|
-
}
|
|
179
|
-
const unitAmount = BigInt(10) ** BigInt(srcToken.decimals);
|
|
180
112
|
const calls = [];
|
|
181
|
-
const
|
|
113
|
+
const vaultInfos = [];
|
|
182
114
|
for (const poolIdentifier of poolIdentifiers) {
|
|
183
115
|
const vaultAddress = poolIdentifier.split('_')[1];
|
|
184
|
-
|
|
185
|
-
|
|
116
|
+
const startIdx = calls.length;
|
|
117
|
+
for (const amount of amounts.slice(1)) {
|
|
186
118
|
calls.push({
|
|
187
119
|
target: this.config.swapAddress,
|
|
188
|
-
callData,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
},
|
|
196
|
-
});
|
|
197
|
-
callInfos.push({
|
|
198
|
-
vaultAddress,
|
|
199
|
-
poolIdentifier,
|
|
200
|
-
isUnit: false,
|
|
201
|
-
amountIndex: i,
|
|
120
|
+
callData: this.clearSwapIface.encodeFunctionData('previewSwap', [
|
|
121
|
+
vaultAddress,
|
|
122
|
+
srcToken.address,
|
|
123
|
+
destToken.address,
|
|
124
|
+
amount,
|
|
125
|
+
]),
|
|
126
|
+
decodeFunction: (result) => result.amountOut.toBigInt(),
|
|
202
127
|
});
|
|
203
128
|
}
|
|
204
|
-
|
|
205
|
-
calls.push({
|
|
206
|
-
target: this.config.swapAddress,
|
|
207
|
-
callData: unitCallData,
|
|
208
|
-
decodeFunction: (result) => {
|
|
209
|
-
const decoded = this.clearSwapIface.decodeFunctionResult('previewSwap', result);
|
|
210
|
-
return {
|
|
211
|
-
amountOut: BigInt(decoded.amountOut.toString()),
|
|
212
|
-
ious: BigInt(decoded.ious.toString()),
|
|
213
|
-
};
|
|
214
|
-
},
|
|
215
|
-
});
|
|
216
|
-
callInfos.push({
|
|
217
|
-
vaultAddress,
|
|
218
|
-
poolIdentifier,
|
|
219
|
-
isUnit: true,
|
|
220
|
-
amountIndex: -1,
|
|
221
|
-
});
|
|
129
|
+
vaultInfos.push({ address: vaultAddress, poolIdentifier, startIdx });
|
|
222
130
|
}
|
|
223
131
|
const results = await this.dexHelper.multiWrapper.tryAggregate(false, calls, blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
|
|
224
|
-
const vaultResults = this.processMulticallResults(results, callInfos, amounts.length);
|
|
225
132
|
const poolPrices = [];
|
|
226
|
-
for (const
|
|
227
|
-
|
|
228
|
-
|
|
133
|
+
for (const { address, poolIdentifier, startIdx } of vaultInfos) {
|
|
134
|
+
const prices = [
|
|
135
|
+
0n,
|
|
136
|
+
...amounts.slice(1).map((_, i) => {
|
|
137
|
+
const r = results[startIdx + i];
|
|
138
|
+
return r.success ? r.returnData : 0n;
|
|
139
|
+
}),
|
|
140
|
+
];
|
|
141
|
+
if (prices.every(p => p === 0n))
|
|
229
142
|
continue;
|
|
230
|
-
}
|
|
231
|
-
let unit = vaultData.unit;
|
|
232
|
-
if (unit === 0n && vaultData.prices[0] && amounts[0]) {
|
|
233
|
-
unit = (vaultData.prices[0] * unitAmount) / amounts[0];
|
|
234
|
-
}
|
|
235
143
|
poolPrices.push({
|
|
236
|
-
prices
|
|
237
|
-
unit,
|
|
238
|
-
data: {
|
|
239
|
-
|
|
240
|
-
router: this.config.swapAddress,
|
|
241
|
-
},
|
|
242
|
-
poolIdentifiers: [vaultData.poolIdentifier],
|
|
144
|
+
prices,
|
|
145
|
+
unit: (0, utils_1.getBigIntPow)(destToken.decimals),
|
|
146
|
+
data: { vault: address },
|
|
147
|
+
poolIdentifiers: [poolIdentifier],
|
|
243
148
|
exchange: this.dexKey,
|
|
244
149
|
gasCost: this.config.poolGasCost || CLEAR_GAS_COST,
|
|
245
|
-
poolAddresses: [
|
|
150
|
+
poolAddresses: [address],
|
|
246
151
|
});
|
|
247
152
|
}
|
|
248
|
-
|
|
249
|
-
// Expected when no depeg exists
|
|
250
|
-
return null;
|
|
251
|
-
}
|
|
252
|
-
return poolPrices;
|
|
153
|
+
return poolPrices.length > 0 ? poolPrices : null;
|
|
253
154
|
}
|
|
254
155
|
catch (error) {
|
|
255
|
-
this.logger.error(
|
|
156
|
+
this.logger.error(`getPricesVolume error: ${error}`);
|
|
256
157
|
return null;
|
|
257
158
|
}
|
|
258
159
|
}
|
|
@@ -278,41 +179,91 @@ class Clear extends simple_exchange_1.SimpleExchange {
|
|
|
278
179
|
needWrapNative: this.needWrapNative,
|
|
279
180
|
dexFuncHasRecipient: true,
|
|
280
181
|
exchangeData,
|
|
281
|
-
targetExchange:
|
|
282
|
-
returnAmountPos:
|
|
182
|
+
targetExchange: this.config.swapAddress,
|
|
183
|
+
returnAmountPos: (0, utils_2.extractReturnAmountPosition)(this.clearSwapIface, 'swap', 'amountOut'),
|
|
283
184
|
};
|
|
284
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Gas cost for exchangeData calldata
|
|
188
|
+
* swap(address recipient, address vault, address srcToken, address destToken, uint256 srcAmount, uint256 destAmount, bool useIous)
|
|
189
|
+
*/
|
|
285
190
|
getCalldataGasCost(_poolPrices) {
|
|
286
|
-
return CALLDATA_GAS_COST.
|
|
191
|
+
return (CALLDATA_GAS_COST.DEX_OVERHEAD +
|
|
192
|
+
CALLDATA_GAS_COST.ADDRESS + // recipient
|
|
193
|
+
CALLDATA_GAS_COST.ADDRESS + // vault
|
|
194
|
+
CALLDATA_GAS_COST.ADDRESS + // srcToken
|
|
195
|
+
CALLDATA_GAS_COST.ADDRESS + // destToken
|
|
196
|
+
CALLDATA_GAS_COST.AMOUNT + // srcAmount
|
|
197
|
+
CALLDATA_GAS_COST.AMOUNT + // destAmount
|
|
198
|
+
CALLDATA_GAS_COST.BOOL // useIous
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Fetch vaults with tokens, decimals and TVL for getTopPoolsForToken
|
|
203
|
+
* This method is called by PoolTracker service which doesn't call initializePricing
|
|
204
|
+
*/
|
|
205
|
+
async updatePoolState() {
|
|
206
|
+
const blockNumber = await this.dexHelper.provider.getBlockNumber();
|
|
207
|
+
const vaults = await this.factory.getStateOrGenerate(blockNumber);
|
|
208
|
+
if (vaults.length === 0) {
|
|
209
|
+
return this.logger.info(`${this.dexKey}: No vaults found in updatePoolState`);
|
|
210
|
+
}
|
|
211
|
+
const uniqueTokens = [
|
|
212
|
+
...new Set(vaults.flatMap(v => v.tokens.map(t => t.address))),
|
|
213
|
+
];
|
|
214
|
+
const decimalCalls = uniqueTokens.map(token => ({
|
|
215
|
+
target: token,
|
|
216
|
+
callData: '0x313ce567', // decimals()
|
|
217
|
+
decodeFunction: (result) => BigInt((0, decoders_1.uint8ToNumber)(result)),
|
|
218
|
+
}));
|
|
219
|
+
const totalAssetsCalls = vaults.map(vault => ({
|
|
220
|
+
target: vault.address,
|
|
221
|
+
callData: this.clearVaultIface.encodeFunctionData('totalAssets'),
|
|
222
|
+
decodeFunction: decoders_1.uint256ToBigInt,
|
|
223
|
+
}));
|
|
224
|
+
const results = await this.dexHelper.multiWrapper.tryAggregate(false, [...decimalCalls, ...totalAssetsCalls], blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
|
|
225
|
+
const callsOffset = uniqueTokens.length;
|
|
226
|
+
const tokenDecimals = {};
|
|
227
|
+
for (let i = 0; i < callsOffset; i++) {
|
|
228
|
+
const result = results[i];
|
|
229
|
+
tokenDecimals[uniqueTokens[i]] = result.success
|
|
230
|
+
? Number(result.returnData)
|
|
231
|
+
: 18;
|
|
232
|
+
}
|
|
233
|
+
this.vaults = vaults.map((vault, i) => {
|
|
234
|
+
const result = results[callsOffset + i];
|
|
235
|
+
return {
|
|
236
|
+
address: vault.address,
|
|
237
|
+
tokens: vault.tokens.map(t => ({
|
|
238
|
+
address: t.address,
|
|
239
|
+
decimals: tokenDecimals[t.address.toLowerCase()] ?? 18,
|
|
240
|
+
})),
|
|
241
|
+
totalAssets: result.success ? result.returnData : undefined,
|
|
242
|
+
};
|
|
243
|
+
});
|
|
287
244
|
}
|
|
288
245
|
async getTopPoolsForToken(tokenAddress, limit) {
|
|
289
|
-
const
|
|
246
|
+
const tokenAddrLower = tokenAddress.toLowerCase();
|
|
247
|
+
const vaultsWithToken = this.vaults.filter(vault => vault.tokens.some(t => t.address.toLowerCase() === tokenAddrLower));
|
|
290
248
|
if (vaultsWithToken.length === 0) {
|
|
291
249
|
return [];
|
|
292
250
|
}
|
|
293
|
-
const
|
|
294
|
-
if (!tokenInfo) {
|
|
295
|
-
return [];
|
|
296
|
-
}
|
|
297
|
-
const decimals = parseInt(tokenInfo.decimals, 10);
|
|
298
|
-
const amount = BigInt(10) ** BigInt(decimals);
|
|
299
|
-
const tokenUsdPrice = await this.dexHelper.getTokenUSDPrice({ address: tokenAddress, decimals }, amount);
|
|
251
|
+
const usdAmounts = await this.dexHelper.getUsdTokenAmounts(vaultsWithToken.map(vault => [tokenAddress, vault.totalAssets ?? null]));
|
|
300
252
|
const poolLiquidities = vaultsWithToken
|
|
301
|
-
.map(vault => {
|
|
253
|
+
.map((vault, i) => {
|
|
302
254
|
const connectorTokens = vault.tokens
|
|
303
|
-
.filter(t => t.address.toLowerCase() !==
|
|
255
|
+
.filter(t => t.address.toLowerCase() !== tokenAddrLower)
|
|
304
256
|
.map(t => ({
|
|
305
257
|
address: t.address,
|
|
306
|
-
decimals:
|
|
258
|
+
decimals: t.decimals ?? 18,
|
|
307
259
|
}));
|
|
308
|
-
if (connectorTokens.length === 0)
|
|
260
|
+
if (connectorTokens.length === 0)
|
|
309
261
|
return null;
|
|
310
|
-
}
|
|
311
262
|
return {
|
|
312
263
|
exchange: this.dexKey,
|
|
313
264
|
address: vault.address,
|
|
314
265
|
connectorTokens,
|
|
315
|
-
liquidityUSD:
|
|
266
|
+
liquidityUSD: usdAmounts[i],
|
|
316
267
|
};
|
|
317
268
|
})
|
|
318
269
|
.filter((p) => p !== null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/dex/clear/clear.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA+C;AAc/C,wDAAoD;AACpD,qCAAuC;AAEvC,+CAAoD;AACpD,2EAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/dex/clear/clear.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ClearConfig = void 0;
|
|
4
4
|
const constants_1 = require("../../constants");
|
|
5
5
|
exports.ClearConfig = {
|
|
6
|
-
|
|
6
|
+
Clear: {
|
|
7
7
|
[constants_1.Network.MAINNET]: {
|
|
8
8
|
factoryAddress: '0x8bF266ED803e474AE7Bf09ADB5ba2566c489223d',
|
|
9
9
|
swapAddress: '0xeb5AD3D93E59eFcbC6934caD2B48EB33BAf29745',
|
|
10
|
-
oracleAddress: '0x049ad7Ff0c6BdbaB86baf4b1A5a5cA975e234FCA',
|
|
11
|
-
accessManagerAddress: '0x20a22791923E69f0f27166B59A12aF01cA4E4AF8',
|
|
12
10
|
poolGasCost: 150_000,
|
|
13
|
-
feeCode: 0,
|
|
14
11
|
},
|
|
15
12
|
},
|
|
16
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/clear/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE7B,QAAA,WAAW,GAA4B;IAClD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,cAAc,EAAE,4CAA4C;YAC5D,WAAW,EAAE,4CAA4C;YACzD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/clear/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE7B,QAAA,WAAW,GAA4B;IAClD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,cAAc,EAAE,4CAA4C;YAC5D,WAAW,EAAE,4CAA4C;YACzD,WAAW,EAAE,OAAO;SACrB;KACF;CACF,CAAC"}
|
|
@@ -1,30 +1,18 @@
|
|
|
1
1
|
import { Address } from '../../types';
|
|
2
2
|
export type ClearData = {
|
|
3
3
|
vault: Address;
|
|
4
|
-
router: Address;
|
|
5
4
|
};
|
|
6
5
|
export interface DexParams {
|
|
7
6
|
factoryAddress: Address;
|
|
8
7
|
swapAddress: Address;
|
|
9
|
-
oracleAddress: Address;
|
|
10
|
-
accessManagerAddress?: Address;
|
|
11
8
|
poolGasCost?: number;
|
|
12
|
-
feeCode: number;
|
|
13
9
|
}
|
|
14
10
|
export interface ClearVaultToken {
|
|
15
|
-
id: string;
|
|
16
11
|
address: string;
|
|
17
|
-
|
|
18
|
-
decimals: string;
|
|
12
|
+
decimals?: number;
|
|
19
13
|
}
|
|
20
14
|
export interface ClearVault {
|
|
21
|
-
id: string;
|
|
22
15
|
address: string;
|
|
23
16
|
tokens: ClearVaultToken[];
|
|
24
|
-
|
|
25
|
-
export interface PreviewSwapCallInfo {
|
|
26
|
-
vaultAddress: string;
|
|
27
|
-
poolIdentifier: string;
|
|
28
|
-
isUnit: boolean;
|
|
29
|
-
amountIndex: number;
|
|
17
|
+
totalAssets?: bigint;
|
|
30
18
|
}
|
package/build/dex/index.js
CHANGED
|
@@ -99,6 +99,7 @@ const usdc_transmuter_1 = require("./usdc-transmuter/usdc-transmuter");
|
|
|
99
99
|
const blackhole_1 = require("./solidly/forks-override/blackhole");
|
|
100
100
|
const blackhole_cl_1 = require("./algebra-integral/forks/blackhole-cl");
|
|
101
101
|
const cap_1 = require("./cap/cap");
|
|
102
|
+
const clear_1 = require("./clear/clear");
|
|
102
103
|
const LegacyDexes = [
|
|
103
104
|
curve_v2_1.CurveV2,
|
|
104
105
|
stable_pool_1.StablePool,
|
|
@@ -187,6 +188,7 @@ const Dexes = [
|
|
|
187
188
|
blackhole_1.Blackhole,
|
|
188
189
|
blackhole_cl_1.BlackholeCL,
|
|
189
190
|
cap_1.Cap,
|
|
191
|
+
clear_1.Clear,
|
|
190
192
|
];
|
|
191
193
|
class DexAdapterService {
|
|
192
194
|
dexHelper;
|
package/build/dex/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dex/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAEvB,kDAA8C;AAE9C,2DAAuD;AACvD,sCAAmC;AACnC,0EAAsE;AACtE,wDAAoD;AACpD,2DAAuD;AACvD,uDAA0D;AAC1D,wDAAoD;AACpD,sDAAwD;AACxD,sDAAsD;AACtD,gDAA6C;AAC7C,+CAA2C;AAC3C,+CAA2C;AAC3C,uCAAmC;AACnC,yCAAsC;AAEtC,4CAAwC;AAExC,sCAAmC;AACnC,qDAAgD;AAChD,yFAAoF;AACpF,iDAAkD;AAClD,+CAA4C;AAC5C,wDAAoD;AACpD,4DAAyD;AACzD,0DAAuD;AACvD,kEAA+D;AAC/D,sEAAmE;AACnE,wEAAqE;AACrE,qDAAkD;AAClD,kEAA+D;AAC/D,2DAAuD;AACvD,uDAA0D;AAC1D,kDAA8C;AAC9C,0EAAqE;AACrE,0EAAqE;AACrE,gFAA0E;AAC1E,4DAA4D;AAC5D,2DAAuD;AACvD,4CAAyC;AACzC,+CAA4C;AAC5C,+CAA4C;AAC5C,kDAA+C;AAC/C,iEAA6D;AAC7D,2DAAuD;AACvD,2DAAuD;AACvD,2DAAuD;AACvD,kDAA8C;AAC9C,uEAAiE;AACjE,oEAAgE;AAChE,+CAA4C;AAC5C,0EAAsE;AACtE,mFAA8E;AAC9E,+CAA4C;AAC5C,yCAAsC;AACtC,yCAAsC;AACtC,kEAA+D;AAC/D,yEAAqE;AACrE,uCAAoC;AACpC,4CAAyC;AACzC,yCAAsC;AACtC,iDAA6C;AAC7C,uGAAmG;AACnG,iEAA4D;AAC5D,0EAAoE;AACpE,yCAAsC;AACtC,qDAAiD;AACjD,oEAA+D;AAC/D,0EAAqE;AACrE,kDAA8C;AAC9C,kDAA8C;AAC9C,4CAAyC;AACzC,2DAAuD;AACvD,uDAA0D;AAC1D,iEAA6D;AAC7D,4CAAyC;AACzC,mDAA+C;AAC/C,6DAAwD;AACxD,6DAAwD;AACxD,iEAA2D;AAC3D,uDAAkD;AAClD,qDAAgD;AAChD,qDAAgD;AAChD,kDAA8C;AAC9C,0EAAsE;AACtE,yCAAsC;AACtC,wDAAoD;AACpD,kEAA6D;AAC7D,sDAAwD;AACxD,iEAA6D;AAC7D,sFAA+E;AAC/E,kDAA8C;AAC9C,uEAAmE;AACnE,kEAA+D;AAC/D,wEAAoE;AACpE,mCAAgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dex/index.ts"],"names":[],"mappings":"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"}
|