@1inch/fusion-sdk 1.0.1-rc.10 → 1.0.1-rc.12

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.
@@ -1,4 +1,5 @@
1
1
  import { SettlementPostInteractionData, AuctionDetails, AuctionPoint } from '../fusion-order';
2
+ import { AuctionGasCostInfo } from '../fusion-order/auction-details/types';
2
3
  export declare class AuctionCalculator {
3
4
  private readonly startTime;
4
5
  private readonly duration;
@@ -7,20 +8,24 @@ export declare class AuctionCalculator {
7
8
  private readonly takerFeeRatio;
8
9
  private readonly gasCost;
9
10
  private static GAS_PRICE_BASE;
10
- constructor(startTime: bigint, duration: bigint, initialRateBump: bigint, points: AuctionPoint[], takerFeeRatio: bigint, gasCost?: {
11
- /**
12
- * Rate bump to cover gas price. 10_000_000 means 100%
13
- */
14
- gasBumpEstimate: bigint;
15
- /**
16
- * Gas price at estimation time. 1000 means 1 Gwei
17
- */
18
- gasPriceEstimate: bigint;
19
- });
11
+ constructor(startTime: bigint, duration: bigint, initialRateBump: bigint, points: AuctionPoint[], takerFeeRatio: bigint, gasCost?: AuctionGasCostInfo);
20
12
  static fromAuctionData(data: SettlementPostInteractionData, details: AuctionDetails): AuctionCalculator;
13
+ static calcInitialRateBump(startAmount: bigint, endAmount: bigint): number;
21
14
  /**
22
15
  * @see https://github.com/1inch/limit-order-settlement/blob/1b6757eecb2574953b543821db6f7bbff5afee48/contracts/extensions/BaseExtension.sol#L56
23
16
  */
17
+ static calcAuctionTakingAmount(takingAmount: bigint, rate: number, takerFeeRatio: bigint): bigint;
18
+ /**
19
+ * Encode estimation `baseFee` as `gasPriceEstimate` for `AuctionGasCostInfo`
20
+ */
21
+ static baseFeeToGasPriceEstimate(baseFee: bigint): bigint;
22
+ /**
23
+ * Calculates `gasBumpEstimate` for `AuctionGasCostInfo`
24
+ *
25
+ * @param endTakingAmount min return in destToken
26
+ * @param gasCostInToToken gas cost in destToken
27
+ */
28
+ static calcGasBumpEstimate(endTakingAmount: bigint, gasCostInToToken: bigint): bigint;
24
29
  calcAuctionTakingAmount(takingAmount: bigint, rate: number): bigint;
25
30
  /**
26
31
  * @see https://github.com/1inch/limit-order-settlement/blob/273defdf7b0f1867299dcbc306f32f035579310f/contracts/extensions/BaseExtension.sol#L121
@@ -5,7 +5,10 @@ const calc_1 = require("./calc");
5
5
  const constants_1 = require("./constants");
6
6
  const sdk_1 = require("../sdk");
7
7
  class AuctionCalculator {
8
- constructor(startTime, duration, initialRateBump, points, takerFeeRatio, gasCost = { gasBumpEstimate: 0n, gasPriceEstimate: 0n }) {
8
+ constructor(startTime, duration, initialRateBump, points, takerFeeRatio, gasCost = {
9
+ gasBumpEstimate: 0n,
10
+ gasPriceEstimate: 0n
11
+ }) {
9
12
  this.startTime = startTime;
10
13
  this.duration = duration;
11
14
  this.initialRateBump = initialRateBump;
@@ -16,16 +19,39 @@ class AuctionCalculator {
16
19
  static fromAuctionData(data, details) {
17
20
  return new AuctionCalculator(data.resolvingStartTime, details.duration, details.initialRateBump, details.points, data.integratorFee?.ratio || 0n, details.gasCost);
18
21
  }
22
+ static calcInitialRateBump(startAmount, endAmount) {
23
+ const bump = (constants_1.RATE_BUMP_DENOMINATOR * startAmount) / endAmount -
24
+ constants_1.RATE_BUMP_DENOMINATOR;
25
+ return Number(bump);
26
+ }
19
27
  /**
20
28
  * @see https://github.com/1inch/limit-order-settlement/blob/1b6757eecb2574953b543821db6f7bbff5afee48/contracts/extensions/BaseExtension.sol#L56
21
29
  */
22
- calcAuctionTakingAmount(takingAmount, rate) {
30
+ static calcAuctionTakingAmount(takingAmount, rate, takerFeeRatio) {
23
31
  const auctionTakingAmount = (BigInt(takingAmount) * (BigInt(rate) + constants_1.RATE_BUMP_DENOMINATOR)) /
24
32
  constants_1.RATE_BUMP_DENOMINATOR;
25
- if (this.takerFeeRatio === 0n) {
33
+ if (takerFeeRatio === 0n) {
26
34
  return auctionTakingAmount;
27
35
  }
28
- return (0, sdk_1.addRatioToAmount)(auctionTakingAmount, this.takerFeeRatio);
36
+ return (0, sdk_1.addRatioToAmount)(auctionTakingAmount, takerFeeRatio);
37
+ }
38
+ /**
39
+ * Encode estimation `baseFee` as `gasPriceEstimate` for `AuctionGasCostInfo`
40
+ */
41
+ static baseFeeToGasPriceEstimate(baseFee) {
42
+ return baseFee / AuctionCalculator.GAS_PRICE_BASE;
43
+ }
44
+ /**
45
+ * Calculates `gasBumpEstimate` for `AuctionGasCostInfo`
46
+ *
47
+ * @param endTakingAmount min return in destToken
48
+ * @param gasCostInToToken gas cost in destToken
49
+ */
50
+ static calcGasBumpEstimate(endTakingAmount, gasCostInToToken) {
51
+ return (gasCostInToToken * constants_1.RATE_BUMP_DENOMINATOR) / endTakingAmount;
52
+ }
53
+ calcAuctionTakingAmount(takingAmount, rate) {
54
+ return AuctionCalculator.calcAuctionTakingAmount(takingAmount, rate, this.takerFeeRatio);
29
55
  }
30
56
  /**
31
57
  * @see https://github.com/1inch/limit-order-settlement/blob/273defdf7b0f1867299dcbc306f32f035579310f/contracts/extensions/BaseExtension.sol#L121
@@ -1 +1 @@
1
- {"version":3,"file":"auction-calculator.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auction-calculator.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1inch/fusion-sdk",
3
- "version": "1.0.1-rc.10",
3
+ "version": "1.0.1-rc.12",
4
4
  "description": "1inch Fusion Mode SDK",
5
5
  "author": "@1inch",
6
6
  "private": false,