@paraswap/dex-lib 4.7.13 → 4.7.14-multi-route.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 (153) hide show
  1. package/build/abi/pharaoh-v3/PharaohV3Factory.abi.json +39 -0
  2. package/build/abi/pharaoh-v3/PharaohV3Pool.abi.json +802 -0
  3. package/build/abi/pharaoh-v3/PharaohV3StateMulticall.abi.json +781 -0
  4. package/build/abi/uniswap-v4/hooks/arena/arena-fee-helper.abi.json +476 -0
  5. package/build/dex/idle-dao/idle-dao.d.ts +1 -0
  6. package/build/dex/idle-dao/idle-dao.js +23 -11
  7. package/build/dex/idle-dao/idle-dao.js.map +1 -1
  8. package/build/dex/{se-vlr/se-vlr-pool.d.ts → maker-psm/maker-psm-event-pool.d.ts} +15 -11
  9. package/build/dex/maker-psm/maker-psm-event-pool.js +132 -0
  10. package/build/dex/maker-psm/maker-psm-event-pool.js.map +1 -0
  11. package/build/dex/maker-psm/maker-psm.d.ts +4 -41
  12. package/build/dex/maker-psm/maker-psm.js +40 -143
  13. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  14. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.d.ts +7 -0
  15. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.js +20 -0
  16. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.js.map +1 -0
  17. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.d.ts +12 -0
  18. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.js +139 -0
  19. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.js.map +1 -0
  20. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.d.ts +11 -0
  21. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.js +128 -0
  22. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.js.map +1 -0
  23. package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.d.ts +4 -0
  24. package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.js +56 -0
  25. package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.js.map +1 -0
  26. package/build/dex/uniswap-v4/contract-math/Position.d.ts +6 -0
  27. package/build/dex/uniswap-v4/contract-math/Position.js +29 -0
  28. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  29. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.d.ts +36 -0
  30. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js +125 -0
  31. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js.map +1 -0
  32. package/build/dex/uniswap-v4/hooks/arena/arena-hook.d.ts +21 -0
  33. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js +93 -0
  34. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js.map +1 -0
  35. package/build/dex/uniswap-v4/hooks/arena/config.d.ts +3 -0
  36. package/build/dex/uniswap-v4/hooks/arena/config.js +11 -0
  37. package/build/dex/uniswap-v4/hooks/arena/config.js.map +1 -0
  38. package/build/dex/uniswap-v4/hooks/arena/types.d.ts +5 -0
  39. package/build/dex/uniswap-v4/hooks/arena/types.js.map +1 -0
  40. package/build/dex/uniswap-v4/hooks/types.d.ts +60 -0
  41. package/build/dex/uniswap-v4/hooks/types.js.map +1 -0
  42. package/build/executor/Executor01BytecodeBuilder.d.ts +5 -5
  43. package/build/executor/Executor01BytecodeBuilder.js +17 -14
  44. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  45. package/build/executor/Executor02BytecodeBuilder.d.ts +11 -8
  46. package/build/executor/Executor02BytecodeBuilder.js +107 -103
  47. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  48. package/build/executor/Executor03BytecodeBuilder.d.ts +5 -5
  49. package/build/executor/Executor03BytecodeBuilder.js +14 -11
  50. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  51. package/build/executor/ExecutorBytecodeBuilder.d.ts +8 -8
  52. package/build/executor/ExecutorBytecodeBuilder.js +8 -8
  53. package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
  54. package/build/executor/WETHBytecodeBuilder.d.ts +2 -2
  55. package/build/executor/WETHBytecodeBuilder.js +1 -1
  56. package/build/executor/WETHBytecodeBuilder.js.map +1 -1
  57. package/build/executor/types.d.ts +21 -0
  58. package/build/executor/types.js.map +1 -1
  59. package/build/executor/utils.d.ts +20 -0
  60. package/build/executor/utils.js +129 -0
  61. package/build/executor/utils.js.map +1 -1
  62. package/build/generic-swap-transaction-builder.d.ts +4 -0
  63. package/build/generic-swap-transaction-builder.js +134 -52
  64. package/build/generic-swap-transaction-builder.js.map +1 -1
  65. package/package.json +12 -3
  66. package/build/abi/BProtocol.json +0 -1155
  67. package/build/abi/Jarvis.json +0 -1172
  68. package/build/abi/MStableAsset.json +0 -1545
  69. package/build/abi/OneInchLp.json +0 -1304
  70. package/build/abi/Onebit.json +0 -736
  71. package/build/abi/Shell.json +0 -1294
  72. package/build/abi/TraderJoeV2Router.json +0 -50
  73. package/build/abi/wUSDM.json +0 -757
  74. package/build/abi/zrx.v2.json +0 -1967
  75. package/build/abi/zrx.v3.json +0 -3454
  76. package/build/abi/zrx.v4.json +0 -2193
  77. package/build/dex/OneInchLp.d.ts +0 -24
  78. package/build/dex/OneInchLp.js +0 -43
  79. package/build/dex/OneInchLp.js.map +0 -1
  80. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  81. package/build/dex/bProtocol/bProtocol.js +0 -56
  82. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  83. package/build/dex/bProtocol/types.d.ts +0 -11
  84. package/build/dex/bProtocol/types.js +0 -8
  85. package/build/dex/bProtocol/types.js.map +0 -1
  86. package/build/dex/jarvis.d.ts +0 -56
  87. package/build/dex/jarvis.js +0 -163
  88. package/build/dex/jarvis.js.map +0 -1
  89. package/build/dex/mStable.d.ts +0 -44
  90. package/build/dex/mStable.js +0 -75
  91. package/build/dex/mStable.js.map +0 -1
  92. package/build/dex/onebit/onebit.d.ts +0 -16
  93. package/build/dex/onebit/onebit.js +0 -61
  94. package/build/dex/onebit/onebit.js.map +0 -1
  95. package/build/dex/onebit/types.d.ts +0 -14
  96. package/build/dex/onebit/types.js +0 -8
  97. package/build/dex/onebit/types.js.map +0 -1
  98. package/build/dex/se-vlr/config.d.ts +0 -3
  99. package/build/dex/se-vlr/config.js +0 -24
  100. package/build/dex/se-vlr/config.js.map +0 -1
  101. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  102. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  103. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  104. package/build/dex/se-vlr/se-vlr.js +0 -131
  105. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  106. package/build/dex/se-vlr/types.d.ts +0 -6
  107. package/build/dex/se-vlr/types.js.map +0 -1
  108. package/build/dex/shell.d.ts +0 -25
  109. package/build/dex/shell.js +0 -41
  110. package/build/dex/shell.js.map +0 -1
  111. package/build/dex/trader-joe-v2.d.ts +0 -40
  112. package/build/dex/trader-joe-v2.js +0 -74
  113. package/build/dex/trader-joe-v2.js.map +0 -1
  114. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  115. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  116. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  117. package/build/dex/usual-bond/config.d.ts +0 -3
  118. package/build/dex/usual-bond/config.js +0 -13
  119. package/build/dex/usual-bond/config.js.map +0 -1
  120. package/build/dex/usual-bond/types.d.ts +0 -7
  121. package/build/dex/usual-bond/types.js.map +0 -1
  122. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  123. package/build/dex/usual-bond/usual-bond.js +0 -176
  124. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  125. package/build/dex/wusdm/config.d.ts +0 -3
  126. package/build/dex/wusdm/config.js +0 -43
  127. package/build/dex/wusdm/config.js.map +0 -1
  128. package/build/dex/wusdm/constants.d.ts +0 -2
  129. package/build/dex/wusdm/constants.js +0 -6
  130. package/build/dex/wusdm/constants.js.map +0 -1
  131. package/build/dex/wusdm/types.d.ts +0 -18
  132. package/build/dex/wusdm/types.js +0 -11
  133. package/build/dex/wusdm/types.js.map +0 -1
  134. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  135. package/build/dex/wusdm/wusdm-pool.js +0 -74
  136. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  137. package/build/dex/wusdm/wusdm.d.ts +0 -46
  138. package/build/dex/wusdm/wusdm.js +0 -243
  139. package/build/dex/wusdm/wusdm.js.map +0 -1
  140. package/build/dex/zerox/config.d.ts +0 -2
  141. package/build/dex/zerox/config.js +0 -33
  142. package/build/dex/zerox/config.js.map +0 -1
  143. package/build/dex/zerox/index.d.ts +0 -22
  144. package/build/dex/zerox/index.js +0 -225
  145. package/build/dex/zerox/index.js.map +0 -1
  146. package/build/dex/zerox/order.d.ts +0 -88
  147. package/build/dex/zerox/order.js +0 -53
  148. package/build/dex/zerox/order.js.map +0 -1
  149. package/build/dex/zerox/types.d.ts +0 -73
  150. package/build/dex/zerox/types.js +0 -21
  151. package/build/dex/zerox/types.js.map +0 -1
  152. /package/build/dex/{se-vlr → uniswap-v4/hooks/arena}/types.js +0 -0
  153. /package/build/dex/{usual-bond → uniswap-v4/hooks}/types.js +0 -0
