@paraswap/dex-lib 2.49.2 → 2.49.3

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 (140) hide show
  1. package/.vscode/launch.json +53 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  5. package/build/dex/pancakeswap-v3/config.js +15 -0
  6. package/build/dex/pancakeswap-v3/config.js.map +1 -1
  7. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +1 -1
  8. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
  9. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  10. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  11. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  12. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  13. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  14. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  15. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  16. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  17. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  18. package/package.json +1 -1
  19. package/src/dex/pancakeswap-v3/config.ts +16 -0
  20. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +3 -1
  21. package/build/abi/Redstone.json +0 -739
  22. package/build/abi/angle/stagToken.json +0 -963
  23. package/build/abi/angle-transmuter/MorphoOracle.json +0 -193
  24. package/build/abi/angle-transmuter/MorphoVault.json +0 -2506
  25. package/build/abi/angle-transmuter/Pyth.json +0 -1534
  26. package/build/abi/angle-transmuter/Transmuter.json +0 -1711
  27. package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
  28. package/build/abi/smardex/smardex-factory.json +0 -185
  29. package/build/abi/smardex/smardex-pool.json +0 -578
  30. package/build/abi/smardex/smardex-router.json +0 -648
  31. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
  32. package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
  33. package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
  34. package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
  35. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -55
  36. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -183
  37. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
  38. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -50
  39. package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -280
  40. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
  41. package/build/dex/angle-staked-stable/config.d.ts +0 -4
  42. package/build/dex/angle-staked-stable/config.js +0 -46
  43. package/build/dex/angle-staked-stable/config.js.map +0 -1
  44. package/build/dex/angle-staked-stable/types.d.ts +0 -17
  45. package/build/dex/angle-staked-stable/types.js +0 -3
  46. package/build/dex/angle-staked-stable/types.js.map +0 -1
  47. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -61
  48. package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -415
  49. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
  50. package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -59
  51. package/build/dex/angle-transmuter/angle-transmuter.js +0 -262
  52. package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
  53. package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
  54. package/build/dex/angle-transmuter/backedOracle.js +0 -56
  55. package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
  56. package/build/dex/angle-transmuter/config.d.ts +0 -4
  57. package/build/dex/angle-transmuter/config.js +0 -30
  58. package/build/dex/angle-transmuter/config.js.map +0 -1
  59. package/build/dex/angle-transmuter/constants.d.ts +0 -77
  60. package/build/dex/angle-transmuter/constants.js +0 -94
  61. package/build/dex/angle-transmuter/constants.js.map +0 -1
  62. package/build/dex/angle-transmuter/morphoOracle.d.ts +0 -42
  63. package/build/dex/angle-transmuter/morphoOracle.js +0 -179
  64. package/build/dex/angle-transmuter/morphoOracle.js.map +0 -1
  65. package/build/dex/angle-transmuter/morphoVault.d.ts +0 -19
  66. package/build/dex/angle-transmuter/morphoVault.js +0 -78
  67. package/build/dex/angle-transmuter/morphoVault.js.map +0 -1
  68. package/build/dex/angle-transmuter/pyth.d.ts +0 -19
  69. package/build/dex/angle-transmuter/pyth.js +0 -70
  70. package/build/dex/angle-transmuter/pyth.js.map +0 -1
  71. package/build/dex/angle-transmuter/redstone.d.ts +0 -20
  72. package/build/dex/angle-transmuter/redstone.js +0 -73
  73. package/build/dex/angle-transmuter/redstone.js.map +0 -1
  74. package/build/dex/angle-transmuter/transmuter.d.ts +0 -52
  75. package/build/dex/angle-transmuter/transmuter.js +0 -374
  76. package/build/dex/angle-transmuter/transmuter.js.map +0 -1
  77. package/build/dex/angle-transmuter/types.d.ts +0 -188
  78. package/build/dex/angle-transmuter/types.js +0 -33
  79. package/build/dex/angle-transmuter/types.js.map +0 -1
  80. package/build/dex/angle-transmuter/utils.d.ts +0 -9
  81. package/build/dex/angle-transmuter/utils.js +0 -252
  82. package/build/dex/angle-transmuter/utils.js.map +0 -1
  83. package/build/dex/smardex/subgraph-queries.d.ts +0 -1
  84. package/build/dex/smardex/subgraph-queries.js +0 -17
  85. package/build/dex/smardex/subgraph-queries.js.map +0 -1
  86. package/build/dex/smardex/usd-reserves.d.ts +0 -23
  87. package/build/dex/smardex/usd-reserves.js +0 -86
  88. package/build/dex/smardex/usd-reserves.js.map +0 -1
  89. package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
  90. package/build/dex/trader-joe-v2-1-2/config.js +0 -47
  91. package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
  92. package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
  93. package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
  94. package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
  95. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
  96. package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
  97. package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
  98. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
  99. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
  100. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
  101. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
  102. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
  103. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
  104. package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
  105. package/build/dex/trader-joe-v2-1-2/types.js +0 -9
  106. package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
  107. package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
  108. package/build/dex/trader-joe-v2_1/config.js +0 -47
  109. package/build/dex/trader-joe-v2_1/config.js.map +0 -1
  110. package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
  111. package/build/dex/trader-joe-v2_1/constants.js +0 -22
  112. package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
  113. package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
  114. package/build/dex/trader-joe-v2_1/math/index.js +0 -291
  115. package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
  116. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  117. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
  118. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
  119. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
  120. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
  121. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
  122. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
  123. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
  124. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
  125. package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
  126. package/build/dex/trader-joe-v2_1/types.js +0 -9
  127. package/build/dex/trader-joe-v2_1/types.js.map +0 -1
  128. package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
  129. package/build/dex/wombat/wombat-pool-poller.js +0 -164
  130. package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
  131. package/build/dex-helper/Cache.d.ts +0 -31
  132. package/build/dex-helper/Cache.js +0 -106
  133. package/build/dex-helper/Cache.js.map +0 -1
  134. package/build/dex-helper/RedisBatcher.d.ts +0 -20
  135. package/build/dex-helper/RedisBatcher.js +0 -75
  136. package/build/dex-helper/RedisBatcher.js.map +0 -1
  137. package/build/dex-helper/RedisWrapper.d.ts +0 -37
  138. package/build/dex-helper/RedisWrapper.js +0 -165
  139. package/build/dex-helper/RedisWrapper.js.map +0 -1
  140. package/src/abi/uniswap-v3/AlienBaseV3Router.abi.json +0 -52
