@paraswap/dex-lib 4.7.13 → 4.7.14-multi-route.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/build/abi/pharaoh-v3/PharaohV3Factory.abi.json +39 -0
  2. package/build/abi/pharaoh-v3/PharaohV3Pool.abi.json +802 -0
  3. package/build/abi/pharaoh-v3/PharaohV3StateMulticall.abi.json +781 -0
  4. package/build/abi/uniswap-v4/hooks/arena/arena-fee-helper.abi.json +476 -0
  5. package/build/dex/idle-dao/idle-dao.d.ts +1 -0
  6. package/build/dex/idle-dao/idle-dao.js +23 -11
  7. package/build/dex/idle-dao/idle-dao.js.map +1 -1
  8. package/build/dex/{se-vlr/se-vlr-pool.d.ts → maker-psm/maker-psm-event-pool.d.ts} +15 -11
  9. package/build/dex/maker-psm/maker-psm-event-pool.js +132 -0
  10. package/build/dex/maker-psm/maker-psm-event-pool.js.map +1 -0
  11. package/build/dex/maker-psm/maker-psm.d.ts +4 -41
  12. package/build/dex/maker-psm/maker-psm.js +40 -143
  13. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  14. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.d.ts +7 -0
  15. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.js +20 -0
  16. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.js.map +1 -0
  17. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.d.ts +12 -0
  18. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.js +139 -0
  19. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.js.map +1 -0
  20. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.d.ts +11 -0
  21. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.js +128 -0
  22. package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.js.map +1 -0
  23. package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.d.ts +4 -0
  24. package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.js +56 -0
  25. package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.js.map +1 -0
  26. package/build/dex/uniswap-v4/contract-math/Position.d.ts +6 -0
  27. package/build/dex/uniswap-v4/contract-math/Position.js +29 -0
  28. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  29. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.d.ts +36 -0
  30. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js +125 -0
  31. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js.map +1 -0
  32. package/build/dex/uniswap-v4/hooks/arena/arena-hook.d.ts +21 -0
  33. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js +93 -0
  34. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js.map +1 -0
  35. package/build/dex/uniswap-v4/hooks/arena/config.d.ts +3 -0
  36. package/build/dex/uniswap-v4/hooks/arena/config.js +11 -0
  37. package/build/dex/uniswap-v4/hooks/arena/config.js.map +1 -0
  38. package/build/dex/uniswap-v4/hooks/arena/types.d.ts +5 -0
  39. package/build/dex/uniswap-v4/hooks/arena/types.js.map +1 -0
  40. package/build/dex/uniswap-v4/hooks/types.d.ts +60 -0
  41. package/build/dex/uniswap-v4/hooks/types.js.map +1 -0
  42. package/build/executor/Executor01BytecodeBuilder.d.ts +5 -5
  43. package/build/executor/Executor01BytecodeBuilder.js +17 -14
  44. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  45. package/build/executor/Executor02BytecodeBuilder.d.ts +11 -8
  46. package/build/executor/Executor02BytecodeBuilder.js +107 -103
  47. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  48. package/build/executor/Executor03BytecodeBuilder.d.ts +5 -5
  49. package/build/executor/Executor03BytecodeBuilder.js +14 -11
  50. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  51. package/build/executor/ExecutorBytecodeBuilder.d.ts +8 -8
  52. package/build/executor/ExecutorBytecodeBuilder.js +8 -8
  53. package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
  54. package/build/executor/WETHBytecodeBuilder.d.ts +2 -2
  55. package/build/executor/WETHBytecodeBuilder.js +1 -1
  56. package/build/executor/WETHBytecodeBuilder.js.map +1 -1
  57. package/build/executor/types.d.ts +21 -0
  58. package/build/executor/types.js.map +1 -1
  59. package/build/executor/utils.d.ts +20 -0
  60. package/build/executor/utils.js +129 -0
  61. package/build/executor/utils.js.map +1 -1
  62. package/build/generic-swap-transaction-builder.d.ts +4 -0
  63. package/build/generic-swap-transaction-builder.js +134 -52
  64. package/build/generic-swap-transaction-builder.js.map +1 -1
  65. package/package.json +12 -3
  66. package/build/abi/BProtocol.json +0 -1155
  67. package/build/abi/Jarvis.json +0 -1172
  68. package/build/abi/MStableAsset.json +0 -1545
  69. package/build/abi/OneInchLp.json +0 -1304
  70. package/build/abi/Onebit.json +0 -736
  71. package/build/abi/Shell.json +0 -1294
  72. package/build/abi/TraderJoeV2Router.json +0 -50
  73. package/build/abi/wUSDM.json +0 -757
  74. package/build/abi/zrx.v2.json +0 -1967
  75. package/build/abi/zrx.v3.json +0 -3454
  76. package/build/abi/zrx.v4.json +0 -2193
  77. package/build/dex/OneInchLp.d.ts +0 -24
  78. package/build/dex/OneInchLp.js +0 -43
  79. package/build/dex/OneInchLp.js.map +0 -1
  80. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  81. package/build/dex/bProtocol/bProtocol.js +0 -56
  82. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  83. package/build/dex/bProtocol/types.d.ts +0 -11
  84. package/build/dex/bProtocol/types.js +0 -8
  85. package/build/dex/bProtocol/types.js.map +0 -1
  86. package/build/dex/jarvis.d.ts +0 -56
  87. package/build/dex/jarvis.js +0 -163
  88. package/build/dex/jarvis.js.map +0 -1
  89. package/build/dex/mStable.d.ts +0 -44
  90. package/build/dex/mStable.js +0 -75
  91. package/build/dex/mStable.js.map +0 -1
  92. package/build/dex/onebit/onebit.d.ts +0 -16
  93. package/build/dex/onebit/onebit.js +0 -61
  94. package/build/dex/onebit/onebit.js.map +0 -1
  95. package/build/dex/onebit/types.d.ts +0 -14
  96. package/build/dex/onebit/types.js +0 -8
  97. package/build/dex/onebit/types.js.map +0 -1
  98. package/build/dex/se-vlr/config.d.ts +0 -3
  99. package/build/dex/se-vlr/config.js +0 -24
  100. package/build/dex/se-vlr/config.js.map +0 -1
  101. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  102. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  103. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  104. package/build/dex/se-vlr/se-vlr.js +0 -131
  105. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  106. package/build/dex/se-vlr/types.d.ts +0 -6
  107. package/build/dex/se-vlr/types.js.map +0 -1
  108. package/build/dex/shell.d.ts +0 -25
  109. package/build/dex/shell.js +0 -41
  110. package/build/dex/shell.js.map +0 -1
  111. package/build/dex/trader-joe-v2.d.ts +0 -40
  112. package/build/dex/trader-joe-v2.js +0 -74
  113. package/build/dex/trader-joe-v2.js.map +0 -1
  114. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  115. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  116. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  117. package/build/dex/usual-bond/config.d.ts +0 -3
  118. package/build/dex/usual-bond/config.js +0 -13
  119. package/build/dex/usual-bond/config.js.map +0 -1
  120. package/build/dex/usual-bond/types.d.ts +0 -7
  121. package/build/dex/usual-bond/types.js.map +0 -1
  122. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  123. package/build/dex/usual-bond/usual-bond.js +0 -176
  124. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  125. package/build/dex/wusdm/config.d.ts +0 -3
  126. package/build/dex/wusdm/config.js +0 -43
  127. package/build/dex/wusdm/config.js.map +0 -1
  128. package/build/dex/wusdm/constants.d.ts +0 -2
  129. package/build/dex/wusdm/constants.js +0 -6
  130. package/build/dex/wusdm/constants.js.map +0 -1
  131. package/build/dex/wusdm/types.d.ts +0 -18
  132. package/build/dex/wusdm/types.js +0 -11
  133. package/build/dex/wusdm/types.js.map +0 -1
  134. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  135. package/build/dex/wusdm/wusdm-pool.js +0 -74
  136. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  137. package/build/dex/wusdm/wusdm.d.ts +0 -46
  138. package/build/dex/wusdm/wusdm.js +0 -243
  139. package/build/dex/wusdm/wusdm.js.map +0 -1
  140. package/build/dex/zerox/config.d.ts +0 -2
  141. package/build/dex/zerox/config.js +0 -33
  142. package/build/dex/zerox/config.js.map +0 -1
  143. package/build/dex/zerox/index.d.ts +0 -22
  144. package/build/dex/zerox/index.js +0 -225
  145. package/build/dex/zerox/index.js.map +0 -1
  146. package/build/dex/zerox/order.d.ts +0 -88
  147. package/build/dex/zerox/order.js +0 -53
  148. package/build/dex/zerox/order.js.map +0 -1
  149. package/build/dex/zerox/types.d.ts +0 -73
  150. package/build/dex/zerox/types.js +0 -21
  151. package/build/dex/zerox/types.js.map +0 -1
  152. /package/build/dex/{se-vlr → uniswap-v4/hooks/arena}/types.js +0 -0
  153. /package/build/dex/{usual-bond → uniswap-v4/hooks}/types.js +0 -0
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArenaHook = void 0;
4
+ const config_1 = require("./config");
5
+ const utils_1 = require("../../utils");
6
+ const utils_2 = require("../../../../utils");
7
+ const arena_fee_helper_1 = require("./arena-fee-helper");
8
+ const MAX_HOOK_FEE = 1000000n; // 100%
9
+ const UINT128_MAX = (1n << 128n) - 1n;
10
+ const INT128_MAX = (1n << 127n) - 1n;
11
+ class ArenaHook {
12
+ dexHelper;
13
+ network;
14
+ logger;
15
+ feeHelperAddress;
16
+ name = this.constructor.name;
17
+ address;
18
+ arenaFeeHelper;
19
+ constructor(dexHelper, network, logger, feeHelperAddress = config_1.ArenaHookConfig[network].feeHelperAddress.toLowerCase()) {
20
+ this.dexHelper = dexHelper;
21
+ this.network = network;
22
+ this.logger = logger;
23
+ this.feeHelperAddress = feeHelperAddress;
24
+ this.address = config_1.ArenaHookConfig[network].hookAddress.toLowerCase();
25
+ this.arenaFeeHelper = new arena_fee_helper_1.ArenaFeeHelper(this.name, network, dexHelper, logger);
26
+ }
27
+ registerPool(poolId, _poolKey) {
28
+ this.arenaFeeHelper.addPoolId(poolId.toLowerCase());
29
+ }
30
+ async initialize(blockNumber) {
31
+ if (!this.arenaFeeHelper.isInitialized) {
32
+ await this.arenaFeeHelper.initialize(blockNumber);
33
+ }
34
+ }
35
+ getHookPermissions() {
36
+ return {
37
+ beforeInitialize: true,
38
+ afterInitialize: false,
39
+ beforeAddLiquidity: false,
40
+ afterAddLiquidity: false,
41
+ beforeRemoveLiquidity: false,
42
+ afterRemoveLiquidity: false,
43
+ beforeSwap: false,
44
+ afterSwap: true,
45
+ beforeDonate: false,
46
+ afterDonate: false,
47
+ beforeSwapReturnDelta: false,
48
+ afterSwapReturnDelta: true,
49
+ afterAddLiquidityReturnDelta: false,
50
+ afterRemoveLiquidityReturnDelta: false,
51
+ };
52
+ }
53
+ afterSwap(_sender, key, params, delta, _hookData) {
54
+ const { amountSpecified, zeroForOne } = params;
55
+ const isExactInput = BigInt(amountSpecified) < 0n;
56
+ // Determine the unspecified (output) delta based on swap direction and type:
57
+ // - ExactInput + zeroForOne: input is token0, output is token1 (amount1)
58
+ // - ExactInput + oneForZero: input is token1, output is token0 (amount0)
59
+ // - ExactOutput + zeroForOne: output is token1, input is token0 (amount0 is unspecified)
60
+ // - ExactOutput + oneForZero: output is token0, input is token1 (amount1 is unspecified)
61
+ const outputIsToken1 = isExactInput === zeroForOne;
62
+ const unspecifiedDelta = outputIsToken1 ? delta.amount1 : delta.amount0;
63
+ if (unspecifiedDelta === 0n) {
64
+ return 0n;
65
+ }
66
+ const output = unspecifiedDelta < 0n ? -unspecifiedDelta : unspecifiedDelta;
67
+ (0, utils_2._require)(output <= UINT128_MAX, 'Unspecified output exceeds uint128', { output }, 'output <= UINT128_MAX');
68
+ const totalFeePpm = this.getTotalFeePpm((0, utils_1.toId)(key));
69
+ if (totalFeePpm === 0n) {
70
+ return output;
71
+ }
72
+ (0, utils_2._require)(totalFeePpm <= MAX_HOOK_FEE, 'Hook fee too large', { totalFeePpm }, 'totalFeePpm <= MAX_HOOK_FEE');
73
+ const feeAmount = (output * totalFeePpm) / MAX_HOOK_FEE;
74
+ (0, utils_2._require)(feeAmount <= INT128_MAX, 'Hook fee exceeds int128', { feeAmount }, 'feeAmount <= INT128_MAX');
75
+ // For exact input: user receives output minus fee
76
+ // For exact output: user must provide more input to cover fee
77
+ const netOutput = isExactInput ? output - feeAmount : output + feeAmount;
78
+ return netOutput;
79
+ }
80
+ getTotalFeePpm(poolId) {
81
+ if (!this.arenaFeeHelper?.isInitialized) {
82
+ return 0n;
83
+ }
84
+ const state = this.arenaFeeHelper.getStaleState();
85
+ if (!state) {
86
+ return 0n;
87
+ }
88
+ const poolFee = state.poolIdToTotalFeePpm[poolId] ?? 0n;
89
+ return poolFee + BigInt(state.protocolFeePpm);
90
+ }
91
+ }
92
+ exports.ArenaHook = ArenaHook;
93
+ //# sourceMappingURL=arena-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arena-hook.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/arena-hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { HookConfig } from '../types';
2
+ import { HookParams } from './types';
3
+ export declare const ArenaHookConfig: HookConfig<HookParams>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArenaHookConfig = void 0;
4
+ const constants_1 = require("../../../../constants");
5
+ exports.ArenaHookConfig = {
6
+ [constants_1.Network.AVALANCHE]: {
7
+ hookAddress: '0xe32a5d788c568fc5a671255d17b618e70552e044',
8
+ feeHelperAddress: '0x537505da49b4249b576fc8d00028bfddf6189077',
9
+ },
10
+ };
11
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/config.ts"],"names":[],"mappings":";;;AAEA,qDAAgD;AAEnC,QAAA,eAAe,GAA2B;IACrD,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE;QACnB,WAAW,EAAE,4CAA4C;QACzD,gBAAgB,EAAE,4CAA4C;KAC/D;CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Address } from '@paraswap/core';
2
+ export type HookParams = {
3
+ hookAddress: Address;
4
+ feeHelperAddress: Address;
5
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import { PoolKey } from '../types';
2
+ import { IDexHelper } from '../../../dex-helper';
3
+ import { Network } from '../../../constants';
4
+ import { Logger } from '../../../types';
5
+ export type HookConfig<HookParams> = {
6
+ [network: number]: HookParams;
7
+ };
8
+ export interface BalanceDelta {
9
+ amount0: bigint;
10
+ amount1: bigint;
11
+ }
12
+ export interface BeforeSwapDelta {
13
+ amount0: bigint;
14
+ amount1: bigint;
15
+ }
16
+ export interface SwapParams {
17
+ zeroForOne: boolean;
18
+ amountSpecified: string;
19
+ sqrtPriceLimitX96: string;
20
+ }
21
+ export interface ModifyLiquidityParams {
22
+ tickLower: number;
23
+ tickUpper: number;
24
+ liquidityDelta: string;
25
+ salt: string;
26
+ }
27
+ export interface HooksPermissions {
28
+ beforeInitialize: boolean;
29
+ afterInitialize: boolean;
30
+ beforeAddLiquidity: boolean;
31
+ afterAddLiquidity: boolean;
32
+ beforeRemoveLiquidity: boolean;
33
+ afterRemoveLiquidity: boolean;
34
+ beforeSwap: boolean;
35
+ afterSwap: boolean;
36
+ beforeDonate: boolean;
37
+ afterDonate: boolean;
38
+ beforeSwapReturnDelta: boolean;
39
+ afterSwapReturnDelta: boolean;
40
+ afterAddLiquidityReturnDelta: boolean;
41
+ afterRemoveLiquidityReturnDelta: boolean;
42
+ }
43
+ export interface IBaseHook {
44
+ readonly name: string;
45
+ readonly address: string;
46
+ getHookPermissions(): HooksPermissions;
47
+ registerPool(poolId: string, poolKey: PoolKey): void;
48
+ initialize(blockNumber: number): Promise<void>;
49
+ beforeInitialize?(sender: string, key: PoolKey, sqrtPriceX96: string): string;
50
+ afterInitialize?(sender: string, key: PoolKey, sqrtPriceX96: string, tick: number): string;
51
+ beforeAddLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, hookData: string): string;
52
+ beforeRemoveLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, hookData: string): string;
53
+ afterAddLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, delta0: BalanceDelta, delta1: BalanceDelta, hookData: string): [string, BalanceDelta];
54
+ afterRemoveLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, delta0: BalanceDelta, delta1: BalanceDelta, hookData: string): [string, BalanceDelta];
55
+ beforeSwap?(sender: string, key: PoolKey, params: SwapParams, hookData: string): [string, BeforeSwapDelta, number];
56
+ afterSwap?(sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, hookData: string): bigint;
57
+ beforeDonate?(sender: string, key: PoolKey, amount0: string, amount1: string, hookData: string): string;
58
+ afterDonate?(sender: string, key: PoolKey, amount0: string, amount1: string, hookData: string): string;
59
+ }
60
+ export type HookConstructor = new (dexHelper: IDexHelper, network: Network, logger: Logger) => IBaseHook;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/hooks/types.ts"],"names":[],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  import { DexExchangeBuildParam } from '../types';
2
- import { OptimalRate } from '@paraswap/core';
2
+ import { OptimalRate, OptimalRoute } from '@paraswap/core';
3
3
  import { DepositWithdrawReturn } from '../dex/weth/types';
