@paraswap/dex-lib 2.49.2 → 2.50.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.
Files changed (151) hide show
  1. package/build/abi/algebra/AlgebraPool.abi.json +727 -0
  2. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  3. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  4. package/build/dex/algebra/algebra-pool-v1_1.d.ts +3 -2
  5. package/build/dex/algebra/algebra-pool-v1_1.js +3 -2
  6. package/build/dex/algebra/algebra-pool-v1_1.js.map +1 -1
  7. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.d.ts +16 -0
  8. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.js +26 -0
  9. package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.js.map +1 -0
  10. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.d.ts +54 -0
  11. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.js +356 -0
  12. package/build/dex/algebra/algebra-pool-v1_9_directional_fee.js.map +1 -0
  13. package/build/dex/algebra/algebra-pool.d.ts +46 -0
  14. package/build/dex/algebra/algebra-pool.js +336 -0
  15. package/build/dex/algebra/algebra-pool.js.map +1 -0
  16. package/build/dex/algebra/algebra.d.ts +2 -1
  17. package/build/dex/algebra/algebra.js +6 -1
  18. package/build/dex/algebra/algebra.js.map +1 -1
  19. package/build/dex/algebra/config.js +16 -0
  20. package/build/dex/algebra/config.js.map +1 -1
  21. package/build/dex/algebra/types.d.ts +1 -1
  22. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  23. package/build/dex/quickswap/camelot-v3.js +19 -0
  24. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  25. package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
  26. package/build/dex/quickswap/zyberswap-v3.js +19 -0
  27. package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
  28. package/build/dex/uniswap-v2/rebase-tokens.json +7 -0
  29. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  30. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +64 -0
  31. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  32. package/package.json +1 -1
  33. package/src/dex/algebra/algebra-e2e.test.ts +22 -0
  34. package/src/dex/algebra/algebra-pool-v1_1.ts +3 -2
  35. package/src/dex/algebra/algebra-pool-v1_9_bidirectional_fee.ts +55 -0
  36. package/src/dex/algebra/algebra.ts +12 -3
  37. package/src/dex/algebra/config.ts +18 -0
  38. package/src/dex/algebra/types.ts +1 -1
  39. package/build/abi/Redstone.json +0 -739
  40. package/build/abi/angle/stagToken.json +0 -963
  41. package/build/abi/angle-transmuter/MorphoOracle.json +0 -193
  42. package/build/abi/angle-transmuter/MorphoVault.json +0 -2506
  43. package/build/abi/angle-transmuter/Pyth.json +0 -1534
  44. package/build/abi/angle-transmuter/Transmuter.json +0 -1711
  45. package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
  46. package/build/abi/smardex/smardex-factory.json +0 -185
  47. package/build/abi/smardex/smardex-pool.json +0 -578
  48. package/build/abi/smardex/smardex-router.json +0 -648
  49. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
  50. package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
  51. package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
  52. package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
  53. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -55
  54. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -183
  55. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
  56. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -50
  57. package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -280
  58. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
  59. package/build/dex/angle-staked-stable/config.d.ts +0 -4
  60. package/build/dex/angle-staked-stable/config.js +0 -46
  61. package/build/dex/angle-staked-stable/config.js.map +0 -1
  62. package/build/dex/angle-staked-stable/types.d.ts +0 -17
  63. package/build/dex/angle-staked-stable/types.js +0 -3
  64. package/build/dex/angle-staked-stable/types.js.map +0 -1
  65. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -61
  66. package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -415
  67. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
  68. package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -59
  69. package/build/dex/angle-transmuter/angle-transmuter.js +0 -262
  70. package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
  71. package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
  72. package/build/dex/angle-transmuter/backedOracle.js +0 -56
  73. package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
  74. package/build/dex/angle-transmuter/config.d.ts +0 -4
  75. package/build/dex/angle-transmuter/config.js +0 -30
  76. package/build/dex/angle-transmuter/config.js.map +0 -1
  77. package/build/dex/angle-transmuter/constants.d.ts +0 -77
  78. package/build/dex/angle-transmuter/constants.js +0 -94
  79. package/build/dex/angle-transmuter/constants.js.map +0 -1
  80. package/build/dex/angle-transmuter/morphoOracle.d.ts +0 -42
  81. package/build/dex/angle-transmuter/morphoOracle.js +0 -179
  82. package/build/dex/angle-transmuter/morphoOracle.js.map +0 -1
  83. package/build/dex/angle-transmuter/morphoVault.d.ts +0 -19
  84. package/build/dex/angle-transmuter/morphoVault.js +0 -78
  85. package/build/dex/angle-transmuter/morphoVault.js.map +0 -1
  86. package/build/dex/angle-transmuter/pyth.d.ts +0 -19
  87. package/build/dex/angle-transmuter/pyth.js +0 -70
  88. package/build/dex/angle-transmuter/pyth.js.map +0 -1
  89. package/build/dex/angle-transmuter/redstone.d.ts +0 -20
  90. package/build/dex/angle-transmuter/redstone.js +0 -73
  91. package/build/dex/angle-transmuter/redstone.js.map +0 -1
  92. package/build/dex/angle-transmuter/transmuter.d.ts +0 -52
  93. package/build/dex/angle-transmuter/transmuter.js +0 -374
  94. package/build/dex/angle-transmuter/transmuter.js.map +0 -1
  95. package/build/dex/angle-transmuter/types.d.ts +0 -188
  96. package/build/dex/angle-transmuter/types.js +0 -33
  97. package/build/dex/angle-transmuter/types.js.map +0 -1
  98. package/build/dex/angle-transmuter/utils.d.ts +0 -9
  99. package/build/dex/angle-transmuter/utils.js +0 -252
  100. package/build/dex/angle-transmuter/utils.js.map +0 -1
  101. package/build/dex/smardex/subgraph-queries.d.ts +0 -1
  102. package/build/dex/smardex/subgraph-queries.js +0 -17
  103. package/build/dex/smardex/subgraph-queries.js.map +0 -1
  104. package/build/dex/smardex/usd-reserves.d.ts +0 -23
  105. package/build/dex/smardex/usd-reserves.js +0 -86
  106. package/build/dex/smardex/usd-reserves.js.map +0 -1
  107. package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
  108. package/build/dex/trader-joe-v2-1-2/config.js +0 -47
  109. package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
  110. package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
  111. package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
  112. package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
  113. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
  114. package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
  115. package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
  116. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
  117. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
  118. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
  119. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
  120. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
  121. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
  122. package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
  123. package/build/dex/trader-joe-v2-1-2/types.js +0 -9
  124. package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
  125. package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
  126. package/build/dex/trader-joe-v2_1/config.js +0 -47
  127. package/build/dex/trader-joe-v2_1/config.js.map +0 -1
  128. package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
  129. package/build/dex/trader-joe-v2_1/constants.js +0 -22
  130. package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
  131. package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
  132. package/build/dex/trader-joe-v2_1/math/index.js +0 -291
  133. package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
  134. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  135. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
  136. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
  137. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
  138. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
  139. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
  140. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
  141. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
  142. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
  143. package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
  144. package/build/dex/trader-joe-v2_1/types.js +0 -9
  145. package/build/dex/trader-joe-v2_1/types.js.map +0 -1
  146. package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
  147. package/build/dex/wombat/wombat-pool-poller.js +0 -164
  148. package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
  149. package/build/dex-helper/RedisBatcher.d.ts +0 -20
  150. package/build/dex-helper/RedisBatcher.js +0 -75
  151. package/build/dex-helper/RedisBatcher.js.map +0 -1