@@ -1,262 +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.AngleTransmuter = 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 simple_exchange_1 = require("../simple-exchange");
34
- const config_1 = require("./config");
35
- const angle_transmuter_pool_1 = require("./angle-transmuter-pool");
36
- const utils_2 = require("ethers/lib/utils");
37
- const transmuter_1 = require("./transmuter");
38
- const erc20_json_1 = __importDefault(require("../../abi/erc20.json"));
39
- const TransmuterGasCost = 0;
40
- class AngleTransmuter extends simple_exchange_1.SimpleExchange {
41
- constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}, params = config_1.AngleTransmuterConfig[dexKey][network]) {
42
- super(dexHelper, dexKey);
43
- this.network = network;
44
- this.dexKey = dexKey;
45
- this.dexHelper = dexHelper;
46
- this.adapters = adapters;
47
- this.params = params;
48
- this.eventPools = {};
49
- this.supportedTokensMap = {};
50
- this.supportedTokens = {};
51
- this.transmuterUSDLiquidity = {};
52
- this.hasConstantPriceLargeAmounts = false;
53
- this.needWrapNative = true;
54
- this.isFeeOnTransferSupported = false;
55
- this.logger = dexHelper.getLogger(dexKey);
56
- this.stablecoinList = Object.keys(params);
57
- this.stablecoinList.forEach(stablecoin => {
58
- this.supportedTokensMap[stablecoin] = {};
59
- this.supportedTokens[stablecoin] = [];
60
- this.transmuterUSDLiquidity[stablecoin] = 0;
61
- });
62
- this.stablecoinList.forEach(stablecoin => {
63
- this.supportedTokensMap[stablecoin][params[stablecoin].stablecoin.address.toLowerCase()] = true;
64
- });
65
- }
66
- // Initialize pricing is called once in the start of
67
- // pricing service. It is intended to setup the integration
68
- // for pricing requests. It is optional for a DEX to
69
- // implement this function
70
- async initializePricing(blockNumber) {
71
- for (const stablecoin of this.stablecoinList) {
72
- const config = await angle_transmuter_pool_1.AngleTransmuterEventPool.getConfig(this.params[stablecoin], blockNumber, this.dexHelper.multiContract);
73
- config.collaterals.forEach((token) => (this.supportedTokensMap[stablecoin][token.toLowerCase()] = true));
74
- this.eventPools[stablecoin] = new angle_transmuter_pool_1.AngleTransmuterEventPool(this.dexKey, this.network, this.dexHelper, this.logger, config);
75
- await this.eventPools[stablecoin].initialize(blockNumber);
76
- }
77
- }
78
- // Returns the list of contract adapters (name and index)
79
- // for a buy/sell. Return null if there are no adapters.
80
- getAdapters(side) {
81
- return this.adapters[side] ? this.adapters[side] : null;
82
- }
83
- // Returns list of pool identifiers that can be used
84
- // for a given swap. poolIdentifiers must be unique
85
- // across DEXes. It is recommended to use
86
- // ${dexKey}_${poolAddress} as a poolIdentifier
87
- async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
88
- const knownInfo = this._knownAddress(srcToken, destToken);
89
- if (!knownInfo.known)
90
- return [];
91
- return [`${this.dexKey}_${knownInfo.agToken.toLowerCase()}`];
92
- }
93
- // Returns pool prices for amounts.
94
- // If limitPools is defined only pools in limitPools
95
- // should be used. If limitPools is undefined then
96
- // any pools can be used.
97
- async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
98
- const knownInfo = this._knownAddress(srcToken, destToken);
99
- const pool = `${this.dexKey}_${knownInfo.agToken.toLowerCase()}`;
100
- if (!knownInfo.known ||
101
- (limitPools && limitPools.length > 0 && !limitPools.includes(pool)))
102
- return null;
103
- const fiat = knownInfo.fiatName;
104
- const preProcessDecimals = side === constants_1.SwapSide.SELL ? srcToken.decimals : destToken.decimals;
105
- const postProcessDecimals = side === constants_1.SwapSide.SELL ? destToken.decimals : srcToken.decimals;
106
- const unitVolume = 1;
107
- const amountsFloat = amounts.map(amount => Number.parseFloat((0, utils_2.formatUnits)(amount.toString(), preProcessDecimals)));
108
- const prices = await this.eventPools[fiat].getAmountOut(srcToken.address, destToken.address, side, [unitVolume, ...amountsFloat], blockNumber);
109
- if (!prices)
110
- return null;
111
- const pricesBigInt = prices.map(price => BigInt((0, utils_2.parseUnits)(price.toFixed(postProcessDecimals).toString(), postProcessDecimals).toString()));
112
- return [
113
- {
114
- prices: pricesBigInt.slice(1),
115
- unit: pricesBigInt[0],
116
- gasCost: TransmuterGasCost,
117
- exchange: this.dexKey,
118
- data: { exchange: this.params[fiat].transmuter },
119
- poolAddresses: [this.params[fiat].transmuter],
120
- },
121
- ];
122
- }
123
- // Returns estimated gas cost of calldata for this DEX in multiSwap
124
- getCalldataGasCost(poolPrices) {
125
- return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
126
- }
127
- // Encode params required by the exchange adapter
128
- // Used for multiSwap, buy & megaSwap
129
- // Hint: abiCoder.encodeParameter() could be useful
130
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
131
- const { exchange } = data;
132
- // Encode here the payload for adapter
133
- const payload = '';
134
- return {
135
- targetExchange: exchange,
136
- payload,
137
- networkFee: '0',
138
- };
139
- }
140
- // Encode call data used by simpleSwap like routers
141
- // Used for simpleSwap & simpleBuy
142
- // Hint: this.buildSimpleParamWithoutWETHConversion
143
- // could be useful
144
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
145
- const { exchange } = data;
146
- // Encode here the transaction arguments
147
- const swapData = transmuter_1.TransmuterSubscriber.interface.encodeFunctionData(side === constants_1.SwapSide.SELL ? 'swapExactInput' : 'swapExactOutput', [
148
- side === constants_1.SwapSide.SELL ? srcAmount : destAmount,
149
- side === constants_1.SwapSide.SELL ? destAmount : srcAmount,
150
- srcToken,
151
- destToken,
152
- this.augustusAddress,
153
- 0, // TODO no deadline?
154
- ]);
155
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
156
- }
157
- // This is called once before getTopPoolsForToken is
158
- // called for multiple tokens. This can be helpful to
159
- // update common state required for calculating
160
- // getTopPoolsForToken. It is optional for a DEX
161
- // to implement this
162
- async updatePoolState() {
163
- for (const stablecoin of this.stablecoinList) {
164
- const fiat = stablecoin;
165
- const paramFiat = this.params[fiat];
166
- if (!this.supportedTokens.length) {
167
- let tokenAddresses = await angle_transmuter_pool_1.AngleTransmuterEventPool.getCollateralsList(paramFiat.transmuter, 'latest', this.dexHelper.multiContract);
168
- tokenAddresses = tokenAddresses.concat([paramFiat.stablecoin.address]);
169
- const decimalsCallData = AngleTransmuter.erc20Interface.encodeFunctionData('decimals');
170
- const tokenBalanceMultiCall = tokenAddresses.map(t => ({
171
- target: t,
172
- callData: decimalsCallData,
173
- }));
174
- const res = (await this.dexHelper.multiContract.methods
175
- .aggregate(tokenBalanceMultiCall)
176
- .call()).returnData;
177
- const tokenDecimals = res.map((r) => Number.parseInt(AngleTransmuter.erc20Interface
178
- .decodeFunctionResult('decimals', r)[0]
179
- .toString()));
180
- this.supportedTokens[fiat] = tokenAddresses.map((t, i) => ({
181
- address: t,
182
- decimals: tokenDecimals[i],
183
- }));
184
- }
185
- // Only work if there are no managers
186
- const erc20BalanceCalldata = AngleTransmuter.erc20Interface.encodeFunctionData('balanceOf', [
187
- paramFiat.transmuter,
188
- ]);
189
- const tokenBalanceMultiCall = this.supportedTokens[fiat].map(t => ({
190
- target: t.address,
191
- callData: erc20BalanceCalldata,
192
- }));
193
- const res = (await this.dexHelper.multiContract.methods
194
- .aggregate(tokenBalanceMultiCall)
195
- .call()).returnData;
196
- const tokenBalances = res.map((r) => BigInt(AngleTransmuter.erc20Interface
197
- .decodeFunctionResult('balanceOf', r)[0]
198
- .toString()));
199
- // TODO bC3M price not detected
200
- const tokenBalancesUSD = await Promise.all(this.supportedTokens[fiat].map((t, i) => this.dexHelper.getTokenUSDPrice(t, tokenBalances[i])));
201
- this.transmuterUSDLiquidity[fiat] = tokenBalancesUSD.reduce((sum, curr) => sum + curr);
202
- }
203
- }
204
- // Returns list of top pools based on liquidity. Max
205
- // limit number pools should be returned.
206
- async getTopPoolsForToken(tokenAddress, limit) {
207
- for (const stablecoin of this.stablecoinList) {
208
- const fiat = stablecoin;
209
- const paramFiat = this.params[fiat];
210
- // If not this stable let's check another one
211
- if (!this.supportedTokens[fiat].some(t => t.address.toLowerCase() === tokenAddress.toLowerCase()))
212
- continue;
213
- const connectorTokens = tokenAddress === paramFiat.stablecoin.address
214
- ? this.supportedTokens[fiat].filter(token => token.address.toLowerCase() !==
215
- paramFiat.stablecoin.address.toLowerCase())
216
- : [paramFiat.stablecoin];
217
- return [
218
- {
219
- exchange: this.dexKey,
220
- address: paramFiat.transmuter,
221
- connectorTokens: connectorTokens.slice(0, limit),
222
- // liquidity is potentially infinite if swapping for agXXX, otherwise at most reserves value
223
- liquidityUSD: tokenAddress === paramFiat.stablecoin.address
224
- ? this.transmuterUSDLiquidity[fiat]
225
- : 1e9,
226
- },
227
- ];
228
- }
229
- return [];
230
- }
231
- // This is optional function in case if your implementation has acquired any resources
232
- // you need to release for graceful shutdown. For example, it may be any interval timer
233
- releaseResources() { }
234
- _knownAddress(srcToken, destToken) {
235
- const srcAddress = this.dexHelper.config
236
- .wrapETH(srcToken)
237
- .address.toLowerCase();
238
- const destAddress = this.dexHelper.config
239
- .wrapETH(destToken)
240
- .address.toLowerCase();
241
- for (const stablecoin of this.stablecoinList) {
242
- const fiat = stablecoin;
243
- if (srcAddress !== destAddress &&
244
- this.supportedTokensMap[stablecoin][srcAddress] &&
245
- this.supportedTokensMap[stablecoin][destAddress] &&
246
- // check that at least one of the tokens is EURA
247
- (srcAddress === this.params[fiat].stablecoin.address.toLowerCase() ||
248
- destAddress === this.params[fiat].stablecoin.address.toLowerCase())) {
249
- return {
250
- known: true,
251
- agToken: this.params[fiat].stablecoin.address.toLowerCase(),
252
- fiatName: stablecoin,
253
- };
254
- }
255
- }
256
- return { known: false, agToken: null, fiatName: null };
257
- }
258
- }
259
- exports.AngleTransmuter = AngleTransmuter;
260
- AngleTransmuter.erc20Interface = new utils_2.Interface(erc20_json_1.default);
261
- AngleTransmuter.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.AngleTransmuterConfig);
262
- //# sourceMappingURL=angle-transmuter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angle-transmuter.js","sourceRoot":"","sources":["../../../src/dex/angle-transmuter/angle-transmuter.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { DeepReadonly } from 'ts-essentials';
2
- import { PartialEventSubscriber } from '../../composed-event-subscriber';
3
- import { Address, BlockHeader, Log, Logger, MultiCallInput, MultiCallOutput } from '../../types';
4
- import { Lens } from '../../lens';
5
- import { Interface } from '@ethersproject/abi';
6
- import { ChainLinkState } from '../../lib/chainlink';
7
- export declare class BackedSubscriber<State> extends PartialEventSubscriber<State, ChainLinkState> {
8
- private proxy;
9
- private aggregator;
10
- static readonly proxyInterface: Interface;
11
- static readonly ANSWER_UPDATED_TOPIC: string;
12
- constructor(proxy: Address, aggregator: Address, lens: Lens<DeepReadonly<State>, DeepReadonly<ChainLinkState>>, logger: Logger);
13
- static getReadDecimal(proxy: Address): MultiCallInput;
14
- static readDecimals(multicallOutput: MultiCallOutput): Address;
15
- processLog(state: DeepReadonly<ChainLinkState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<ChainLinkState> | null;
16
- getGenerateStateMultiCallInputs(): MultiCallInput[];
17
- generateState(multicallOutputs: MultiCallOutput[], blockNumber?: number | 'latest'): DeepReadonly<ChainLinkState>;
18
- getLatestRoundData(state: DeepReadonly<State>): bigint;
19
- }
@@ -1,56 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BackedSubscriber = void 0;
7
- const composed_event_subscriber_1 = require("../../composed-event-subscriber");
8
- const abi_1 = require("@ethersproject/abi");
9
- const chainlink_json_1 = __importDefault(require("../../abi/chainlink.json"));
10
- class BackedSubscriber extends composed_event_subscriber_1.PartialEventSubscriber {
11
- constructor(proxy, aggregator, lens, logger) {
12
- super([aggregator], lens, logger);
13
- this.proxy = proxy;
14
- this.aggregator = aggregator;
15
- }
16
- static getReadDecimal(proxy) {
17
- return {
18
- target: proxy,
19
- callData: BackedSubscriber.proxyInterface.encodeFunctionData('decimals'),
20
- };
21
- }
22
- static readDecimals(multicallOutput) {
23
- return BackedSubscriber.proxyInterface.decodeFunctionResult('decimals', multicallOutput)[0];
24
- }
25
- processLog(state, log, blockHeader) {
26
- if (log.topics[0] !== BackedSubscriber.ANSWER_UPDATED_TOPIC)
27
- return null; // Ignore other events
28
- const decoded = BackedSubscriber.proxyInterface.decodeEventLog('AnswerUpdated', log.data, log.topics);
29
- return {
30
- answer: BigInt(decoded.current.toString()),
31
- timestamp: BigInt(decoded.updatedAt.toString()),
32
- };
33
- }
34
- getGenerateStateMultiCallInputs() {
35
- return [
36
- {
37
- target: this.proxy,
38
- callData: BackedSubscriber.proxyInterface.encodeFunctionData('latestRoundData'),
39
- },
40
- ];
41
- }
42
- generateState(multicallOutputs, blockNumber) {
43
- const decoded = BackedSubscriber.proxyInterface.decodeFunctionResult('latestRoundData', multicallOutputs[0]);
44
- return {
45
- answer: BigInt(decoded.answer.toString()),
46
- timestamp: BigInt(decoded.updatedAt.toString()),
47
- };
48
- }
49
- getLatestRoundData(state) {
50
- return this.lens.get()(state).answer;
51
- }
52
- }
53
- exports.BackedSubscriber = BackedSubscriber;
54
- BackedSubscriber.proxyInterface = new abi_1.Interface(chainlink_json_1.default);
55
- BackedSubscriber.ANSWER_UPDATED_TOPIC = BackedSubscriber.proxyInterface.getEventTopic('AnswerUpdated');
56
- //# sourceMappingURL=backedOracle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backedOracle.js","sourceRoot":"","sources":["../../../src/dex/angle-transmuter/backedOracle.ts"],"names":[],"mappings":";;;;;;AACA,+EAAyE;AAUzE,4CAA+C;AAC/C,8EAAgD;AAGhD,MAAa,gBAAwB,SAAQ,kDAG5C;IAKC,YACU,KAAc,EACd,UAAmB,EAC3B,IAA6D,EAC7D,MAAc;QAEd,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAL1B,UAAK,GAAL,KAAK,CAAS;QACd,eAAU,GAAV,UAAU,CAAS;IAK7B,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAc;QAClC,OAAO;YACL,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC;SACzE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,eAAgC;QAClD,OAAO,gBAAgB,CAAC,cAAc,CAAC,oBAAoB,CACzD,UAAU,EACV,eAAe,CAChB,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CACf,KAAmC,EACnC,GAAkB,EAClB,WAAkC;QAElC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC,CAAC,sBAAsB;QAChG,MAAM,OAAO,GAAG,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAC5D,eAAe,EACf,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,MAAM,CACX,CAAC;QACF,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1C,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;IAEM,+BAA+B;QACpC,OAAO;YACL;gBACE,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,QAAQ,EACN,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;aACxE;SACF,CAAC;IACJ,CAAC;IAEM,aAAa,CAClB,gBAAmC,EACnC,WAA+B;QAE/B,MAAM,OAAO,GAAG,gBAAgB,CAAC,cAAc,CAAC,oBAAoB,CAClE,iBAAiB,EACjB,gBAAgB,CAAC,CAAC,CAAC,CACpB,CAAC;QACF,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;IAEM,kBAAkB,CAAC,KAA0B;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACvC,CAAC;;AA1EH,4CA2EC;AAvEiB,+BAAc,GAAG,IAAI,eAAS,CAAC,wBAAQ,CAAC,CAAC;AACzC,qCAAoB,GAClC,gBAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { DexParams } from './types';
2
- import { DexConfigMap, AdapterMappings } from '../../types';
3
- export declare const AngleTransmuterConfig: DexConfigMap<DexParams>;
4
- export declare const Adapters: Record<number, AdapterMappings>;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Adapters = exports.AngleTransmuterConfig = void 0;
4
- const constants_1 = require("../../constants");
5
- exports.AngleTransmuterConfig = {
6
- AngleTransmuter: {
7
- [constants_1.Network.MAINNET]: {
8
- EUR: {
9
- stablecoin: {
10
- address: '0x1a7e4e63778B4f12a199C062f3eFdD288afCBce8',
11
- decimals: 18,
12
- },
13
- transmuter: '0x00253582b2a3FE112feEC532221d9708c64cEFAb',
14
- pyth: '0x4305FB66699C3B2702D4d05CF36551390A4c69C6',
15
- },
16
- USD: {
17
- stablecoin: {
18
- address: '0x0000206329b97DB379d5E1Bf586BbDB969C63274',
19
- decimals: 18,
20
- },
21
- transmuter: '0x222222fD79264BBE280b4986F6FEfBC3524d0137',
22
- pyth: '0x4305FB66699C3B2702D4d05CF36551390A4c69C6',
23
- },
24
- },
25
- },
26
- };
27
- exports.Adapters = {
28
- [constants_1.Network.MAINNET]: { [constants_1.SwapSide.SELL]: [{ name: '', index: 0 }] },
29
- };
30
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/angle-transmuter/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,qBAAqB,GAA4B;IAC5D,eAAe,EAAE;QACf,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,GAAG,EAAE;gBACH,UAAU,EAAE;oBACV,OAAO,EAAE,4CAA4C;oBACrD,QAAQ,EAAE,EAAE;iBACb;gBACD,UAAU,EAAE,4CAA4C;gBACxD,IAAI,EAAE,4CAA4C;aACnD;YACD,GAAG,EAAE;gBACH,UAAU,EAAE;oBACV,OAAO,EAAE,4CAA4C;oBACrD,QAAQ,EAAE,EAAE;iBACb;gBACD,UAAU,EAAE,4CAA4C;gBACxD,IAAI,EAAE,4CAA4C;aACnD;SACF;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAAoC;IACvD,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;CACjE,CAAC"}
@@ -1,77 +0,0 @@
1
- export declare const CBETH = "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704";
2
- export declare const RETH = "0xae78736Cd615f374D3085123A210448E74Fc6393";
3
- export declare const STETH = "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84";
4
- export declare const SFRXETH = "0xac3E018457B222d93114458476f3E3416Abbe38F";
5
- export declare const BLOCK_UPGRADE_ORACLE = 19567142;
6
- export declare const configEUR: {
7
- stablecoin: {
8
- address: string;
9
- decimals: number;
10
- };
11
- transmuter: string;
12
- collaterals: string[];
13
- oracles: {
14
- chainlink: {};
15
- backed: {
16
- '0x83Ec02059F686E747392A22ddfED7833bA0d7cE3': {
17
- proxy: string;
18
- aggregator: string;
19
- decimals: number;
20
- };
21
- '0x475855DAe09af1e3f2d380d766b9E630926ad3CE': {
22
- proxy: string;
23
- aggregator: string;
24
- decimals: number;
25
- };
26
- };
27
- redstone: {
28
- '0x6E27A25999B3C665E44D903B2139F5a4Be2B6C26': {
29
- proxy: string;
30
- aggregator: string;
31
- decimals: number;
32
- };
33
- };
34
- morpho: {};
35
- pyth: {
36
- proxy: string;
37
- ids: string[];
38
- };
39
- };
40
- };
41
- export declare const configUSD: {
42
- stablecoin: {
43
- address: string;
44
- decimals: number;
45
- };
46
- transmuter: string;
47
- collaterals: string[];
48
- oracles: {
49
- chainlink: {
50
- '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6': {
51
- proxy: string;
52
- aggregator: string;
53
- decimals: number;
54
- };
55
- '0x32d1463EB53b73C095625719Afa544D5426354cB': {
56
- proxy: string;
57
- aggregator: string;
58
- decimals: number;
59
- };
60
- };
61
- redstone: {};
62
- morpho: {
63
- '0x025106374196586E8BC91eE8818dD7B0Efd2B78B': {
64
- baseVault: string;
65
- baseVaultConversion: bigint;
66
- quoteVault: string;
67
- quoteVaultConversion: bigint;
68
- baseFeed1: string;
69
- baseFeed2: string;
70
- quoteFeed1: string;
71
- quoteFeed2: string;
72
- scaleFactor: bigint;
73
- };
74
- };
75
- pyth: {};
76
- };
77
- };
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configUSD = exports.configEUR = exports.BLOCK_UPGRADE_ORACLE = exports.SFRXETH = exports.STETH = exports.RETH = exports.CBETH = void 0;
4
- const ethers_1 = require("ethers");
5
- const utils_1 = require("../../utils");
6
- exports.CBETH = '0xBe9895146f7AF43049ca1c1AE358B0541Ea49704';
7
- exports.RETH = '0xae78736Cd615f374D3085123A210448E74Fc6393';
8
- exports.STETH = '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84';
9
- exports.SFRXETH = '0xac3E018457B222d93114458476f3E3416Abbe38F';
10
- exports.BLOCK_UPGRADE_ORACLE = 19567142;
11
- exports.configEUR = {
12
- stablecoin: {
13
- address: '0x1a7e4e63778B4f12a199C062f3eFdD288afCBce8',
14
- decimals: 18,
15
- },
16
- transmuter: '0x00253582b2a3FE112feEC532221d9708c64cEFAb',
17
- collaterals: [
18
- '0x3f95AA88dDbB7D9D484aa3D482bf0a80009c52c9',
19
- '0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c',
20
- '0x2F123cF3F37CE3328CC9B5b8415f9EC5109b45e7',
21
- ],
22
- oracles: {
23
- chainlink: {},
24
- backed: {
25
- '0x83Ec02059F686E747392A22ddfED7833bA0d7cE3': {
26
- proxy: '0x83Ec02059F686E747392A22ddfED7833bA0d7cE3',
27
- aggregator: '0x83Ec02059F686E747392A22ddfED7833bA0d7cE3',
28
- decimals: 8,
29
- },
30
- '0x475855DAe09af1e3f2d380d766b9E630926ad3CE': {
31
- proxy: '0x475855DAe09af1e3f2d380d766b9E630926ad3CE',
32
- aggregator: '0x475855DAe09af1e3f2d380d766b9E630926ad3CE',
33
- decimals: 8,
34
- },
35
- },
36
- redstone: {
37
- '0x6E27A25999B3C665E44D903B2139F5a4Be2B6C26': {
38
- proxy: '0x6E27A25999B3C665E44D903B2139F5a4Be2B6C26',
39
- aggregator: '0x5BeEFeFE23aecccC77d164AB8E9Ff74e056588f1',
40
- decimals: 8,
41
- },
42
- },
43
- morpho: {},
44
- pyth: {
45
- proxy: '0x4305FB66699C3B2702D4d05CF36551390A4c69C6',
46
- ids: [
47
- '0x76fa85158bf14ede77087fe3ae472f66213f6ea2f5b411cb2de472794990fa5c',
48
- '0xa995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b',
49
- ],
50
- },
51
- },
52
- };
53
- exports.configUSD = {
54
- stablecoin: {
55
- address: '0x0000206329b97DB379d5E1Bf586BbDB969C63274',
56
- decimals: 18,
57
- },
58
- transmuter: '0x222222fD79264BBE280b4986F6FEfBC3524d0137',
59
- collaterals: [
60
- '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
61
- '0xCA30c93B02514f86d5C86a6e375E3A330B435Fb5',
62
- '0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB',
63
- ],
64
- oracles: {
65
- chainlink: {
66
- '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6': {
67
- proxy: '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6',
68
- aggregator: '0x789190466E21a8b78b8027866CBBDc151542A26C',
69
- decimals: 8,
70
- },
71
- '0x32d1463EB53b73C095625719Afa544D5426354cB': {
72
- proxy: '0x32d1463EB53b73C095625719Afa544D5426354cB',
73
- aggregator: '0x5EE6Ee50c1cB3E8Da20eE83D57818184387433e8',
74
- decimals: 8,
75
- },
76
- },
77
- redstone: {},
78
- morpho: {
79
- '0x025106374196586E8BC91eE8818dD7B0Efd2B78B': {
80
- baseVault: '0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB',
81
- baseVaultConversion: (0, utils_1.bigIntify)('1000000000000000000'),
82
- quoteVault: ethers_1.ethers.constants.AddressZero,
83
- quoteVaultConversion: (0, utils_1.bigIntify)('1'),
84
- baseFeed1: '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6',
85
- baseFeed2: ethers_1.ethers.constants.AddressZero,
86
- quoteFeed1: ethers_1.ethers.constants.AddressZero,
87
- quoteFeed2: ethers_1.ethers.constants.AddressZero,
88
- scaleFactor: (0, utils_1.bigIntify)('1000000000000000000'),
89
- },
90
- },
91
- pyth: {},
92
- },
93
- };
94
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/angle-transmuter/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,uCAAwC;AAE3B,QAAA,KAAK,GAAG,4CAA4C,CAAC;AACrD,QAAA,IAAI,GAAG,4CAA4C,CAAC;AACpD,QAAA,KAAK,GAAG,4CAA4C,CAAC;AACrD,QAAA,OAAO,GAAG,4CAA4C,CAAC;AACvD,QAAA,oBAAoB,GAAG,QAAQ,CAAC;AAEhC,QAAA,SAAS,GAAG;IACvB,UAAU,EAAE;QACV,OAAO,EAAE,4CAA4C;QACrD,QAAQ,EAAE,EAAE;KACb;IACD,UAAU,EAAE,4CAA4C;IACxD,WAAW,EAAE;QACX,4CAA4C;QAC5C,4CAA4C;QAC5C,4CAA4C;KAC7C;IACD,OAAO,EAAE;QACP,SAAS,EAAE,EAAE;QACb,MAAM,EAAE;YACN,4CAA4C,EAAE;gBAC5C,KAAK,EAAE,4CAA4C;gBACnD,UAAU,EAAE,4CAA4C;gBACxD,QAAQ,EAAE,CAAC;aACZ;YACD,4CAA4C,EAAE;gBAC5C,KAAK,EAAE,4CAA4C;gBACnD,UAAU,EAAE,4CAA4C;gBACxD,QAAQ,EAAE,CAAC;aACZ;SACF;QACD,QAAQ,EAAE;YACR,4CAA4C,EAAE;gBAC5C,KAAK,EAAE,4CAA4C;gBACnD,UAAU,EAAE,4CAA4C;gBACxD,QAAQ,EAAE,CAAC;aACZ;SACF;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,KAAK,EAAE,4CAA4C;YACnD,GAAG,EAAE;gBACH,oEAAoE;gBACpE,oEAAoE;aACrE;SACF;KACF;CACF,CAAC;AAEW,QAAA,SAAS,GAAG;IACvB,UAAU,EAAE;QACV,OAAO,EAAE,4CAA4C;QACrD,QAAQ,EAAE,EAAE;KACb;IACD,UAAU,EAAE,4CAA4C;IACxD,WAAW,EAAE;QACX,4CAA4C;QAC5C,4CAA4C;QAC5C,4CAA4C;KAC7C;IACD,OAAO,EAAE;QACP,SAAS,EAAE;YACT,4CAA4C,EAAE;gBAC5C,KAAK,EAAE,4CAA4C;gBACnD,UAAU,EAAE,4CAA4C;gBACxD,QAAQ,EAAE,CAAC;aACZ;YACD,4CAA4C,EAAE;gBAC5C,KAAK,EAAE,4CAA4C;gBACnD,UAAU,EAAE,4CAA4C;gBACxD,QAAQ,EAAE,CAAC;aACZ;SACF;QACD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE;YACN,4CAA4C,EAAE;gBAC5C,SAAS,EAAE,4CAA4C;gBACvD,mBAAmB,EAAE,IAAA,iBAAS,EAAC,qBAAqB,CAAC;gBACrD,UAAU,EAAE,eAAM,CAAC,SAAS,CAAC,WAAW;gBACxC,oBAAoB,EAAE,IAAA,iBAAS,EAAC,GAAG,CAAC;gBACpC,SAAS,EAAE,4CAA4C;gBACvD,SAAS,EAAE,eAAM,CAAC,SAAS,CAAC,WAAW;gBACvC,UAAU,EAAE,eAAM,CAAC,SAAS,CAAC,WAAW;gBACxC,UAAU,EAAE,eAAM,CAAC,SAAS,CAAC,WAAW;gBACxC,WAAW,EAAE,IAAA,iBAAS,EAAC,qBAAqB,CAAC;aAC9C;SACF;QACD,IAAI,EAAE,EAAE;KACT;CACF,CAAC"}
@@ -1,42 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import type { DeepReadonly } from 'ts-essentials';
3
- import type { BlockHeader, Log, Logger, MultiCallInput, MultiCallOutput } from '../../types';
4
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
- import type { IDexHelper } from '../../dex-helper/idex-helper';
6
- import type { MorphoOracleState } from './types';
7
- export declare class MorphoOracleEventPool extends StatefulEventSubscriber<MorphoOracleState> {
8
- readonly parentName: string;
9
- protected network: number;
10
- protected dexHelper: IDexHelper;
11
- morphoOracle: string;
12
- handlers: {
13
- [event: string]: (event: any, state: DeepReadonly<MorphoOracleState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<MorphoOracleState> | null;
14
- };
15
- static morphoOracleIface: Interface;
16
- static erc20Iface: Interface;
17
- logDecoder: (log: Log) => any;
18
- addressesSubscribed: string[];
19
- constructor(parentName: string, network: number, dexHelper: IDexHelper, morphoOracle: string, logger: Logger);
20
- /**
21
- * The function is called every time any of the subscribed
22
- * addresses release log. The function accepts the current
23
- * state, updates the state according to the log, and returns
24
- * the updated state.
25
- * @param state - Current state of event subscriber
26
- * @param log - Log released by one of the subscribed addresses
27
- * @returns Updates state of the event subscriber after the log
28
- */
29
- protected processLog(state: DeepReadonly<MorphoOracleState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<MorphoOracleState> | null;
30
- /**
31
- * The function generates state using on-chain calls. This
32
- * function is called to regenerate state if the event based
33
- * system fails to fetch events and the local state is no
34
- * more correct.
35
- * @param blockNumber - Blocknumber for which the state should
36
- * should be generated
37
- * @returns state of the event subscriber at blocknumber
38
- */
39
- generateState(blockNumber: number): Promise<DeepReadonly<MorphoOracleState>>;
40
- static getGenerateInfoMultiCallInput(morphoOracle: string): MultiCallInput[];
41
- static generateInfo(multicallOutputs: MultiCallOutput[]): DeepReadonly<MorphoOracleState>;
42
- }