@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.
Files changed (50) hide show
  1. package/build/dex/balancer-v2/balancer-v2.js +2 -0
  2. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  3. package/build/dex/balancer-v2/optimizer.js +51 -38
  4. package/build/dex/balancer-v2/optimizer.js.map +1 -1
  5. package/build/dex/balancer-v2/types.d.ts +4 -0
  6. package/build/dex/balancer-v2/types.js.map +1 -1
  7. package/build/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.js +26 -1
  8. package/build/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.js.map +1 -1
  9. package/build/dex/uniswap-v3/uniswap-v3.js +1 -1
  10. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  11. package/build/router/buy.d.ts +1 -1
  12. package/build/router/buy.js +3 -3
  13. package/build/router/buy.js.map +1 -1
  14. package/build/router/directswap.d.ts +1 -1
  15. package/build/router/directswap.js +3 -3
  16. package/build/router/directswap.js.map +1 -1
  17. package/build/router/irouter.d.ts +1 -1
  18. package/build/router/megaswap.d.ts +1 -1
  19. package/build/router/megaswap.js +3 -3
  20. package/build/router/megaswap.js.map +1 -1
  21. package/build/router/multiswap.d.ts +1 -1
  22. package/build/router/multiswap.js +3 -3
  23. package/build/router/multiswap.js.map +1 -1
  24. package/build/router/payload-encoder.d.ts +3 -3
  25. package/build/router/payload-encoder.js +6 -6
  26. package/build/router/payload-encoder.js.map +1 -1
  27. package/build/router/simpleswap.d.ts +2 -2
  28. package/build/router/simpleswap.js +3 -3
  29. package/build/router/simpleswap.js.map +1 -1
  30. package/build/router/simpleswapnft.d.ts +1 -1
  31. package/build/router/simpleswapnft.js +3 -3
  32. package/build/router/simpleswapnft.js.map +1 -1
  33. package/build/transaction-builder.d.ts +2 -2
  34. package/build/transaction-builder.js +2 -2
  35. package/build/transaction-builder.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/dex/balancer-v2/balancer-v2.ts +2 -0
  38. package/src/dex/balancer-v2/optimizer.ts +62 -49
  39. package/src/dex/balancer-v2/types.ts +4 -0
  40. package/src/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.ts +33 -1
  41. package/src/dex/uniswap-v3/uniswap-v3.ts +1 -1
  42. package/src/router/buy.ts +3 -7
  43. package/src/router/directswap.ts +3 -7
  44. package/src/router/irouter.ts +1 -1
  45. package/src/router/megaswap.ts +3 -7
  46. package/src/router/multiswap.ts +3 -7
  47. package/src/router/payload-encoder.ts +7 -7
  48. package/src/router/simpleswap.ts +4 -8
  49. package/src/router/simpleswapnft.ts +3 -7
  50. package/src/transaction-builder.ts +3 -3
@@ -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
- positiveSlippageToUser: boolean,
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
- positiveSlippageToUser,
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!(
@@ -9,7 +9,7 @@ export interface IRouter<RouterParam> {
9
9
  referrerAddress: Address | undefined,
10
10
  partner: Address,
11
11
  partnerFeePercent: string,
12
- positiveSlippageToUser: boolean,
12
+ takeSurplus: boolean,
13
13
  beneficiary: Address,
14
14
  permit: string,
15
15
  deadline: string,
@@ -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
- positiveSlippageToUser: boolean,
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
- positiveSlippageToUser,
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 = {
@@ -45,7 +45,7 @@ export class MultiSwap
45
45
  referrerAddress: Address | undefined,
46
46
  partnerAddress: Address,
47
47
  partnerFeePercent: string,
48
- positiveSlippageToUser: boolean,
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
- positiveSlippageToUser,
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
- positiveSlippageToUser,
32
+ takeSurplus,
33
33
  }: {
34
34
  partnerAddress: string;
35
35
  partnerFeePercent: string;
36
- positiveSlippageToUser: boolean;
36
+ takeSurplus: boolean;
37
37
  }): string {
38
38
  const isPartnerTakeNoFeeNoPos =
39
- +partnerFeePercent === 0 && positiveSlippageToUser == true;
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
- positiveSlippageToUser: boolean,
54
+ takeSurplus: boolean,
55
55
  side: SwapSide,
56
56
  ) {
57
57
  const isNoFeeAndPositiveSlippageToPartner =
58
- positiveSlippageToUser === false && BigInt(partnerFeePercent) === 0n;
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 positiveSlippageToUser is true
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 (positiveSlippageToUser) fee |= OneShift14;
75
+ if (!takeSurplus) fee |= OneShift14;
76
76
 
77
77
  // Set 15th bit to take fee from srcToken
78
78
  if (side === SwapSide.BUY && !isNoFeeAndPositiveSlippageToPartner)
@@ -223,7 +223,7 @@ export abstract class SimpleRouterBase<RouterParam>
223
223
  referrerAddress: Address | undefined,
224
224
  partnerAddress: Address,
225
225
  partnerFeePercent: string,
226
- positiveSlippageToUser: boolean,
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
- positiveSlippageToUser: boolean,
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
- positiveSlippageToUser,
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
- positiveSlippageToUser: boolean,
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
- positiveSlippageToUser,
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
- positiveSlippageToUser,
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
- positiveSlippageToUser?: boolean;
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
- positiveSlippageToUser ?? true,
56
+ takeSurplus ?? false,
57
57
  _beneficiary,
58
58
  permit || '0x',
59
59
  deadline,