@paraswap/dex-lib 4.6.18 → 4.6.20

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 (166) hide show
  1. package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +796 -0
  2. package/build/abi/ring-v2/few-wrapped-token.json +587 -0
  3. package/build/abi/ring-v2/ring-v2-factory.json +125 -0
  4. package/build/abi/ring-v2/ring-v2-pool.json +461 -0
  5. package/build/abi/ring-v2/ring-v2-router.json +332 -0
  6. package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +682 -0
  7. package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +1335 -0
  8. package/build/abi/{wUSDM.json → usual-usual-usdc/abi.json} +245 -304
  9. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.d.ts +39 -0
  10. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +244 -0
  11. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +1 -0
  12. package/build/dex/aave-pt-to-underlying/config.d.ts +3 -0
  13. package/build/dex/aave-pt-to-underlying/config.js +47 -0
  14. package/build/dex/aave-pt-to-underlying/config.js.map +1 -0
  15. package/build/dex/aave-pt-to-underlying/constants.d.ts +2 -0
  16. package/build/dex/aave-pt-to-underlying/constants.js +6 -0
  17. package/build/dex/aave-pt-to-underlying/constants.js.map +1 -0
  18. package/build/dex/aave-pt-to-underlying/types.d.ts +22 -0
  19. package/build/dex/aave-pt-to-underlying/types.js.map +1 -0
  20. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +39 -0
  21. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +244 -0
  22. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +1 -0
  23. package/build/dex/{usual-bond → aave-pt-to-usdc}/config.d.ts +1 -1
  24. package/build/dex/aave-pt-to-usdc/config.js +47 -0
  25. package/build/dex/aave-pt-to-usdc/config.js.map +1 -0
  26. package/build/dex/aave-pt-to-usdc/constants.d.ts +2 -0
  27. package/build/dex/aave-pt-to-usdc/constants.js +6 -0
  28. package/build/dex/aave-pt-to-usdc/constants.js.map +1 -0
  29. package/build/dex/aave-pt-to-usdc/types.d.ts +22 -0
  30. package/build/dex/aave-pt-to-usdc/types.js +3 -0
  31. package/build/dex/{usual-bond → aave-pt-to-usdc}/types.js.map +1 -1
  32. package/build/dex/ekubo/pools/math/sqrt-ratio.d.ts +8 -0
  33. package/build/dex/ekubo/pools/math/sqrt-ratio.js +113 -0
  34. package/build/dex/ekubo/pools/math/sqrt-ratio.js.map +1 -0
  35. package/build/dex/ekubo/pools/mev-resist.d.ts +7 -0
  36. package/build/dex/ekubo/pools/mev-resist.js +40 -0
  37. package/build/dex/ekubo/pools/mev-resist.js.map +1 -0
  38. package/build/dex/ekubo/pools/pool.d.ts +52 -0
  39. package/build/dex/ekubo/pools/pool.js +86 -0
  40. package/build/dex/ekubo/pools/pool.js.map +1 -0
  41. package/build/dex/erc4626/erc-4626-pool.d.ts +3 -3
  42. package/build/dex/erc4626/erc-4626-pool.js +6 -6
  43. package/build/dex/erc4626/erc-4626-pool.js.map +1 -1
  44. package/build/dex/fluid-dex/fluid-dex.js +4 -2
  45. package/build/dex/fluid-dex/fluid-dex.js.map +1 -1
  46. package/build/dex/index.js +4 -0
  47. package/build/dex/index.js.map +1 -1
  48. package/build/dex/maker-psm/maker-psm-event-pool.d.ts +43 -0
  49. package/build/dex/maker-psm/maker-psm-event-pool.js +132 -0
  50. package/build/dex/maker-psm/maker-psm-event-pool.js.map +1 -0
  51. package/build/dex/miro-migrator/miro-migrator-state.d.ts +27 -0
  52. package/build/dex/miro-migrator/miro-migrator-state.js +89 -0
  53. package/build/dex/miro-migrator/miro-migrator-state.js.map +1 -0
  54. package/build/dex/uniswap-v2/ring-v2.d.ts +2 -1
  55. package/build/dex/uniswap-v2/ring-v2.js +16 -0
  56. package/build/dex/uniswap-v2/ring-v2.js.map +1 -1
  57. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +4 -0
  58. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +56 -0
  59. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +1 -0
  60. package/build/dex/uniswap-v4/contract-math/Position.d.ts +6 -0
  61. package/build/dex/uniswap-v4/contract-math/Position.js +29 -0
  62. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  63. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +7 -0
  64. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +28 -0
  65. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +1 -0
  66. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
  67. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +2 -0
  68. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +1 -0
  69. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +7 -0
  70. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +28 -0
  71. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +1 -0
  72. package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
  73. package/build/dex/uniswap-v4/hooks/fee-hook/types.js +2 -0
  74. package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +1 -0
  75. package/build/dex/uniswap-v4/hooks/index.d.ts +2 -0
  76. package/build/dex/uniswap-v4/hooks/index.js +8 -0
  77. package/build/dex/uniswap-v4/hooks/index.js.map +1 -0
  78. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +26 -0
  79. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +75 -0
  80. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +1 -0
  81. package/build/dex/usual/usdc-usual-usdc.d.ts +17 -0
  82. package/build/dex/usual/usdc-usual-usdc.js +61 -0
  83. package/build/dex/usual/usdc-usual-usdc.js.map +1 -0
  84. package/build/dex/usual/usual-usdc-usd0.d.ts +23 -0
  85. package/build/dex/usual/usual-usdc-usd0.js +54 -0
  86. package/build/dex/usual/usual-usdc-usd0.js.map +1 -0
  87. package/build/dex/usual/usual-usdc-usdc.d.ts +17 -0
  88. package/build/dex/usual/usual-usdc-usdc.js +59 -0
  89. package/build/dex/usual/usual-usdc-usdc.js.map +1 -0
  90. package/build/generic-swap-transaction-builder.js +6 -2
  91. package/build/generic-swap-transaction-builder.js.map +1 -1
  92. package/package.json +1 -1
  93. package/build/abi/BProtocol.json +0 -1155
  94. package/build/abi/Jarvis.json +0 -1172
  95. package/build/abi/MStableAsset.json +0 -1545
  96. package/build/abi/OneInchLp.json +0 -1304
  97. package/build/abi/Onebit.json +0 -736
  98. package/build/abi/Shell.json +0 -1294
  99. package/build/abi/TraderJoeV2Router.json +0 -50
  100. package/build/abi/zrx.v2.json +0 -1967
  101. package/build/abi/zrx.v3.json +0 -3454
  102. package/build/abi/zrx.v4.json +0 -2193
  103. package/build/dex/OneInchLp.d.ts +0 -24
  104. package/build/dex/OneInchLp.js +0 -43
  105. package/build/dex/OneInchLp.js.map +0 -1
  106. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  107. package/build/dex/bProtocol/bProtocol.js +0 -56
  108. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  109. package/build/dex/bProtocol/types.d.ts +0 -11
  110. package/build/dex/bProtocol/types.js +0 -8
  111. package/build/dex/bProtocol/types.js.map +0 -1
  112. package/build/dex/jarvis.d.ts +0 -56
  113. package/build/dex/jarvis.js +0 -163
  114. package/build/dex/jarvis.js.map +0 -1
  115. package/build/dex/mStable.d.ts +0 -44
  116. package/build/dex/mStable.js +0 -75
  117. package/build/dex/mStable.js.map +0 -1
  118. package/build/dex/onebit/onebit.d.ts +0 -16
  119. package/build/dex/onebit/onebit.js +0 -61
  120. package/build/dex/onebit/onebit.js.map +0 -1
  121. package/build/dex/onebit/types.d.ts +0 -14
  122. package/build/dex/onebit/types.js +0 -8
  123. package/build/dex/onebit/types.js.map +0 -1
  124. package/build/dex/shell.d.ts +0 -25
  125. package/build/dex/shell.js +0 -41
  126. package/build/dex/shell.js.map +0 -1
  127. package/build/dex/trader-joe-v2.d.ts +0 -40
  128. package/build/dex/trader-joe-v2.js +0 -74
  129. package/build/dex/trader-joe-v2.js.map +0 -1
  130. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  131. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  132. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  133. package/build/dex/usual-bond/config.js +0 -13
  134. package/build/dex/usual-bond/config.js.map +0 -1
  135. package/build/dex/usual-bond/types.d.ts +0 -7
  136. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  137. package/build/dex/usual-bond/usual-bond.js +0 -176
  138. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  139. package/build/dex/wusdm/config.d.ts +0 -3
  140. package/build/dex/wusdm/config.js +0 -43
  141. package/build/dex/wusdm/config.js.map +0 -1
  142. package/build/dex/wusdm/constants.d.ts +0 -2
  143. package/build/dex/wusdm/constants.js +0 -6
  144. package/build/dex/wusdm/constants.js.map +0 -1
  145. package/build/dex/wusdm/types.d.ts +0 -18
  146. package/build/dex/wusdm/types.js +0 -11
  147. package/build/dex/wusdm/types.js.map +0 -1
  148. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  149. package/build/dex/wusdm/wusdm-pool.js +0 -74
  150. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  151. package/build/dex/wusdm/wusdm.d.ts +0 -46
  152. package/build/dex/wusdm/wusdm.js +0 -243
  153. package/build/dex/wusdm/wusdm.js.map +0 -1
  154. package/build/dex/zerox/config.d.ts +0 -2
  155. package/build/dex/zerox/config.js +0 -33
  156. package/build/dex/zerox/config.js.map +0 -1
  157. package/build/dex/zerox/index.d.ts +0 -22
  158. package/build/dex/zerox/index.js +0 -225
  159. package/build/dex/zerox/index.js.map +0 -1
  160. package/build/dex/zerox/order.d.ts +0 -88
  161. package/build/dex/zerox/order.js +0 -53
  162. package/build/dex/zerox/order.js.map +0 -1
  163. package/build/dex/zerox/types.d.ts +0 -73
  164. package/build/dex/zerox/types.js +0 -21
  165. package/build/dex/zerox/types.js.map +0 -1
  166. /package/build/dex/{usual-bond → aave-pt-to-underlying}/types.js +0 -0
