@paraswap/dex-lib 4.7.0 → 4.7.1

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 (128) hide show
  1. package/build/dex/hashflow/hashflow.js +37 -30
  2. package/build/dex/hashflow/hashflow.js.map +1 -1
  3. package/build/dex/idle-dao/idle-dao.d.ts +1 -0
  4. package/build/dex/idle-dao/idle-dao.js +23 -11
  5. package/build/dex/idle-dao/idle-dao.js.map +1 -1
  6. package/build/dex/maker-psm/maker-psm.d.ts +4 -41
  7. package/build/dex/maker-psm/maker-psm.js +40 -143
  8. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  9. package/package.json +1 -1
  10. package/build/abi/PendleRouterStatic.json +0 -19
  11. package/build/abi/apex-defi/ApexDefiFactory.abi.json +0 -1749
  12. package/build/abi/apex-defi/ApexDefiRouter.abi.json +0 -1120
  13. package/build/abi/apex-defi/ApexDefiToken.abi.json +0 -229
  14. package/build/abi/apex-defi/ApexDefiWrapper.abi.json +0 -92
  15. package/build/abi/apex-defi/ApexDefiWrapperFactory.abi.json +0 -1107
  16. package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +0 -796
  17. package/build/abi/pendle/pendle-deployer.abi.json +0 -520
  18. package/build/abi/pendle/pendle-oracle.abi.json +0 -413
  19. package/build/abi/ring-v2/few-wrapped-token.json +0 -587
  20. package/build/abi/ring-v2/ring-v2-factory.json +0 -125
  21. package/build/abi/ring-v2/ring-v2-pool.json +0 -461
  22. package/build/abi/ring-v2/ring-v2-router.json +0 -332
  23. package/build/abi/stabull/stabull-curve.json +0 -738
  24. package/build/abi/stabull/stabull-router.json +0 -76
  25. package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +0 -682
  26. package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +0 -1335
  27. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.d.ts +0 -29
  28. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js +0 -153
  29. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js.map +0 -1
  30. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.d.ts +0 -40
  31. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +0 -323
  32. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +0 -1
  33. package/build/dex/aave-pt-to-underlying/config.d.ts +0 -3
  34. package/build/dex/aave-pt-to-underlying/config.js +0 -24
  35. package/build/dex/aave-pt-to-underlying/config.js.map +0 -1
  36. package/build/dex/aave-pt-to-underlying/constants.d.ts +0 -2
  37. package/build/dex/aave-pt-to-underlying/constants.js +0 -6
  38. package/build/dex/aave-pt-to-underlying/constants.js.map +0 -1
  39. package/build/dex/aave-pt-to-underlying/types.d.ts +0 -24
  40. package/build/dex/aave-pt-to-underlying/types.js +0 -3
  41. package/build/dex/aave-pt-to-underlying/types.js.map +0 -1
  42. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +0 -39
  43. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +0 -244
  44. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +0 -1
  45. package/build/dex/aave-pt-to-usdc/config.d.ts +0 -3
  46. package/build/dex/aave-pt-to-usdc/config.js +0 -47
  47. package/build/dex/aave-pt-to-usdc/config.js.map +0 -1
  48. package/build/dex/aave-pt-to-usdc/constants.d.ts +0 -2
  49. package/build/dex/aave-pt-to-usdc/constants.js +0 -6
  50. package/build/dex/aave-pt-to-usdc/constants.js.map +0 -1
  51. package/build/dex/aave-pt-to-usdc/types.d.ts +0 -22
  52. package/build/dex/aave-pt-to-usdc/types.js +0 -3
  53. package/build/dex/aave-pt-to-usdc/types.js.map +0 -1
  54. package/build/dex/apex-defi/apex-defi-factory.d.ts +0 -26
  55. package/build/dex/apex-defi/apex-defi-factory.js +0 -53
  56. package/build/dex/apex-defi/apex-defi-factory.js.map +0 -1
  57. package/build/dex/apex-defi/apex-defi-pool.d.ts +0 -55
  58. package/build/dex/apex-defi/apex-defi-pool.js +0 -247
  59. package/build/dex/apex-defi/apex-defi-pool.js.map +0 -1
  60. package/build/dex/apex-defi/apex-defi-wrapper-factory.d.ts +0 -57
  61. package/build/dex/apex-defi/apex-defi-wrapper-factory.js +0 -250
  62. package/build/dex/apex-defi/apex-defi-wrapper-factory.js.map +0 -1
  63. package/build/dex/apex-defi/apex-defi.d.ts +0 -97
  64. package/build/dex/apex-defi/apex-defi.js +0 -1021
  65. package/build/dex/apex-defi/apex-defi.js.map +0 -1
  66. package/build/dex/apex-defi/config.d.ts +0 -4
  67. package/build/dex/apex-defi/config.js +0 -138
  68. package/build/dex/apex-defi/config.js.map +0 -1
  69. package/build/dex/apex-defi/types.d.ts +0 -32
  70. package/build/dex/apex-defi/types.js +0 -3
  71. package/build/dex/apex-defi/types.js.map +0 -1
  72. package/build/dex/apex-defi/utils.d.ts +0 -46
  73. package/build/dex/apex-defi/utils.js +0 -133
  74. package/build/dex/apex-defi/utils.js.map +0 -1
  75. package/build/dex/miro-migrator/miro-migrator-state.d.ts +0 -27
  76. package/build/dex/miro-migrator/miro-migrator-state.js +0 -89
  77. package/build/dex/miro-migrator/miro-migrator-state.js.map +0 -1
  78. package/build/dex/stabull/config.d.ts +0 -3
  79. package/build/dex/stabull/config.js +0 -177
  80. package/build/dex/stabull/config.js.map +0 -1
  81. package/build/dex/stabull/stabull-pool.d.ts +0 -46
  82. package/build/dex/stabull/stabull-pool.js +0 -113
  83. package/build/dex/stabull/stabull-pool.js.map +0 -1
  84. package/build/dex/stabull/stabull.d.ts +0 -55
  85. package/build/dex/stabull/stabull.js +0 -286
  86. package/build/dex/stabull/stabull.js.map +0 -1
  87. package/build/dex/stabull/types.d.ts +0 -21
  88. package/build/dex/stabull/types.js +0 -3
  89. package/build/dex/stabull/types.js.map +0 -1
  90. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +0 -4
  91. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +0 -56
  92. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +0 -1
  93. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +0 -7
  94. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +0 -28
  95. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +0 -1
  96. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
  97. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +0 -2
  98. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +0 -1
  99. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +0 -7
  100. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +0 -28
  101. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +0 -1
  102. package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
  103. package/build/dex/uniswap-v4/hooks/fee-hook/types.js +0 -2
  104. package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +0 -1
  105. package/build/dex/uniswap-v4/hooks/index.d.ts +0 -2
  106. package/build/dex/uniswap-v4/hooks/index.js +0 -8
  107. package/build/dex/uniswap-v4/hooks/index.js.map +0 -1
  108. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +0 -26
  109. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +0 -75
  110. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +0 -1
  111. package/build/dex/usual/usual-usdc-usdc.d.ts +0 -17
  112. package/build/dex/usual/usual-usdc-usdc.js +0 -59
  113. package/build/dex/usual/usual-usdc-usdc.js.map +0 -1
  114. package/build/dex/yo/config.d.ts +0 -3
  115. package/build/dex/yo/config.js +0 -21
  116. package/build/dex/yo/config.js.map +0 -1
  117. package/build/dex/yo/types.d.ts +0 -13
  118. package/build/dex/yo/types.js +0 -3
  119. package/build/dex/yo/types.js.map +0 -1
  120. package/build/dex/yo/yo-pool.d.ts +0 -13
  121. package/build/dex/yo/yo-pool.js +0 -26
  122. package/build/dex/yo/yo-pool.js.map +0 -1
  123. package/build/dex/yo/yo.d.ts +0 -39
  124. package/build/dex/yo/yo.js +0 -248
  125. package/build/dex/yo/yo.js.map +0 -1
  126. package/build/implementations/api-paraswap-sdk.d.ts +0 -25
  127. package/build/implementations/api-paraswap-sdk.js +0 -102
  128. package/build/implementations/api-paraswap-sdk.js.map +0 -1
