@paraswap/dex-lib 4.8.10 → 4.8.11
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/{apex-defi/ApexDefiRouter.abi.json → BProtocol.json} +573 -538
- package/build/abi/Jarvis.json +1172 -0
- package/build/abi/{apex-defi/ApexDefiFactory.abi.json → MStableAsset.json} +781 -985
- package/build/abi/{apex-defi/ApexDefiWrapperFactory.abi.json → OneInchLp.json} +766 -569
- package/build/abi/Onebit.json +736 -0
- package/build/abi/Shell.json +1294 -0
- package/build/abi/TraderJoeV2Router.json +50 -0
- package/build/abi/wUSDM.json +757 -0
- package/build/abi/zrx.v2.json +1967 -0
- package/build/abi/zrx.v3.json +3454 -0
- package/build/abi/zrx.v4.json +2193 -0
- package/build/dex/OneInchLp.d.ts +24 -0
- package/build/dex/OneInchLp.js +43 -0
- package/build/dex/OneInchLp.js.map +1 -0
- package/build/dex/algebra-integral/config.js +1 -1
- package/build/dex/algebra-integral/config.js.map +1 -1
- package/build/dex/algebra-integral/forks/blackhole-cl.js.map +1 -1
- package/build/dex/bProtocol/bProtocol.d.ts +15 -0
- package/build/dex/bProtocol/bProtocol.js +56 -0
- package/build/dex/bProtocol/bProtocol.js.map +1 -0
- package/build/dex/bProtocol/types.d.ts +11 -0
- package/build/dex/bProtocol/types.js +8 -0
- package/build/dex/bProtocol/types.js.map +1 -0
- package/build/dex/balancer-v3/balancer-v3-pool.js +2 -2
- package/build/dex/balancer-v3/balancer-v3-pool.js.map +1 -1
- package/build/dex/cables/cables.js +1 -5
- package/build/dex/cables/cables.js.map +1 -1
- package/build/dex/curve-v1/pools/curve-metapool.js +58 -58
- package/build/dex/curve-v1/pools/curve-metapool.js.map +1 -1
- package/build/dex/fluid-dex/fluid-dex-liquidity-proxy.d.ts +1 -1
- package/build/dex/fluid-dex/fluid-dex-liquidity-proxy.js +2 -3
- package/build/dex/fluid-dex/fluid-dex-liquidity-proxy.js.map +1 -1
- package/build/dex/fluid-dex/fluid-dex-pool.js +1 -1
- package/build/dex/fluid-dex/fluid-dex-pool.js.map +1 -1
- package/build/dex/infusion/infusion-stable-pool.d.ts +1 -1
- package/build/dex/infusion/infusion-stable-pool.js +1 -1
- package/build/dex/infusion/infusion-stable-pool.js.map +1 -1
- package/build/dex/infusion/infusion.d.ts +3 -3
- package/build/dex/infusion/infusion.js +104 -65
- package/build/dex/infusion/infusion.js.map +1 -1
- package/build/dex/jarvis.d.ts +56 -0
- package/build/dex/jarvis.js +163 -0
- package/build/dex/jarvis.js.map +1 -0
- package/build/dex/lite-psm/lite-psm-event-pool.js +1 -1
- package/build/dex/lite-psm/lite-psm-event-pool.js.map +1 -1
- package/build/dex/mStable.d.ts +44 -0
- package/build/dex/mStable.js +75 -0
- package/build/dex/mStable.js.map +1 -0
- package/build/dex/onebit/onebit.d.ts +16 -0
- package/build/dex/onebit/onebit.js +61 -0
- package/build/dex/onebit/onebit.js.map +1 -0
- package/build/dex/onebit/types.d.ts +14 -0
- package/build/dex/onebit/types.js +8 -0
- package/build/dex/onebit/types.js.map +1 -0
- package/build/dex/{yo → se-vlr}/config.d.ts +1 -1
- package/build/dex/se-vlr/config.js +24 -0
- package/build/dex/se-vlr/config.js.map +1 -0
- package/build/dex/{stabull/stabull-pool.d.ts → se-vlr/se-vlr-pool.d.ts} +6 -13
- package/build/dex/se-vlr/se-vlr-pool.js +70 -0
- package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
- package/build/dex/se-vlr/se-vlr.d.ts +35 -0
- package/build/dex/se-vlr/se-vlr.js +131 -0
- package/build/dex/se-vlr/se-vlr.js.map +1 -0
- package/build/dex/se-vlr/types.d.ts +6 -0
- package/build/dex/{yo → se-vlr}/types.js.map +1 -1
- package/build/dex/shell.d.ts +25 -0
- package/build/dex/shell.js +41 -0
- package/build/dex/shell.js.map +1 -0
- package/build/dex/solidly/forks-override/aerodrome.d.ts +1 -1
- package/build/dex/solidly/forks-override/aerodrome.js +14 -18
- package/build/dex/solidly/forks-override/aerodrome.js.map +1 -1
- package/build/dex/trader-joe-v2.d.ts +40 -0
- package/build/dex/trader-joe-v2.js +74 -0
- package/build/dex/trader-joe-v2.js.map +1 -0
- package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
- package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
- package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
- package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -6
- package/build/dex/uniswap-v4/contract-math/Position.js +0 -29
- package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
- package/build/dex/{stabull → usual-bond}/config.d.ts +1 -1
- package/build/dex/usual-bond/config.js +13 -0
- package/build/dex/usual-bond/config.js.map +1 -0
- package/build/dex/usual-bond/types.d.ts +7 -0
- package/build/dex/{stabull → usual-bond}/types.js.map +1 -1
- package/build/dex/{aave-pt-to-underlying/aave-pt-to-underlying.d.ts → usual-bond/usual-bond.d.ts} +18 -23
- package/build/dex/usual-bond/usual-bond.js +176 -0
- package/build/dex/usual-bond/usual-bond.js.map +1 -0
- package/build/dex/usual-pp/pool.js +13 -11
- package/build/dex/usual-pp/pool.js.map +1 -1
- package/build/dex/wusdm/config.d.ts +3 -0
- package/build/dex/wusdm/config.js +43 -0
- package/build/dex/wusdm/config.js.map +1 -0
- package/build/dex/wusdm/constants.d.ts +2 -0
- package/build/dex/wusdm/constants.js +6 -0
- package/build/dex/wusdm/constants.js.map +1 -0
- package/build/dex/wusdm/types.d.ts +18 -0
- package/build/dex/wusdm/types.js +11 -0
- package/build/dex/wusdm/types.js.map +1 -0
- package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
- package/build/dex/wusdm/wusdm-pool.js +74 -0
- package/build/dex/wusdm/wusdm-pool.js.map +1 -0
- package/build/dex/wusdm/wusdm.d.ts +46 -0
- package/build/dex/wusdm/wusdm.js +243 -0
- package/build/dex/wusdm/wusdm.js.map +1 -0
- package/build/dex/zerox/config.d.ts +2 -0
- package/build/dex/zerox/config.js +33 -0
- package/build/dex/zerox/config.js.map +1 -0
- package/build/dex/zerox/index.d.ts +22 -0
- package/build/dex/zerox/index.js +225 -0
- package/build/dex/zerox/index.js.map +1 -0
- package/build/dex/zerox/order.d.ts +88 -0
- package/build/dex/zerox/order.js +53 -0
- package/build/dex/zerox/order.js.map +1 -0
- package/build/dex/zerox/types.d.ts +73 -0
- package/build/dex/zerox/types.js +21 -0
- package/build/dex/zerox/types.js.map +1 -0
- package/build/executor/Executor01BytecodeBuilder.js +2 -2
- package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor02BytecodeBuilder.js +2 -2
- package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
- package/package.json +1 -1
- package/build/abi/PendleRouterStatic.json +0 -19
- package/build/abi/apex-defi/ApexDefiToken.abi.json +0 -229
- package/build/abi/apex-defi/ApexDefiWrapper.abi.json +0 -92
- package/build/abi/clear/ClearFactory.json +0 -71
- package/build/abi/clear/ClearSwap.json +0 -334
- package/build/abi/clear/ClearVault.json +0 -20
- package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +0 -796
- package/build/abi/pendle/pendle-deployer.abi.json +0 -520
- package/build/abi/pendle/pendle-oracle.abi.json +0 -413
- package/build/abi/ring-v2/few-wrapped-token.json +0 -587
- package/build/abi/ring-v2/ring-v2-factory.json +0 -125
- package/build/abi/ring-v2/ring-v2-pool.json +0 -461
- package/build/abi/ring-v2/ring-v2-router.json +0 -332
- package/build/abi/stabull/stabull-curve.json +0 -738
- package/build/abi/stabull/stabull-router.json +0 -76
- package/build/abi/uniswap-v4/hooks/SpotDynamicFeeManager.json +0 -26
- package/build/abi/uniswap-v4/hooks/SpotHook.json +0 -54
- package/build/abi/uniswap-v4/hooks/SpotPolicyManager.json +0 -45
- package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +0 -682
- package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +0 -1335
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.d.ts +0 -29
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js +0 -153
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js.map +0 -1
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +0 -323
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +0 -1
- package/build/dex/aave-pt-to-underlying/config.d.ts +0 -3
- package/build/dex/aave-pt-to-underlying/config.js +0 -24
- package/build/dex/aave-pt-to-underlying/config.js.map +0 -1
- package/build/dex/aave-pt-to-underlying/constants.d.ts +0 -2
- package/build/dex/aave-pt-to-underlying/constants.js +0 -6
- package/build/dex/aave-pt-to-underlying/constants.js.map +0 -1
- package/build/dex/aave-pt-to-underlying/types.d.ts +0 -24
- package/build/dex/aave-pt-to-underlying/types.js.map +0 -1
- package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +0 -39
- package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +0 -244
- package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +0 -1
- package/build/dex/aave-pt-to-usdc/config.d.ts +0 -3
- package/build/dex/aave-pt-to-usdc/config.js +0 -47
- package/build/dex/aave-pt-to-usdc/config.js.map +0 -1
- package/build/dex/aave-pt-to-usdc/constants.d.ts +0 -2
- package/build/dex/aave-pt-to-usdc/constants.js +0 -6
- package/build/dex/aave-pt-to-usdc/constants.js.map +0 -1
- package/build/dex/aave-pt-to-usdc/types.d.ts +0 -22
- package/build/dex/aave-pt-to-usdc/types.js.map +0 -1
- package/build/dex/apex-defi/apex-defi-factory.d.ts +0 -26
- package/build/dex/apex-defi/apex-defi-factory.js +0 -53
- package/build/dex/apex-defi/apex-defi-factory.js.map +0 -1
- package/build/dex/apex-defi/apex-defi-pool.d.ts +0 -55
- package/build/dex/apex-defi/apex-defi-pool.js +0 -247
- package/build/dex/apex-defi/apex-defi-pool.js.map +0 -1
- package/build/dex/apex-defi/apex-defi-wrapper-factory.d.ts +0 -57
- package/build/dex/apex-defi/apex-defi-wrapper-factory.js +0 -250
- package/build/dex/apex-defi/apex-defi-wrapper-factory.js.map +0 -1
- package/build/dex/apex-defi/apex-defi.d.ts +0 -97
- package/build/dex/apex-defi/apex-defi.js +0 -1021
- package/build/dex/apex-defi/apex-defi.js.map +0 -1
- package/build/dex/apex-defi/config.d.ts +0 -4
- package/build/dex/apex-defi/config.js +0 -138
- package/build/dex/apex-defi/config.js.map +0 -1
- package/build/dex/apex-defi/types.d.ts +0 -32
- package/build/dex/apex-defi/types.js +0 -3
- package/build/dex/apex-defi/types.js.map +0 -1
- package/build/dex/apex-defi/utils.d.ts +0 -46
- package/build/dex/apex-defi/utils.js +0 -133
- package/build/dex/apex-defi/utils.js.map +0 -1
- package/build/dex/clear/clear-factory.d.ts +0 -33
- package/build/dex/clear/clear-factory.js +0 -123
- package/build/dex/clear/clear-factory.js.map +0 -1
- package/build/dex/clear/clear.d.ts +0 -53
- package/build/dex/clear/clear.js +0 -311
- package/build/dex/clear/clear.js.map +0 -1
- package/build/dex/clear/config.d.ts +0 -3
- package/build/dex/clear/config.js +0 -14
- package/build/dex/clear/config.js.map +0 -1
- package/build/dex/clear/types.d.ts +0 -18
- package/build/dex/clear/types.js +0 -3
- package/build/dex/clear/types.js.map +0 -1
- package/build/dex/maker-psm/maker-psm-event-pool.d.ts +0 -43
- package/build/dex/maker-psm/maker-psm-event-pool.js +0 -132
- package/build/dex/maker-psm/maker-psm-event-pool.js.map +0 -1
- package/build/dex/miro-migrator/miro-migrator-state.d.ts +0 -27
- package/build/dex/miro-migrator/miro-migrator-state.js +0 -89
- package/build/dex/miro-migrator/miro-migrator-state.js.map +0 -1
- package/build/dex/stabull/config.js +0 -177
- package/build/dex/stabull/config.js.map +0 -1
- package/build/dex/stabull/stabull-pool.js +0 -113
- package/build/dex/stabull/stabull-pool.js.map +0 -1
- package/build/dex/stabull/stabull.d.ts +0 -55
- package/build/dex/stabull/stabull.js +0 -286
- package/build/dex/stabull/stabull.js.map +0 -1
- package/build/dex/stabull/types.d.ts +0 -21
- package/build/dex/stabull/types.js +0 -3
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +0 -4
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +0 -56
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/arena.d.ts +0 -6
- package/build/dex/uniswap-v4/hooks/arena.js +0 -10
- package/build/dex/uniswap-v4/hooks/arena.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.d.ts +0 -0
- package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js +0 -2
- package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +0 -7
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +0 -28
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +0 -2
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +0 -7
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +0 -28
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
- package/build/dex/uniswap-v4/hooks/fee-hook/types.js +0 -2
- package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/index.d.ts +0 -1
- package/build/dex/uniswap-v4/hooks/index.js +0 -18
- package/build/dex/uniswap-v4/hooks/index.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/spot.d.ts +0 -15
- package/build/dex/uniswap-v4/hooks/spot.js +0 -109
- package/build/dex/uniswap-v4/hooks/spot.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/template.d.ts +0 -150
- package/build/dex/uniswap-v4/hooks/template.js +0 -104
- package/build/dex/uniswap-v4/hooks/template.js.map +0 -1
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +0 -26
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +0 -75
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +0 -1
- package/build/dex/usual/usual-usdc-usdc.d.ts +0 -17
- package/build/dex/usual/usual-usdc-usdc.js +0 -59
- package/build/dex/usual/usual-usdc-usdc.js.map +0 -1
- package/build/dex/yo/config.js +0 -21
- package/build/dex/yo/config.js.map +0 -1
- package/build/dex/yo/types.d.ts +0 -13
- package/build/dex/yo/types.js +0 -3
- package/build/dex/yo/yo-pool.d.ts +0 -13
- package/build/dex/yo/yo-pool.js +0 -26
- package/build/dex/yo/yo-pool.js.map +0 -1
- package/build/dex/yo/yo.d.ts +0 -39
- package/build/dex/yo/yo.js +0 -248
- package/build/dex/yo/yo.js.map +0 -1
- package/build/implementations/api-paraswap-sdk.d.ts +0 -25
- package/build/implementations/api-paraswap-sdk.js +0 -102
- package/build/implementations/api-paraswap-sdk.js.map +0 -1
- /package/build/dex/{aave-pt-to-underlying → se-vlr}/types.js +0 -0
- /package/build/dex/{aave-pt-to-usdc → usual-bond}/types.js +0 -0
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import { Logger, Token, Address, PoolPrices, AdapterExchangeParam, PoolLiquidity, ExchangePrices, DexExchangeParam } from '../../types';
|
|
3
|
-
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
4
|
-
import { IDex } from '../idex';
|
|
5
|
-
import { SimpleExchange } from '../simple-exchange';
|
|
6
|
-
import { ClearData, DexParams } from './types';
|
|
7
|
-
import { Network, SwapSide } from '../../constants';
|
|
8
|
-
import { NumberAsString } from '@paraswap/core';
|
|
9
|
-
import { ClearFactory } from './clear-factory';
|
|
10
|
-
/**
|
|
11
|
-
* Clear DEX Integration for ParaSwap
|
|
12
|
-
*
|
|
13
|
-
* Clear is a depeg arbitrage protocol for stablecoins
|
|
14
|
-
* - Vaults contain N tokens (multi-token, not pairs)
|
|
15
|
-
* - Pricing via ClearSwap.previewSwap() - returns 0 when no depeg
|
|
16
|
-
* - Discovery via StatefulEventSubscriber (getters + NewClearVault events)
|
|
17
|
-
* - Each (vault, tokenA, tokenB) combination = one "pool" for ParaSwap
|
|
18
|
-
*/
|
|
19
|
-
export declare class Clear extends SimpleExchange implements IDex<ClearData> {
|
|
20
|
-
readonly network: Network;
|
|
21
|
-
readonly dexKey: string;
|
|
22
|
-
readonly dexHelper: IDexHelper;
|
|
23
|
-
logger: Logger;
|
|
24
|
-
protected config: DexParams;
|
|
25
|
-
protected factory: ClearFactory;
|
|
26
|
-
readonly hasConstantPriceLargeAmounts = false;
|
|
27
|
-
readonly isFeeOnTransferSupported = false;
|
|
28
|
-
static dexKeysWithNetwork: {
|
|
29
|
-
key: string;
|
|
30
|
-
networks: Network[];
|
|
31
|
-
}[];
|
|
32
|
-
readonly clearSwapIface: Interface;
|
|
33
|
-
readonly clearVaultIface: Interface;
|
|
34
|
-
private vaults;
|
|
35
|
-
constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
|
|
36
|
-
getAdapters(_side: SwapSide): null;
|
|
37
|
-
initializePricing(blockNumber: number): Promise<void>;
|
|
38
|
-
getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
39
|
-
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<ClearData>>;
|
|
40
|
-
getAdapterParam(): AdapterExchangeParam;
|
|
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
|
-
*/
|
|
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>;
|
|
52
|
-
getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
|
|
53
|
-
}
|
package/build/dex/clear/clear.js
DELETED
|
@@ -1,311 +0,0 @@
|
|
|
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 ClearVault_json_1 = __importDefault(require("../../abi/clear/ClearVault.json"));
|
|
48
|
-
const clear_factory_1 = require("./clear-factory");
|
|
49
|
-
const decoders_1 = require("../../lib/decoders");
|
|
50
|
-
const utils_2 = require("../../executor/utils");
|
|
51
|
-
const CLEAR_GAS_COST = 150_000;
|
|
52
|
-
/**
|
|
53
|
-
* Clear DEX Integration for ParaSwap
|
|
54
|
-
*
|
|
55
|
-
* Clear is a depeg arbitrage protocol for stablecoins
|
|
56
|
-
* - Vaults contain N tokens (multi-token, not pairs)
|
|
57
|
-
* - Pricing via ClearSwap.previewSwap() - returns 0 when no depeg
|
|
58
|
-
* - Discovery via StatefulEventSubscriber (getters + NewClearVault events)
|
|
59
|
-
* - Each (vault, tokenA, tokenB) combination = one "pool" for ParaSwap
|
|
60
|
-
*/
|
|
61
|
-
class Clear extends simple_exchange_1.SimpleExchange {
|
|
62
|
-
network;
|
|
63
|
-
dexKey;
|
|
64
|
-
dexHelper;
|
|
65
|
-
logger;
|
|
66
|
-
config;
|
|
67
|
-
factory;
|
|
68
|
-
hasConstantPriceLargeAmounts = false;
|
|
69
|
-
isFeeOnTransferSupported = false;
|
|
70
|
-
static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.ClearConfig);
|
|
71
|
-
clearSwapIface = new abi_1.Interface(ClearSwap_json_1.default);
|
|
72
|
-
clearVaultIface = new abi_1.Interface(ClearVault_json_1.default);
|
|
73
|
-
vaults = [];
|
|
74
|
-
constructor(network, dexKey, dexHelper) {
|
|
75
|
-
super(dexHelper, dexKey);
|
|
76
|
-
this.network = network;
|
|
77
|
-
this.dexKey = dexKey;
|
|
78
|
-
this.dexHelper = dexHelper;
|
|
79
|
-
this.config = config_1.ClearConfig[dexKey][network];
|
|
80
|
-
this.logger = dexHelper.getLogger(dexKey);
|
|
81
|
-
this.factory = new clear_factory_1.ClearFactory(dexKey, this.config, network, dexHelper, this.logger);
|
|
82
|
-
}
|
|
83
|
-
getAdapters(_side) {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
async initializePricing(blockNumber) {
|
|
87
|
-
await this.factory.initialize(blockNumber);
|
|
88
|
-
}
|
|
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;
|
|
97
|
-
return addrs.includes(src) && addrs.includes(dest);
|
|
98
|
-
});
|
|
99
|
-
return matchingVaults.map(vault => `${this.dexKey}_${vault.address}_${srcToken.address}_${destToken.address}`.toLowerCase());
|
|
100
|
-
}
|
|
101
|
-
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
|
|
102
|
-
// Only SELL side supported
|
|
103
|
-
if (side === constants_1.SwapSide.BUY) {
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
const poolIdentifiers = limitPools ||
|
|
107
|
-
(await this.getPoolIdentifiers(srcToken, destToken, side, blockNumber));
|
|
108
|
-
if (poolIdentifiers.length === 0) {
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
try {
|
|
112
|
-
const calls = [];
|
|
113
|
-
const vaultInfos = [];
|
|
114
|
-
for (const poolIdentifier of poolIdentifiers) {
|
|
115
|
-
const vaultAddress = poolIdentifier.split('_')[1];
|
|
116
|
-
const startIdx = calls.length;
|
|
117
|
-
for (const amount of amounts.slice(1)) {
|
|
118
|
-
calls.push({
|
|
119
|
-
target: this.config.swapAddress,
|
|
120
|
-
callData: this.clearSwapIface.encodeFunctionData('previewSwap', [
|
|
121
|
-
vaultAddress,
|
|
122
|
-
srcToken.address,
|
|
123
|
-
destToken.address,
|
|
124
|
-
amount,
|
|
125
|
-
]),
|
|
126
|
-
decodeFunction: (result) => result.amountOut.toBigInt(),
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
vaultInfos.push({ address: vaultAddress, poolIdentifier, startIdx });
|
|
130
|
-
}
|
|
131
|
-
const results = await this.dexHelper.multiWrapper.tryAggregate(false, calls, blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
|
|
132
|
-
const poolPrices = [];
|
|
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))
|
|
142
|
-
continue;
|
|
143
|
-
poolPrices.push({
|
|
144
|
-
prices,
|
|
145
|
-
unit: (0, utils_1.getBigIntPow)(destToken.decimals),
|
|
146
|
-
data: { vault: address },
|
|
147
|
-
poolIdentifiers: [poolIdentifier],
|
|
148
|
-
exchange: this.dexKey,
|
|
149
|
-
gasCost: this.config.poolGasCost || CLEAR_GAS_COST,
|
|
150
|
-
poolAddresses: [address],
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
return poolPrices.length > 0 ? poolPrices : null;
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
this.logger.error(`getPricesVolume error: ${error}`);
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
// Not used in V6, but required by interface
|
|
161
|
-
getAdapterParam() {
|
|
162
|
-
return {
|
|
163
|
-
targetExchange: '0x',
|
|
164
|
-
payload: '0x',
|
|
165
|
-
networkFee: '0',
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, _side) {
|
|
169
|
-
const exchangeData = this.clearSwapIface.encodeFunctionData('swap', [
|
|
170
|
-
recipient,
|
|
171
|
-
data.vault,
|
|
172
|
-
srcToken,
|
|
173
|
-
destToken,
|
|
174
|
-
srcAmount,
|
|
175
|
-
destAmount,
|
|
176
|
-
false,
|
|
177
|
-
]);
|
|
178
|
-
return {
|
|
179
|
-
needWrapNative: this.needWrapNative,
|
|
180
|
-
dexFuncHasRecipient: true,
|
|
181
|
-
exchangeData,
|
|
182
|
-
targetExchange: this.config.swapAddress,
|
|
183
|
-
returnAmountPos: (0, utils_2.extractReturnAmountPosition)(this.clearSwapIface, 'swap', 'amountOut'),
|
|
184
|
-
};
|
|
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
|
-
*/
|
|
190
|
-
getCalldataGasCost(_poolPrices) {
|
|
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 = [...new Set(vaults.flatMap(v => v.tokens))];
|
|
212
|
-
const decimalCalls = uniqueTokens.map(token => ({
|
|
213
|
-
target: token,
|
|
214
|
-
callData: '0x313ce567', // decimals()
|
|
215
|
-
decodeFunction: (result) => BigInt((0, decoders_1.uint8ToNumber)(result)),
|
|
216
|
-
}));
|
|
217
|
-
// Build tokenAssets(tokenAddress) calls for each token in each vault
|
|
218
|
-
const tokenAssetsCalls = [];
|
|
219
|
-
const tokenAssetsMap = [];
|
|
220
|
-
for (let i = 0; i < vaults.length; i++) {
|
|
221
|
-
for (const token of vaults[i].tokens) {
|
|
222
|
-
tokenAssetsCalls.push({
|
|
223
|
-
target: vaults[i].address,
|
|
224
|
-
callData: this.clearVaultIface.encodeFunctionData('tokenAssets', [
|
|
225
|
-
token,
|
|
226
|
-
]),
|
|
227
|
-
decodeFunction: decoders_1.uint256ToBigInt,
|
|
228
|
-
});
|
|
229
|
-
tokenAssetsMap.push({ vaultIdx: i, tokenAddress: token });
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
const results = await this.dexHelper.multiWrapper.tryAggregate(false, [...decimalCalls, ...tokenAssetsCalls], blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
|
|
233
|
-
const decimalsOffset = uniqueTokens.length;
|
|
234
|
-
const tokenDecimals = {};
|
|
235
|
-
for (let i = 0; i < decimalsOffset; i++) {
|
|
236
|
-
const result = results[i];
|
|
237
|
-
tokenDecimals[uniqueTokens[i]] = result.success
|
|
238
|
-
? Number(result.returnData)
|
|
239
|
-
: 18;
|
|
240
|
-
}
|
|
241
|
-
// Group tokenAssets results by vault index
|
|
242
|
-
const vaultTokenAssets = vaults.map(() => ({}));
|
|
243
|
-
for (let i = 0; i < tokenAssetsMap.length; i++) {
|
|
244
|
-
const { vaultIdx, tokenAddress } = tokenAssetsMap[i];
|
|
245
|
-
const result = results[decimalsOffset + i];
|
|
246
|
-
if (result.success) {
|
|
247
|
-
vaultTokenAssets[vaultIdx][tokenAddress.toLowerCase()] =
|
|
248
|
-
result.returnData;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
this.vaults = vaults.map((vault, i) => ({
|
|
252
|
-
address: vault.address,
|
|
253
|
-
tokens: vault.tokens.map(t => ({
|
|
254
|
-
address: t,
|
|
255
|
-
decimals: tokenDecimals[t.toLowerCase()] ?? 18,
|
|
256
|
-
})),
|
|
257
|
-
tokenAssets: vaultTokenAssets[i],
|
|
258
|
-
}));
|
|
259
|
-
}
|
|
260
|
-
async getTopPoolsForToken(tokenAddress, limit) {
|
|
261
|
-
const tokenAddrLower = tokenAddress.toLowerCase();
|
|
262
|
-
const vaultsWithToken = this.vaults.filter(vault => vault.tokens.some(t => t.address.toLowerCase() === tokenAddrLower));
|
|
263
|
-
if (vaultsWithToken.length === 0) {
|
|
264
|
-
return [];
|
|
265
|
-
}
|
|
266
|
-
// Build a flat list of [tokenAddress, assets] for all tokens across all vaults
|
|
267
|
-
const tokenAmountPairs = [];
|
|
268
|
-
const vaultTokenCounts = [];
|
|
269
|
-
for (const vault of vaultsWithToken) {
|
|
270
|
-
vaultTokenCounts.push(vault.tokens.length);
|
|
271
|
-
for (const t of vault.tokens) {
|
|
272
|
-
const addr = t.address.toLowerCase();
|
|
273
|
-
tokenAmountPairs.push([t.address, vault.tokenAssets[addr] ?? null]);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
const usdAmounts = await this.dexHelper.getUsdTokenAmounts(tokenAmountPairs);
|
|
277
|
-
// Map per-token USD amounts to PoolLiquidity entries
|
|
278
|
-
let offset = 0;
|
|
279
|
-
const poolLiquidities = vaultsWithToken
|
|
280
|
-
.map((vault, i) => {
|
|
281
|
-
const count = vaultTokenCounts[i];
|
|
282
|
-
const tokenUsdMap = {};
|
|
283
|
-
for (let j = 0; j < count; j++) {
|
|
284
|
-
const addr = vault.tokens[j].address.toLowerCase();
|
|
285
|
-
tokenUsdMap[addr] = usdAmounts[offset + j];
|
|
286
|
-
}
|
|
287
|
-
offset += count;
|
|
288
|
-
const connectorTokens = vault.tokens
|
|
289
|
-
.filter(t => t.address.toLowerCase() !== tokenAddrLower)
|
|
290
|
-
.map(t => ({
|
|
291
|
-
address: t.address,
|
|
292
|
-
decimals: t.decimals ?? 18,
|
|
293
|
-
liquidityUSD: tokenUsdMap[t.address.toLowerCase()],
|
|
294
|
-
}));
|
|
295
|
-
if (connectorTokens.length === 0)
|
|
296
|
-
return null;
|
|
297
|
-
return {
|
|
298
|
-
exchange: this.dexKey,
|
|
299
|
-
address: vault.address,
|
|
300
|
-
connectorTokens,
|
|
301
|
-
liquidityUSD: tokenUsdMap[tokenAddrLower] ?? 0,
|
|
302
|
-
};
|
|
303
|
-
})
|
|
304
|
-
.filter((p) => p !== null);
|
|
305
|
-
return poolLiquidities
|
|
306
|
-
.sort((a, b) => b.liquidityUSD - a.liquidityUSD)
|
|
307
|
-
.slice(0, limit);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
exports.Clear = Clear;
|
|
311
|
-
//# sourceMappingURL=clear.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/dex/clear/clear.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
poolGasCost: 150_000,
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,18 +0,0 @@
|
|
|
1
|
-
import { Address, Token } from '../../types';
|
|
2
|
-
export type ClearData = {
|
|
3
|
-
vault: Address;
|
|
4
|
-
};
|
|
5
|
-
export interface DexParams {
|
|
6
|
-
factoryAddress: Address;
|
|
7
|
-
swapAddress: Address;
|
|
8
|
-
poolGasCost?: number;
|
|
9
|
-
}
|
|
10
|
-
export type PoolState = {
|
|
11
|
-
address: Address;
|
|
12
|
-
tokens: Address[];
|
|
13
|
-
}[];
|
|
14
|
-
export interface ClearVault {
|
|
15
|
-
address: Address;
|
|
16
|
-
tokens: Token[];
|
|
17
|
-
tokenAssets: Record<string, bigint>;
|
|
18
|
-
}
|
package/build/dex/clear/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/clear/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { DeepReadonly } from 'ts-essentials';
|
|
2
|
-
import { Address, Log, Logger } from '../../types';
|
|
3
|
-
import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
|
|
4
|
-
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
5
|
-
import { PoolState, PoolConfig } from './types';
|
|
6
|
-
export declare class MakerPsmEventPool extends StatefulEventSubscriber<PoolState> {
|
|
7
|
-
protected network: number;
|
|
8
|
-
protected dexHelper: IDexHelper;
|
|
9
|
-
poolConfig: PoolConfig;
|
|
10
|
-
protected vatAddress: Address;
|
|
11
|
-
handlers: {
|
|
12
|
-
[event: string]: (event: any, pool: PoolState, log: Log) => PoolState;
|
|
13
|
-
};
|
|
14
|
-
logDecoder: (log: Log) => any;
|
|
15
|
-
to18ConversionFactor: bigint;
|
|
16
|
-
bytes32Tout: string;
|
|
17
|
-
bytes32Tin: string;
|
|
18
|
-
constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, poolConfig: PoolConfig, vatAddress: Address);
|
|
19
|
-
handleFile(event: any, pool: PoolState, log: Log): PoolState;
|
|
20
|
-
handleSellGem(event: any, pool: PoolState, log: Log): PoolState;
|
|
21
|
-
handleBuyGem(event: any, pool: PoolState, log: Log): PoolState;
|
|
22
|
-
getIdentifier(): string;
|
|
23
|
-
/**
|
|
24
|
-
* The function is called every time any of the subscribed
|
|
25
|
-
* addresses release log. The function accepts the current
|
|
26
|
-
* state, updates the state according to the log, and returns
|
|
27
|
-
* the updated state.
|
|
28
|
-
* @param state - Current state of event subscriber
|
|
29
|
-
* @param log - Log released by one of the subscribed addresses
|
|
30
|
-
* @returns Updates state of the event subscriber after the log
|
|
31
|
-
*/
|
|
32
|
-
protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
33
|
-
/**
|
|
34
|
-
* The function generates state using on-chain calls. This
|
|
35
|
-
* function is called to regenerate state if the event based
|
|
36
|
-
* system fails to fetch events and the local state is no
|
|
37
|
-
* more correct.
|
|
38
|
-
* @param blockNumber - Blocknumber for which the state should
|
|
39
|
-
* should be generated
|
|
40
|
-
* @returns state of the event subscriber at blocknumber
|
|
41
|
-
*/
|
|
42
|
-
generateState(blockNumber: number): Promise<Readonly<PoolState>>;
|
|
43
|
-
}
|
|
@@ -1,132 +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.MakerPsmEventPool = void 0;
|
|
7
|
-
const abi_1 = require("@ethersproject/abi");
|
|
8
|
-
const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
|
|
9
|
-
const utils_1 = require("../../utils");
|
|
10
|
-
const psm_json_1 = __importDefault(require("../../abi/maker-psm/psm.json"));
|
|
11
|
-
const vat_json_1 = __importDefault(require("../../abi/maker-psm/vat.json"));
|
|
12
|
-
const vatInterface = new abi_1.Interface(vat_json_1.default);
|
|
13
|
-
const psmInterface = new abi_1.Interface(psm_json_1.default);
|
|
14
|
-
const bigIntify = (b) => BigInt(b.toString());
|
|
15
|
-
async function getOnChainState(multiContract, poolConfigs, vatAddress, blockNumber) {
|
|
16
|
-
const callData = poolConfigs
|
|
17
|
-
.map(c => [
|
|
18
|
-
{
|
|
19
|
-
target: c.psmAddress,
|
|
20
|
-
callData: psmInterface.encodeFunctionData('tin', []),
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
target: c.psmAddress,
|
|
24
|
-
callData: psmInterface.encodeFunctionData('tout', []),
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
target: vatAddress,
|
|
28
|
-
callData: vatInterface.encodeFunctionData('ilks', [c.identifier]),
|
|
29
|
-
},
|
|
30
|
-
])
|
|
31
|
-
.flat();
|
|
32
|
-
const res = await multiContract.methods
|
|
33
|
-
.aggregate(callData)
|
|
34
|
-
.call({}, blockNumber);
|
|
35
|
-
let i = 0;
|
|
36
|
-
return poolConfigs.map(c => {
|
|
37
|
-
const tin = bigIntify(psmInterface.decodeFunctionResult('tin', res.returnData[i++])[0]);
|
|
38
|
-
const tout = bigIntify(psmInterface.decodeFunctionResult('tout', res.returnData[i++])[0]);
|
|
39
|
-
const ilks = vatInterface.decodeFunctionResult('ilks', res.returnData[i++]);
|
|
40
|
-
const Art = bigIntify(ilks.Art);
|
|
41
|
-
const line = bigIntify(ilks.line);
|
|
42
|
-
const rate = bigIntify(ilks.rate);
|
|
43
|
-
return {
|
|
44
|
-
tin,
|
|
45
|
-
tout,
|
|
46
|
-
Art,
|
|
47
|
-
line,
|
|
48
|
-
rate,
|
|
49
|
-
};
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
class MakerPsmEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
53
|
-
network;
|
|
54
|
-
dexHelper;
|
|
55
|
-
poolConfig;
|
|
56
|
-
vatAddress;
|
|
57
|
-
handlers = {};
|
|
58
|
-
logDecoder;
|
|
59
|
-
to18ConversionFactor;
|
|
60
|
-
bytes32Tout = '0x746f757400000000000000000000000000000000000000000000000000000000'; // bytes32('tout')
|
|
61
|
-
bytes32Tin = '0x74696e0000000000000000000000000000000000000000000000000000000000'; // bytes32('tin')
|
|
62
|
-
constructor(parentName, network, dexHelper, logger, poolConfig, vatAddress) {
|
|
63
|
-
super(parentName, poolConfig.identifier, dexHelper, logger);
|
|
64
|
-
this.network = network;
|
|
65
|
-
this.dexHelper = dexHelper;
|
|
66
|
-
this.poolConfig = poolConfig;
|
|
67
|
-
this.vatAddress = vatAddress;
|
|
68
|
-
this.logDecoder = (log) => psmInterface.parseLog(log);
|
|
69
|
-
this.addressesSubscribed = [poolConfig.psmAddress];
|
|
70
|
-
this.to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - poolConfig.gem.decimals);
|
|
71
|
-
// Add handlers
|
|
72
|
-
this.handlers['File'] = this.handleFile.bind(this);
|
|
73
|
-
this.handlers['SellGem'] = this.handleSellGem.bind(this);
|
|
74
|
-
this.handlers['BuyGem'] = this.handleBuyGem.bind(this);
|
|
75
|
-
}
|
|
76
|
-
handleFile(event, pool, log) {
|
|
77
|
-
if (event.args.what === this.bytes32Tin) {
|
|
78
|
-
pool.tin = bigIntify(event.args.data);
|
|
79
|
-
}
|
|
80
|
-
else if (event.args.what === this.bytes32Tout) {
|
|
81
|
-
pool.tout = bigIntify(event.args.data);
|
|
82
|
-
}
|
|
83
|
-
return pool;
|
|
84
|
-
}
|
|
85
|
-
handleSellGem(event, pool, log) {
|
|
86
|
-
pool.Art += bigIntify(event.args.value) * this.to18ConversionFactor;
|
|
87
|
-
return pool;
|
|
88
|
-
}
|
|
89
|
-
handleBuyGem(event, pool, log) {
|
|
90
|
-
pool.Art -= bigIntify(event.args.value) * this.to18ConversionFactor;
|
|
91
|
-
return pool;
|
|
92
|
-
}
|
|
93
|
-
getIdentifier() {
|
|
94
|
-
return `${this.parentName}_${this.poolConfig.psmAddress}`.toLowerCase();
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* The function is called every time any of the subscribed
|
|
98
|
-
* addresses release log. The function accepts the current
|
|
99
|
-
* state, updates the state according to the log, and returns
|
|
100
|
-
* the updated state.
|
|
101
|
-
* @param state - Current state of event subscriber
|
|
102
|
-
* @param log - Log released by one of the subscribed addresses
|
|
103
|
-
* @returns Updates state of the event subscriber after the log
|
|
104
|
-
*/
|
|
105
|
-
processLog(state, log) {
|
|
106
|
-
try {
|
|
107
|
-
const event = this.logDecoder(log);
|
|
108
|
-
if (event.name in this.handlers) {
|
|
109
|
-
return this.handlers[event.name](event, state, log);
|
|
110
|
-
}
|
|
111
|
-
return state;
|
|
112
|
-
}
|
|
113
|
-
catch (e) {
|
|
114
|
-
this.logger.error(`Error_${this.parentName}_processLog could not parse the log with topic ${log.topics}:`, e);
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* The function generates state using on-chain calls. This
|
|
120
|
-
* function is called to regenerate state if the event based
|
|
121
|
-
* system fails to fetch events and the local state is no
|
|
122
|
-
* more correct.
|
|
123
|
-
* @param blockNumber - Blocknumber for which the state should
|
|
124
|
-
* should be generated
|
|
125
|
-
* @returns state of the event subscriber at blocknumber
|
|
126
|
-
*/
|
|
127
|
-
async generateState(blockNumber) {
|
|
128
|
-
return (await getOnChainState(this.dexHelper.multiContract, [this.poolConfig], this.vatAddress, blockNumber))[0];
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
exports.MakerPsmEventPool = MakerPsmEventPool;
|
|
132
|
-
//# sourceMappingURL=maker-psm-event-pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"maker-psm-event-pool.js","sourceRoot":"","sources":["../../../src/dex/maker-psm/maker-psm-event-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import { DeepReadonly } from 'ts-essentials';
|
|
3
|
-
import { Log, Logger } from '../../types';
|
|
4
|
-
import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
|
|
5
|
-
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
6
|
-
import { MiroMigratorState } from './types';
|
|
7
|
-
export declare class MiroMigratorEventState extends StatefulEventSubscriber<MiroMigratorState> {
|
|
8
|
-
readonly parentName: string;
|
|
9
|
-
protected network: number;
|
|
10
|
-
protected dexHelper: IDexHelper;
|
|
11
|
-
protected migratorAddress: string;
|
|
12
|
-
protected xyzAddress: string;
|
|
13
|
-
protected transferTopic: string;
|
|
14
|
-
protected migratorInterface: Interface;
|
|
15
|
-
protected xyzInterface: Interface;
|
|
16
|
-
handlers: {
|
|
17
|
-
[event: string]: (event: any, state: DeepReadonly<MiroMigratorState>, log: Readonly<Log>) => DeepReadonly<MiroMigratorState> | null;
|
|
18
|
-
};
|
|
19
|
-
logDecoder: (log: Log) => any;
|
|
20
|
-
addressesSubscribed: string[];
|
|
21
|
-
constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, migratorAddress: string, xyzAddress: string, transferTopic: string, migratorInterface?: Interface, xyzInterface?: Interface);
|
|
22
|
-
protected processLog(state: DeepReadonly<MiroMigratorState>, log: Readonly<Log>): Promise<DeepReadonly<MiroMigratorState> | null>;
|
|
23
|
-
generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<MiroMigratorState>>;
|
|
24
|
-
getOrGenerateState(blockNumber: number): Promise<MiroMigratorState>;
|
|
25
|
-
handleTransferTo(event: any, state: DeepReadonly<MiroMigratorState>, log: Readonly<Log>): Promise<DeepReadonly<MiroMigratorState>>;
|
|
26
|
-
handleTransferFrom(event: any, state: DeepReadonly<MiroMigratorState>, log: Readonly<Log>): Promise<DeepReadonly<MiroMigratorState>>;
|
|
27
|
-
}
|