@paraswap/dex-lib 4.6.20 → 4.6.21

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.
@@ -0,0 +1,153 @@
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.AavePtToUnderlyingFactory = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const utils_1 = require("../../utils");
9
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
+ const pendle_deployer_abi_json_1 = __importDefault(require("../../abi/pendle/pendle-deployer.abi.json"));
11
+ const constants_1 = require("./constants");
12
+ const PENDLE_DEPLOYER_ADDRESS = '0x2Ed473F528E5B320f850d17ADfe0e558f0298aA9';
13
+ class AavePtToUnderlyingFactory extends stateful_event_subscriber_1.StatefulEventSubscriber {
14
+ parentName;
15
+ network;
16
+ dexHelper;
17
+ handlers = {};
18
+ logDecoder;
19
+ addressesSubscribed;
20
+ deployerIface = new abi_1.Interface(pendle_deployer_abi_json_1.default);
21
+ CACHE_TTL_MS = 3600000; // 1 hour
22
+ constructor(parentName, network, dexHelper, logger) {
23
+ super(parentName, 'factory', dexHelper, logger);
24
+ this.parentName = parentName;
25
+ this.network = network;
26
+ this.dexHelper = dexHelper;
27
+ this.logDecoder = (log) => this.deployerIface.parseLog(log);
28
+ this.addressesSubscribed = [PENDLE_DEPLOYER_ADDRESS];
29
+ // Add handlers
30
+ this.handlers['MarketDeployment'] = this.handleMarketDeployment.bind(this);
31
+ }
32
+ async handleMarketDeployment(event, _state, _log) {
33
+ try {
34
+ const { params } = event.args;
35
+ // Check if market is expired
36
+ const currentTime = Math.floor(Date.now() / 1000);
37
+ if (params.expiry <= currentTime) {
38
+ return null;
39
+ }
40
+ // Trigger a refresh from API to get complete market data
41
+ this.logger.info('New market deployment detected, refreshing from API');
42
+ return await this.generateState(await this.dexHelper.provider.getBlockNumber());
43
+ }
44
+ catch (error) {
45
+ this.logger.error(`Failed to handle MarketDeployment event: ${error}`);
46
+ return null;
47
+ }
48
+ }
49
+ async processLog(state, log) {
50
+ try {
51
+ let event;
52
+ try {
53
+ event = this.logDecoder(log);
54
+ }
55
+ catch (e) {
56
+ return null;
57
+ }
58
+ if (event.name in this.handlers) {
59
+ return await this.handlers[event.name](event, state, log);
60
+ }
61
+ }
62
+ catch (e) {
63
+ (0, utils_1.catchParseLogError)(e, this.logger);
64
+ }
65
+ return null;
66
+ }
67
+ async getStateOrGenerate(blockNumber, readonly = false) {
68
+ let state = this.getState(blockNumber);
69
+ // Check if we need to refresh based on TTL
70
+ if (state && Date.now() - state.lastFetchTimestamp > this.CACHE_TTL_MS) {
71
+ this.logger.info('Market cache expired, refreshing from API');
72
+ state = null; // Force regeneration
73
+ }
74
+ if (!state) {
75
+ state = await this.generateState(blockNumber);
76
+ if (!readonly)
77
+ this.setState(state, blockNumber);
78
+ }
79
+ // Filter expired markets before returning
80
+ const currentTime = Math.floor(Date.now() / 1000);
81
+ return {
82
+ ...state,
83
+ markets: state.markets.filter(m => m.pt.expiry > currentTime),
84
+ };
85
+ }
86
+ async generateState(_blockNumber) {
87
+ try {
88
+ // Always fetch from Pendle API for complete market information
89
+ const markets = await this.fetchMarketsFromAPI();
90
+ if (markets.length > 0) {
91
+ this.logger.info(`Fetched ${markets.length} active PT markets from Pendle API`);
92
+ }
93
+ else {
94
+ this.logger.warn('No active PT markets found from Pendle API');
95
+ }
96
+ return {
97
+ markets,
98
+ lastFetchTimestamp: Date.now(),
99
+ };
100
+ }
101
+ catch (error) {
102
+ this.logger.error(`Failed to generate state: ${error}`);
103
+ return {
104
+ markets: [],
105
+ lastFetchTimestamp: Date.now(),
106
+ };
107
+ }
108
+ }
109
+ async fetchMarketsFromAPI() {
110
+ try {
111
+ const apiUrl = `${constants_1.PENDLE_API_URL}/v1/sdk/markets?chainId=${this.network}`;
112
+ const response = await fetch(apiUrl);
113
+ if (!response.ok) {
114
+ throw new Error(`API request failed with status ${response.status}`);
115
+ }
116
+ const data = await response.json();
117
+ if (!data.results || !Array.isArray(data.results)) {
118
+ this.logger.warn('Unexpected API response format');
119
+ return [];
120
+ }
121
+ const markets = [];
122
+ const currentTime = Math.floor(Date.now() / 1000);
123
+ for (const market of data.results) {
124
+ // Skip expired markets
125
+ if (!market.expiry || market.expiry <= currentTime) {
126
+ continue;
127
+ }
128
+ // Only process markets with PT and underlying info
129
+ if (market.pt && market.underlyingAsset) {
130
+ markets.push({
131
+ pt: {
132
+ address: market.pt.address.toLowerCase(),
133
+ decimals: market.pt.decimals || 18,
134
+ name: market.pt.name || `PT-${market.underlyingAsset.symbol}`,
135
+ expiry: market.expiry,
136
+ },
137
+ marketAddress: market.address.toLowerCase(),
138
+ exitMarketAddress: market.address.toLowerCase(),
139
+ underlyingAssetAddress: market.underlyingAsset.address.toLowerCase(),
140
+ underlyingRawAddress: market.underlyingAsset.address.toLowerCase(),
141
+ });
142
+ }
143
+ }
144
+ return markets;
145
+ }
146
+ catch (error) {
147
+ this.logger.error(`Failed to fetch markets from API: ${error}`);
148
+ return [];
149
+ }
150
+ }
151
+ }
152
+ exports.AavePtToUnderlyingFactory = AavePtToUnderlyingFactory;
153
+ //# sourceMappingURL=aave-pt-to-underlying-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aave-pt-to-underlying-factory.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.ts"],"names":[],"mappings":"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"}
@@ -14,19 +14,21 @@ export declare class AavePtToUnderlying extends SimpleExchange implements IDex<A
14
14
  readonly isFeeOnTransferSupported = false;