@@ -374,6 +374,7 @@ class Hashflow extends simple_exchange_1.SimpleExchange {
374
374
  marketMakers: [mm],
375
375
  });
376
376
  quoteId = rfq.rfqId;
377
+ this.logger.info(`Received quote: ${JSON.stringify(rfq)}`);
377
378
  if (rfq.status !== 'success') {
378
379
  throw new types_2.RfqError(`Failed to fetch RFQ for ${this.getPairName(_srcTokenAddress, _destTokenAddress)}: ${JSON.stringify(rfq)}`, `${rfq?.error?.code}`);
379
380
  }
@@ -595,36 +596,42 @@ class Hashflow extends simple_exchange_1.SimpleExchange {
595
596
  return this.buildSimpleParamWithoutWETHConversion(srcToken, quoteData.baseTokenAmount, destToken, quoteData.quoteTokenAmount, swapData, this.routerAddress);
596
597
  }
597
598
  getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
598
- const { quoteData, signature } = data;
599
- (0, ts_essentials_1.assert)(quoteData !== undefined, `${this.dexKey}-${this.network}: quoteData undefined`);
600
- // Encode here the transaction arguments
601
- const exchangeData = this.routerInterface.encodeFunctionData('tradeRFQT', [
602
- [
603
- quoteData.pool,
604
- quoteData.externalAccount ?? constants_1.NULL_ADDRESS,
605
- quoteData.trader,
606
- quoteData.effectiveTrader ?? quoteData.trader,
607
- quoteData.baseToken,
608
- quoteData.quoteToken,
609
- quoteData.baseTokenAmount,
610
- quoteData.baseTokenAmount,
611
- quoteData.quoteTokenAmount,
612
- quoteData.quoteExpiry,
613
- quoteData.nonce ?? 0,
614
- quoteData.txid,
615
- signature,
616
- ],
617
- ]);
618
- return {
619
- needWrapNative: this.needWrapNative,
620
- dexFuncHasRecipient: true,
621
- exchangeData,
622
- targetExchange: this.routerAddress,
623
- returnAmountPos: undefined,
624
- specialDexFlag: types_3.SpecialDex.SWAP_ON_HASHFLOW,
625
- // cannot modify amount due to signature checks
626
- specialDexSupportsInsertFromAmount: false,
627
- };
599
+ try {
600
+ const { quoteData, signature } = data;
601
+ (0, ts_essentials_1.assert)(quoteData !== undefined, `${this.dexKey}-${this.network}: quoteData undefined`);
602
+ // Encode here the transaction arguments
603
+ const exchangeData = this.routerInterface.encodeFunctionData('tradeRFQT', [
604
+ [
605
+ quoteData.pool,
606
+ quoteData.externalAccount ?? constants_1.NULL_ADDRESS,
607
+ quoteData.trader,
608
+ quoteData.effectiveTrader ?? quoteData.trader,
609
+ quoteData.baseToken,
610
+ quoteData.quoteToken,
611
+ quoteData.baseTokenAmount,
612
+ quoteData.baseTokenAmount,
613
+ quoteData.quoteTokenAmount,
614
+ quoteData.quoteExpiry,
615
+ quoteData.nonce ?? 0,
616
+ quoteData.txid,
617
+ signature,
618
+ ],
619
+ ]);
620
+ return {
621
+ needWrapNative: this.needWrapNative,
622
+ dexFuncHasRecipient: true,
623
+ exchangeData,
624
+ targetExchange: this.routerAddress,
625
+ returnAmountPos: undefined,
626
+ specialDexFlag: types_3.SpecialDex.SWAP_ON_HASHFLOW,
627
+ // cannot modify amount due to signature checks
628
+ specialDexSupportsInsertFromAmount: false,
629
+ };
630
+ }
631
+ catch (error) {
632
+ this.logger.error(`Failed to build with ${JSON.stringify(data)}: `, error);
633
+ throw error;
634
+ }
628
635
  }