@@ -0,0 +1,39 @@
1
+ import { Token, Address, ExchangePrices, AdapterExchangeParam, PoolLiquidity, Logger, NumberAsString } from '../../types';
2
+ import { SwapSide, Network } from '../../constants';
3
+ import { Context, IDex } from '../../dex/idex';
4
+ import { IDexHelper } from '../../dex-helper/idex-helper';
5
+ import { AavePtToUnderlyingData } from './types';
6
+ import { SimpleExchange } from '../simple-exchange';
7
+ import { DexExchangeParam } from '../../types';
8
+ export declare class AavePtToUnderlying extends SimpleExchange implements IDex<AavePtToUnderlyingData> {
9
+ readonly network: Network;
10
+ readonly dexKey: string;
11
+ readonly dexHelper: IDexHelper;
12
+ readonly hasConstantPriceLargeAmounts = false;
13
+ readonly needWrapNative = false;
14
+ readonly isFeeOnTransferSupported = false;
15
+ private config;
16
+ private oracleInterface;
17
+ private readonly supportedMarkets;
18
+ logger: Logger;
19
+ static dexKeysWithNetwork: {
20
+ key: string;
21
+ networks: Network[];
22
+ }[];
23
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
24
+ getAdapters(): {
25
+ name: string;
26
+ index: number;
27
+ }[] | null;
28
+ getPoolIdentifier(marketAddress: string): string;
29
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
30
+ private getMarketByPtToken;
31
+ private getOracleRate;
32
+ private calculatePriceFromOracle;
33
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<ExchangePrices<AavePtToUnderlyingData> | null>;
34
+ getCalldataGasCost(): number | number[];
35
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AavePtToUnderlyingData, side: SwapSide): AdapterExchangeParam;
36
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
37
+ getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: AavePtToUnderlyingData, side: SwapSide, context: Context, executorAddress: Address): Promise<DexExchangeParam>;
38
+ private callPendleSdkApi;
39
+ }
@@ -0,0 +1,244 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AavePtToUnderlying = void 0;
40
+ const constants_1 = require("../../constants");
41
+ const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
42
+ const utils_1 = require("../../utils");
43
+ const simple_exchange_1 = require("../simple-exchange");
44
+ const config_1 = require("./config");
45
+ const abi_1 = require("@ethersproject/abi");
46
+ const PendleOracle_json_1 = __importDefault(require("../../abi/PendleOracle.json"));
47
+ const constants_2 = require("./constants");
48
+ class AavePtToUnderlying extends simple_exchange_1.SimpleExchange {
49
+ network;
50
+ dexKey;
51
+ dexHelper;
52
+ hasConstantPriceLargeAmounts = false;
53
+ needWrapNative = false;
54
+ isFeeOnTransferSupported = false;
55
+ config;
56
+ oracleInterface;
57
+ supportedMarkets;
58
+ logger;
59
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.AavePtToUnderlyingConfig);
60
+ constructor(network, dexKey, dexHelper) {
61
+ super(dexHelper, dexKey);
62
+ this.network = network;
63
+ this.dexKey = dexKey;
64
+ this.dexHelper = dexHelper;
65
+ this.config = config_1.AavePtToUnderlyingConfig[dexKey][network];
66
+ this.logger = dexHelper.getLogger(dexKey);
67
+ this.oracleInterface = new abi_1.Interface(PendleOracle_json_1.default);
68
+ this.supportedMarkets = this.config.supportedPts;
69
+ }
70
+ getAdapters() {
71
+ return null;
72
+ }
73
+ getPoolIdentifier(marketAddress) {
74
+ return `${this.dexKey}_${marketAddress.toLowerCase()}`;
75
+ }
76
+ async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
77
+ const market = this.getMarketByPtToken(srcToken.address);
78
+ if (!market) {
79
+ return [];
80
+ }
81
+ // Only support PT -> underlying swaps
82
+ if (destToken.address.toLowerCase() !==
83
+ market.underlyingRawAddress.toLowerCase()) {
84
+ return [];
85
+ }
86
+ return [this.getPoolIdentifier(market.marketAddress)];
87
+ }
88
+ getMarketByPtToken(ptToken) {
89
+ return this.supportedMarkets.find(m => m.pt.address.toLowerCase() === ptToken.toLowerCase());
90
+ }
91
+ async getOracleRate(market) {
92
+ try {
93
+ const callData = this.oracleInterface.encodeFunctionData('getPtToAssetRate', [market.marketAddress, 0]);
94
+ const rate = await this.dexHelper.provider.call({
95
+ to: this.config.oracleAddress,
96
+ data: callData,
97
+ });
98
+ return BigInt(rate);
99
+ }
100
+ catch (error) {
101
+ this.logger.error(`Failed to fetch oracle rate: ${error}`);
102
+ return 0n;
103
+ }
104
+ }
105
+ async calculatePriceFromOracle(market, amounts, side) {
106
+ const rate = await this.getOracleRate(market);
107
+ if (rate === 0n)
108
+ return [];
109
+ if (side === constants_1.SwapSide.SELL) {
110
+ return amounts.map(amount => (amount * rate) / 10n ** 18n);
111
+ }
112
+ else {
113
+ return amounts.map(amount => (amount * 10n ** 18n + (rate - 1n)) / rate);
114
+ }
115
+ }
116
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
117
+ const market = this.getMarketByPtToken(srcToken.address);
118
+ if (!market) {
119
+ return null;
120
+ }
121
+ const { underlyingRawAddress, marketAddress } = market;
122
+ const isUnderlying = destToken.address.toLowerCase() === underlyingRawAddress.toLowerCase();
123
+ if (!isUnderlying) {
124
+ return null;
125
+ }
126
+ if (limitPools && limitPools.length > 0) {
127
+ const poolId = this.getPoolIdentifier(marketAddress);
128
+ if (!limitPools.includes(poolId)) {
129
+ return null;
130
+ }
131
+ }
132
+ const unit = (0, utils_1.getBigIntPow)(side === constants_1.SwapSide.SELL ? srcToken.decimals : destToken.decimals);
133
+ const _amounts = [unit, ...amounts.slice(1)];
134
+ const prices = await this.calculatePriceFromOracle(market, _amounts, side);
135
+ if (prices.length === 0)
136
+ return null;
137
+ return [
138
+ {
139
+ exchange: this.dexKey,
140
+ prices: [0n, ...prices.slice(1)],
141
+ unit: prices[0],
142
+ gasCost: constants_2.AAVE_PT_TO_UNDERLYING_GAS_COST,
143
+ data: {
144
+ marketAddress,
145
+ },
146
+ poolIdentifiers: [this.getPoolIdentifier(marketAddress)],
147
+ poolAddresses: [marketAddress],
148
+ },
149
+ ];
150
+ }
151
+ getCalldataGasCost() {
152
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
153
+ }
154
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
155
+ const payload = '0x';
156
+ return {
157
+ targetExchange: this.config.pendleRouterAddress,
158
+ payload,
159
+ networkFee: '0',
160
+ };
161
+ }
162
+ async getTopPoolsForToken(tokenAddress, limit) {
163
+ const market = this.getMarketByPtToken(tokenAddress);
164
+ if (market) {
165
+ return [
166
+ {
167
+ exchange: this.dexKey,
168
+ address: market.marketAddress,
169
+ connectorTokens: [
170
+ {
171
+ address: market.underlyingAssetAddress,
172
+ decimals: 18,
173
+ liquidityUSD: constants_1.NO_USD_LIQUIDITY,
174
+ },
175
+ ],
176
+ liquidityUSD: constants_1.UNLIMITED_USD_LIQUIDITY,
177
+ },
178
+ ];
179
+ }
180
+ return [];
181
+ }
182
+ async getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, context, executorAddress) {
183
+ const apiParams = {
184
+ receiver: recipient,
185
+ slippage: 0,
186
+ ptAmount: srcAmount,
187
+ ytAmount: '0',
188
+ lpAmount: '0',
189
+ tokenOut: destToken,
190
+ enableAggregator: false,
191
+ };
192
+ const swapResp = await this.callPendleSdkApi(data.marketAddress, apiParams);
193
+ if (!swapResp.success || !swapResp.tx) {
194
+ const errorMsg = `Pendle SDK exit-positions endpoint failed: ${swapResp.error || 'No transaction data returned'}`;
195
+ this.logger.error(errorMsg);
196
+ throw new Error(errorMsg);
197
+ }
198
+ const tx = swapResp.tx;
199
+ // Validate transaction data
200
+ if (!tx.to || !tx.data) {
201
+ const errorMsg = 'Invalid transaction data returned from Pendle SDK API';
202
+ this.logger.error(`${errorMsg}: to=${tx.to}, hasData=${!!tx.data}`);
203
+ throw new Error(errorMsg);
204
+ }
205
+ const result = {
206
+ targetExchange: tx.to,
207
+ exchangeData: tx.data,
208
+ needWrapNative: false,
209
+ dexFuncHasRecipient: true,
210
+ returnAmountPos: 0,
211
+ };
212
+ return result;
213
+ }
214
+ async callPendleSdkApi(marketAddress, params) {
215
+ const url = new URL(`${constants_2.PENDLE_API_URL}/v2/sdk/${this.network}/markets/${marketAddress}/exit-positions`);
216
+ Object.keys(params).forEach(key => {
217
+ if (params[key] !== undefined && params[key] !== null) {
218
+ url.searchParams.append(key, params[key].toString());
219
+ }
220
+ });
221
+ try {
222
+ const response = await this.dexHelper.httpRequest.get(url.toString(), 30000, {
223
+ Accept: 'application/json',
224
+ });
225
+ const responseData = response;
226
+ const result = {
227
+ success: true,
228
+ data: responseData.data || responseData,
229
+ tx: responseData.tx || responseData.data?.tx,
230
+ };
231
+ return result;
232
+ }
233
+ catch (error) {
234
+ this.logger.error(`Pendle SDK API call failed: ${error}`);
235
+ return {
236
+ success: false,
237
+ error: error instanceof Error ? error.message : String(error),
238
+ tx: null,
239
+ };
240
+ }
241
+ }
242
+ }
243
+ exports.AavePtToUnderlying = AavePtToUnderlying;
244
+ //# sourceMappingURL=aave-pt-to-underlying.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,3 @@
1
+ import { DexParams } from './types';
2
+ import { DexConfigMap } from '../../types';
3
+ export declare const AavePtToUnderlyingConfig: DexConfigMap<DexParams>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AavePtToUnderlyingConfig = void 0;
4
+ const constants_1 = require("../../constants");
5
+ // Pendle V4 Router https://etherscan.io/address/0x888888888889758f76e7103c6cbf23abbf58f946#code
6
+ const PENDLE_ROUTER_ADDRESS = '0x888888888889758f76e7103c6cbf23abbf58f946';
7
+ // Pendle Oracle https://etherscan.io/address/0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2
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
+ exports.AavePtToUnderlyingConfig = {
14
+ AavePtToUnderlying: {
15
+ [constants_1.Network.MAINNET]: {
16
+ pendleRouterAddress: PENDLE_ROUTER_ADDRESS,
17
+ 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
+ ],
44
+ },
45
+ },
46
+ };
47
+ //# sourceMappingURL=config.js.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export declare const PENDLE_API_URL = "https://api-v2.pendle.finance/core";
2
+ export declare const AAVE_PT_TO_UNDERLYING_GAS_COST = 200000;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AAVE_PT_TO_UNDERLYING_GAS_COST = exports.PENDLE_API_URL = void 0;
4
+ exports.PENDLE_API_URL = 'https://api-v2.pendle.finance/core';
5
+ exports.AAVE_PT_TO_UNDERLYING_GAS_COST = 200_000;
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-underlying/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,oCAAoC,CAAC;AACtD,QAAA,8BAA8B,GAAG,OAAO,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Address } from '../../types';
2
+ export type AavePtToUnderlyingData = {
3
+ marketAddress: Address;
4
+ };
5
+ export interface PendleToken {
6
+ address: string;
7
+ decimals: number;
8
+ name: string;
9
+ expiry: number;
10
+ }
11
+ export interface SupportedPt {
12
+ pt: PendleToken;
13
+ marketAddress: string;
14
+ exitMarketAddress: string;
15
+ underlyingAssetAddress: string;
16
+ underlyingRawAddress: string;
17
+ }
18
+ export interface DexParams {
19
+ pendleRouterAddress: string;
20
+ oracleAddress: string;
21
+ supportedPts: SupportedPt[];
22
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-underlying/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import { Token, Address, ExchangePrices, AdapterExchangeParam, PoolLiquidity, Logger, NumberAsString } from '../../types';
2
+ import { SwapSide, Network } from '../../constants';
3
+ import { Context, IDex } from '../../dex/idex';
4
+ import { IDexHelper } from '../../dex-helper/idex-helper';
5
+ import { AavePtToUsdcData } from './types';
6
+ import { SimpleExchange } from '../simple-exchange';
7
+ import { DexExchangeParam } from '../../types';
8
+ export declare class AavePtToUsdc extends SimpleExchange implements IDex<AavePtToUsdcData> {
9
+ readonly network: Network;
10
+ readonly dexKey: string;
11
+ readonly dexHelper: IDexHelper;
12
+ readonly hasConstantPriceLargeAmounts = false;
13
+ readonly needWrapNative = false;
14
+ readonly isFeeOnTransferSupported = false;
15
+ private config;
16
+ private oracleInterface;
17
+ private readonly supportedMarkets;
18
+ logger: Logger;
19
+ static dexKeysWithNetwork: {
20
+ key: string;
21
+ networks: Network[];
22
+ }[];
23
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
24
+ getAdapters(): {
25
+ name: string;
26
+ index: number;
27
+ }[] | null;
28
+ getPoolIdentifier(marketAddress: string): string;
29
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
30
+ private getMarketByPtToken;
31
+ private getOracleRate;
32
+ private calculatePriceFromOracle;
33
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<ExchangePrices<AavePtToUsdcData> | null>;
34
+ getCalldataGasCost(): number | number[];
35
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AavePtToUsdcData, side: SwapSide): AdapterExchangeParam;
36
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
37
+ getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: AavePtToUsdcData, side: SwapSide, context: Context, executorAddress: Address): Promise<DexExchangeParam>;
38
+ private callPendleSdkApi;
39
+ }