@@ -1,53 +0,0 @@
1
- import { AsyncOrSync } from 'ts-essentials';
2
- import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger } from '../../types';
3
- import { SwapSide, Network } from '../../constants';
4
- import { IDex } from '../idex';
5
- import { IDexHelper } from '../../dex-helper/idex-helper';
6
- import { DexParams, TraderJoeV2_1Data } from './types';
7
- import { SimpleExchange } from '../simple-exchange';
8
- import { TraderJoeV2_1EventPool } from './trader-joe-v2-1-2-pool';
9
- import { Interface } from '@ethersproject/abi';
10
- import { Contract } from 'web3-eth-contract';
11
- export declare class TraderJoeV2_1 extends SimpleExchange implements IDex<TraderJoeV2_1Data> {
12
- readonly network: Network;
13
- readonly dexKey: string;
14
- readonly dexHelper: IDexHelper;
15
- protected adapters: import("../../types").AdapterMappings;
16
- static dexKeysWithNetwork: {
17
- key: string;
18
- networks: Network[];
19
- }[];
20
- protected config: DexParams;
21
- readonly hasConstantPriceLargeAmounts = false;
22
- readonly needWrapNative = true;
23
- readonly isFeeOnTransferSupported = false;
24
- readonly eventPools: Record<string, TraderJoeV2_1EventPool | null>;
25
- exchangeRouterInterface: Interface;
26
- factory: Contract;
27
- pair: Contract;
28
- factoryAddress: string;
29
- routerAddress: string;
30
- stateMulticallAddress: string;
31
- logger: Logger;
32
- constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings);
33
- initializePricing(blockNumber: number): Promise<void>;
34
- getAdapters(side: SwapSide): {
35
- name: string;
36
- index: number;
37
- }[] | null;
38
- get supportedBinSteps(): bigint[];
39
- getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
40
- getPoolIdentifier(srcAddress: Address, destAddress: Address, binStep: bigint): string;
41
- getPricesVolume(from: Token, to: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<TraderJoeV2_1Data>>;
42
- protected computePrices(pool: TraderJoeV2_1EventPool, amounts: bigint[], side: SwapSide, fromAddress: Address, blockNumber: number): bigint[];
43
- private addPool;
44
- private getPool;
45
- private _sortTokens;
46
- private _getLoweredAddresses;
47
- getCalldataGasCost(poolPrices: PoolPrices<TraderJoeV2_1Data>): number | number[];
48
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: TraderJoeV2_1Data, side: SwapSide): AdapterExchangeParam;
49
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: TraderJoeV2_1Data, side: SwapSide): Promise<SimpleExchangeParam>;
50
- updatePoolState(): Promise<void>;
51
- getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
52
- releaseResources(): AsyncOrSync<void>;
53
- }
@@ -1,307 +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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.TraderJoeV2_1 = void 0;
30
- const constants_1 = require("../../constants");
31
- const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
32
- const utils_1 = require("../../utils");
33
- const types_1 = require("./types");
34
- const simple_exchange_1 = require("../simple-exchange");
35
- const config_1 = require("./config");
36
- const trader_joe_v2_1_2_pool_1 = require("./trader-joe-v2-1-2-pool");
37
- const abi_1 = require("@ethersproject/abi");
38
- const RouterABI_json_1 = __importDefault(require("../../abi/trader-joe-v2_1/RouterABI.json"));
39
- // import TraderJoeV21RouterABI from '../../abi/TraderJoeV21Router.json';
40
- const FactoryABI_json_1 = __importDefault(require("../../abi/trader-joe-v2_1/FactoryABI.json"));
41
- const constants_2 = require("./constants");
42
- // import _, { add } from 'lodash';
43
- class TraderJoeV2_1 extends simple_exchange_1.SimpleExchange {
44
- constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}) {
45
- super(dexHelper, dexKey);
46
- this.network = network;
47
- this.dexKey = dexKey;
48
- this.dexHelper = dexHelper;
49
- this.adapters = adapters;
50
- this.hasConstantPriceLargeAmounts = false;
51
- this.needWrapNative = true;
52
- this.isFeeOnTransferSupported = false;
53
- this.eventPools = {};
54
- this.logger = dexHelper.getLogger(dexKey);
55
- this.config = config_1.TraderJoeV2_1Config[dexKey][network];
56
- this.routerAddress = this.config.router;
57
- this.factoryAddress = this.config.factory;
58
- this.stateMulticallAddress = this.config.stateMulticall;
59
- this.factory = new this.dexHelper.web3Provider.eth.Contract(FactoryABI_json_1.default, this.config.factory);
60
- this.pair = new this.dexHelper.web3Provider.eth.Contract(constants_2.MinLBPairAbi);
61
- this.exchangeRouterInterface = new abi_1.Interface(RouterABI_json_1.default);
62
- }
63
- // Initialize pricing is called once in the start of
64
- // pricing service. It is intended to setup the integration
65
- // for pricing requests. It is optional for a DEX to
66
- // implement this function
67
- async initializePricing(blockNumber) {
68
- // TODO: complete me!
69
- }
70
- // Returns the list of contract adapters (name and index)
71
- // for a buy/sell. Return null if there are no adapters.
72
- getAdapters(side) {
73
- return this.adapters[side] ? this.adapters[side] : null;
74
- }
75
- // TODO: Get it from the factory
76
- get supportedBinSteps() {
77
- return constants_2.SUPPORTED_BIN_STEPS;
78
- }
79
- // Returns list of pool identifiers that can be used
80
- // for a given swap. poolIdentifiers must be unique
81
- // across DEXes. It is recommended to use
82
- // ${dexKey}_${poolAddress} as a poolIdentifier
83
- // TODO: It works incorrectly now, fix it
84
- async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
85
- const _srcToken = this.dexHelper.config.wrapETH(srcToken);
86
- const _destToken = this.dexHelper.config.wrapETH(destToken);
87
- const [_srcAddress, _destAddress] = this._getLoweredAddresses(_srcToken, _destToken);
88
- if (_srcAddress === _destAddress)
89
- return [];
90
- const pools = (await Promise.all(this.supportedBinSteps.map(async (binStep) => this.getPool(_srcAddress, _destAddress, binStep, blockNumber)))).filter(pool => pool.isValid());
91
- if (pools.length === 0)
92
- return [];
93
- return pools.map(pool => this.getPoolIdentifier(_srcAddress, _destAddress, pool.binStep));
94
- }
95
- getPoolIdentifier(srcAddress, destAddress, binStep) {
96
- const tokenAddresses = this._sortTokens(srcAddress, destAddress).join('_');
97
- return `${this.dexKey}_${tokenAddresses}_${binStep}`;
98
- }
99
- // Returns pool prices for amounts.
100
- // If limitPools is defined only pools in limitPools
101
- // should be used. If limitPools is undefined then
102
- // any pools can be used.
103
- async getPricesVolume(from, to, amounts, side, blockNumber, limitPools) {
104
- try {
105
- const _srcToken = this.dexHelper.config.wrapETH(from);
106
- const _destToken = this.dexHelper.config.wrapETH(to);
107
- const [_srcAddress, _destAddress] = this._getLoweredAddresses(_srcToken, _destToken);
108
- if (_srcAddress === _destAddress)
109
- return null;
110
- let selectedPools = [];
111
- if (!limitPools) {
112
- selectedPools = (await Promise.all(this.supportedBinSteps.map(async (binStep) => {
113
- return this.getPool(_srcAddress, _destAddress, binStep, blockNumber);
114
- }))).filter(utils_1.isTruthy);
115
- }
116
- else {
117
- const pairIdentifierWithoutBinStep = this.getPoolIdentifier(_srcAddress, _destAddress, 0n).slice(0, -1);
118
- const poolIdentifiers = limitPools.filter(identifier => identifier.startsWith(pairIdentifierWithoutBinStep));
119
- selectedPools = (await Promise.all(poolIdentifiers.map(async (identifier) => {
120
- let locallyFoundPool = this.eventPools[identifier];
121
- if (locallyFoundPool)
122
- return locallyFoundPool;
123
- const [, srcAddress, destAddress, binStep] = identifier.split('_');
124
- const newlyFetchedPool = await this.getPool(srcAddress, destAddress, BigInt(binStep), blockNumber);
125
- return newlyFetchedPool;
126
- }))).filter(utils_1.isTruthy);
127
- }
128
- if (selectedPools.length === 0)
129
- return null;
130
- const filteredPools = selectedPools.filter(pool => pool.isValid());
131
- const promises = [];
132
- const isSell = side === constants_1.SwapSide.SELL;
133
- const unitAmount = (0, utils_1.getBigIntPow)(isSell ? _srcToken.decimals : _destToken.decimals);
134
- this.logger.info('POOOOOLS:', filteredPools);
135
- for (const pool of filteredPools) {
136
- const [unit, ...prices] = this.computePrices(pool, [unitAmount, ...amounts], side, _srcAddress, blockNumber);
137
- promises.push({
138
- prices,
139
- unit,
140
- data: {
141
- tokenIn: _srcAddress,
142
- tokenOut: _destAddress,
143
- binStep: pool.binStep.toString(),
144
- },
145
- poolAddresses: [pool.poolAddress],
146
- exchange: this.dexKey,
147
- /** @todo specify gas cost */
148
- gasCost: 260 * 1000,
149
- poolIdentifier: this.getPoolIdentifier(_srcAddress, _destAddress, pool.binStep),
150
- });
151
- }
152
- const result = await Promise.all(promises);
153
- this.logger.info('PRICE_VOLUME_result', result);
154
- return result;
155
- }
156
- catch (error) {
157
- this.logger.error(`Error_getPricesVolume ${from.symbol || from.address}, ${to.symbol || to.address}, ${side}:`, error);
158
- return null;
159
- }
160
- }
161
- computePrices(pool, amounts, side, fromAddress, blockNumber) {
162
- return amounts.map(amount => {
163
- return side === constants_1.SwapSide.SELL
164
- ? pool.getSwapOut(amount, fromAddress, blockNumber)
165
- : pool.getSwapIn(amount, fromAddress, blockNumber);
166
- });
167
- }
168
- // TODO: Check if it's non-existent pool
169
- async addPool(srcAddress, destAddress, binStep, blockNumber) {
170
- const [_srcAddress, _destAddress] = this._sortTokens(srcAddress, destAddress);
171
- const pool = new trader_joe_v2_1_2_pool_1.TraderJoeV2_1EventPool(this.dexKey, this.network, this.dexHelper, _srcAddress, _destAddress, binStep, this.factoryAddress, this.stateMulticallAddress, this.logger);
172
- await pool.initialize(blockNumber, {
173
- initCallback: (state) => {
174
- // need to push poolAddress so that we subscribeToLogs in StatefulEventSubscriber
175
- pool.addressesSubscribed[0] = state.pairAddress;
176
- pool.poolAddress = state.pairAddress;
177
- pool.initFailed = false;
178
- pool.initRetryAttemptCount = 0;
179
- },
180
- });
181
- this.eventPools[this.getPoolIdentifier(srcAddress, destAddress, binStep)] =
182
- pool;
183
- return pool;
184
- }
185
- // protected async findPools(
186
- // srcTokenAddress: Address,
187
- // destTokenAddress: Address,
188
- // blockNumber: number,
189
- // ): Promise<Address[]> {
190
- // const pools: Address[] = [];
191
- // for (const [poolAddress, pool] of Object.entries(this.eventPools)) {
192
- // const state = await pool.getState(blockNumber);
193
- // if (!state) {
194
- // continue;
195
- // }
196
- // if (
197
- // state &&
198
- // !state.params.paused &&
199
- // state.asset[srcTokenAddress] &&
200
- // state.asset[destTokenAddress]
201
- // ) {
202
- // pools.push(poolAddress);
203
- // }
204
- // }
205
- // return pools;
206
- // }
207
- async getPool(srcAddress, destAddress, binStep, blockNumber) {
208
- const poolIdentifier = this.getPoolIdentifier(srcAddress, destAddress, binStep);
209
- let pool = this.eventPools[poolIdentifier];
210
- if (pool)
211
- return pool;
212
- pool = await this.addPool(srcAddress, destAddress, binStep, blockNumber);
213
- return pool;
214
- }
215
- _sortTokens(srcAddress, destAddress) {
216
- return [srcAddress.toLowerCase(), destAddress.toLowerCase()].sort((a, b) => a > b ? 1 : -1);
217
- }
218
- _getLoweredAddresses(srcToken, destToken) {
219
- return [srcToken.address.toLowerCase(), destToken.address.toLowerCase()];
220
- }
221
- // Returns estimated gas cost of calldata for this DEX in multiSwap
222
- getCalldataGasCost(poolPrices) {
223
- return (CALLDATA_GAS_COST.DEX_OVERHEAD +
224
- CALLDATA_GAS_COST.LENGTH_SMALL +
225
- // ParentStruct header
226
- CALLDATA_GAS_COST.OFFSET_SMALL +
227
- // ParentStruct -> path header
228
- CALLDATA_GAS_COST.OFFSET_SMALL +
229
- // ParentStruct -> deadline
230
- CALLDATA_GAS_COST.TIMESTAMP +
231
- // ParentStruct -> path (20+3+20 = 43 = 32+11 bytes)
232
- CALLDATA_GAS_COST.LENGTH_SMALL +
233
- CALLDATA_GAS_COST.FULL_WORD +
234
- CALLDATA_GAS_COST.wordNonZeroBytes(11));
235
- }
236
- // Encode params required by the exchange adapter
237
- // Used for multiSwap, buy & megaSwap
238
- // Hint: abiCoder.encodeParameter() could be useful
239
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
240
- let payload = this.abiCoder.encodeParameters(['tuple(tuple(uint256[],uint8[],address[]),uint256)'], [
241
- [
242
- [
243
- [
244
- data.binStep, // _pairBinSteps: uint256[]
245
- ],
246
- [
247
- 2, // _versions: uint8[]
248
- ],
249
- [
250
- data.tokenIn,
251
- data.tokenOut, // _tokenPath: address[]
252
- ],
253
- ],
254
- (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(), // _deadline: uint256
255
- ],
256
- ]);
257
- return {
258
- targetExchange: this.routerAddress,
259
- payload,
260
- networkFee: '0',
261
- };
262
- }
263
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
264
- const swapFunction = side === constants_1.SwapSide.SELL
265
- ? types_1.TraderJoeV2RouterFunctions.swapExactTokensForTokens
266
- : types_1.TraderJoeV2RouterFunctions.swapTokensForExactTokens;
267
- const swapFunctionParams = side === constants_1.SwapSide.SELL
268
- ? [
269
- srcAmount,
270
- destAmount,
271
- [[data.binStep], ['2'], [srcToken, destToken]],
272
- this.augustusAddress,
273
- (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
274
- ]
275
- : [
276
- destAmount,
277
- srcAmount,
278
- [[data.binStep], ['2'], [srcToken, destToken]],
279
- this.augustusAddress,
280
- (0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
281
- ];
282
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
283
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, this.routerAddress);
284
- }
285
- // This is called once before getTopPoolsForToken is
286
- // called for multiple tokens. This can be helpful to
287
- // update common state required for calculating
288
- // getTopPoolsForToken. It is optional for a DEX
289
- // to implement this
290
- async updatePoolState() {
291
- // TODO: complete me!
292
- }
293
- // Returns list of top pools based on liquidity. Max
294
- // limit number pools should be returned.
295
- async getTopPoolsForToken(tokenAddress, limit) {
296
- //TODO: complete me!
297
- return [];
298
- }
299
- // This is optional function in case if your implementation has acquired any resources
300
- // you need to release for graceful shutdown. For example, it may be any interval timer
301
- releaseResources() {
302
- // TODO: complete me!
303
- }
304
- }
305
- exports.TraderJoeV2_1 = TraderJoeV2_1;
306
- TraderJoeV2_1.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.TraderJoeV2_1Config);
307
- //# sourceMappingURL=trader-joe-v2-1-2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trader-joe-v2-1-2.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.ts"],"names":[],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- import { Address } from '../../types';
2
- import { BigNumber } from 'ethers';
3
- import { NumberAsString } from '@paraswap/core';
4
- export declare type Bin = {
5
- id: bigint;
6
- reserveX: bigint;
7
- reserveY: bigint;
8
- };
9
- export declare type PoolState = {
10
- tokenX: Address;
11
- tokenY: Address;
12
- binStep: bigint;
13
- bins: Bin[];
14
- pairAddress: string;
15
- blockTimestamp: bigint;
16
- reserves: {
17
- reserveX: bigint;
18
- reserveY: bigint;
19
- };
20
- activeId: bigint;
21
- protocolFees: {
22
- protocolFeeX: bigint;
23
- protocolFeeY: bigint;
24
- };
25
- staticFeeParameters: {
26
- baseFactor: bigint;
27
- filterPeriod: bigint;
28
- decayPeriod: bigint;
29
- reductionFactor: bigint;
30
- variableFeeControl: bigint;
31
- protocolShare: bigint;
32
- maxVolatilityAccumulator: bigint;
33
- };
34
- variableFeeParameters: {
35
- volatilityAccumulator: bigint;
36
- volatilityReference: bigint;
37
- idReference: bigint;
38
- timeOfLastUpdate: bigint;
39
- };
40
- };
41
- export declare type DecodedStateMultiCallResult = {};
42
- export declare type TraderJoeV2_1Data = {
43
- tokenIn: string;
44
- tokenOut: string;
45
- binStep: string;
46
- };
47
- export declare type DexParams = {
48
- factory: Address;
49
- router: Address;
50
- stateMulticall: Address;
51
- };
52
- export declare type LBPairsAvailable = {
53
- binStep: BigNumber;
54
- LBPair: string;
55
- createdByOwner: boolean;
56
- ignoredForRouting: boolean;
57
- tokenX: string;
58
- };
59
- export declare type RouterPath = [
60
- pairBinSteps: NumberAsString[],
61
- versions: NumberAsString[],
62
- tokenPath: Address[]
63
- ];
64
- export declare type TraderJoeV2RouterSellParams = [
65
- _amountIn: NumberAsString,
66
- _amountOutMin: NumberAsString,
67
- _routerPath: RouterPath,
68
- to: Address,
69
- _deadline: string
70
- ];
71
- export declare type TraderJoeV2RouterBuyParams = [
72
- _amountOut: NumberAsString,
73
- _amountInMax: NumberAsString,
74
- _routerPath: RouterPath,
75
- to: Address,
76
- _deadline: string
77
- ];
78
- export declare type TraderJoeV2RouterParam = TraderJoeV2RouterSellParams | TraderJoeV2RouterBuyParams;
79
- export declare enum TraderJoeV2RouterFunctions {
80
- swapExactTokensForTokens = "swapExactTokensForTokens",
81
- swapTokensForExactTokens = "swapTokensForExactTokens"
82
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TraderJoeV2RouterFunctions = void 0;
4
- var TraderJoeV2RouterFunctions;
5
- (function (TraderJoeV2RouterFunctions) {
6
- TraderJoeV2RouterFunctions["swapExactTokensForTokens"] = "swapExactTokensForTokens";
7
- TraderJoeV2RouterFunctions["swapTokensForExactTokens"] = "swapTokensForExactTokens";
8
- })(TraderJoeV2RouterFunctions = exports.TraderJoeV2RouterFunctions || (exports.TraderJoeV2RouterFunctions = {}));
9
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/types.ts"],"names":[],"mappings":";;;AAyGA,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,mFAAqD,CAAA;IACrD,mFAAqD,CAAA;AACvD,CAAC,EAHW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAGrC"}
@@ -1,4 +0,0 @@
1
- import { DexParams } from './types';
2
- import { DexConfigMap, AdapterMappings } from '../../types';
3
- export declare const TraderJoeV2_1Config: DexConfigMap<DexParams>;
4
- export declare const Adapters: Record<number, AdapterMappings>;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Adapters = exports.TraderJoeV2_1Config = void 0;
4
- const constants_1 = require("../../constants");
5
- exports.TraderJoeV2_1Config = {
6
- TraderJoeV2_1: {
7
- [constants_1.Network.MAINNET]: {
8
- factory: '0xDC8d77b69155c7E68A95a4fb0f06a71FF90B943a',
9
- router: '0x9A93a421b74F1c5755b83dD2C211614dC419C44b',
10
- stateMulticall: '',
11
- },
12
- [constants_1.Network.ARBITRUM]: {
13
- factory: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
14
- router: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
15
- stateMulticall: '',
16
- },
17
- [constants_1.Network.BSC]: {
18
- factory: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
19
- router: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
20
- stateMulticall: '',
21
- },
22
- [constants_1.Network.AVALANCHE]: {
23
- factory: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
24
- router: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
25
- stateMulticall: '0xBAEeb4540f59d30E567a5B563CC0c4587eDd9366',
26
- },
27
- },
28
- };
29
- exports.Adapters = {
30
- [constants_1.Network.MAINNET]: {
31
- [constants_1.SwapSide.SELL]: [{ name: 'Adapter04', index: 5 }],
32
- [constants_1.SwapSide.BUY]: [{ name: 'BuyAdapter02', index: 1 }],
33
- },
34
- [constants_1.Network.ARBITRUM]: {
35
- [constants_1.SwapSide.SELL]: [{ name: 'ArbitrumAdapter02', index: 4 }],
36
- [constants_1.SwapSide.BUY]: [{ name: 'ArbitrumBuyAdapter', index: 7 }],
37
- },
38
- [constants_1.Network.BSC]: {
39
- [constants_1.SwapSide.SELL]: [{ name: 'BscAdapter02', index: 5 }],
40
- [constants_1.SwapSide.BUY]: [{ name: 'BscBuyAdapter', index: 6 }],
41
- },
42
- [constants_1.Network.AVALANCHE]: {
43
- [constants_1.SwapSide.SELL]: [{ name: 'AvalancheAdapter02', index: 4 }],
44
- [constants_1.SwapSide.BUY]: [{ name: 'AvalancheBuyAdapter', index: 5 }],
45
- },
46
- };
47
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2_1/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,mBAAmB,GAA4B;IAC1D,aAAa,EAAE;QACb,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,cAAc,EAAE,EAAE;SACnB;QACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;YAClB,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,cAAc,EAAE,EAAE;SACnB;QACD,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;YACb,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,cAAc,EAAE,EAAE;SACnB;QACD,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE;YACnB,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,cAAc,EAAE,4CAA4C;SAC7D;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAAoC;IACvD,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;QACjB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAClD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrD;IACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;QAClB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1D,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAC3D;IACD,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;QACb,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACrD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACtD;IACD,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE;QACnB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC3D,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAC5D;CACF,CAAC"}
@@ -1,20 +0,0 @@
1
- export declare const TRADER_JOE_V2_CHUNKS = 10;
2
- export declare const TRADER_JOE_V2_QUOTE_GASLIMIT = 200000;
3
- export declare const EMPTY_POOL_CACHE_TTL: number;
4
- export declare const POPULATED_POOL_CACHE_TTL: number;
5
- export declare const BASIS_POINT_MAX = 10000n;
6
- export declare const SCALE_OFFSET = 128n;
7
- export declare const PRECISION: bigint;
8
- export declare const CACHE_PREFIX = "dl";
9
- export declare const MinLBPairAbi: {
10
- inputs: never[];
11
- name: string;
12
- outputs: {
13
- internalType: string;
14
- name: string;
15
- type: string;
16
- }[];
17
- stateMutability: string;
18
- type: string;
19
- }[];
20
- export declare const SUPPORTED_BIN_STEPS: bigint[];
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SUPPORTED_BIN_STEPS = exports.MinLBPairAbi = exports.CACHE_PREFIX = exports.PRECISION = exports.SCALE_OFFSET = exports.BASIS_POINT_MAX = exports.POPULATED_POOL_CACHE_TTL = exports.EMPTY_POOL_CACHE_TTL = exports.TRADER_JOE_V2_QUOTE_GASLIMIT = exports.TRADER_JOE_V2_CHUNKS = void 0;
4
- exports.TRADER_JOE_V2_CHUNKS = 10;
5
- exports.TRADER_JOE_V2_QUOTE_GASLIMIT = 200000;
6
- exports.EMPTY_POOL_CACHE_TTL = 60 * 60;
7
- exports.POPULATED_POOL_CACHE_TTL = 12 * 60 * 60;
8
- exports.BASIS_POINT_MAX = 10000n;
9
- exports.SCALE_OFFSET = 128n;
10
- exports.PRECISION = BigInt(1e18);
11
- exports.CACHE_PREFIX = 'dl';
12
- exports.MinLBPairAbi = [
13
- {
14
- inputs: [],
15
- name: 'getTokenX',
16
- outputs: [{ internalType: 'contract IERC20', name: '', type: 'address' }],
17
- stateMutability: 'view',
18
- type: 'function',
19
- },
20
- ];
21
- exports.SUPPORTED_BIN_STEPS = [1n, 2n, 5n, 10n, 15n, 20n, 25n, 50n, 100n];
22
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2_1/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAC1B,QAAA,4BAA4B,GAAG,MAAO,CAAC;AAEvC,QAAA,oBAAoB,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/B,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAExC,QAAA,eAAe,GAAG,MAAO,CAAC;AAC1B,QAAA,YAAY,GAAG,IAAI,CAAC;AACpB,QAAA,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,YAAY,GAAG,IAAI,CAAC;AAEpB,QAAA,YAAY,GAAG;IAC1B;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import { DeepReadonly } from 'ts-essentials';
2
- import { PoolState } from '../types';
3
- export declare class TraderJoeV21Math {
4
- private readonly BASIS_POINT_MAX;
5
- private readonly SCALE_OFFSET;
6
- private readonly PRECISION;
7
- private readonly REAL_ID_SHIFT;
8
- private readonly SCALE;
9
- private readonly MAX_FEE;
10
- getSwapIn(state: DeepReadonly<PoolState>, amountOut: bigint, binStep: bigint, swapForY: boolean): bigint;
11
- getSwapOut(state: DeepReadonly<PoolState>, amountIn: bigint, binStep: bigint, swapForY: boolean): bigint;
12
- updateVolatilityAccumulator(state: DeepReadonly<PoolState>, newIdReference: bigint, newVolatilityReference: bigint): bigint;
13
- getAmountsFromReserves(state: DeepReadonly<PoolState>, binStep: bigint, binId: bigint, amountInLeft: bigint, binReserves: bigint, swapForY: boolean, volatilityAccumulator: bigint): [bigint, bigint, bigint];
14
- getPriceFromId(binStep: bigint, id: bigint): bigint;
15
- getBase(binStep: bigint): bigint;
16
- pow(x: bigint, y: bigint): bigint;
17
- getTotalFee(state: PoolState, binStep: bigint, newVolatilityAccumulator: bigint): bigint;
18
- getBaseFee(state: DeepReadonly<PoolState>, binStep: bigint): bigint;
19
- getVariableFee(state: DeepReadonly<PoolState>, binStep: bigint, newVolatilityAccumulator: bigint): bigint;
20
- getFeeAmount(maxAmountIn: bigint, totalFee: bigint): bigint;
21
- getFeeAmountFrom(amountInWithFees: bigint, totalFee: bigint): bigint;
22
- verifyFee(fee: bigint): void;
23
- shiftDivRoundUp(x: bigint, offset: bigint, denominator: bigint): bigint;
24
- shiftDivRoundDown(x: bigint, offset: bigint, denominator: bigint): bigint;
25
- getEndOfDivRoundDown(x: bigint, y: bigint, denominator: bigint, prod0: bigint, prod1: bigint): bigint;
26
- manualShiftRight(x: bigint, shift: bigint): bigint;
27
- mulMod(x: bigint, y: bigint, mod: bigint): bigint;
28
- improvePrecision(denominator: bigint, inverse: bigint): bigint;
29
- mulShiftRoundUp(x: bigint, y: bigint, offset: bigint): bigint;
30
- mulShiftRoundDown(x: bigint, y: bigint, offset: bigint): bigint;
31
- getMulProds(x: bigint, y: bigint): [bigint, bigint];
32
- updateReferences(state: DeepReadonly<PoolState>): {
33
- idReference: bigint;
34
- volatilityReference: bigint;
35
- };
36
- updateVolatilityReference(state: DeepReadonly<PoolState>): bigint;
37
- }