629
636
  extractQuoteToken = (pair) => ({
630
637
  address: pair.quoteToken,
@@ -1 +1 @@
1
- {"version":3,"file":"hashflow.js","sourceRoot":"","sources":["../../../src/dex/hashflow/hashflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hashflow.js","sourceRoot":"","sources":["../../../src/dex/hashflow/hashflow.ts"],"names":[],"mappings":"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"}
@@ -38,5 +38,6 @@ export declare class IdleDao extends SimpleExchange implements IDex<IdleDaoData>
38
38
  getCalldataGasCost(poolPrices: PoolPrices<IdleDaoData>): number | number[];
39
39
  getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: IdleDaoData, side: SwapSide): AdapterExchangeParam;
40
40
  getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: IdleDaoData, side: SwapSide, _: Context, executorAddress: Address): DexExchangeParam;
41
+ updatePoolState(): Promise<void>;
41
42
  getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
42
43
  }
@@ -242,25 +242,36 @@ class IdleDao extends simple_exchange_1.SimpleExchange {
242
242
  skipApproval: data.fromIdleToken,
243
243
  };
244
244
  }
245
- async getTopPoolsForToken(tokenAddress, limit) {
245
+ async updatePoolState() {
246
246
  await this.initializeTokens();
247
+ }
248
+ async getTopPoolsForToken(tokenAddress, limit) {
247
249
  const idleTokens = (0, tokens_1.getPoolsByTokenAddress)(this.network, tokenAddress);
248
250
  if (idleTokens.length > 0) {
249
- return idleTokens
250
- .map((idleToken) => ({
251
- // liquidity is infinite, tokens are minted when swapping for idle tokens
252
- liquidityUSD: 1e8,
253
- exchange: this.dexKey,
254
- address: idleToken.cdoAddress,
255
- connectorTokens: [(0, tokens_1.getTokenFromIdleToken)(idleToken)],
256
- }))
257
- .slice(0, limit);
251
+ const poolMap = {};
252
+ idleTokens.forEach((idleToken) => {
253
+ const cdoAddress = idleToken.cdoAddress;
254
+ const token = (0, tokens_1.getTokenFromIdleToken)(idleToken);
255
+ if (!poolMap[cdoAddress]) {
256
+ poolMap[cdoAddress] = {
257
+ exchange: this.dexKey,
258
+ address: cdoAddress,
259
+ connectorTokens: [token],
260
+ liquidityUSD: constants_1.UNLIMITED_USD_LIQUIDITY,
261
+ };
262
+ }
263
+ else {
264
+ if (!poolMap[cdoAddress].connectorTokens.some(t => t.address.toLowerCase() === token.address.toLowerCase())) {
265
+ poolMap[cdoAddress].connectorTokens.push(token);
266
+ }
267
+ }
268
+ });
269
+ return Object.values(poolMap);
258
270
  }
259
271
  const idleToken = (0, tokens_1.getIdleTokenByAddress)(this.network, tokenAddress.toLowerCase());
260
272
  if (idleToken) {
261
273
  return [
262
274
  {
263
- liquidityUSD: 1e9,
264
275
  exchange: this.dexKey,
265
276
  address: idleToken.cdoAddress,
266
277
  connectorTokens: [
@@ -269,6 +280,7 @@ class IdleDao extends simple_exchange_1.SimpleExchange {
269
280
  decimals: idleToken.decimals,
270
281
  },
271
282
  ],
283
+ liquidityUSD: constants_1.UNLIMITED_USD_LIQUIDITY,
272
284
  },
273
285
  ];
274
286
  }
@@ -1 +1 @@
1
- {"version":3,"file":"idle-dao.js","sourceRoot":"","sources":["../../../src/dex/idle-dao/idle-dao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idle-dao.js","sourceRoot":"","sources":["../../../src/dex/idle-dao/idle-dao.ts"],"names":[],"mappings":"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"}
@@ -1,50 +1,11 @@
1
- import { DeepReadonly } from 'ts-essentials';
2
- import { Token, Address, ExchangePrices, PoolPrices, Log, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam, ExchangeTxInfo, PreprocessTransactionOptions } from '../../types';
1
+ import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam, ExchangeTxInfo, PreprocessTransactionOptions } from '../../types';
3
2
  import { SwapSide, Network } from '../../constants';
4
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
3
  import { IDex } from '../../dex/idex';
6
4
  import { IDexHelper } from '../../dex-helper/idex-helper';
7
5
  import { MakerPsmData, PoolState, PoolConfig, MakerPsmDirectPayload } from './types';
8
6
  import { SimpleExchange } from '../simple-exchange';
9
7
  import { OptimalSwapExchange } from '@paraswap/core';
10
- export declare class MakerPsmEventPool extends StatefulEventSubscriber<PoolState> {
11
- protected network: number;
12
- protected dexHelper: IDexHelper;
13
- poolConfig: PoolConfig;
14
- protected vatAddress: Address;
15
- handlers: {
16
- [event: string]: (event: any, pool: PoolState, log: Log) => PoolState;
17
- };
18
- logDecoder: (log: Log) => any;
19
- to18ConversionFactor: bigint;
20
- bytes32Tout: string;
21
- bytes32Tin: string;
22
- constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, poolConfig: PoolConfig, vatAddress: Address);
23
- handleFile(event: any, pool: PoolState, log: Log): PoolState;
24
- handleSellGem(event: any, pool: PoolState, log: Log): PoolState;
25
- handleBuyGem(event: any, pool: PoolState, log: Log): PoolState;
26
- getIdentifier(): string;
27
- /**
28
- * The function is called every time any of the subscribed
29
- * addresses release log. The function accepts the current
30
- * state, updates the state according to the log, and returns
31
- * the updated state.
32
- * @param state - Current state of event subscriber
33
- * @param log - Log released by one of the subscribed addresses
34
- * @returns Updates state of the event subscriber after the log
35
- */
36
- protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
37
- /**
38
- * The function generates state using on-chain calls. This
39
- * function is called to regenerate state if the event based
40
- * system fails to fetch events and the local state is no
41
- * more correct.
42
- * @param blockNumber - Blocknumber for which the state should
43
- * should be generated
44
- * @returns state of the event subscriber at blocknumber
45
- */
46
- generateState(blockNumber: number): Promise<Readonly<PoolState>>;
47
- }
8
+ import { MakerPsmEventPool } from './maker-psm-event-pool';
48
9
  export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmData, MakerPsmDirectPayload> {
49
10
  protected network: Network;
50
11
  protected dexHelper: IDexHelper;
@@ -75,6 +36,7 @@ export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmDat
75
36
  }, dai?: Token, vatAddress?: Address, poolConfigs?: PoolConfig[]);
