@paraswap/dex-lib 2.28.7 → 2.28.9-take-surplus.0
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/dex/balancer-v2/balancer-v2.js +2 -0
- package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
- package/build/dex/balancer-v2/optimizer.js +51 -38
- package/build/dex/balancer-v2/optimizer.js.map +1 -1
- package/build/dex/balancer-v2/types.d.ts +4 -0
- package/build/dex/balancer-v2/types.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.js +26 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3.js +1 -1
- package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
- package/build/router/buy.d.ts +1 -1
- package/build/router/buy.js +3 -3
- package/build/router/buy.js.map +1 -1
- package/build/router/directswap.d.ts +1 -1
- package/build/router/directswap.js +3 -3
- package/build/router/directswap.js.map +1 -1
- package/build/router/irouter.d.ts +1 -1
- package/build/router/megaswap.d.ts +1 -1
- package/build/router/megaswap.js +3 -3
- package/build/router/megaswap.js.map +1 -1
- package/build/router/multiswap.d.ts +1 -1
- package/build/router/multiswap.js +3 -3
- package/build/router/multiswap.js.map +1 -1
- package/build/router/payload-encoder.d.ts +3 -3
- package/build/router/payload-encoder.js +6 -6
- package/build/router/payload-encoder.js.map +1 -1
- package/build/router/simpleswap.d.ts +2 -2
- package/build/router/simpleswap.js +3 -3
- package/build/router/simpleswap.js.map +1 -1
- package/build/router/simpleswapnft.d.ts +1 -1
- package/build/router/simpleswapnft.js +3 -3
- package/build/router/simpleswapnft.js.map +1 -1
- package/build/transaction-builder.d.ts +2 -2
- package/build/transaction-builder.js +2 -2
- package/build/transaction-builder.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/balancer-v2/balancer-v2.ts +2 -0
- package/src/dex/balancer-v2/optimizer.ts +62 -49
- package/src/dex/balancer-v2/types.ts +4 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.ts +33 -1
- package/src/dex/uniswap-v3/uniswap-v3.ts +1 -1
- package/src/router/buy.ts +3 -7
- package/src/router/directswap.ts +3 -7
- package/src/router/irouter.ts +1 -1
- package/src/router/megaswap.ts +3 -7
- package/src/router/multiswap.ts +3 -7
- package/src/router/payload-encoder.ts +7 -7
- package/src/router/simpleswap.ts +4 -8
- package/src/router/simpleswapnft.ts +3 -7
- package/src/transaction-builder.ts +3 -3
package/src/router/directswap.ts
CHANGED
|
@@ -29,7 +29,7 @@ export class DirectSwap<DexDirectReturn> implements IRouter<DexDirectReturn> {
|
|
|
29
29
|
referrerAddress: Address | undefined,
|
|
30
30
|
partnerAddress: Address,
|
|
31
31
|
partnerFeePercent: string,
|
|
32
|
-
|
|
32
|
+
takeSurplus: boolean,
|
|
33
33
|
beneficiary: Address,
|
|
34
34
|
permit: string,
|
|
35
35
|
deadline: string,
|
|
@@ -76,13 +76,9 @@ export class DirectSwap<DexDirectReturn> implements IRouter<DexDirectReturn> {
|
|
|
76
76
|
encodePartnerAddressForFeeLogic({
|
|
77
77
|
partnerAddress,
|
|
78
78
|
partnerFeePercent,
|
|
79
|
-
|
|
79
|
+
takeSurplus,
|
|
80
80
|
}),
|
|
81
|
-
encodeFeePercent(
|
|
82
|
-
partnerFeePercent,
|
|
83
|
-
positiveSlippageToUser,
|
|
84
|
-
priceRoute.side,
|
|
85
|
-
),
|
|
81
|
+
encodeFeePercent(partnerFeePercent, takeSurplus, priceRoute.side),
|
|
86
82
|
];
|
|
87
83
|
|
|
88
84
|
return dex.getDirectParam!(
|
package/src/router/irouter.ts
CHANGED
package/src/router/megaswap.ts
CHANGED
|
@@ -42,7 +42,7 @@ export class MegaSwap extends PayloadEncoder implements IRouter<MegaSwapParam> {
|
|
|
42
42
|
referrerAddress: Address | undefined,
|
|
43
43
|
partnerAddress: Address,
|
|
44
44
|
partnerFeePercent: string,
|
|
45
|
-
|
|
45
|
+
takeSurplus: boolean,
|
|
46
46
|
beneficiary: Address,
|
|
47
47
|
permit: string,
|
|
48
48
|
deadline: string,
|
|
@@ -58,13 +58,9 @@ export class MegaSwap extends PayloadEncoder implements IRouter<MegaSwapParam> {
|
|
|
58
58
|
encodePartnerAddressForFeeLogic({
|
|
59
59
|
partnerAddress,
|
|
60
60
|
partnerFeePercent,
|
|
61
|
-
|
|
61
|
+
takeSurplus,
|
|
62
62
|
}),
|
|
63
|
-
encodeFeePercent(
|
|
64
|
-
partnerFeePercent,
|
|
65
|
-
positiveSlippageToUser,
|
|
66
|
-
SwapSide.SELL,
|
|
67
|
-
),
|
|
63
|
+
encodeFeePercent(partnerFeePercent, takeSurplus, SwapSide.SELL),
|
|
68
64
|
];
|
|
69
65
|
|
|
70
66
|
const sellData: ContractMegaSwapSellData = {
|
package/src/router/multiswap.ts
CHANGED
|
@@ -45,7 +45,7 @@ export class MultiSwap
|
|
|
45
45
|
referrerAddress: Address | undefined,
|
|
46
46
|
partnerAddress: Address,
|
|
47
47
|
partnerFeePercent: string,
|
|
48
|
-
|
|
48
|
+
takeSurplus: boolean,
|
|
49
49
|
beneficiary: Address,
|
|
50
50
|
permit: string,
|
|
51
51
|
deadline: string,
|
|
@@ -66,13 +66,9 @@ export class MultiSwap
|
|
|
66
66
|
encodePartnerAddressForFeeLogic({
|
|
67
67
|
partnerAddress,
|
|
68
68
|
partnerFeePercent,
|
|
69
|
-
|
|
69
|
+
takeSurplus,
|
|
70
70
|
}),
|
|
71
|
-
encodeFeePercent(
|
|
72
|
-
partnerFeePercent,
|
|
73
|
-
positiveSlippageToUser,
|
|
74
|
-
SwapSide.SELL,
|
|
75
|
-
),
|
|
71
|
+
encodeFeePercent(partnerFeePercent, takeSurplus, SwapSide.SELL),
|
|
76
72
|
];
|
|
77
73
|
|
|
78
74
|
const sellData: ContractSellData = {
|
|
@@ -29,14 +29,14 @@ const HALF_SPLIT = '5000';
|
|
|
29
29
|
export function encodePartnerAddressForFeeLogic({
|
|
30
30
|
partnerAddress,
|
|
31
31
|
partnerFeePercent,
|
|
32
|
-
|
|
32
|
+
takeSurplus,
|
|
33
33
|
}: {
|
|
34
34
|
partnerAddress: string;
|
|
35
35
|
partnerFeePercent: string;
|
|
36
|
-
|
|
36
|
+
takeSurplus: boolean;
|
|
37
37
|
}): string {
|
|
38
38
|
const isPartnerTakeNoFeeNoPos =
|
|
39
|
-
+partnerFeePercent === 0 &&
|
|
39
|
+
+partnerFeePercent === 0 && takeSurplus == false;
|
|
40
40
|
|
|
41
41
|
// nullify partner address to fallback default circuit contract without partner/referrer (no harm as no fee taken at all)
|
|
42
42
|
const partner = isPartnerTakeNoFeeNoPos ? NULL_ADDRESS : partnerAddress;
|
|
@@ -51,11 +51,11 @@ export function encodePartnerAddressForFeeLogic({
|
|
|
51
51
|
|
|
52
52
|
export function encodeFeePercent(
|
|
53
53
|
partnerFeePercent: string,
|
|
54
|
-
|
|
54
|
+
takeSurplus: boolean,
|
|
55
55
|
side: SwapSide,
|
|
56
56
|
) {
|
|
57
57
|
const isNoFeeAndPositiveSlippageToPartner =
|
|
58
|
-
|
|
58
|
+
takeSurplus === true && BigInt(partnerFeePercent) === 0n;
|
|
59
59
|
|
|
60
60
|
let fee = isNoFeeAndPositiveSlippageToPartner
|
|
61
61
|
? BigInt(HALF_SPLIT)
|
|
@@ -70,9 +70,9 @@ export function encodeFeePercent(
|
|
|
70
70
|
fee |= OneShift17;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
// Set 14th bit if
|
|
73
|
+
// Set 14th bit if takeSurplus is false
|
|
74
74
|
// Upd: not used onchain anymore but better to keep to prevent collisions and ensure continuity of analytics
|
|
75
|
-
if (
|
|
75
|
+
if (!takeSurplus) fee |= OneShift14;
|
|
76
76
|
|
|
77
77
|
// Set 15th bit to take fee from srcToken
|
|
78
78
|
if (side === SwapSide.BUY && !isNoFeeAndPositiveSlippageToPartner)
|
package/src/router/simpleswap.ts
CHANGED
|
@@ -223,7 +223,7 @@ export abstract class SimpleRouterBase<RouterParam>
|
|
|
223
223
|
referrerAddress: Address | undefined,
|
|
224
224
|
partnerAddress: Address,
|
|
225
225
|
partnerFeePercent: string,
|
|
226
|
-
|
|
226
|
+
takeSurplus: boolean,
|
|
227
227
|
beneficiary: Address,
|
|
228
228
|
permit: string,
|
|
229
229
|
deadline: string,
|
|
@@ -272,7 +272,7 @@ export abstract class SimpleRouter extends SimpleRouterBase<SimpleSwapParam> {
|
|
|
272
272
|
referrerAddress: Address | undefined,
|
|
273
273
|
partnerAddress: Address,
|
|
274
274
|
partnerFeePercent: string,
|
|
275
|
-
|
|
275
|
+
takeSurplus: boolean,
|
|
276
276
|
beneficiary: Address,
|
|
277
277
|
permit: string,
|
|
278
278
|
deadline: string,
|
|
@@ -292,13 +292,9 @@ export abstract class SimpleRouter extends SimpleRouterBase<SimpleSwapParam> {
|
|
|
292
292
|
encodePartnerAddressForFeeLogic({
|
|
293
293
|
partnerAddress,
|
|
294
294
|
partnerFeePercent,
|
|
295
|
-
|
|
295
|
+
takeSurplus,
|
|
296
296
|
}),
|
|
297
|
-
encodeFeePercent(
|
|
298
|
-
partnerFeePercent,
|
|
299
|
-
positiveSlippageToUser,
|
|
300
|
-
this.side,
|
|
301
|
-
),
|
|
297
|
+
encodeFeePercent(partnerFeePercent, takeSurplus, this.side),
|
|
302
298
|
];
|
|
303
299
|
|
|
304
300
|
const sellData: ConstractSimpleData = {
|
|
@@ -60,7 +60,7 @@ export class SimpleBuyNFT extends SimpleRouterBase<SimpleBuyNFTParam> {
|
|
|
60
60
|
referrerAddress: Address | undefined,
|
|
61
61
|
partnerAddress: Address,
|
|
62
62
|
partnerFeePercent: string,
|
|
63
|
-
|
|
63
|
+
takeSurplus: boolean,
|
|
64
64
|
beneficiary: Address,
|
|
65
65
|
permit: string,
|
|
66
66
|
deadline: string,
|
|
@@ -102,13 +102,9 @@ export class SimpleBuyNFT extends SimpleRouterBase<SimpleBuyNFTParam> {
|
|
|
102
102
|
encodePartnerAddressForFeeLogic({
|
|
103
103
|
partnerAddress,
|
|
104
104
|
partnerFeePercent,
|
|
105
|
-
|
|
105
|
+
takeSurplus,
|
|
106
106
|
}),
|
|
107
|
-
encodeFeePercent(
|
|
108
|
-
partnerFeePercent,
|
|
109
|
-
positiveSlippageToUser,
|
|
110
|
-
SwapSide.BUY,
|
|
111
|
-
),
|
|
107
|
+
encodeFeePercent(partnerFeePercent, takeSurplus, SwapSide.BUY),
|
|
112
108
|
];
|
|
113
109
|
|
|
114
110
|
const buyData: ContractSimpleBuyNFTData = {
|
|
@@ -17,7 +17,7 @@ export class TransactionBuilder {
|
|
|
17
17
|
referrerAddress,
|
|
18
18
|
partnerAddress,
|
|
19
19
|
partnerFeePercent,
|
|
20
|
-
|
|
20
|
+
takeSurplus,
|
|
21
21
|
gasPrice,
|
|
22
22
|
maxFeePerGas,
|
|
23
23
|
maxPriorityFeePerGas,
|
|
@@ -33,7 +33,7 @@ export class TransactionBuilder {
|
|
|
33
33
|
referrerAddress?: Address;
|
|
34
34
|
partnerAddress: Address;
|
|
35
35
|
partnerFeePercent: string;
|
|
36
|
-
|
|
36
|
+
takeSurplus?: boolean;
|
|
37
37
|
gasPrice?: string; // // @TODO: improve types? so that either gasPrice or ALL of max.*FeePerGas MUST be returned?
|
|
38
38
|
maxFeePerGas?: string;
|
|
39
39
|
maxPriorityFeePerGas?: string;
|
|
@@ -53,7 +53,7 @@ export class TransactionBuilder {
|
|
|
53
53
|
referrerAddress,
|
|
54
54
|
partnerAddress,
|
|
55
55
|
partnerFeePercent,
|
|
56
|
-
|
|
56
|
+
takeSurplus ?? false,
|
|
57
57
|
_beneficiary,
|
|
58
58
|
permit || '0x',
|
|
59
59
|
deadline,
|