@@ -0,0 +1,132 @@
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
@@ -0,0 +1 @@
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,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;
@@ -1 +1 @@
1
- {"version":3,"file":"maker-psm.js","sourceRoot":"","sources":["../../../src/dex/maker-psm/maker-psm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maker-psm.js","sourceRoot":"","sources":["../../../src/dex/maker-psm/maker-psm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { UniswapV3Factory } from '../../uniswap-v3-factory';
2
+ import { LogDescription } from 'ethers/lib/utils';
3
+ import { Interface } from '@ethersproject/abi';
4
+ export declare class PharaohV3Factory extends UniswapV3Factory {
5
+ readonly factoryIface: Interface;
6
+ handleNewPool(event: LogDescription): Promise<void>;
7
+ }
@@ -0,0 +1,20 @@
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.PharaohV3Factory = void 0;
7
+ const uniswap_v3_factory_1 = require("../../uniswap-v3-factory");
8
+ const abi_1 = require("@ethersproject/abi");
9
+ const PharaohV3Factory_abi_json_1 = __importDefault(require("../../../../abi/pharaoh-v3/PharaohV3Factory.abi.json"));
10
+ class PharaohV3Factory extends uniswap_v3_factory_1.UniswapV3Factory {
11
+ factoryIface = new abi_1.Interface(PharaohV3Factory_abi_json_1.default);
12
+ async handleNewPool(event) {
13
+ const token0 = event.args.token0.toLowerCase();
14
+ const token1 = event.args.token1.toLowerCase();
15
+ const tickSpacing = event.args.tickSpacing;
16
+ await this.onPoolCreated({ token0, token1, fee: tickSpacing });
17
+ }
18
+ }
19
+ exports.PharaohV3Factory = PharaohV3Factory;
20
+ //# sourceMappingURL=pharaoh-v3-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pharaoh-v3-factory.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.ts"],"names":[],"mappings":";;;;;;AAAA,iEAA4D;AAE5D,4CAA+C;AAC/C,qHAA8E;AAE9E,MAAa,gBAAiB,SAAQ,qCAAgB;IACpC,YAAY,GAAG,IAAI,eAAS,CAAC,mCAAU,CAAC,CAAC;IAEzD,KAAK,CAAC,aAAa,CAAC,KAAqB;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QAE3C,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AAVD,4CAUC"}
@@ -0,0 +1,12 @@
1
+ import { ethers } from 'ethers';
2
+ import { VelodromeSlipstreamEventPool } from '../velodrome-slipstream/velodrome-slipstream-pool';
3
+ import { MultiCallParams } from '../../../../lib/multi-wrapper';
4
+ import { DecodedStateMultiCallResultWithRelativeBitmaps, PoolState } from '../../types';
5
+ export declare class PharaohV3EventPool extends VelodromeSlipstreamEventPool {
6
+ readonly poolIface: ethers.utils.Interface;
7
+ readonly factoryIface: ethers.utils.Interface;
8
+ protected getCurrentFee(blockNumber: number): Promise<bigint>;
9
+ protected _getStateRequestCallData(): MultiCallParams<bigint | DecodedStateMultiCallResultWithRelativeBitmaps>[];
10
+ generateState(blockNumber: number): Promise<Readonly<PoolState>>;
11
+ protected predictDeterministicAddress(factory: string, implementation: string, salt: string): string;
12
+ }