76
37
  static getDirectFunctionNameV6(): string[];
77
38
  initializePricing(blockNumber: number): Promise<void>;
39
+ private initializeEventPools;
78
40
  getAdapters(side: SwapSide): {
79
41
  name: string;
80
42
  index: number;
@@ -99,5 +61,6 @@ export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmDat
99
61
  encoder: (...params: (string | MakerPsmDirectPayload)[]) => string;
100
62
  networkFee: string;
101
63
  };
64
+ updatePoolState(): Promise<void>;
102
65
  getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
103
66
  }
@@ -36,143 +36,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.MakerPsm = exports.MakerPsmEventPool = void 0;
39
+ exports.MakerPsm = void 0;
40
40
  const abi_1 = require("@ethersproject/abi");
41
41
  const constants_1 = require("../../constants");
42
42
  const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
43
- const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
44
43
  const utils_1 = require("../../utils");
45
44
  const simple_exchange_1 = require("../simple-exchange");
46
45
  const config_1 = require("./config");
47
46
  const psm_json_1 = __importDefault(require("../../abi/maker-psm/psm.json"));
48
- const vat_json_1 = __importDefault(require("../../abi/maker-psm/vat.json"));
49
47
  const bigint_constants_1 = require("../../bigint-constants");
50
48
  const types_1 = require("../../executor/types");