4
- import { Executors, Flag } from './types';
4
+ import { Executors, Flag, RouteSwaps } from './types';
5
5
  import { DexCallDataParams, ExecutorBytecodeBuilder, SingleSwapCallDataParams } from './ExecutorBytecodeBuilder';
6
6
  export type Executor01SingleSwapCallDataParams = {};
7
7
  export type Executor01DexCallDataParams = {};
@@ -23,7 +23,7 @@ export declare class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder<E
23
23
  * case 1: check eth balance after swap
24
24
  * case 2: check destToken balance after swap
25
25
  */
26
- protected buildSimpleSwapFlags(priceRoute: OptimalRate, exchangeParams: DexExchangeBuildParam[], routeIndex: number, swapIndex: number, swapExchangeIndex: number, exchangeParamIndex: number, maybeWethCallData?: DepositWithdrawReturn): {
26
+ protected buildSimpleSwapFlags(routes: OptimalRoute[], exchangeParams: DexExchangeBuildParam[], routeIndex: number, swapIndex: number, swapExchangeIndex: number, exchangeParamIndex: number, maybeWethCallData?: DepositWithdrawReturn): {
27
27
  dexFlag: Flag;
28
28
  approveFlag: Flag;
29
29
  };
@@ -40,12 +40,12 @@ export declare class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder<E
40
40
  * case 1: check eth balance after swap
41
41
  * case 2: check destToken balance after swap
42
42
  */
43
- protected buildMultiMegaSwapFlags(priceRoute: OptimalRate, exchangeParams: DexExchangeBuildParam[], routeIndex: number, swapIndex: number, swapExchangeIndex: number, exchangeParamIndex: number, maybeWethCallData?: DepositWithdrawReturn): {
43
+ protected buildMultiMegaSwapFlags(routes: OptimalRoute[], exchangeParams: DexExchangeBuildParam[], routeIndex: number, swapIndex: number, swapExchangeIndex: number, exchangeParamIndex: number, maybeWethCallData?: DepositWithdrawReturn): {
44
44
  dexFlag: Flag;
45
45
  approveFlag: Flag;
46
46
  };
47
47
  protected buildSingleSwapCallData(params: SingleSwapCallDataParams<Executor01SingleSwapCallDataParams>): string;
48
48
  protected buildDexCallData(params: DexCallDataParams<Executor01DexCallDataParams>): string;
49
49
  getAddress(): string;
50
- buildByteCode(priceRoute: OptimalRate, exchangeParams: DexExchangeBuildParam[], sender: string, maybeWethCallData?: DepositWithdrawReturn): string;
50
+ buildByteCode(priceRoute: OptimalRate, routes: RouteSwaps[], exchangeParams: DexExchangeBuildParam[], sender: string, maybeWethCallData?: DepositWithdrawReturn): string;
51
51
  }
@@ -25,8 +25,8 @@ class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
25
25
  * case 1: check eth balance after swap
26
26
  * case 2: check destToken balance after swap
27
27
  */
28
- buildSimpleSwapFlags(priceRoute, exchangeParams, routeIndex, swapIndex, swapExchangeIndex, exchangeParamIndex, maybeWethCallData) {
29
- const { srcToken, destToken } = priceRoute.bestRoute[routeIndex].swaps[swapIndex];
28
+ buildSimpleSwapFlags(routes, exchangeParams, routeIndex, swapIndex, swapExchangeIndex, exchangeParamIndex, maybeWethCallData) {
29
+ const { srcToken, destToken } = routes[routeIndex].swaps[swapIndex];
30
30
  const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
31
31
  const isEthDest = (0, utils_1.isETHAddress)(destToken);
32
32
  const exchangeParam = exchangeParams[exchangeParamIndex];
@@ -84,13 +84,13 @@ class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
84
84
  * case 2: check destToken balance after swap
85
85
  */
86
86
  // Executor01 doesn't support mega swap routes, flags are built for multi swap routes only here
87
- buildMultiMegaSwapFlags(priceRoute, exchangeParams, routeIndex, swapIndex, swapExchangeIndex, exchangeParamIndex, maybeWethCallData) {
87
+ buildMultiMegaSwapFlags(routes, exchangeParams, routeIndex, swapIndex, swapExchangeIndex, exchangeParamIndex, maybeWethCallData) {
88
88
  // same as for Executor02 multi flags, except forceBalanceOfCheck
89
- const swap = priceRoute.bestRoute[routeIndex].swaps[swapIndex];
89
+ const swap = routes[routeIndex].swaps[swapIndex];
90
90
  const { srcToken, destToken } = swap;
91
91
  const exchangeParam = exchangeParams[exchangeParamIndex];
92
92
  const { dexFuncHasRecipient, needWrapNative, specialDexFlag, specialDexSupportsInsertFromAmount, swappedAmountNotPresentInExchangeData, sendEthButSupportsInsertFromAmount, preSwapUnwrapCalldata, } = exchangeParam;
93
- const isLastSwap = swapIndex === priceRoute.bestRoute[routeIndex].swaps.length - 1;
93
+ const isLastSwap = swapIndex === routes[routeIndex].swaps.length - 1;
94
94
  const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
95
95
  const isEthDest = (0, utils_1.isETHAddress)(destToken);
96
96
  const isSpecialDex = specialDexFlag !== undefined && specialDexFlag !== types_1.SpecialDex.DEFAULT;
@@ -151,18 +151,18 @@ class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
151
151
  };
152
152
  }
153
153
  buildSingleSwapCallData(params) {
154
- const { priceRoute, index, exchangeParams, flags, maybeWethCallData } = params;
154
+ const { routes, index, exchangeParams, flags, maybeWethCallData } = params;
155
155
  let swapCallData = '';
156
- const swap = priceRoute.bestRoute[0].swaps[index];
156
+ const swap = routes[0].swaps[index];
157
157
  const curExchangeParam = exchangeParams[index];
158
158
  const dexCallData = this.buildDexCallData({
159
- priceRoute,
159
+ routes,
160
160
  routeIndex: 0,
161
161
  swapIndex: index,
162
162
  swapExchangeIndex: 0,
163
163
  exchangeParams,
164
164
  exchangeParamIndex: index,
165
- isLastSwap: index === priceRoute.bestRoute[0].swaps.length - 1,
165
+ isLastSwap: index === routes[0].swaps.length - 1,
166
166
  flag: flags.dexes[index],
167
167
  });
168
168
  if (curExchangeParam.preSwapUnwrapCalldata) {
@@ -221,12 +221,12 @@ class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
221
221
  return swapCallData;
222
222
  }
223
223
  buildDexCallData(params) {
224
- const { priceRoute, exchangeParamIndex, exchangeParams, routeIndex, swapIndex, flag, swapExchangeIndex, } = params;
224
+ const { routes, exchangeParamIndex, exchangeParams, routeIndex, swapIndex, flag, swapExchangeIndex, } = params;
225
225
  const dontCheckBalanceAfterSwap = flag % 3 === 0;
226
226
  const checkDestTokenBalanceAfterSwap = flag % 3 === 2;
227
227
  const insertFromAmount = flag % 4 === 3 || flag % 4 === 2;
228
228
  const exchangeParam = exchangeParams[exchangeParamIndex];
229
- const swap = priceRoute.bestRoute[routeIndex].swaps[swapIndex];
229
+ const swap = routes[routeIndex].swaps[swapIndex];
230
230
  let { exchangeData, specialDexFlag } = exchangeParam;
231
231
  const returnAmountPos = exchangeParam.returnAmountPos !== undefined
232
232
  ? exchangeParam.returnAmountPos
@@ -261,12 +261,15 @@ class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
261
261
  getAddress() {
262
262
  return this.dexHelper.config.data.executorsAddresses[types_1.Executors.ONE];
263
263
  }
264
- buildByteCode(priceRoute, exchangeParams, sender, maybeWethCallData) {
265
- const flags = this.buildFlags(priceRoute, exchangeParams, maybeWethCallData);
264
+ buildByteCode(priceRoute, routes, exchangeParams, sender, maybeWethCallData) {
265
+ if (routes.some(route => route.type !== 'single-route')) {
266
+ throw new Error(`Executor01BytecodeBuilder doesn't support multi-route`);
267
+ }
268
+ const flags = this.buildFlags(priceRoute.bestRoute, exchangeParams, priceRoute.srcToken, maybeWethCallData);
266
269
  let swapsCalldata = exchangeParams.reduce((acc, ep, index) => hexConcat([
267
270
  acc,
268
271
  this.buildSingleSwapCallData({
269
- priceRoute,
272
+ routes: priceRoute.bestRoute,
270
273
  exchangeParams,
271
274
  index,
272
275
  flags,
@@ -1 +1 @@
1
- {"version":3,"file":"Executor01BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor01BytecodeBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Executor01BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor01BytecodeBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { OptimalRoute, OptimalRate, OptimalSwap, OptimalSwapExchange } from '@paraswap/core';
2
2
  import { DexExchangeBuildParam } from '../types';
3
- import { Executors, Flag } from './types';
3
+ import { Executors, Flag, RouteSwaps } from './types';
4
4
  import { DepositWithdrawReturn } from '../dex/weth/types';
5
5
  import { DexCallDataParams, ExecutorBytecodeBuilder, SingleSwapCallDataParams } from './ExecutorBytecodeBuilder';
6
6
  export type Executor02SingleSwapCallDataParams = {
@@ -16,9 +16,12 @@ export type Executor02SingleSwapCallDataParams = {
16
16
  [key: string]: boolean;
17
17
  };
18
18
  swap: OptimalSwap;
19
+ srcToken: string;
20
+ destToken: string;
19
21
  };
20
22
  export type Executor02DexCallDataParams = {
21
23
  swapExchange: OptimalSwapExchange<any>;
24
+ destToken: string;
22
25
  };
23
26
  /**
24
27
  * Class to build bytecode for Executor02 - simpleSwap with N DEXs (VERTICAL_BRANCH), multiSwaps (VERTICAL_BRANCH_HORIZONTAL_SEQUENCE) and megaswaps (NESTED_VERTICAL_BRANCH_HORIZONTAL_SEQUENCE)
@@ -38,7 +41,7 @@ export declare class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder<E
38
41
  * case 1: check eth balance after swap
39
42
  * case 2: check destToken balance after swap
40
43
  */
41
- protected buildSimpleSwapFlags(priceRoute: OptimalRate, exchangeParams: DexExchangeBuildParam[], routeIndex: number, swapIndex: number, swapExchangeIndex: number, exchangeParamIndex: number, maybeWethCallData?: DepositWithdrawReturn): {
44
+ protected buildSimpleSwapFlags(routes: OptimalRoute[], exchangeParams: DexExchangeBuildParam[], routeIndex: number, swapIndex: number, swapExchangeIndex: number, exchangeParamIndex: number, maybeWethCallData?: DepositWithdrawReturn): {
42
45
  dexFlag: Flag;
43
46
  approveFlag: Flag;
44
47
  };
@@ -55,12 +58,12 @@ export declare class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder<E
55
58
  * case 1: check eth balance after swap
56
59
  * case 2: check destToken balance after swap
57
60
  */
58
- protected buildMultiMegaSwapFlags(priceRoute: OptimalRate, exchangeParams: DexExchangeBuildParam[], routeIndex: number, swapIndex: number, swapExchangeIndex: number, exchangeParamIndex: number, maybeWethCallData?: DepositWithdrawReturn): {
61
+ protected buildMultiMegaSwapFlags(routes: OptimalRoute[], exchangeParams: DexExchangeBuildParam[], routeIndex: number, swapIndex: number, swapExchangeIndex: number, exchangeParamIndex: number, maybeWethCallData?: DepositWithdrawReturn): {
59
62
  dexFlag: Flag;
60
63
  approveFlag: Flag;
61
64
  };
62
65
  protected buildDexCallData(params: DexCallDataParams<Executor02DexCallDataParams>): string;
63
- private addMultiSwapMetadata;
66
+ private wrapAsVerticalBranch;
64
67
  private packVerticalBranchingData;
65
68
  private packVerticalBranchingCallData;
66
69
  private buildVerticalBranchingCallData;
@@ -74,16 +77,16 @@ export declare class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder<E
74
77
  private anyDexOnSwapDoesntNeedWrapNative;
75
78
  private everyDexOnSwapNeedWrapNative;
76
79
  private everyDexOnSwapDoesntNeedWrapNative;
77
- private doesSwapNeedToApplyVerticalBranching;
80
+ private doesSwapNeedToBeAsVerticalBranch;
78
81
  private buildVerticalBranchingFlag;
79
82
  protected buildSingleSwapCallData(params: SingleSwapCallDataParams<Executor02SingleSwapCallDataParams>): string;
80
- protected buildSingleRouteCallData(priceRoute: OptimalRate, exchangeParams: DexExchangeBuildParam[], route: OptimalRoute, routeIndex: number, flags: {
83
+ protected buildSingleRouteCallData(routes: OptimalRoute[], exchangeParams: DexExchangeBuildParam[], route: OptimalRoute, routeIndex: number, flags: {
81
84
  approves: Flag[];
82
85
  dexes: Flag[];
83
86
  wrap: Flag;
84
- }, sender: string, maybeWethCallData?: DepositWithdrawReturn): string;
87
+ }, sender: string, srcToken: string, destToken: string, maybeWethCallData?: DepositWithdrawReturn): string;
85
88
  private doesRouteNeedsRootWrapEth;
86
89
  private doesRouteNeedsRootUnwrapEth;
87
90
  getAddress(): string;
88
- buildByteCode(priceRoute: OptimalRate, exchangeParams: DexExchangeBuildParam[], sender: string, maybeWethCallData?: DepositWithdrawReturn): string;
91
+ buildByteCode(priceRoute: OptimalRate, routes: RouteSwaps[], exchangeParams: DexExchangeBuildParam[], sender: string, maybeWethCallData?: DepositWithdrawReturn): string;
89
92
  }