@paraswap/dex-lib 4.7.20-native-insert-amount.4 → 4.7.20-native-insert-amount.5

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 (146) hide show
  1. package/build/abi/PendleRouterStatic.json +19 -0
  2. package/build/abi/apex-defi/ApexDefiFactory.abi.json +1749 -0
  3. package/build/abi/apex-defi/ApexDefiRouter.abi.json +1120 -0
  4. package/build/abi/apex-defi/ApexDefiToken.abi.json +229 -0
  5. package/build/abi/apex-defi/ApexDefiWrapper.abi.json +92 -0
  6. package/build/abi/apex-defi/ApexDefiWrapperFactory.abi.json +1107 -0
  7. package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +796 -0
  8. package/build/abi/pendle/pendle-deployer.abi.json +520 -0
  9. package/build/abi/pendle/pendle-oracle.abi.json +413 -0
  10. package/build/abi/ring-v2/few-wrapped-token.json +587 -0
  11. package/build/abi/ring-v2/ring-v2-factory.json +125 -0
  12. package/build/abi/ring-v2/ring-v2-pool.json +461 -0
  13. package/build/abi/ring-v2/ring-v2-router.json +332 -0
  14. package/build/abi/stabull/stabull-curve.json +738 -0
  15. package/build/abi/stabull/stabull-router.json +76 -0
  16. package/build/abi/uniswap-v4/hooks/SpotDynamicFeeManager.json +26 -0
  17. package/build/abi/uniswap-v4/hooks/SpotHook.json +54 -0
  18. package/build/abi/uniswap-v4/hooks/SpotPolicyManager.json +45 -0
  19. package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +682 -0
  20. package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +1335 -0
  21. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.d.ts +29 -0
  22. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js +153 -0
  23. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js.map +1 -0
  24. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.d.ts +40 -0
  25. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +323 -0
  26. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +1 -0
  27. package/build/dex/aave-pt-to-underlying/config.d.ts +3 -0
  28. package/build/dex/aave-pt-to-underlying/config.js +24 -0
  29. package/build/dex/aave-pt-to-underlying/config.js.map +1 -0
  30. package/build/dex/aave-pt-to-underlying/constants.d.ts +2 -0
  31. package/build/dex/aave-pt-to-underlying/constants.js +6 -0
  32. package/build/dex/aave-pt-to-underlying/constants.js.map +1 -0
  33. package/build/dex/aave-pt-to-underlying/types.d.ts +24 -0
  34. package/build/dex/aave-pt-to-underlying/types.js +3 -0
  35. package/build/dex/aave-pt-to-underlying/types.js.map +1 -0
  36. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +39 -0
  37. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +244 -0
  38. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +1 -0
  39. package/build/dex/aave-pt-to-usdc/config.d.ts +3 -0
  40. package/build/dex/aave-pt-to-usdc/config.js +47 -0
  41. package/build/dex/aave-pt-to-usdc/config.js.map +1 -0
  42. package/build/dex/aave-pt-to-usdc/constants.d.ts +2 -0
  43. package/build/dex/aave-pt-to-usdc/constants.js +6 -0
  44. package/build/dex/aave-pt-to-usdc/constants.js.map +1 -0
  45. package/build/dex/aave-pt-to-usdc/types.d.ts +22 -0
  46. package/build/dex/aave-pt-to-usdc/types.js +3 -0
  47. package/build/dex/aave-pt-to-usdc/types.js.map +1 -0
  48. package/build/dex/apex-defi/apex-defi-factory.d.ts +26 -0
  49. package/build/dex/apex-defi/apex-defi-factory.js +53 -0
  50. package/build/dex/apex-defi/apex-defi-factory.js.map +1 -0
  51. package/build/dex/apex-defi/apex-defi-pool.d.ts +55 -0
  52. package/build/dex/apex-defi/apex-defi-pool.js +247 -0
  53. package/build/dex/apex-defi/apex-defi-pool.js.map +1 -0
  54. package/build/dex/apex-defi/apex-defi-wrapper-factory.d.ts +57 -0
  55. package/build/dex/apex-defi/apex-defi-wrapper-factory.js +250 -0
  56. package/build/dex/apex-defi/apex-defi-wrapper-factory.js.map +1 -0
  57. package/build/dex/apex-defi/apex-defi.d.ts +97 -0
  58. package/build/dex/apex-defi/apex-defi.js +1021 -0
  59. package/build/dex/apex-defi/apex-defi.js.map +1 -0
  60. package/build/dex/apex-defi/config.d.ts +4 -0
  61. package/build/dex/apex-defi/config.js +138 -0
  62. package/build/dex/apex-defi/config.js.map +1 -0
  63. package/build/dex/apex-defi/types.d.ts +32 -0
  64. package/build/dex/apex-defi/types.js +3 -0
  65. package/build/dex/apex-defi/types.js.map +1 -0
  66. package/build/dex/apex-defi/utils.d.ts +46 -0
  67. package/build/dex/apex-defi/utils.js +133 -0
  68. package/build/dex/apex-defi/utils.js.map +1 -0
  69. package/build/dex/idle-dao/idle-dao.d.ts +0 -1
  70. package/build/dex/idle-dao/idle-dao.js +11 -23
  71. package/build/dex/idle-dao/idle-dao.js.map +1 -1
  72. package/build/dex/maker-psm/maker-psm.d.ts +41 -4
  73. package/build/dex/maker-psm/maker-psm.js +143 -40
  74. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  75. package/build/dex/miro-migrator/miro-migrator-state.d.ts +27 -0
  76. package/build/dex/miro-migrator/miro-migrator-state.js +89 -0
  77. package/build/dex/miro-migrator/miro-migrator-state.js.map +1 -0
  78. package/build/dex/native/native.js +6 -16
  79. package/build/dex/native/native.js.map +1 -1
  80. package/build/dex/stabull/config.d.ts +3 -0
  81. package/build/dex/stabull/config.js +177 -0
  82. package/build/dex/stabull/config.js.map +1 -0
  83. package/build/dex/stabull/stabull-pool.d.ts +46 -0
  84. package/build/dex/stabull/stabull-pool.js +113 -0
  85. package/build/dex/stabull/stabull-pool.js.map +1 -0
  86. package/build/dex/stabull/stabull.d.ts +55 -0
  87. package/build/dex/stabull/stabull.js +286 -0
  88. package/build/dex/stabull/stabull.js.map +1 -0
  89. package/build/dex/stabull/types.d.ts +21 -0
  90. package/build/dex/stabull/types.js +3 -0
  91. package/build/dex/stabull/types.js.map +1 -0
  92. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +4 -0
  93. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +56 -0
  94. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +1 -0
  95. package/build/dex/uniswap-v4/hooks/arena.d.ts +6 -0
  96. package/build/dex/uniswap-v4/hooks/arena.js +10 -0
  97. package/build/dex/uniswap-v4/hooks/arena.js.map +1 -0
  98. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.d.ts +0 -0
  99. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js +2 -0
  100. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js.map +1 -0
  101. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +7 -0
  102. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +28 -0
  103. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +1 -0
  104. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
  105. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +2 -0
  106. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +1 -0
  107. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +7 -0
  108. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +28 -0
  109. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +1 -0
  110. package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
  111. package/build/dex/uniswap-v4/hooks/fee-hook/types.js +2 -0
  112. package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +1 -0
  113. package/build/dex/uniswap-v4/hooks/index.d.ts +1 -0
  114. package/build/dex/uniswap-v4/hooks/index.js +18 -0
  115. package/build/dex/uniswap-v4/hooks/index.js.map +1 -0
  116. package/build/dex/uniswap-v4/hooks/spot.d.ts +15 -0
  117. package/build/dex/uniswap-v4/hooks/spot.js +109 -0
  118. package/build/dex/uniswap-v4/hooks/spot.js.map +1 -0
  119. package/build/dex/uniswap-v4/hooks/template.d.ts +150 -0
  120. package/build/dex/uniswap-v4/hooks/template.js +104 -0
  121. package/build/dex/uniswap-v4/hooks/template.js.map +1 -0
  122. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +26 -0
  123. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +75 -0
  124. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +1 -0
  125. package/build/dex/usual/usual-usdc-usdc.d.ts +17 -0
  126. package/build/dex/usual/usual-usdc-usdc.js +59 -0
  127. package/build/dex/usual/usual-usdc-usdc.js.map +1 -0
  128. package/build/dex/yo/config.d.ts +3 -0
  129. package/build/dex/yo/config.js +21 -0
  130. package/build/dex/yo/config.js.map +1 -0
  131. package/build/dex/yo/types.d.ts +13 -0
  132. package/build/dex/yo/types.js +3 -0
  133. package/build/dex/yo/types.js.map +1 -0
  134. package/build/dex/yo/yo-pool.d.ts +13 -0
  135. package/build/dex/yo/yo-pool.js +26 -0
  136. package/build/dex/yo/yo-pool.js.map +1 -0
  137. package/build/dex/yo/yo.d.ts +39 -0
  138. package/build/dex/yo/yo.js +248 -0
  139. package/build/dex/yo/yo.js.map +1 -0
  140. package/build/implementations/api-paraswap-sdk.d.ts +25 -0
  141. package/build/implementations/api-paraswap-sdk.js +102 -0
  142. package/build/implementations/api-paraswap-sdk.js.map +1 -0
  143. package/package.json +1 -1
  144. package/build/executor/Executor02BytecodeBuilderMultiRoute.d.ts +0 -101
  145. package/build/executor/Executor02BytecodeBuilderMultiRoute.js +0 -878
  146. package/build/executor/Executor02BytecodeBuilderMultiRoute.js.map +0 -1