51
49
  const bytes_1 = require("@ethersproject/bytes");
52
50
  const core_1 = require("@paraswap/core");
53
51
  const ethers_1 = require("ethers");
54
- const vatInterface = new abi_1.Interface(vat_json_1.default);
52
+ const maker_psm_event_pool_1 = require("./maker-psm-event-pool");
55
53
  const psmInterface = new abi_1.Interface(psm_json_1.default);
56
54
  const WAD = bigint_constants_1.BI_POWS[18];
57
- const bigIntify = (b) => BigInt(b.toString());
58
55
  const ceilDiv = (a, b) => (a + b - 1n) / b;
59
- async function getOnChainState(multiContract, poolConfigs, vatAddress, blockNumber) {
60
- const callData = poolConfigs
61
- .map(c => [
62
- {
63
- target: c.psmAddress,
64
- callData: psmInterface.encodeFunctionData('tin', []),
65
- },
66
- {
67
- target: c.psmAddress,
68
- callData: psmInterface.encodeFunctionData('tout', []),
69
- },
70
- {
71
- target: vatAddress,
72
- callData: vatInterface.encodeFunctionData('ilks', [c.identifier]),
73
- },
74
- ])
75
- .flat();
76
- const res = await multiContract.methods
77
- .aggregate(callData)
78
- .call({}, blockNumber);
79
- let i = 0;
80
- return poolConfigs.map(c => {
81
- const tin = bigIntify(psmInterface.decodeFunctionResult('tin', res.returnData[i++])[0]);
82
- const tout = bigIntify(psmInterface.decodeFunctionResult('tout', res.returnData[i++])[0]);
83
- const ilks = vatInterface.decodeFunctionResult('ilks', res.returnData[i++]);
84
- const Art = bigIntify(ilks.Art);
85
- const line = bigIntify(ilks.line);
86
- const rate = bigIntify(ilks.rate);
87
- return {
88
- tin,
89
- tout,
90
- Art,
91
- line,
92
- rate,
93
- };
94
- });
95
- }
96
- class MakerPsmEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
97
- network;
98
- dexHelper;
99
- poolConfig;
100
- vatAddress;
101
- handlers = {};
102
- logDecoder;
103
- to18ConversionFactor;
104
- bytes32Tout = '0x746f757400000000000000000000000000000000000000000000000000000000'; // bytes32('tout')
105
- bytes32Tin = '0x74696e0000000000000000000000000000000000000000000000000000000000'; // bytes32('tin')
106
- constructor(parentName, network, dexHelper, logger, poolConfig, vatAddress) {
107
- super(parentName, poolConfig.identifier, dexHelper, logger);
108
- this.network = network;
109
- this.dexHelper = dexHelper;
110
- this.poolConfig = poolConfig;
111
- this.vatAddress = vatAddress;
112
- this.logDecoder = (log) => psmInterface.parseLog(log);
113
- this.addressesSubscribed = [poolConfig.psmAddress];
114
- this.to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - poolConfig.gem.decimals);
115
- // Add handlers
116
- this.handlers['File'] = this.handleFile.bind(this);
117
- this.handlers['SellGem'] = this.handleSellGem.bind(this);
118
- this.handlers['BuyGem'] = this.handleBuyGem.bind(this);
119
- }
120
- handleFile(event, pool, log) {
121
- if (event.args.what === this.bytes32Tin) {
122
- pool.tin = bigIntify(event.args.data);
123
- }
124
- else if (event.args.what === this.bytes32Tout) {
125
- pool.tout = bigIntify(event.args.data);
126
- }
127
- return pool;
128
- }
129
- handleSellGem(event, pool, log) {
130
- pool.Art += bigIntify(event.args.value) * this.to18ConversionFactor;
131
- return pool;
132
- }
133
- handleBuyGem(event, pool, log) {
134
- pool.Art -= bigIntify(event.args.value) * this.to18ConversionFactor;
135
- return pool;
136
- }
137
- getIdentifier() {
138
- return `${this.parentName}_${this.poolConfig.psmAddress}`.toLowerCase();
139
- }
140
- /**
141
- * The function is called every time any of the subscribed
142
- * addresses release log. The function accepts the current
143
- * state, updates the state according to the log, and returns
144
- * the updated state.
145
- * @param state - Current state of event subscriber
146
- * @param log - Log released by one of the subscribed addresses
147
- * @returns Updates state of the event subscriber after the log
148
- */
149
- processLog(state, log) {
150
- try {
151
- const event = this.logDecoder(log);
152
- if (event.name in this.handlers) {
153
- return this.handlers[event.name](event, state, log);
154
- }
155
- return state;
156
- }
157
- catch (e) {
158
- this.logger.error(`Error_${this.parentName}_processLog could not parse the log with topic ${log.topics}:`, e);
159
- return null;
160
- }
161
- }
162
- /**
163
- * The function generates state using on-chain calls. This
164
- * function is called to regenerate state if the event based
165
- * system fails to fetch events and the local state is no
166
- * more correct.
167
- * @param blockNumber - Blocknumber for which the state should
168
- * should be generated
169
- * @returns state of the event subscriber at blocknumber
170
- */
171
- async generateState(blockNumber) {
172
- return (await getOnChainState(this.dexHelper.multiContract, [this.poolConfig], this.vatAddress, blockNumber))[0];
173
- }
174
- }
175
- exports.MakerPsmEventPool = MakerPsmEventPool;
176
56
  class MakerPsm extends simple_exchange_1.SimpleExchange {
177
57
  network;
178
58
  dexHelper;
@@ -196,18 +76,23 @@ class MakerPsm extends simple_exchange_1.SimpleExchange {
196
76
  this.poolConfigs = poolConfigs;
197
77
  this.logger = dexHelper.getLogger(dexKey);
198
78
  this.eventPools = {};
199
- poolConfigs.forEach(p => (this.eventPools[p.gem.address.toLowerCase()] = new MakerPsmEventPool(dexKey, network, dexHelper, this.logger, p, this.vatAddress)));
79
+ poolConfigs.forEach(p => (this.eventPools[p.gem.address.toLowerCase()] = new maker_psm_event_pool_1.MakerPsmEventPool(dexKey, network, dexHelper, this.logger, p, this.vatAddress)));
200
80
  }
201
81
  static getDirectFunctionNameV6() {
202
82
  return [core_1.ContractMethodV6.swapExactAmountInOutOnMakerPSM];
203
83
  }
204
84
  async initializePricing(blockNumber) {
205
- const poolStates = await getOnChainState(this.dexHelper.multiContract, this.poolConfigs, this.vatAddress, blockNumber);
206
- await Promise.all(this.poolConfigs.map(async (p, i) => {
207
- const eventPool = this.eventPools[p.gem.address.toLowerCase()];
208
- await eventPool.initialize(blockNumber, {
209
- state: poolStates[i],
210
- });
85
+ await this.initializeEventPools(blockNumber);
86
+ }
87
+ async initializeEventPools(blockNumber, subscribe = true) {
88
+ await Promise.all(Object.values(this.eventPools).map(async (eventPool) => {
89
+ if (subscribe) {
90
+ await eventPool.initialize(blockNumber);
91
+ }
92
+ else {
93
+ const state = await eventPool.generateState(blockNumber);
94
+ eventPool.setState(state, blockNumber);
95
+ }
211
96
  }));
212
97
  }
213
98
  // Returns the list of contract adapters (name and index)
@@ -460,33 +345,45 @@ class MakerPsm extends simple_exchange_1.SimpleExchange {
460
345
  };
461
346
  return { params: payload, encoder, networkFee: '0' };
462
347
  }
348
+ async updatePoolState() {
349
+ const blockNumber = await this.dexHelper.web3Provider.eth.getBlockNumber();
350
+ await this.initializeEventPools(blockNumber, false);
351
+ }
463
352
  // Returns list of top pools based on liquidity. Max
464
353
  // limit number pools should be returned.
465
354
  async getTopPoolsForToken(tokenAddress, limit) {
466
- const _tokenAddress = tokenAddress.toLowerCase();
355
+ const token = tokenAddress.toLowerCase();
356
+ const isDAI = this.dai.address.toLowerCase() === token;
467
357
  // Liquidity depends on the swapping side hence we simply use the min
468
358
  // Its always in terms of stable coin hence liquidityUSD = liquidity
469
359
  const minLiq = (poolState) => {
470
360
  const buyLimit = poolState.Art;
471
361
  const sellLimit = (poolState.line - poolState.Art * poolState.rate) / poolState.rate;
472
- return (2 *
473
- parseInt(((buyLimit > sellLimit ? sellLimit : buyLimit) / bigint_constants_1.BI_POWS[18]).toString()));
362
+ const minLimit = buyLimit < sellLimit ? buyLimit : sellLimit;
363
+ const liquidity = Number(minLimit) / Number(bigint_constants_1.BI_POWS[18]);
364
+ return liquidity > 0 ? 2 * liquidity : 0;
474
365
  };
475
- const isDai = _tokenAddress === this.dai.address;
476
- const validPoolConfigs = isDai
366
+ const validPoolConfigs = isDAI
477
367
  ? this.poolConfigs
478
- : this.eventPools[_tokenAddress]
479
- ? [this.eventPools[_tokenAddress].poolConfig]
368
+ : this.eventPools[token]
369
+ ? [this.eventPools[token].poolConfig]
480
370
  : [];
481
371
  if (!validPoolConfigs.length)
482
372
  return [];
483
- const poolStates = await getOnChainState(this.dexHelper.multiContract, validPoolConfigs, this.vatAddress, 'latest');
484
- return validPoolConfigs.map((p, i) => ({
485
- exchange: this.dexKey,
486
- address: p.psmAddress,
487
- liquidityUSD: minLiq(poolStates[i]),
488
- connectorTokens: [isDai ? p.gem : this.dai],
489
- }));
373
+ const pools = validPoolConfigs.map(config => {
374
+ const eventPoolKey = config.gem.address.toLowerCase();
375
+ const eventPool = this.eventPools[eventPoolKey];
376
+ const state = eventPool?.getStaleState();
377
+ if (!state)
378
+ return null;
379
+ return {
380
+ exchange: this.dexKey,
381
+ address: config.psmAddress,
382
+ liquidityUSD: minLiq(state),
383
+ connectorTokens: [isDAI ? config.gem : this.dai],
384
+ };
385
+ });
386
+ return pools.filter(p => !!p).slice(0, limit);
490
387
  }
491
388
  }
492
389
  exports.MakerPsm = MakerPsm;