@paraswap/dex-lib 4.7.14-multi-route.0 → 4.7.14-multi-route.2
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.
- package/build/abi/pharaoh-v3/PharaohV3Factory.abi.json +39 -0
- package/build/abi/pharaoh-v3/PharaohV3Pool.abi.json +802 -0
- package/build/abi/pharaoh-v3/PharaohV3StateMulticall.abi.json +781 -0
- package/build/abi/uniswap-v4/hooks/arena/arena-fee-helper.abi.json +476 -0
- package/build/dex/simple-exchange.js +7 -1
- package/build/dex/simple-exchange.js.map +1 -1
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.d.ts +7 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.js +20 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.js.map +1 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.d.ts +12 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.js +139 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.js.map +1 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.d.ts +11 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.js +128 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.js.map +1 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.d.ts +4 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.js +56 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.d.ts +36 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js +125 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-hook.d.ts +21 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-hook.js +93 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-hook.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/arena/config.d.ts +3 -0
- package/build/dex/uniswap-v4/hooks/arena/config.js +11 -0
- package/build/dex/uniswap-v4/hooks/arena/config.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/arena/types.d.ts +5 -0
- package/build/dex/uniswap-v4/hooks/arena/types.js +3 -0
- package/build/dex/uniswap-v4/hooks/arena/types.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/types.d.ts +60 -0
- package/build/dex/uniswap-v4/hooks/types.js +3 -0
- package/build/dex/uniswap-v4/hooks/types.js.map +1 -0
- package/build/executor/types.d.ts +3 -3
- package/build/generic-swap-transaction-builder.d.ts +3 -2
- package/build/generic-swap-transaction-builder.js +61 -50
- package/build/generic-swap-transaction-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -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 @@
|
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import { OptimalSwap, OptimalSwapExchange } from '@paraswap/core';
|
|
2
|
-
import {
|
|
2
|
+
import { DexExchangeBuildParam } from '../types';
|
|
3
3
|
export declare enum Flag {
|
|
4
4
|
SEND_ETH_EQUAL_TO_FROM_AMOUNT_PLUS_INSERT_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP = 18,// // (flag 18 mod 4) = case 2: sendEth equal to fromAmount + insert fromAmount, (flag 18 mod 3) = case 0: don't check balance after swap
|
|
5
5
|
SEND_ETH_EQUAL_TO_FROM_AMOUNT_PLUS_INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP = 14,// (flag 14 mod 4) = case 2: sendEth equal to fromAmount + insert fromAmount, (flag 14 mod 3) = case 2: case 2: check "srcToken" balance after swap
|
|
@@ -53,10 +53,10 @@ export type GenericRouteSwaps<TSwap> = {
|
|
|
53
53
|
export type RouteSwaps = GenericRouteSwaps<OptimalSwap>;
|
|
54
54
|
export type RouteBuildSwaps = GenericRouteSwaps<BuildSwap>;
|
|
55
55
|
export type BuildSwapExchange<T> = OptimalSwapExchange<T> & {
|
|
56
|
-
dexParams:
|
|
56
|
+
dexParams: DexExchangeBuildParam;
|
|
57
57
|
wethDeposit: bigint;
|
|
58
58
|
wethWithdraw: bigint;
|
|
59
59
|
};
|
|
60
|
-
export type BuildSwap = OptimalSwap & {
|
|
60
|
+
export type BuildSwap = Omit<OptimalSwap, 'swapExchanges'> & {
|
|
61
61
|
swapExchanges: BuildSwapExchange<any>[];
|
|
62
62
|
};
|
|
@@ -6,7 +6,7 @@ import { ExecutorDetector } from './executor/ExecutorDetector';
|
|
|
6
6
|
import { ExecutorBytecodeBuilder } from './executor/ExecutorBytecodeBuilder';
|
|
7
7
|
import { IDexTxBuilder } from './dex/idex';
|
|
8
8
|
import { SwapSide } from '@paraswap/core';
|
|
9
|
-
import { BuildSwapExchange, RouteSwaps } from './executor/types';
|
|
9
|
+
import { BuildSwapExchange, RouteBuildSwaps, RouteSwaps } from './executor/types';
|
|
10
10
|
export declare class GenericSwapTransactionBuilder {
|
|
11
11
|
protected dexAdapterService: DexAdapterService;
|
|
12
12
|
protected wExchangeNetworkToKey: Record<number, string>;
|
|
@@ -18,7 +18,8 @@ export declare class GenericSwapTransactionBuilder {
|
|
|
18
18
|
constructor(dexAdapterService: DexAdapterService, wExchangeNetworkToKey?: Record<number, string>);
|
|
19
19
|
protected getDepositWithdrawWethCallData(srcAmountWeth: bigint, destAmountWeth: bigint, side: SwapSide, priceRoute: OptimalRate, exchangeParams: DexExchangeParamWithBooleanNeedWrapNative[]): DepositWithdrawReturn | undefined;
|
|
20
20
|
buildRouteSwaps(priceRoute: OptimalRate): RouteSwaps[];
|
|
21
|
-
|
|
21
|
+
addRouteBuildSwaps(priceRoute: OptimalRate, routes: RouteSwaps[], minMaxAmount: string, side: SwapSide, bytecodeBuilder: ExecutorBytecodeBuilder): Promise<RouteBuildSwaps[]>;
|
|
22
|
+
buildSwapExchange(priceRoute: OptimalRate, swap: OptimalSwap, se: OptimalSwapExchange<any>, minMaxAmount: string, side: SwapSide, bytecodeBuilder: ExecutorBytecodeBuilder): Promise<BuildSwapExchange<any>>;
|
|
22
23
|
protected buildCalls(priceRoute: OptimalRate, minMaxAmount: string, bytecodeBuilder: ExecutorBytecodeBuilder, userAddress: string): Promise<string>;
|
|
23
24
|
protected _build(priceRoute: OptimalRate, minMaxAmount: string, quotedAmount: string, userAddress: Address, referrerAddress: Address | undefined, partnerAddress: Address, partnerFeePercent: string, takeSurplus: boolean, isCapSurplus: boolean, isSurplusToUser: boolean, isDirectFeeTransfer: boolean, beneficiary: Address, permit: string, deadline: string, uuid: string): Promise<{
|
|
24
25
|
encoder: (...params: any[]) => string;
|
|
@@ -94,7 +94,34 @@ class GenericSwapTransactionBuilder {
|
|
|
94
94
|
}
|
|
95
95
|
return routes;
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
async addRouteBuildSwaps(priceRoute, routes, minMaxAmount, side, bytecodeBuilder) {
|
|
98
|
+
const buildSwap = async (swap) => ({
|
|
99
|
+
...swap,
|
|
100
|
+
swapExchanges: await Promise.all(swap.swapExchanges.map(se => this.buildSwapExchange(priceRoute, swap, se, minMaxAmount, side, bytecodeBuilder))),
|
|
101
|
+
});
|
|
102
|
+
const buildSingleRouteSwaps = (swaps) => Promise.all(swaps.map(buildSwap));
|
|
103
|
+
const isNestedSwaps = (swaps) => Array.isArray(swaps[0]);
|
|
104
|
+
const buildMultiRouteSwaps = (swaps) => Promise.all(swaps.map((innerSwaps) => {
|
|
105
|
+
if (isNestedSwaps(innerSwaps)) {
|
|
106
|
+
return Promise.all(innerSwaps.map(s => Promise.all(s.map(buildSwap))));
|
|
107
|
+
}
|
|
108
|
+
return Promise.all(innerSwaps.map(buildSwap));
|
|
109
|
+
}));
|
|
110
|
+
const routesWithBuild = await Promise.all(routes.map(async (route) => {
|
|
111
|
+
if (route.type === 'single-route') {
|
|
112
|
+
return {
|
|
113
|
+
...route,
|
|
114
|
+
swaps: await buildSingleRouteSwaps(route.swaps),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
...route,
|
|
119
|
+
swaps: await buildMultiRouteSwaps(route.swaps),
|
|
120
|
+
};
|
|
121
|
+
}));
|
|
122
|
+
return routesWithBuild;
|
|
123
|
+
}
|
|
124
|
+
async buildSwapExchange(priceRoute, swap, se, minMaxAmount, side, bytecodeBuilder) {
|
|
98
125
|
const { swapIndex, routeIndex } = (0, utils_2.getOriginalRouteSwapIndex)(priceRoute, swap);
|
|
99
126
|
const dex = this.dexAdapterService.getTxBuilderDexByKey(se.exchange);
|
|
100
127
|
const executorAddress = bytecodeBuilder.getAddress();
|
|
@@ -113,29 +140,14 @@ class GenericSwapTransactionBuilder {
|
|
|
113
140
|
wethDeposit,
|
|
114
141
|
wethWithdraw,
|
|
115
142
|
};
|
|
116
|
-
}
|
|
143
|
+
}
|
|
117
144
|
async buildCalls(priceRoute, minMaxAmount, bytecodeBuilder, userAddress) {
|
|
118
145
|
const side = priceRoute.side;
|
|
146
|
+
// TODO-multi: refactor
|
|
119
147
|
const routes = this.buildRouteSwaps(priceRoute);
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
});
|
|
124
|
-
const buildSwaps = async (routeSwaps) => Promise.all(routeSwaps.map(async (swaps) => {
|
|
125
|
-
if (Array.isArray(swaps)) {
|
|
126
|
-
return Promise.all(swaps.map(async (innerRouteSwaps) => Array.isArray(innerRouteSwaps)
|
|
127
|
-
? Promise.all(innerRouteSwaps.map(buildSwap))
|
|
128
|
-
: buildSwap(innerRouteSwaps)));
|
|
129
|
-
}
|
|
130
|
-
return buildSwap(swaps);
|
|
131
|
-
}));
|
|
132
|
-
const routesWithBuild = (await Promise.all(routes.map(async (route) => ({
|
|
133
|
-
...route,
|
|
134
|
-
swaps: await buildSwaps(route.swaps), // TODO-multi: refactor
|
|
135
|
-
}))));
|
|
136
|
-
const allBuildSwaps = routesWithBuild
|
|
137
|
-
.flatMap(route => route.swaps)
|
|
138
|
-
.flat(3);
|
|
148
|
+
const routesWithBuild = await this.addRouteBuildSwaps(priceRoute, routes, minMaxAmount, side, bytecodeBuilder);
|
|
149
|
+
const allBuildSwaps = routesWithBuild.map(route => route.swaps).flat(3);
|
|
150
|
+
await this.addDexExchangeApproveParams(bytecodeBuilder, allBuildSwaps);
|
|
139
151
|
const flatSwapExchanges = allBuildSwaps.flatMap(swap => swap.swapExchanges);
|
|
140
152
|
const { srcAmountWethToDeposit, destAmountWethToWithdraw } = flatSwapExchanges.reduce((acc, se) => {
|
|
141
153
|
acc.srcAmountWethToDeposit += se.wethDeposit;
|
|
@@ -148,8 +160,7 @@ class GenericSwapTransactionBuilder {
|
|
|
148
160
|
// TODO-multi: can exchange params order be affected by this update for single-route routes??
|
|
149
161
|
const exchangeParams = flatSwapExchanges.map(se => se.dexParams);
|
|
150
162
|
const maybeWethCallData = this.getDepositWithdrawWethCallData(srcAmountWethToDeposit, destAmountWethToWithdraw, side, priceRoute, exchangeParams);
|
|
151
|
-
|
|
152
|
-
return bytecodeBuilder.buildByteCode(priceRoute, routes, buildExchangeParams, userAddress, maybeWethCallData);
|
|
163
|
+
return bytecodeBuilder.buildByteCode(priceRoute, routes, exchangeParams, userAddress, maybeWethCallData);
|
|
153
164
|
}
|
|
154
165
|
async _build(priceRoute, minMaxAmount, quotedAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, isSurplusToUser, isDirectFeeTransfer, beneficiary, permit, deadline, uuid) {
|
|
155
166
|
const executorName = this.executorDetector.getExecutorByPriceRoute(priceRoute);
|
|
@@ -390,41 +401,41 @@ class GenericSwapTransactionBuilder {
|
|
|
390
401
|
wethWithdraw,
|
|
391
402
|
};
|
|
392
403
|
}
|
|
393
|
-
async addDexExchangeApproveParams(bytecodeBuilder,
|
|
404
|
+
async addDexExchangeApproveParams(bytecodeBuilder, swaps) {
|
|
394
405
|
const spender = bytecodeBuilder.getAddress();
|
|
395
406
|
const tokenTargetMapping = [];
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
407
|
+
swaps.forEach((swap, swapI) => {
|
|
408
|
+
swap.swapExchanges.forEach((se, seI) => {
|
|
409
|
+
const curExchangeParam = se.dexParams;
|
|
410
|
+
const approveParams = bytecodeBuilder.getApprovalTokenAndTarget(swap, curExchangeParam);
|
|
411
|
+
if (approveParams) {
|
|
412
|
+
tokenTargetMapping.push({
|
|
413
|
+
params: [
|
|
414
|
+
approveParams.token,
|
|
415
|
+
approveParams.target,
|
|
416
|
+
!!curExchangeParam.permit2Approval,
|
|
417
|
+
],
|
|
418
|
+
swapIndex: swapI,
|
|
419
|
+
swapExchangeIndex: seI,
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
});
|
|
412
424
|
const approvals = await this.dexAdapterService.dexHelper.augustusApprovals.hasApprovals(spender, tokenTargetMapping.map(t => t.params));
|
|
413
|
-
const dexExchangeBuildParams = [
|
|
414
|
-
...dexExchangeParams,
|
|
415
|
-
];
|
|
416
425
|
approvals.forEach((alreadyApproved, index) => {
|
|
417
426
|
if (!alreadyApproved) {
|
|
418
427
|
const [token, target] = tokenTargetMapping[index].params;
|
|
419
|
-
const
|
|
420
|
-
const
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
428
|
+
const swapIndex = tokenTargetMapping[index].swapIndex;
|
|
429
|
+
const swapExchangeIndex = tokenTargetMapping[index].swapExchangeIndex;
|
|
430
|
+
if (swapIndex !== undefined && swapExchangeIndex !== undefined) {
|
|
431
|
+
swaps[swapIndex].swapExchanges[swapExchangeIndex].dexParams.approveData = {
|
|
432
|
+
token,
|
|
433
|
+
target,
|
|
434
|
+
};
|
|
435
|
+
}
|
|
425
436
|
}
|
|
426
437
|
});
|
|
427
|
-
return
|
|
438
|
+
return swaps;
|
|
428
439
|
}
|
|
429
440
|
hasAnyRouteWithEthAndDifferentNeedWrapNative(priceRoute, exchangeParams) {
|
|
430
441
|
const eth = constants_1.ETHER_ADDRESS.toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-swap-transaction-builder.js","sourceRoot":"","sources":["../src/generic-swap-transaction-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generic-swap-transaction-builder.js","sourceRoot":"","sources":["../src/generic-swap-transaction-builder.ts"],"names":[],"mappings":"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"}
|