15
15
  private config;
16
16
  private oracleInterface;
17
- private readonly supportedMarkets;
17
+ private markets;
18
18
  logger: Logger;
19
19
  static dexKeysWithNetwork: {
20
20
  key: string;
21
21
  networks: Network[];
22
22
  }[];
23
23
  constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
24
+ initializePricing(blockNumber: number): Promise<void>;
24
25
  getAdapters(): {
25
26
  name: string;
26
27
  index: number;
27
28
  }[] | null;
28
29
  getPoolIdentifier(marketAddress: string): string;
29
30
  getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
31
+ private fetchActiveMarkets;
30
32
  private getMarketByPtToken;
31
33
  private getOracleRate;
32
34
  private calculatePriceFromOracle;
@@ -54,7 +54,7 @@ class AavePtToUnderlying extends simple_exchange_1.SimpleExchange {
54
54
  isFeeOnTransferSupported = false;
55
55
  config;
56
56
  oracleInterface;
57
- supportedMarkets;
57
+ markets = new Map();
58
58
  logger;
59
59
  static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.AavePtToUnderlyingConfig);
60
60
  constructor(network, dexKey, dexHelper) {
@@ -65,7 +65,9 @@ class AavePtToUnderlying extends simple_exchange_1.SimpleExchange {
65
65
  this.config = config_1.AavePtToUnderlyingConfig[dexKey][network];
66
66
  this.logger = dexHelper.getLogger(dexKey);
67
67
  this.oracleInterface = new abi_1.Interface(PendleOracle_json_1.default);
68
- this.supportedMarkets = this.config.supportedPts;
68
+ }
69
+ async initializePricing(blockNumber) {
70
+ await this.fetchActiveMarkets();
69
71
  }
70
72
  getAdapters() {
71
73
  return null;
@@ -74,19 +76,69 @@ class AavePtToUnderlying extends simple_exchange_1.SimpleExchange {
74
76
  return `${this.dexKey}_${marketAddress.toLowerCase()}`;
75
77
  }
76
78
  async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
77
- const market = this.getMarketByPtToken(srcToken.address);
79
+ const market = await this.getMarketByPtToken(srcToken.address.toLowerCase());
78
80
  if (!market) {
79
81
  return [];
80
82
  }
81
83
  // Only support PT -> underlying swaps
82
- if (destToken.address.toLowerCase() !==
83
- market.underlyingRawAddress.toLowerCase()) {
84
+ if (destToken.address.toLowerCase() !== market.underlyingAddress.toLowerCase()) {
84
85
  return [];
85
86
  }
86
87
  return [this.getPoolIdentifier(market.marketAddress)];
87
88
  }
88
- getMarketByPtToken(ptToken) {
89
- return this.supportedMarkets.find(m => m.pt.address.toLowerCase() === ptToken.toLowerCase());
89
+ async fetchActiveMarkets() {
90
+ try {
91
+ const { markets } = await this.dexHelper.httpRequest.get(`${constants_2.PENDLE_API_URL}/v1/${this.network}/markets/active`);
92
+ if (!markets) {
93
+ this.logger.error('No results from Pendle markets API');
94
+ return;
95
+ }
96
+ this.markets.clear();
97
+ for (const market of markets) {
98
+ const supportedMarket = this.config.underlyingAddresses[market.name];
99
+ if (!supportedMarket) {
100
+ continue;
101
+ }
102
+ // received in the format "chainId-address"
103
+ const underlyingAddress = market.underlyingAsset
104
+ .toLowerCase()
105
+ .split('-')[1];
106
+ const ptAddress = market.pt.toLowerCase().split('-')[1];
107
+ if (underlyingAddress !== supportedMarket.toLowerCase()) {
108
+ continue;
109
+ }
110
+ const marketData = {
111
+ ptAddress: ptAddress,
112
+ ptDecimals: 18,
113
+ expiry: new Date(market.expiry).getTime(),
114
+ marketAddress: market.address,
115
+ underlyingAddress: supportedMarket, // Use the original cased address from config
116
+ };
117
+ this.markets.set(ptAddress, marketData);
118
+ }
119
+ this.logger.info(`Loaded ${this.markets.size} PT markets`);
120
+ }
121
+ catch (error) {
122
+ this.logger.error(`Failed to load markets from API: ${error}`);
123
+ }
124
+ }
125
+ async getMarketByPtToken(ptToken) {
126
+ if (this.markets.size === 0) {
127
+ await this.fetchActiveMarkets();
128
+ return this.markets.get(ptToken);
129
+ }
130
+ const cachedMarket = this.markets.get(ptToken);
131
+ if (!cachedMarket) {
132
+ await this.fetchActiveMarkets();
133
+ return this.markets.get(ptToken);
134
+ }
135
+ const now = Date.now();
136
+ const isExpired = cachedMarket.expiry < now;
137
+ if (isExpired) {
138
+ await this.fetchActiveMarkets();
139
+ return this.markets.get(ptToken);
140
+ }
141
+ return cachedMarket;
90
142
  }
91
143
  async getOracleRate(market) {
92
144
  try {
@@ -114,12 +166,12 @@ class AavePtToUnderlying extends simple_exchange_1.SimpleExchange {
114
166
  }
115
167
  }
116
168
  async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
117
- const market = this.getMarketByPtToken(srcToken.address);
169
+ const market = await this.getMarketByPtToken(srcToken.address.toLowerCase());
118
170
  if (!market) {
119
171
  return null;
120
172
  }
121
- const { underlyingRawAddress, marketAddress } = market;
122
- const isUnderlying = destToken.address.toLowerCase() === underlyingRawAddress.toLowerCase();
173
+ const { underlyingAddress, marketAddress } = market;
174
+ const isUnderlying = destToken.address.toLowerCase() === underlyingAddress.toLowerCase();
123
175
  if (!isUnderlying) {
124
176
  return null;
125
177
  }
@@ -160,7 +212,7 @@ class AavePtToUnderlying extends simple_exchange_1.SimpleExchange {
160
212
  };
161
213
  }
162
214
  async getTopPoolsForToken(tokenAddress, limit) {
163
- const market = this.getMarketByPtToken(tokenAddress);
215
+ const market = await this.getMarketByPtToken(tokenAddress.toLowerCase());
164
216
  if (market) {
165
217
  return [
166
218
  {
@@ -168,7 +220,7 @@ class AavePtToUnderlying extends simple_exchange_1.SimpleExchange {
168
220
  address: market.marketAddress,
169
221
  connectorTokens: [
170
222
  {
171
- address: market.underlyingAssetAddress,
223
+ address: market.underlyingAddress,
172
224
  decimals: 18,
173
225
  liquidityUSD: constants_1.NO_USD_LIQUIDITY,
174
226
  },
@@ -1 +1 @@
1
- {"version":3,"file":"aave-pt-to-underlying.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-underlying/aave-pt-to-underlying.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aave-pt-to-underlying.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-underlying/aave-pt-to-underlying.ts"],"names":[],"mappings":"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"}
@@ -6,41 +6,15 @@ const constants_1 = require("../../constants");
6
6
  const PENDLE_ROUTER_ADDRESS = '0x888888888889758f76e7103c6cbf23abbf58f946';
7
7
  // Pendle Oracle https://etherscan.io/address/0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2
8
8
  const ORACLE_ADDRESS = '0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2';
9
- // PT sUSDe 25 Sep 2025: https://etherscan.io/address/0x9f56094c450763769ba0ea9fe2876070c0fd5f77
10
- // PT USDe 25 Sep 2025: https://etherscan.io/address/0xbc6736d346a5ebc0debc997397912cd9b8fae10a
11
- // sUSDe: https://etherscan.io/address/0x9d39a5de30e57443bff2a8307a4256c8797a3497
12
- // USDe: https://etherscan.io/address/0x4c9edd5852cd905f086c759e8383e09bff1e68b3
13
9
  exports.AavePtToUnderlyingConfig = {
14
10
  AavePtToUnderlying: {
15
11
  [constants_1.Network.MAINNET]: {
16
12
  pendleRouterAddress: PENDLE_ROUTER_ADDRESS,
17
13
  oracleAddress: ORACLE_ADDRESS,
18
- supportedPts: [
19
- {
20
- pt: {
21
- address: '0x9f56094c450763769ba0ea9fe2876070c0fd5f77',
22
- decimals: 18,
23
- name: 'PT-sUSDe-25SEP2025',
24
- expiry: 1764201600,
25
- },
26
- marketAddress: '0xa36b60a14a1a5247912584768c6e53e1a269a9f7', // PT sUSDe 25 Sep 2025 market
27
- exitMarketAddress: '0xa36b60a14a1a5247912584768c6e53e1a269a9f7', // Same as market for now
28
- underlyingAssetAddress: '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497', // sUSDe
29
- underlyingRawAddress: '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497', // raw sUSDe
30
- },
31
- {
32
- pt: {
33
- address: '0xbc6736d346a5ebc0debc997397912cd9b8fae10a',
34
- decimals: 18,
35
- name: 'PT-USDe-25SEP2025',
36
- expiry: 1764201600,
37
- },
38
- marketAddress: '0x6d98a2b6cdbf44939362a3e99793339ba2016af4', // PT USDe market
39
- exitMarketAddress: '0x6d98a2b6cdbf44939362a3e99793339ba2016af4', // Same as market for now
40
- underlyingAssetAddress: '0x4c9edd5852cd905f086c759e8383e09bff1e68b3', // USDe
41
- underlyingRawAddress: '0x4c9edd5852cd905f086c759e8383e09bff1e68b3', // raw USDe
42
- },
43
- ],
14
+ underlyingAddresses: {
15
+ USDe: '0x4c9EDD5852cd905f086C759E8383e09bff1E68B3',
16
+ sUSDe: '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497',
17
+ },
44
18
  },
45
19
  },
46
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-underlying/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE1C,gGAAgG;AAChG,MAAM,qBAAqB,GAAG,4CAA4C,CAAC;AAC3E,wFAAwF;AACxF,MAAM,cAAc,GAAG,4CAA4C,CAAC;AAEpE,gGAAgG;AAChG,+FAA+F;AAC/F,iFAAiF;AACjF,gFAAgF;AAEnE,QAAA,wBAAwB,GAA4B;IAC/D,kBAAkB,EAAE;QAClB,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,mBAAmB,EAAE,qBAAqB;YAC1C,aAAa,EAAE,cAAc;YAC7B,YAAY,EAAE;gBACZ;oBACE,EAAE,EAAE;wBACF,OAAO,EAAE,4CAA4C;wBACrD,QAAQ,EAAE,EAAE;wBACZ,IAAI,EAAE,oBAAoB;wBAC1B,MAAM,EAAE,UAAU;qBACnB;oBACD,aAAa,EAAE,4CAA4C,EAAE,8BAA8B;oBAC3F,iBAAiB,EAAE,4CAA4C,EAAE,yBAAyB;oBAC1F,sBAAsB,EAAE,4CAA4C,EAAE,QAAQ;oBAC9E,oBAAoB,EAAE,4CAA4C,EAAE,YAAY;iBACjF;gBACD;oBACE,EAAE,EAAE;wBACF,OAAO,EAAE,4CAA4C;wBACrD,QAAQ,EAAE,EAAE;wBACZ,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,UAAU;qBACnB;oBACD,aAAa,EAAE,4CAA4C,EAAE,iBAAiB;oBAC9E,iBAAiB,EAAE,4CAA4C,EAAE,yBAAyB;oBAC1F,sBAAsB,EAAE,4CAA4C,EAAE,OAAO;oBAC7E,oBAAoB,EAAE,4CAA4C,EAAE,WAAW;iBAChF;aACF;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-underlying/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE1C,gGAAgG;AAChG,MAAM,qBAAqB,GAAG,4CAA4C,CAAC;AAC3E,wFAAwF;AACxF,MAAM,cAAc,GAAG,4CAA4C,CAAC;AAEvD,QAAA,wBAAwB,GAA4B;IAC/D,kBAAkB,EAAE;QAClB,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,mBAAmB,EAAE,qBAAqB;YAC1C,aAAa,EAAE,cAAc;YAC7B,mBAAmB,EAAE;gBACnB,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,4CAA4C;aACpD;SACF;KACF;CACF,CAAC"}
@@ -2,21 +2,22 @@ import { Address } from '../../types';
2
2
  export type AavePtToUnderlyingData = {
3
3
  marketAddress: Address;
4
4
  };
5
- export interface PendleToken {
6
- address: string;
7
- decimals: number;
8
- name: string;
9
- expiry: number;
10
- }
11
5
  export interface SupportedPt {
12
- pt: PendleToken;
6
+ ptAddress: string;
7
+ ptDecimals: number;
8
+ expiry: number;
13
9
  marketAddress: string;
14
- exitMarketAddress: string;
15
- underlyingAssetAddress: string;
16
- underlyingRawAddress: string;
10
+ underlyingAddress: string;
17
11
  }
18
12
  export interface DexParams {
19
13
  pendleRouterAddress: string;
20
14
  oracleAddress: string;
21
- supportedPts: SupportedPt[];
15
+ underlyingAddresses: Record<string, Address>;
16
+ }
17
+ export interface Market {
18
+ name: string;
19
+ address: string;
20
+ expiry: string;
21
+ pt: Address;
22
+ underlyingAsset: Address;
22
23
  }
@@ -28,6 +28,7 @@ exports.SkyConverterConfig = {
28
28
  oldToNewFunctionName: 'mkrToSky',
29
29
  newTokenRateMultiplier: 24000n, // constant, never to be updated
30
30
  converterIface: new abi_1.Interface(MkrSkyConverter_json_1.default),
31
+ converterFee: true,
31
32
  },
32
33
  },
33
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/sky-converter/config.ts"],"names":[],"mappings":";;;;;;AAEA,+CAA0C;AAC1C,0GAAgF;AAChF,wGAA8E;AAC9E,4CAA+C;AAElC,QAAA,kBAAkB,GAA4B;IACzD,OAAO,EAAE;QACP,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,gBAAgB,EAAE,4CAA4C;YAC9D,eAAe,EAAE,4CAA4C;YAC7D,eAAe,EAAE,4CAA4C;YAC7D,oBAAoB,EAAE,WAAW;YACjC,oBAAoB,EAAE,WAAW;YACjC,sBAAsB,EAAE,EAAE,EAAE,gCAAgC;YAC5D,cAAc,EAAE,IAAI,eAAS,CAAC,+BAAmB,CAAC;SACnD;KACF;IACD,MAAM,EAAE;QACN,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,gBAAgB,EAAE,4CAA4C;YAC9D,eAAe,EAAE,4CAA4C;YAC7D,eAAe,EAAE,4CAA4C;YAC7D,oBAAoB,EAAE,UAAU;YAChC,sBAAsB,EAAE,MAAO,EAAE,gCAAgC;YACjE,cAAc,EAAE,IAAI,eAAS,CAAC,8BAAkB,CAAC;SAClD;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/sky-converter/config.ts"],"names":[],"mappings":";;;;;;AAEA,+CAA0C;AAC1C,0GAAgF;AAChF,wGAA8E;AAC9E,4CAA+C;AAElC,QAAA,kBAAkB,GAA4B;IACzD,OAAO,EAAE;QACP,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,gBAAgB,EAAE,4CAA4C;YAC9D,eAAe,EAAE,4CAA4C;YAC7D,eAAe,EAAE,4CAA4C;YAC7D,oBAAoB,EAAE,WAAW;YACjC,oBAAoB,EAAE,WAAW;YACjC,sBAAsB,EAAE,EAAE,EAAE,gCAAgC;YAC5D,cAAc,EAAE,IAAI,eAAS,CAAC,+BAAmB,CAAC;SACnD;KACF;IACD,MAAM,EAAE;QACN,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,gBAAgB,EAAE,4CAA4C;YAC9D,eAAe,EAAE,4CAA4C;YAC7D,eAAe,EAAE,4CAA4C;YAC7D,oBAAoB,EAAE,UAAU;YAChC,sBAAsB,EAAE,MAAO,EAAE,gCAAgC;YACjE,cAAc,EAAE,IAAI,eAAS,CAAC,8BAAkB,CAAC;YACjD,YAAY,EAAE,IAAI;SACnB;KACF;CACF,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Contract } from 'ethers';
2
+ import { Interface } from '@ethersproject/abi';
3
+ import { DeepReadonly } from 'ts-essentials';
4
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
+ import { Address, BlockHeader, Log, Logger } from '../../types';
6
+ import { IDexHelper } from '../../dex-helper';
7
+ import { SkyConverterPoolState } from './types';
8
+ export declare class SkyConverterEventPool extends StatefulEventSubscriber<SkyConverterPoolState> {
9
+ readonly parentName: string;
10
+ protected network: number;
11
+ protected dexHelper: IDexHelper;
12
+ private readonly converterAddress;
13
+ private readonly converterInterface;
14
+ handlers: {
15
+ [event: string]: (event: any, state: DeepReadonly<SkyConverterPoolState>, log: Readonly<Log>) => DeepReadonly<SkyConverterPoolState> | null;
16
+ };
17
+ logDecoder: (log: Log) => any;
18
+ readonly contract: Contract;
19
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, converterAddress: Address, converterInterface: Interface);
20
+ protected processLog(state: DeepReadonly<SkyConverterPoolState>, log: Readonly<Log>, _blockHeader: Readonly<BlockHeader>): DeepReadonly<SkyConverterPoolState> | null;
21
+ generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<SkyConverterPoolState>>;
22
+ getOrGenerateState(blockNumber: number): Promise<SkyConverterPoolState>;
23
+ handleFile(event: any, state: DeepReadonly<SkyConverterPoolState>, log: Readonly<Log>): DeepReadonly<SkyConverterPoolState> | null;
24
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SkyConverterEventPool = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const utils_1 = require("../../utils");
6
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
7
+ const FEE_BYTES32 = '0x6665650000000000000000000000000000000000000000000000000000000000';
8
+ class SkyConverterEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
9
+ parentName;
10
+ network;
11
+ dexHelper;
12
+ converterAddress;
13
+ converterInterface;
14
+ handlers = {};
15
+ logDecoder;
16
+ contract;
17
+ constructor(parentName, network, dexHelper, logger, converterAddress, converterInterface) {
18
+ super(parentName, 'fee', dexHelper, logger);
19
+ this.parentName = parentName;
20
+ this.network = network;
21
+ this.dexHelper = dexHelper;
22
+ this.converterAddress = converterAddress;
23
+ this.converterInterface = converterInterface;
24
+ this.logDecoder = (log) => this.converterInterface.parseLog(log);
25
+ this.contract = new ethers_1.Contract(this.converterAddress, this.converterInterface.fragments, this.dexHelper.provider);
26
+ this.addressesSubscribed = [this.converterAddress];
27
+ this.handlers['File'] = this.handleFile.bind(this);
28
+ }
29
+ processLog(state, log, _blockHeader) {
30
+ try {
31
+ const event = this.logDecoder(log);
32
+ if (event.name in this.handlers) {
33
+ return this.handlers[event.name](event, state, log);
34
+ }
35
+ }
36
+ catch (error) {
37
+ (0, utils_1.catchParseLogError)(error, this.logger);
38
+ }
39
+ return null;
40
+ }
41
+ async generateState(blockNumber = 'latest') {
42
+ try {
43
+ const feeBn = await this.contract.fee({ blockTag: blockNumber });
44
+ return { fee: feeBn.toBigInt() };
45
+ }
46
+ catch (error) {
47
+ this.logger.warn(`${this.parentName}: failed to fetch fee state, falling back to 0`, error);
48
+ return { fee: 0n };
49
+ }
50
+ }
51
+ async getOrGenerateState(blockNumber) {
52
+ const state = this.getState(blockNumber);
53
+ if (state) {
54
+ return { fee: state.fee };
55
+ }
56
+ const freshState = await this.generateState(blockNumber);
57
+ this.setState(freshState, blockNumber);
58
+ return { fee: freshState.fee };
59
+ }
60
+ handleFile(event, state, log) {
61
+ if (event.args.what.toLowerCase() !== FEE_BYTES32) {
62
+ return null;
63
+ }
64
+ return { fee: event.args.data.toBigInt() };
65
+ }
66
+ }
67
+ exports.SkyConverterEventPool = SkyConverterEventPool;
68
+ //# sourceMappingURL=sky-converter-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-converter-pool.js","sourceRoot":"","sources":["../../../src/dex/sky-converter/sky-converter-pool.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export declare class SkyConverter extends SimpleExchange implements IDex<SkyConv
18
18
  logger: Logger;
19
19
  oldToken: Address;
20
20
  newToken: Address;
21
+ private readonly eventPool?;
21
22
  constructor(network: Network, dexKey: string, dexHelper: IDexHelper, config?: import("./types").DexParams);
22
23
  initializePricing(blockNumber: number): Promise<void>;
23
24
  getAdapters(side: SwapSide): {
@@ -25,8 +26,8 @@ export declare class SkyConverter extends SimpleExchange implements IDex<SkyConv
25
26
  index: number;
26
27
  }[] | null;
27
28
  getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
28
- oldAmountToNewAmount(amount: bigint): bigint;
29
- newAmountToOldAmount(amount: bigint): bigint;
29
+ oldAmountToNewAmount(amount: bigint, fee: bigint): bigint;
30
+ newAmountToOldAmount(amount: bigint, fee: bigint): bigint;
30
31
  getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<SkyConverterData>>;
31
32
  getCalldataGasCost(poolPrices: PoolPrices<SkyConverterData>): number | number[];
32
33
  getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: SkyConverterData, side: SwapSide): AdapterExchangeParam;