@paraswap/dex-lib 4.7.28 → 4.8.1-ekubo-v3.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/ClearFactory.json +71 -0
- package/build/abi/clear/ClearSwap.json +334 -0
- package/build/abi/clear/ClearVault.json +28 -0
- package/build/dex/algebra/config.js +0 -30
- package/build/dex/algebra/config.js.map +1 -1
- package/build/dex/algebra-integral/config.js +0 -7
- package/build/dex/algebra-integral/config.js.map +1 -1
- package/build/dex/angle-staked-stable/config.js +0 -32
- package/build/dex/angle-staked-stable/config.js.map +1 -1
- package/build/dex/angle-transmuter/config.js +0 -20
- package/build/dex/angle-transmuter/config.js.map +1 -1
- package/build/dex/clear/clear-factory.d.ts +40 -0
- package/build/dex/clear/clear-factory.js +152 -0
- package/build/dex/clear/clear-factory.js.map +1 -0
- package/build/dex/clear/clear.d.ts +56 -0
- package/build/dex/clear/clear.js +325 -0
- package/build/dex/clear/clear.js.map +1 -0
- package/build/dex/clear/config.d.ts +3 -0
- package/build/dex/clear/config.js +17 -0
- package/build/dex/clear/config.js.map +1 -0
- package/build/dex/clear/types.d.ts +30 -0
- package/build/dex/clear/types.js +3 -0
- package/build/dex/clear/types.js.map +1 -0
- package/build/dex/curve-v1/constants.js +2 -4
- package/build/dex/curve-v1/constants.js.map +1 -1
- package/build/dex/dodo-v1/config.js +0 -10
- package/build/dex/dodo-v1/config.js.map +1 -1
- package/build/dex/dodo-v2.js +0 -3
- package/build/dex/dodo-v2.js.map +1 -1
- package/build/dex/ekubo-v3/ekubo-v3-pool-manager.js +10 -11
- package/build/dex/ekubo-v3/ekubo-v3-pool-manager.js.map +1 -1
- package/build/dex/ekubo-v3/ekubo-v3.js +1 -1
- package/build/dex/ekubo-v3/ekubo-v3.js.map +1 -1
- package/build/dex/ekubo-v3/types.d.ts +0 -8
- package/build/dex/erc4626/config.js +0 -22
- package/build/dex/erc4626/config.js.map +1 -1
- package/build/dex/index.js +2 -28
- package/build/dex/index.js.map +1 -1
- package/build/dex/nerve/config.js +0 -435
- package/build/dex/nerve/config.js.map +1 -1
- package/build/dex/oswap/oswap-pool.js.map +1 -1
- package/build/dex/stable-pool/stable-pool.js +1 -1
- package/build/dex/stable-pool/stable-pool.js.map +1 -1
- package/build/dex/trader-joe-v2.1/config.d.ts +0 -3
- package/build/dex/trader-joe-v2.1/config.js +1 -8
- package/build/dex/trader-joe-v2.1/config.js.map +1 -1
- package/build/dex/uniswap-v2/config.js +0 -8
- package/build/dex/uniswap-v2/config.js.map +1 -1
- package/build/dex/uniswap-v2/uniswap-v2.js +0 -10
- package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,152 @@
|
|
|
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.ClearFactory = void 0;
|
|
7
|
+
const abi_1 = require("@ethersproject/abi");
|
|
8
|
+
const utils_1 = require("../../utils");
|
|
9
|
+
const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
|
|
10
|
+
const ClearFactory_json_1 = __importDefault(require("../../abi/clear/ClearFactory.json"));
|
|
11
|
+
const ClearVault_json_1 = __importDefault(require("../../abi/clear/ClearVault.json"));
|
|
12
|
+
class ClearFactory extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
13
|
+
parentName;
|
|
14
|
+
config;
|
|
15
|
+
network;
|
|
16
|
+
dexHelper;
|
|
17
|
+
onVaultCreated;
|
|
18
|
+
handlers = {};
|
|
19
|
+
logDecoder;
|
|
20
|
+
addressesSubscribed;
|
|
21
|
+
factoryIface = new abi_1.Interface(ClearFactory_json_1.default);
|
|
22
|
+
vaultIface = new abi_1.Interface(ClearVault_json_1.default);
|
|
23
|
+
constructor(parentName, config, network, dexHelper, logger, onVaultCreated) {
|
|
24
|
+
super(parentName, 'factory', dexHelper, logger);
|
|
25
|
+
this.parentName = parentName;
|
|
26
|
+
this.config = config;
|
|
27
|
+
this.network = network;
|
|
28
|
+
this.dexHelper = dexHelper;
|
|
29
|
+
this.onVaultCreated = onVaultCreated;
|
|
30
|
+
this.logDecoder = (log) => this.factoryIface.parseLog(log);
|
|
31
|
+
this.addressesSubscribed = [config.factoryAddress];
|
|
32
|
+
// Add handler for NewClearVault event
|
|
33
|
+
this.handlers['NewClearVault'] = this.handleNewClearVault.bind(this);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Handle NewClearVault event - regenerate state when a new vault is created
|
|
37
|
+
*/
|
|
38
|
+
async handleNewClearVault() {
|
|
39
|
+
const blockNumber = await this.dexHelper.provider.getBlockNumber();
|
|
40
|
+
const vaults = await this.getStateOrGenerate(blockNumber, false);
|
|
41
|
+
this.onVaultCreated(vaults);
|
|
42
|
+
return vaults;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Process incoming logs and dispatch to appropriate handlers
|
|
46
|
+
*/
|
|
47
|
+
async processLog(state, log) {
|
|
48
|
+
try {
|
|
49
|
+
let event;
|
|
50
|
+
try {
|
|
51
|
+
event = this.logDecoder(log);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
if (event.name in this.handlers) {
|
|
57
|
+
return await this.handlers[event.name](event, state, log);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
(0, utils_1.catchParseLogError)(e, this.logger);
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
async getStateOrGenerate(blockNumber, readonly = false) {
|
|
66
|
+
let state = this.getState(blockNumber);
|
|
67
|
+
if (!state) {
|
|
68
|
+
state = await this.generateState(blockNumber);
|
|
69
|
+
if (!readonly)
|
|
70
|
+
this.setState(state, blockNumber);
|
|
71
|
+
}
|
|
72
|
+
return state;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Generate state using on-chain calls:
|
|
76
|
+
* 1. Call vaultsLength() to get total count
|
|
77
|
+
* 2. Call getBatchVaultAddresses() to get all addresses
|
|
78
|
+
* 3. Call tokens() on each vault to get supported tokens
|
|
79
|
+
*/
|
|
80
|
+
async generateState(blockNumber) {
|
|
81
|
+
// Step 1: Get total number of vaults
|
|
82
|
+
const lengthCall = {
|
|
83
|
+
target: this.config.factoryAddress,
|
|
84
|
+
callData: this.factoryIface.encodeFunctionData('vaultsLength'),
|
|
85
|
+
decodeFunction: (result) => {
|
|
86
|
+
const decoded = this.factoryIface.decodeFunctionResult('vaultsLength', result);
|
|
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`);
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
// Step 2: Get all vault addresses
|
|
101
|
+
const indexes = Array.from({ length: vaultsLength }, (_, i) => i);
|
|
102
|
+
const batchCall = {
|
|
103
|
+
target: this.config.factoryAddress,
|
|
104
|
+
callData: this.factoryIface.encodeFunctionData('getBatchVaultAddresses', [
|
|
105
|
+
indexes,
|
|
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());
|
|
118
|
+
// Step 3: Fetch tokens for each vault
|
|
119
|
+
const tokenCalls = vaultAddresses.map(vault => ({
|
|
120
|
+
target: vault,
|
|
121
|
+
callData: this.vaultIface.encodeFunctionData('tokens'),
|
|
122
|
+
decodeFunction: (result) => {
|
|
123
|
+
const decoded = this.vaultIface.decodeFunctionResult('tokens', result);
|
|
124
|
+
return decoded[0];
|
|
125
|
+
},
|
|
126
|
+
}));
|
|
127
|
+
const tokenResults = await this.dexHelper.multiWrapper.tryAggregate(false, tokenCalls, blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
|
|
128
|
+
const vaults = [];
|
|
129
|
+
for (let i = 0; i < vaultAddresses.length; i++) {
|
|
130
|
+
const result = tokenResults[i];
|
|
131
|
+
if (!result.success || !result.returnData) {
|
|
132
|
+
this.logger.warn(`${this.parentName}: Failed to fetch tokens for vault ${vaultAddresses[i]}`);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
const tokenAddresses = result.returnData;
|
|
136
|
+
vaults.push({
|
|
137
|
+
id: vaultAddresses[i],
|
|
138
|
+
address: vaultAddresses[i],
|
|
139
|
+
tokens: tokenAddresses.map(addr => ({
|
|
140
|
+
id: addr.toLowerCase(),
|
|
141
|
+
address: addr.toLowerCase(),
|
|
142
|
+
symbol: '',
|
|
143
|
+
decimals: '18',
|
|
144
|
+
})),
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
this.logger.info(`${this.parentName}: Generated state with ${vaults.length} vaults`);
|
|
148
|
+
return vaults;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.ClearFactory = ClearFactory;
|
|
152
|
+
//# sourceMappingURL=clear-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear-factory.js","sourceRoot":"","sources":["../../../src/dex/clear/clear-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { AsyncOrSync } from 'ts-essentials';
|
|
3
|
+
import { Logger, Token, Address, PoolPrices, AdapterExchangeParam, PoolLiquidity, ExchangePrices, DexExchangeParam } from '../../types';
|
|
4
|
+
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
5
|
+
import { IDex } from '../idex';
|
|
6
|
+
import { SimpleExchange } from '../simple-exchange';
|
|
7
|
+
import { ClearData, DexParams } from './types';
|
|
8
|
+
import { Network, SwapSide } from '../../constants';
|
|
9
|
+
import { NumberAsString } from '@paraswap/core';
|
|
10
|
+
import { ClearFactory } from './clear-factory';
|
|
11
|
+
/**
|
|
12
|
+
* Clear DEX Integration for ParaSwap
|
|
13
|
+
*
|
|
14
|
+
* Clear is a depeg arbitrage protocol for stablecoins
|
|
15
|
+
* - Vaults contain N tokens (multi-token, not pairs)
|
|
16
|
+
* - Pricing via ClearSwap.previewSwap() - returns 0 when no depeg
|
|
17
|
+
* - Discovery via StatefulEventSubscriber (getters + NewClearVault events)
|
|
18
|
+
* - Each (vault, tokenA, tokenB) combination = one "pool" for ParaSwap
|
|
19
|
+
*/
|
|
20
|
+
export declare class Clear extends SimpleExchange implements IDex<ClearData> {
|
|
21
|
+
readonly network: Network;
|
|
22
|
+
readonly dexKey: string;
|
|
23
|
+
readonly dexHelper: IDexHelper;
|
|
24
|
+
static dexKeys: string[];
|
|
25
|
+
logger: Logger;
|
|
26
|
+
protected config: DexParams;
|
|
27
|
+
protected factory: ClearFactory;
|
|
28
|
+
readonly hasConstantPriceLargeAmounts = false;
|
|
29
|
+
readonly isFeeOnTransferSupported = false;
|
|
30
|
+
static dexKeysWithNetwork: {
|
|
31
|
+
key: string;
|
|
32
|
+
networks: Network[];
|
|
33
|
+
}[];
|
|
34
|
+
readonly clearSwapIface: Interface;
|
|
35
|
+
private vaults;
|
|
36
|
+
constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
|
|
37
|
+
/**
|
|
38
|
+
* Callback when factory detects new vaults
|
|
39
|
+
*/
|
|
40
|
+
private onVaultsUpdated;
|
|
41
|
+
getAdapters(_side: SwapSide): null;
|
|
42
|
+
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[]>;
|
|
51
|
+
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<ClearData>>;
|
|
52
|
+
getAdapterParam(): AdapterExchangeParam;
|
|
53
|
+
getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: ClearData, _side: SwapSide): DexExchangeParam;
|
|
54
|
+
getCalldataGasCost(_poolPrices: PoolPrices<ClearData>): number | number[];
|
|
55
|
+
getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
|
|
56
|
+
}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.Clear = void 0;
|
|
40
|
+
const abi_1 = require("@ethersproject/abi");
|
|
41
|
+
const simple_exchange_1 = require("../simple-exchange");
|
|
42
|
+
const config_1 = require("./config");
|
|
43
|
+
const constants_1 = require("../../constants");
|
|
44
|
+
const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
|
|
45
|
+
const utils_1 = require("../../utils");
|
|
46
|
+
const ClearSwap_json_1 = __importDefault(require("../../abi/clear/ClearSwap.json"));
|
|
47
|
+
const clear_factory_1 = require("./clear-factory");
|
|
48
|
+
const CLEAR_GAS_COST = 150_000;
|
|
49
|
+
/**
|
|
50
|
+
* Clear DEX Integration for ParaSwap
|
|
51
|
+
*
|
|
52
|
+
* Clear is a depeg arbitrage protocol for stablecoins
|
|
53
|
+
* - Vaults contain N tokens (multi-token, not pairs)
|
|
54
|
+
* - Pricing via ClearSwap.previewSwap() - returns 0 when no depeg
|
|
55
|
+
* - Discovery via StatefulEventSubscriber (getters + NewClearVault events)
|
|
56
|
+
* - Each (vault, tokenA, tokenB) combination = one "pool" for ParaSwap
|
|
57
|
+
*/
|
|
58
|
+
class Clear extends simple_exchange_1.SimpleExchange {
|
|
59
|
+
network;
|
|
60
|
+
dexKey;
|
|
61
|
+
dexHelper;
|
|
62
|
+
static dexKeys = ['clear'];
|
|
63
|
+
logger;
|
|
64
|
+
config;
|
|
65
|
+
factory;
|
|
66
|
+
hasConstantPriceLargeAmounts = false;
|
|
67
|
+
isFeeOnTransferSupported = false;
|
|
68
|
+
static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.ClearConfig);
|
|
69
|
+
clearSwapIface = new abi_1.Interface(ClearSwap_json_1.default);
|
|
70
|
+
// Vault cache - updated by factory subscriber
|
|
71
|
+
vaults = [];
|
|
72
|
+
constructor(network, dexKey, dexHelper) {
|
|
73
|
+
super(dexHelper, dexKey);
|
|
74
|
+
this.network = network;
|
|
75
|
+
this.dexKey = dexKey;
|
|
76
|
+
this.dexHelper = dexHelper;
|
|
77
|
+
this.config = config_1.ClearConfig[dexKey][network];
|
|
78
|
+
this.logger = dexHelper.getLogger(dexKey);
|
|
79
|
+
// Initialize factory subscriber with callback to update vaults
|
|
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}`);
|
|
88
|
+
}
|
|
89
|
+
getAdapters(_side) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
async initializePricing(blockNumber) {
|
|
93
|
+
// Initialize factory and fetch initial state
|
|
94
|
+
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
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Deep copy vaults from readonly state to mutable cache
|
|
101
|
+
*/
|
|
102
|
+
updateVaultsFromState(vaults) {
|
|
103
|
+
this.vaults = vaults.map(v => ({
|
|
104
|
+
id: v.id,
|
|
105
|
+
address: v.address,
|
|
106
|
+
tokens: v.tokens.map(t => ({
|
|
107
|
+
id: t.id,
|
|
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()));
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
async getPoolIdentifiers(srcToken, destToken, _side, _blockNumber) {
|
|
153
|
+
if (!this.config) {
|
|
154
|
+
this.logger.error(`No config for ${this.dexKey} on ${this.network}`);
|
|
155
|
+
return [];
|
|
156
|
+
}
|
|
157
|
+
const vaults = this.findVaultsForTokenPair(srcToken.address, destToken.address);
|
|
158
|
+
if (vaults.length === 0) {
|
|
159
|
+
return [];
|
|
160
|
+
}
|
|
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
|
+
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
|
+
const calls = [];
|
|
181
|
+
const callInfos = [];
|
|
182
|
+
for (const poolIdentifier of poolIdentifiers) {
|
|
183
|
+
const vaultAddress = poolIdentifier.split('_')[1];
|
|
184
|
+
for (let i = 0; i < amounts.length; i++) {
|
|
185
|
+
const callData = this.clearSwapIface.encodeFunctionData('previewSwap', [vaultAddress, srcToken.address, destToken.address, amounts[i]]);
|
|
186
|
+
calls.push({
|
|
187
|
+
target: this.config.swapAddress,
|
|
188
|
+
callData,
|
|
189
|
+
decodeFunction: (result) => {
|
|
190
|
+
const decoded = this.clearSwapIface.decodeFunctionResult('previewSwap', result);
|
|
191
|
+
return {
|
|
192
|
+
amountOut: BigInt(decoded.amountOut.toString()),
|
|
193
|
+
ious: BigInt(decoded.ious.toString()),
|
|
194
|
+
};
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
callInfos.push({
|
|
198
|
+
vaultAddress,
|
|
199
|
+
poolIdentifier,
|
|
200
|
+
isUnit: false,
|
|
201
|
+
amountIndex: i,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
const unitCallData = this.clearSwapIface.encodeFunctionData('previewSwap', [vaultAddress, srcToken.address, destToken.address, unitAmount]);
|
|
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
|
+
});
|
|
222
|
+
}
|
|
223
|
+
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
|
+
const poolPrices = [];
|
|
226
|
+
for (const [vaultAddress, vaultData] of vaultResults) {
|
|
227
|
+
if (vaultData.prices.every(p => p === 0n)) {
|
|
228
|
+
// Expected when no depeg - skip this vault
|
|
229
|
+
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
|
+
poolPrices.push({
|
|
236
|
+
prices: vaultData.prices,
|
|
237
|
+
unit,
|
|
238
|
+
data: {
|
|
239
|
+
vault: vaultAddress,
|
|
240
|
+
router: this.config.swapAddress,
|
|
241
|
+
},
|
|
242
|
+
poolIdentifiers: [vaultData.poolIdentifier],
|
|
243
|
+
exchange: this.dexKey,
|
|
244
|
+
gasCost: this.config.poolGasCost || CLEAR_GAS_COST,
|
|
245
|
+
poolAddresses: [vaultAddress],
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
if (poolPrices.length === 0) {
|
|
249
|
+
// Expected when no depeg exists
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
return poolPrices;
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
this.logger.error('Error in getPricesVolume:', error);
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// Not used in V6, but required by interface
|
|
260
|
+
getAdapterParam() {
|
|
261
|
+
return {
|
|
262
|
+
targetExchange: '0x',
|
|
263
|
+
payload: '0x',
|
|
264
|
+
networkFee: '0',
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, _side) {
|
|
268
|
+
const exchangeData = this.clearSwapIface.encodeFunctionData('swap', [
|
|
269
|
+
recipient,
|
|
270
|
+
data.vault,
|
|
271
|
+
srcToken,
|
|
272
|
+
destToken,
|
|
273
|
+
srcAmount,
|
|
274
|
+
destAmount,
|
|
275
|
+
false,
|
|
276
|
+
]);
|
|
277
|
+
return {
|
|
278
|
+
needWrapNative: this.needWrapNative,
|
|
279
|
+
dexFuncHasRecipient: true,
|
|
280
|
+
exchangeData,
|
|
281
|
+
targetExchange: data.router,
|
|
282
|
+
returnAmountPos: undefined,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
getCalldataGasCost(_poolPrices) {
|
|
286
|
+
return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
|
|
287
|
+
}
|
|
288
|
+
async getTopPoolsForToken(tokenAddress, limit) {
|
|
289
|
+
const vaultsWithToken = this.vaults.filter(vault => vault.tokens.some(t => t.address.toLowerCase() === tokenAddress.toLowerCase()));
|
|
290
|
+
if (vaultsWithToken.length === 0) {
|
|
291
|
+
return [];
|
|
292
|
+
}
|
|
293
|
+
const tokenInfo = vaultsWithToken[0].tokens.find(t => t.address.toLowerCase() === tokenAddress.toLowerCase());
|
|
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);
|
|
300
|
+
const poolLiquidities = vaultsWithToken
|
|
301
|
+
.map(vault => {
|
|
302
|
+
const connectorTokens = vault.tokens
|
|
303
|
+
.filter(t => t.address.toLowerCase() !== tokenAddress.toLowerCase())
|
|
304
|
+
.map(t => ({
|
|
305
|
+
address: t.address,
|
|
306
|
+
decimals: parseInt(t.decimals, 10),
|
|
307
|
+
}));
|
|
308
|
+
if (connectorTokens.length === 0) {
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
return {
|
|
312
|
+
exchange: this.dexKey,
|
|
313
|
+
address: vault.address,
|
|
314
|
+
connectorTokens,
|
|
315
|
+
liquidityUSD: tokenUsdPrice,
|
|
316
|
+
};
|
|
317
|
+
})
|
|
318
|
+
.filter((p) => p !== null);
|
|
319
|
+
return poolLiquidities
|
|
320
|
+
.sort((a, b) => b.liquidityUSD - a.liquidityUSD)
|
|
321
|
+
.slice(0, limit);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
exports.Clear = Clear;
|
|
325
|
+
//# sourceMappingURL=clear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/dex/clear/clear.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClearConfig = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
exports.ClearConfig = {
|
|
6
|
+
clear: {
|
|
7
|
+
[constants_1.Network.MAINNET]: {
|
|
8
|
+
factoryAddress: '0x8bF266ED803e474AE7Bf09ADB5ba2566c489223d',
|
|
9
|
+
swapAddress: '0xeb5AD3D93E59eFcbC6934caD2B48EB33BAf29745',
|
|
10
|
+
oracleAddress: '0x049ad7Ff0c6BdbaB86baf4b1A5a5cA975e234FCA',
|
|
11
|
+
accessManagerAddress: '0x20a22791923E69f0f27166B59A12aF01cA4E4AF8',
|
|
12
|
+
poolGasCost: 150_000,
|
|
13
|
+
feeCode: 0,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +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,aAAa,EAAE,4CAA4C;YAC3D,oBAAoB,EAAE,4CAA4C;YAClE,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,CAAC;SACX;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Address } from '../../types';
|
|
2
|
+
export type ClearData = {
|
|
3
|
+
vault: Address;
|
|
4
|
+
router: Address;
|
|
5
|
+
};
|
|
6
|
+
export interface DexParams {
|
|
7
|
+
factoryAddress: Address;
|
|
8
|
+
swapAddress: Address;
|
|
9
|
+
oracleAddress: Address;
|
|
10
|
+
accessManagerAddress?: Address;
|
|
11
|
+
poolGasCost?: number;
|
|
12
|
+
feeCode: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ClearVaultToken {
|
|
15
|
+
id: string;
|
|
16
|
+
address: string;
|
|
17
|
+
symbol: string;
|
|
18
|
+
decimals: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ClearVault {
|
|
21
|
+
id: string;
|
|
22
|
+
address: string;
|
|
23
|
+
tokens: ClearVaultToken[];
|
|
24
|
+
}
|
|
25
|
+
export interface PreviewSwapCallInfo {
|
|
26
|
+
vaultAddress: string;
|
|
27
|
+
poolIdentifier: string;
|
|
28
|
+
isUnit: boolean;
|
|
29
|
+
amountIndex: number;
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/clear/types.ts"],"names":[],"mappings":""}
|
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AllCurveForks = exports.DIRECT_METHOD_NAME_V6 = exports.DIRECT_METHOD_NAME = void 0;
|
|
4
4
|
const config_1 = require("./config");
|
|
5
|
-
const config_2 = require("./forks/
|
|
6
|
-
const config_3 = require("./forks/curve-forks/config");
|
|
5
|
+
const config_2 = require("./forks/curve-forks/config");
|
|
7
6
|
exports.DIRECT_METHOD_NAME = 'directCurveV1Swap';
|
|
8
7
|
exports.DIRECT_METHOD_NAME_V6 = 'swapExactAmountInOnCurveV1';
|
|
9
8
|
exports.AllCurveForks = [
|
|
10
9
|
...Object.keys(config_1.CurveV1Config),
|
|
11
|
-
...Object.keys(
|
|
12
|
-
...Object.keys(config_2.SwerveConfig),
|
|
10
|
+
...Object.keys(config_2.CurveForksConfig),
|
|
13
11
|
];
|
|
14
12
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/curve-v1/constants.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/curve-v1/constants.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,uDAA8D;AAEjD,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AACzC,QAAA,qBAAqB,GAAG,4BAA4B,CAAC;AAErD,QAAA,aAAa,GAAG;IAC3B,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAa,CAAC;IAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAgB,CAAC;CACjC,CAAC"}
|