@@ -0,0 +1,26 @@
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.YoEventPool = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const erc_4626_pool_1 = require("../erc4626/erc-4626-pool");
9
+ const ERC4626_json_1 = __importDefault(require("../../abi/ERC4626.json"));
10
+ const constants_1 = require("../erc4626/constants");
11
+ class YoEventPool extends erc_4626_pool_1.ERC4626EventPool {
12
+ parentName;
13
+ network;
14
+ dexHelper;
15
+ constructor(parentName, network, dexHelper, logger, vault, asset, cooldownEnabled = false, yoIface = new abi_1.Interface(ERC4626_json_1.default)) {
16
+ super(parentName, network, `${vault}_${asset}`, dexHelper, vault, asset, yoIface, logger, constants_1.DEPOSIT_TOPIC, constants_1.WITHDRAW_TOPIC, constants_1.TRANSFER_TOPIC, cooldownEnabled);
17
+ this.parentName = parentName;
18
+ this.network = network;
19
+ this.dexHelper = dexHelper;
20
+ }
21
+ withdrawRedeemAllowed(state) {
22
+ return true;
23
+ }
24
+ }
25
+ exports.YoEventPool = YoEventPool;
26
+ //# sourceMappingURL=yo-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yo-pool.js","sourceRoot":"","sources":["../../../src/dex/yo/yo-pool.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAG/C,4DAA4D;AAE5D,0EAAiD;AACjD,oDAI8B;AAG9B,MAAa,WAAY,SAAQ,gCAAgB;IAEpC;IACC;IACA;IAHZ,YACW,UAAkB,EACjB,OAAgB,EAChB,SAAqB,EAC/B,MAAc,EACd,KAAc,EACd,KAAc,EACd,kBAA2B,KAAK,EAChC,OAAO,GAAG,IAAI,eAAS,CAAC,sBAAW,CAAC;QAEpC,KAAK,CACH,UAAU,EACV,OAAO,EACP,GAAG,KAAK,IAAI,KAAK,EAAE,EACnB,SAAS,EACT,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,yBAAa,EACb,0BAAc,EACd,0BAAc,EACd,eAAe,CAChB,CAAC;QAtBO,eAAU,GAAV,UAAU,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAS;QAChB,cAAS,GAAT,SAAS,CAAY;IAqBjC,CAAC;IAED,qBAAqB,CAAC,KAAuB;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA9BD,kCA8BC"}
@@ -0,0 +1,39 @@
1
+ import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam } from '../../types';
2
+ import { SwapSide, Network } from '../../constants';
3
+ import { IDex, Context } from '../idex';
4
+ import { IDexHelper } from '../../dex-helper/idex-helper';
5
+ import { YoData } from './types';
6
+ import { YoEventPool } from './yo-pool';
7
+ import { ERC4626 } from '../erc4626/erc4626';
8
+ import { Interface } from '@ethersproject/abi';
9
+ export declare enum ERC4626Functions {
10
+ deposit = "deposit",
11
+ redeem = "redeem",
12
+ withdraw = "withdraw",
13
+ mint = "mint"
14
+ }
15
+ export declare class Yo extends ERC4626 implements IDex<YoData> {
16
+ readonly network: Network;
17
+ readonly dexKey: string;
18
+ readonly dexHelper: IDexHelper;
19
+ readonly vault: string;
20
+ readonly asset: string;
21
+ readonly decimals: number;
22
+ readonly erc4626Interface: Interface;
23
+ readonly needWrapNative = true;
24
+ readonly isFeeOnTransferSupported = false;
25
+ static dexKeysWithNetwork: {
26
+ key: string;
27
+ networks: Network[];
28
+ }[];
29
+ logger: Logger;
30
+ readonly eventPool: YoEventPool;
31
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper, vault?: string, asset?: string, decimals?: number, erc4626Interface?: Interface);
32
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number): Promise<null | ExchangePrices<YoData>>;
33
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: YoData, side: SwapSide): Promise<SimpleExchangeParam>;
34
+ getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: YoData, side: SwapSide, _: Context, executorAddress: Address): Promise<DexExchangeParam>;
35
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: YoData, side: SwapSide): AdapterExchangeParam;
36
+ getCalldataGasCost(_poolPrices: PoolPrices<YoData>): number | number[];
37
+ updatePoolState(): Promise<void>;
38
+ getTopPoolsForToken(tokenAddress: Address, _limit: number): Promise<PoolLiquidity[]>;
39
+ }
@@ -0,0 +1,248 @@
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.Yo = exports.ERC4626Functions = 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 config_1 = require("./config");
44
+ const yo_pool_1 = require("./yo-pool");
45
+ const erc4626_1 = require("../erc4626/erc4626");
46
+ const abi_1 = require("@ethersproject/abi");
47
+ const ERC4626_json_1 = __importDefault(require("../../abi/ERC4626.json"));
48
+ const utils_2 = require("../../executor/utils");
49
+ const bigint_constants_1 = require("../../bigint-constants");
50
+ var ERC4626Functions;
51
+ (function (ERC4626Functions) {
52
+ ERC4626Functions["deposit"] = "deposit";
53
+ ERC4626Functions["redeem"] = "redeem";
54
+ ERC4626Functions["withdraw"] = "withdraw";
55
+ ERC4626Functions["mint"] = "mint";
56
+ })(ERC4626Functions || (exports.ERC4626Functions = ERC4626Functions = {}));
57
+ class Yo extends erc4626_1.ERC4626 {
58
+ network;
59
+ dexKey;
60
+ dexHelper;
61
+ vault;
62
+ asset;
63
+ decimals;
64
+ erc4626Interface;
65
+ needWrapNative = true;
66
+ isFeeOnTransferSupported = false;
67
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.YoConfig);
68
+ logger;
69
+ eventPool;
70
+ constructor(network, dexKey, dexHelper, vault = config_1.YoConfig[dexKey][network].vault, asset = config_1.YoConfig[dexKey][network].asset, decimals = config_1.YoConfig[dexKey][network].decimals, erc4626Interface = new abi_1.Interface(ERC4626_json_1.default)) {
71
+ super(network, dexKey, dexHelper, vault, asset, false, erc4626Interface);
72
+ this.network = network;
73
+ this.dexKey = dexKey;
74
+ this.dexHelper = dexHelper;
75
+ this.vault = vault;
76
+ this.asset = asset;
77
+ this.decimals = decimals;
78
+ this.erc4626Interface = erc4626Interface;
79
+ this.logger = dexHelper.getLogger(dexKey);
80
+ this.eventPool = new yo_pool_1.YoEventPool(dexKey, network, dexHelper, this.logger, vault, asset);
81
+ }
82
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber) {
83
+ const _srcToken = this.dexHelper.config.wrapETH(srcToken);
84
+ const _destToken = this.dexHelper.config.wrapETH(destToken);
85
+ if (!this.isAppropriatePair(_srcToken, _destToken)) {
86
+ return null;
87
+ }
88
+ const state = await this.eventPool.getOrGenerateState(blockNumber);
89
+ if (!state) {
90
+ return null;
91
+ }
92
+ const isSrcAsset = this.isAsset(_srcToken.address);
93
+ let calcFunction;
94
+ if (side === constants_1.SwapSide.SELL) {
95
+ if (isSrcAsset) {
96
+ calcFunction = this.previewDeposit.bind(this);
97
+ }
98
+ else {
99
+ calcFunction = this.previewRedeem.bind(this);
100
+ }
101
+ }
102
+ else {
103
+ if (isSrcAsset) {
104
+ calcFunction = this.previewMint.bind(this);
105
+ }
106
+ else {
107
+ calcFunction = this.previewWithdraw.bind(this);
108
+ }
109
+ }
110
+ return [
111
+ {
112
+ unit: bigint_constants_1.BI_POWS[this.decimals],
113
+ prices: amounts.map(amount => calcFunction(amount, state)),
114
+ gasCost: 100_000,
115
+ data: {
116
+ exchange: `${this.vault}`,
117
+ state: {
118
+ totalShares: state.totalShares.toString(),
119
+ totalAssets: state.totalAssets.toString(),
120
+ },
121
+ },
122
+ poolAddresses: [this.vault],
123
+ exchange: this.dexKey,
124
+ },
125
+ ];
126
+ }
127
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
128
+ const isSell = side === constants_1.SwapSide.SELL;
129
+ const { exchange } = data;
130
+ let swapData;
131
+ if (this.isAsset(srcToken)) {
132
+ if (isSell) {
133
+ // SELL: User specifies assets, we call deposit(assets)
134
+ swapData = this.erc4626Interface.encodeFunctionData(ERC4626Functions.deposit, [srcAmount, this.augustusAddress]);
135
+ }
136
+ else {
137
+ // BUY: User wants shares, we need to calculate required assets
138
+ const state = await this.eventPool.getOrGenerateState(await this.dexHelper.provider.getBlockNumber());
139
+ const requiredAssets = this.previewMint(BigInt(destAmount), state);
140
+ swapData = this.erc4626Interface.encodeFunctionData(ERC4626Functions.deposit, [requiredAssets.toString(), this.augustusAddress]);
141
+ }
142
+ }
143
+ else {
144
+ if (isSell) {
145
+ // SELL: User specifies shares, we call redeem(shares)
146
+ swapData = this.erc4626Interface.encodeFunctionData(ERC4626Functions.redeem, [srcAmount, this.augustusAddress, this.augustusAddress]);
147
+ }
148
+ else {
149
+ // BUY: User wants assets, we need to calculate required shares
150
+ const state = await this.eventPool.getOrGenerateState(await this.dexHelper.provider.getBlockNumber());
151
+ const requiredShares = this.previewWithdraw(BigInt(destAmount), state);
152
+ swapData = this.erc4626Interface.encodeFunctionData(ERC4626Functions.redeem, [
153
+ requiredShares.toString(),
154
+ this.augustusAddress,
155
+ this.augustusAddress,
156
+ ]);
157
+ }
158
+ }
159
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange, undefined, undefined, undefined, isSell && this.isAsset(destToken));
160
+ }
161
+ async getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, _, executorAddress) {
162
+ const isSell = side === constants_1.SwapSide.SELL;
163
+ const { exchange } = data;
164
+ let swapData;
165
+ if (this.isAsset(srcToken)) {
166
+ if (isSell) {
167
+ // SELL: User specifies assets, we call deposit(assets)
168
+ swapData = this.erc4626Interface.encodeFunctionData(ERC4626Functions.deposit, [srcAmount, recipient]);
169
+ }
170
+ else {
171
+ // BUY: User wants shares, we need to calculate required assets
172
+ const state = await this.eventPool.getOrGenerateState(await this.dexHelper.provider.getBlockNumber());
173
+ const requiredAssets = this.previewMint(BigInt(destAmount), state);
174
+ swapData = this.erc4626Interface.encodeFunctionData(ERC4626Functions.deposit, [requiredAssets.toString(), recipient]);
175
+ }
176
+ }
177
+ else {
178
+ if (isSell) {
179
+ // SELL: User specifies shares, we call redeem(shares)
180
+ swapData = this.erc4626Interface.encodeFunctionData(ERC4626Functions.redeem, [srcAmount, recipient, executorAddress]);
181
+ }
182
+ else {
183
+ // BUY: User wants assets, we need to calculate required shares
184
+ const state = await this.eventPool.getOrGenerateState(await this.dexHelper.provider.getBlockNumber());
185
+ const requiredShares = this.previewWithdraw(BigInt(destAmount), state);
186
+ swapData = this.erc4626Interface.encodeFunctionData(ERC4626Functions.redeem, [requiredShares.toString(), recipient, executorAddress]);
187
+ }
188
+ }
189
+ return {
190
+ needWrapNative: this.needWrapNative,
191
+ dexFuncHasRecipient: true,
192
+ exchangeData: swapData,
193
+ targetExchange: exchange,
194
+ returnAmountPos: isSell
195
+ ? (0, utils_2.extractReturnAmountPosition)(this.erc4626Interface, this.isAsset(srcToken)
196
+ ? ERC4626Functions.deposit
197
+ : ERC4626Functions.redeem)
198
+ : undefined,
199
+ skipApproval: this.isAsset(destToken),
200
+ };
201
+ }
202
+ // Override getAdapterParam to use YoData
203
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
204
+ const { exchange } = data;
205
+ const payload = this.abiCoder.encodeParameter({
206
+ ParentStruct: {
207
+ toStaked: 'bool',
208
+ },
209
+ }, {
210
+ toStaked: this.isAsset(srcToken),
211
+ });
212
+ return {
213
+ targetExchange: exchange,
214
+ payload,
215
+ networkFee: '0',
216
+ };
217
+ }
218
+ // Override getCalldataGasCost
219
+ getCalldataGasCost(_poolPrices) {
220
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
221
+ }
222
+ // Override updatePoolState
223
+ async updatePoolState() {
224
+ await super.updatePoolState();
225
+ }
226
+ async getTopPoolsForToken(tokenAddress, _limit) {
227
+ if (!this.isAsset(tokenAddress) && !this.isVault(tokenAddress)) {
228
+ return [];
229
+ }
230
+ const vaultToAsset = this.isVault(tokenAddress);
231
+ return [
232
+ {
233
+ exchange: this.dexKey,
234
+ address: this.vault,
235
+ connectorTokens: [
236
+ {
237
+ decimals: this.decimals,
238
+ address: vaultToAsset ? this.asset : this.vault,
239
+ liquidityUSD: constants_1.UNLIMITED_USD_LIQUIDITY,
240
+ },
241
+ ],
242
+ liquidityUSD: constants_1.UNLIMITED_USD_LIQUIDITY,
243
+ },
244
+ ];
245
+ }
246
+ }
247
+ exports.Yo = Yo;
248
+ //# sourceMappingURL=yo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yo.js","sourceRoot":"","sources":["../../../src/dex/yo/yo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { SimpleFetchSDK, AddressOrSymbol } from '@paraswap/sdk';
2
+ import { IDexHelper } from '../dex-helper';
3
+ import { PricingHelper } from '../pricing-helper';
4
+ import { DexAdapterService } from '../dex';
5
+ import { GenericSwapTransactionBuilder } from '../generic-swap-transaction-builder';
6
+ import { Address, OptimalRate, Token, TransferFeeParams, TxObject } from '../types';
7
+ import { ContractMethod } from '../constants';
8
+ import { SwapSide } from '@paraswap/core/build/constants';
9
+ import { IParaSwapSDK } from './local-paraswap-sdk';
10
+ export declare class APIParaswapSDK implements IParaSwapSDK {
11
+ protected network: number;
12
+ paraSwap: SimpleFetchSDK;
13
+ dexKeys: string[];
14
+ dexHelper: IDexHelper;
15
+ pricingHelper: PricingHelper;
16
+ transactionBuilder: GenericSwapTransactionBuilder;
17
+ dexAdapterService: DexAdapterService;
18
+ constructor(network: number, dexKeys: string | string[], rpcUrl?: string);
19
+ initializePricing(): Promise<void>;
20
+ getPrices(from: Token, to: Token, amount: bigint, side: SwapSide, contractMethod: ContractMethod, _poolIdentifiers?: {
21
+ [key: string]: string[] | null;
22
+ } | null, transferFees?: TransferFeeParams, forceRoute?: AddressOrSymbol[]): Promise<OptimalRate>;
23
+ buildTransaction(priceRoute: OptimalRate, _minMaxAmount: BigInt, userAddress: Address): Promise<TxObject>;
24
+ releaseResources(): Promise<void>;
25
+ }
@@ -0,0 +1,102 @@
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.APIParaswapSDK = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const sdk_1 = require("@paraswap/sdk");
9
+ const core_1 = require("@paraswap/core");
10
+ const dex_helper_1 = require("../dex-helper");
11
+ const pricing_helper_1 = require("../pricing-helper");
12
+ const dex_1 = require("../dex");
13
+ const generic_swap_transaction_builder_1 = require("../generic-swap-transaction-builder");
14
+ const constants_1 = require("../constants");
15
+ const uuid_1 = require("uuid");
16
+ const testingEndpoint = process.env.E2E_TEST_ENDPOINT;
17
+ class APIParaswapSDK {
18
+ network;
19
+ paraSwap;
20
+ dexKeys;
21
+ dexHelper;
22
+ pricingHelper;
23
+ transactionBuilder;
24
+ dexAdapterService;
25
+ constructor(network, dexKeys, rpcUrl) {
26
+ this.network = network;
27
+ this.dexKeys = Array.isArray(dexKeys) ? dexKeys : [dexKeys];
28
+ this.paraSwap = (0, sdk_1.constructSimpleSDK)({
29
+ version: core_1.ParaSwapVersion.V6,
30
+ chainId: network,
31
+ axios: axios_1.default,
32
+ apiURL: testingEndpoint,
33
+ });
34
+ this.dexHelper = new dex_helper_1.DummyDexHelper(this.network, rpcUrl);
35
+ this.dexAdapterService = new dex_1.DexAdapterService(this.dexHelper, this.network);
36
+ this.transactionBuilder = new generic_swap_transaction_builder_1.GenericSwapTransactionBuilder(this.dexAdapterService);
37
+ this.pricingHelper = new pricing_helper_1.PricingHelper(this.dexAdapterService, this.dexHelper.getLogger);
38
+ }
39
+ async initializePricing() {
40
+ const blockNumber = await this.dexHelper.web3Provider.eth.getBlockNumber();
41
+ await this.pricingHelper.initialize(blockNumber, this.dexKeys);
42
+ }
43
+ async getPrices(from, to, amount, side, contractMethod, _poolIdentifiers, transferFees, forceRoute) {
44
+ if (_poolIdentifiers)
45
+ throw new Error('PoolIdentifiers is not supported by the API');
46
+ let priceRoute;
47
+ if (forceRoute && forceRoute.length > 0) {
48
+ const options = {
49
+ route: forceRoute,
50
+ amount: amount.toString(),
51
+ side,
52
+ srcDecimals: from.decimals,
53
+ destDecimals: to.decimals,
54
+ options: {
55
+ includeDEXS: this.dexKeys,
56
+ includeContractMethods: [contractMethod],
57
+ partner: 'any',
58
+ maxImpact: 100,
59
+ },
60
+ ...transferFees,
61
+ };
62
+ priceRoute = await this.paraSwap.swap.getRateByRoute(options);
63
+ }
64
+ else {
65
+ const options = {
66
+ srcToken: from.address,
67
+ destToken: to.address,
68
+ side,
69
+ amount: amount.toString(),
70
+ options: {
71
+ includeDEXS: this.dexKeys,
72
+ includeContractMethods: [contractMethod],
73
+ partner: 'any',
74
+ maxImpact: 100,
75
+ },
76
+ ...transferFees,
77
+ srcDecimals: from.decimals,
78
+ destDecimals: to.decimals,
79
+ };
80
+ priceRoute = await this.paraSwap.swap.getRate(options);
81
+ }
82
+ return priceRoute;
83
+ }
84
+ async buildTransaction(priceRoute, _minMaxAmount, userAddress) {
85
+ const minMaxAmount = _minMaxAmount.toString();
86
+ let deadline = Number((Math.floor(Date.now() / 1000) + 10 * 60).toFixed());
87
+ return (await this.transactionBuilder.build({
88
+ priceRoute,
89
+ minMaxAmount: minMaxAmount.toString(),
90
+ userAddress,
91
+ partnerAddress: constants_1.NULL_ADDRESS,
92
+ partnerFeePercent: '0',
93
+ deadline: deadline.toString(),
94
+ uuid: (0, uuid_1.v4)(),
95
+ }));
96
+ }
97
+ async releaseResources() {
98
+ await this.pricingHelper.releaseResources(this.dexKeys);
99
+ }
100
+ }
101
+ exports.APIParaswapSDK = APIParaswapSDK;
102
+ //# sourceMappingURL=api-paraswap-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-paraswap-sdk.js","sourceRoot":"","sources":["../../src/implementations/api-paraswap-sdk.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "4.7.20-native-insert-amount.4",
3
+ "version": "4.7.20-native-insert-amount.5",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -1,101 +0,0 @@
1
- import { OptimalRate, OptimalRoute } from '@paraswap/core';
2
- import { DexExchangeBuildParam } from '../types';
3
- import { BuildSwap, Executors, Flag, RouteBuildSwaps } from './types';
4
- import { DepositWithdrawReturn } from '../dex/weth/types';
5
- import { BuildSwapFlagsParams, DexCallDataParams, ExecutorBytecodeBuilder, PriceRouteType, SingleSwapCallDataParams } from './ExecutorBytecodeBuilder';
6
- export type Executor02SingleSwapCallDataParams = {
7
- routeIndex: number;
8
- swapIndex: number;
9
- wrapToSwapMap: {
10
- [key: number]: boolean;
11
- };
12
- unwrapToSwapMap: {
13
- [key: number]: boolean;
14
- };
15
- wrapToSwapExchangeMap: {
16
- [key: string]: boolean;
17
- };
18
- swap: BuildSwap;
19
- srcToken: string;
20
- destToken: string;
21
- swaps: BuildSwap[];
22
- rootUnwrapEth: boolean;
23
- rootWrapEth: boolean;
24
- isLastSwapOnTheRoute?: boolean;
25
- };
26
- export type MultiRouteExecutor02DexCallDataParams = {
27
- rootUnwrapEth: boolean;
28
- swap: BuildSwap;
29
- destToken: string;
30
- };
31
- /**
32
- * Class to build bytecode for Executor02 - simpleSwap with N DEXs (VERTICAL_BRANCH), multiSwaps (VERTICAL_BRANCH_HORIZONTAL_SEQUENCE) and megaswaps (NESTED_VERTICAL_BRANCH_HORIZONTAL_SEQUENCE)
33
- */
34
- export declare class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder<Executor02SingleSwapCallDataParams, MultiRouteExecutor02DexCallDataParams> {
35
- type: Executors;
36
- /**
37
- * Executor02 Flags:
38
- * switch (flag % 4):
39
- * case 0: don't insert fromAmount
40
- * case 1: sendEth equal to fromAmount
41
- * case 2: sendEth equal to fromAmount + insert fromAmount
42
- * case 3: insert fromAmount
43
-
44
- * switch (flag % 3):
45
- * case 0: don't check balance after swap
46
- * case 1: check eth balance after swap
47
- * case 2: check destToken balance after swap
48
- */
49
- protected buildSimpleSwapFlags(params: BuildSwapFlagsParams): {
50
- dexFlag: Flag;
51
- approveFlag: Flag;
52
- };
53
- /**
54
- * Executor02 Flags:
55
- * switch (flag % 4):
56
- * case 0: don't instert fromAmount
57
- * case 1: sendEth equal to fromAmount
58
- * case 2: sendEth equal to fromAmount + insert fromAmount
59
- * case 3: insert fromAmount
60
-
61
- * switch (flag % 3):
62
- * case 0: don't check balance after swap
63
- * case 1: check eth balance after swap
64
- * case 2: check destToken balance after swap
65
- */
66
- protected buildMultiMegaSwapFlags(params: BuildSwapFlagsParams): {
67
- dexFlag: Flag;
68
- approveFlag: Flag;
69
- };
70
- protected buildDexCallData(params: DexCallDataParams<MultiRouteExecutor02DexCallDataParams>): string;
71
- private wrapAsVerticalBranch;
72
- private packVerticalBranchingData;
73
- private packVerticalBranchingCallData;
74
- private buildVerticalBranchingCallData;
75
- private buildVerticalBranchingCallDataNoEthDest;
76
- private buildSingleSwapExchangeCallData;
77
- private appendWrapEthCallData;
78
- private eachDexOnSwapNeedsWrapNative;
79
- private anyDexOnSwapNeedsWrapNative;
80
- private isLastExchangeWithNeedWrapNative;
81
- private anyDexOnSwapDoesntNeedWrapNative;
82
- private everyDexOnSwapNeedWrapNative;
83
- private everyDexOnSwapDoesntNeedWrapNative;
84
- private doesSwapNeedToBeAsVerticalBranch;
85
- private buildVerticalBranchingFlag;
86
- protected buildSingleSwapCallData(params: SingleSwapCallDataParams<Executor02SingleSwapCallDataParams>): string;
87
- protected buildRouteCallData(route: RouteBuildSwaps, routeIndex: number, flags: {
88
- approves: Flag[];
89
- dexes: Flag[];
90
- wrap: Flag;
91
- }, sender: string, srcToken: string, destToken: string, priceRouteType: PriceRouteType, rootUnwrapEth: boolean, rootWrapEth: boolean, maybeWethCallData?: DepositWithdrawReturn): string;
92
- private doesRouteNeedsRootWrapEth;
93
- private doesRouteNeedsRootUnwrapEth;
94
- getAddress(): string;
95
- buildByteCode(priceRoute: OptimalRate, routes: RouteBuildSwaps[], exchangeParams: DexExchangeBuildParam[], sender: string, maybeWethCallData?: DepositWithdrawReturn): string;
96
- protected buildFlags(routes: OptimalRoute[], buildRoutes: RouteBuildSwaps[], exchangeParams: DexExchangeBuildParam[], srcToken: string, priceRouteType: PriceRouteType, maybeWethCallData?: DepositWithdrawReturn): {
97
- approves: Flag[];
98
- dexes: Flag[];
99
- wrap: Flag;
100
- };
101
- }