@1inch/fusion-sdk 1.0.1-rc.2 → 1.0.1-rc.4
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/dist/auction-calculator/auction-calculator.d.ts +11 -5
- package/dist/auction-calculator/auction-calculator.js +27 -11
- package/dist/auction-calculator/auction-calculator.js.map +1 -1
- package/dist/auction-calculator/auction-calculator.spec.js +29 -3
- package/dist/auction-calculator/auction-calculator.spec.js.map +1 -1
- package/dist/fusion-order/fusion-order.d.ts +8 -0
- package/dist/fusion-order/fusion-order.js +28 -0
- package/dist/fusion-order/fusion-order.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import { SettlementPostInteractionData } from '../fusion-order
|
|
2
|
-
import { AuctionDetails, AuctionPoint } from '../fusion-order/auction-details';
|
|
1
|
+
import { SettlementPostInteractionData, AuctionDetails, AuctionPoint } from '../fusion-order';
|
|
3
2
|
export declare class AuctionCalculator {
|
|
4
3
|
private readonly startTime;
|
|
5
4
|
private readonly duration;
|
|
6
5
|
private readonly initialRateBump;
|
|
7
6
|
private readonly points;
|
|
8
7
|
private readonly takerFeeRatio;
|
|
9
|
-
|
|
8
|
+
private readonly gasCost;
|
|
9
|
+
private static GAS_PRICE_BASE;
|
|
10
|
+
constructor(startTime: bigint, duration: bigint, initialRateBump: bigint, points: AuctionPoint[], takerFeeRatio: bigint, gasCost?: {
|
|
11
|
+
gasBumpEstimate: bigint;
|
|
12
|
+
gasPriceEstimate: bigint;
|
|
13
|
+
});
|
|
10
14
|
static fromAuctionData(data: SettlementPostInteractionData, details: AuctionDetails): AuctionCalculator;
|
|
11
|
-
calcAuctionTakingAmount(takingAmount:
|
|
12
|
-
calcRateBump(time:
|
|
15
|
+
calcAuctionTakingAmount(takingAmount: bigint, rate: number): bigint;
|
|
16
|
+
calcRateBump(time: bigint, blockBaseFee?: bigint): number;
|
|
17
|
+
private getGasPriceBump;
|
|
18
|
+
private getAuctionBump;
|
|
13
19
|
}
|
|
@@ -5,34 +5,51 @@ 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) {
|
|
8
|
+
constructor(startTime, duration, initialRateBump, points, takerFeeRatio, gasCost = { gasBumpEstimate: 0n, gasPriceEstimate: 0n }) {
|
|
9
9
|
this.startTime = startTime;
|
|
10
10
|
this.duration = duration;
|
|
11
11
|
this.initialRateBump = initialRateBump;
|
|
12
12
|
this.points = points;
|
|
13
13
|
this.takerFeeRatio = takerFeeRatio;
|
|
14
|
+
this.gasCost = gasCost;
|
|
14
15
|
}
|
|
15
16
|
static fromAuctionData(data, details) {
|
|
16
|
-
return new AuctionCalculator(data.auctionStartTime, details.duration, details.initialRateBump, details.points, data.integratorFee?.ratio || 0n);
|
|
17
|
+
return new AuctionCalculator(data.auctionStartTime, details.duration, details.initialRateBump, details.points, data.integratorFee?.ratio || 0n, details.gasCost);
|
|
17
18
|
}
|
|
18
19
|
calcAuctionTakingAmount(takingAmount, rate) {
|
|
19
20
|
const auctionTakingAmount = (BigInt(takingAmount) * (BigInt(rate) + constants_1.RATE_BUMP_DENOMINATOR)) /
|
|
20
21
|
constants_1.RATE_BUMP_DENOMINATOR;
|
|
21
22
|
if (this.takerFeeRatio === 0n) {
|
|
22
|
-
return auctionTakingAmount
|
|
23
|
+
return auctionTakingAmount;
|
|
23
24
|
}
|
|
24
|
-
return (0, sdk_1.addRatioToAmount)(auctionTakingAmount, this.takerFeeRatio)
|
|
25
|
+
return (0, sdk_1.addRatioToAmount)(auctionTakingAmount, this.takerFeeRatio);
|
|
25
26
|
}
|
|
26
|
-
calcRateBump(time) {
|
|
27
|
+
calcRateBump(time, blockBaseFee = 0n) {
|
|
28
|
+
const gasBump = this.getGasPriceBump(blockBaseFee);
|
|
29
|
+
const auctionBump = this.getAuctionBump(time);
|
|
30
|
+
const final = auctionBump > gasBump ? auctionBump - gasBump : 0n;
|
|
31
|
+
return Number(final);
|
|
32
|
+
}
|
|
33
|
+
getGasPriceBump(blockBaseFee) {
|
|
34
|
+
if (this.gasCost.gasBumpEstimate === 0n ||
|
|
35
|
+
this.gasCost.gasPriceEstimate === 0n ||
|
|
36
|
+
blockBaseFee === 0n) {
|
|
37
|
+
return 0n;
|
|
38
|
+
}
|
|
39
|
+
return ((this.gasCost.gasBumpEstimate * blockBaseFee) /
|
|
40
|
+
this.gasCost.gasPriceEstimate /
|
|
41
|
+
AuctionCalculator.GAS_PRICE_BASE);
|
|
42
|
+
}
|
|
43
|
+
getAuctionBump(time) {
|
|
27
44
|
let cumulativeTime = BigInt(this.startTime);
|
|
28
45
|
const lastTime = BigInt(this.duration) + cumulativeTime;
|
|
29
46
|
const startBump = BigInt(this.initialRateBump);
|
|
30
47
|
const currentTime = BigInt(time);
|
|
31
48
|
if (currentTime <= cumulativeTime) {
|
|
32
|
-
return
|
|
49
|
+
return this.initialRateBump;
|
|
33
50
|
}
|
|
34
51
|
else if (currentTime >= lastTime) {
|
|
35
|
-
return
|
|
52
|
+
return 0n;
|
|
36
53
|
}
|
|
37
54
|
let prevCoefficient = startBump;
|
|
38
55
|
let prevCumulativeTime = cumulativeTime;
|
|
@@ -41,15 +58,14 @@ class AuctionCalculator {
|
|
|
41
58
|
cumulativeTime = cumulativeTime + BigInt(delay);
|
|
42
59
|
const coefficientBN = BigInt(coefficient);
|
|
43
60
|
if (cumulativeTime >= currentTime) {
|
|
44
|
-
|
|
45
|
-
return Number(rate);
|
|
61
|
+
return (0, calc_1.linearInterpolation)(prevCumulativeTime, cumulativeTime, prevCoefficient, coefficientBN, currentTime);
|
|
46
62
|
}
|
|
47
63
|
prevCumulativeTime = cumulativeTime;
|
|
48
64
|
prevCoefficient = coefficientBN;
|
|
49
65
|
}
|
|
50
|
-
|
|
51
|
-
return Number(rate);
|
|
66
|
+
return (0, calc_1.linearInterpolation)(prevCumulativeTime, lastTime, prevCoefficient, 0n, currentTime);
|
|
52
67
|
}
|
|
53
68
|
}
|
|
54
69
|
exports.AuctionCalculator = AuctionCalculator;
|
|
70
|
+
AuctionCalculator.GAS_PRICE_BASE = 1000000n;
|
|
55
71
|
//# sourceMappingURL=auction-calculator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auction-calculator.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.ts"],"names":[],"mappings":";;;AAAA,iCAA0C;AAC1C,2CAAiD;
|
|
1
|
+
{"version":3,"file":"auction-calculator.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
4
5
|
const auction_calculator_1 = require("./auction-calculator");
|
|
5
6
|
const fusion_order_1 = require("../fusion-order");
|
|
6
7
|
const sdk_1 = require("../sdk");
|
|
@@ -23,10 +24,35 @@ describe('Auction Calculator', () => {
|
|
|
23
24
|
points: []
|
|
24
25
|
});
|
|
25
26
|
const calculator = auction_calculator_1.AuctionCalculator.fromAuctionData(postInteraction, auctionDetails);
|
|
26
|
-
const rate = calculator.calcRateBump(
|
|
27
|
-
const auctionTakingAmount = calculator.calcAuctionTakingAmount(
|
|
27
|
+
const rate = calculator.calcRateBump(auctionStartTime + 60n);
|
|
28
|
+
const auctionTakingAmount = calculator.calcAuctionTakingAmount(1420000000n, rate);
|
|
28
29
|
expect(rate).toBe(25000);
|
|
29
|
-
expect(auctionTakingAmount).toBe(
|
|
30
|
+
expect(auctionTakingAmount).toBe(1423692355n);
|
|
31
|
+
});
|
|
32
|
+
describe('Gas bump', () => {
|
|
33
|
+
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
34
|
+
const duration = 1800n;
|
|
35
|
+
const takingAmount = (0, ethers_1.parseEther)('1');
|
|
36
|
+
const calculator = new auction_calculator_1.AuctionCalculator(now - 60n, duration, 1000000n, [{ delay: 60, coefficient: 500000 }], 0n, {
|
|
37
|
+
gasBumpEstimate: 10000n,
|
|
38
|
+
gasPriceEstimate: 1000n
|
|
39
|
+
});
|
|
40
|
+
it('0 gwei = no gas fee', () => {
|
|
41
|
+
const bump = calculator.calcRateBump(now);
|
|
42
|
+
expect(calculator.calcAuctionTakingAmount(takingAmount, bump)).toBe((0, ethers_1.parseEther)('1.05'));
|
|
43
|
+
});
|
|
44
|
+
it('0.1 gwei = 0.01% gas fee', () => {
|
|
45
|
+
const bump = calculator.calcRateBump(now, (0, ethers_1.parseUnits)('1', 8));
|
|
46
|
+
expect(calculator.calcAuctionTakingAmount(takingAmount, bump)).toBe((0, ethers_1.parseEther)('1.0499'));
|
|
47
|
+
});
|
|
48
|
+
it('15 gwei = 1.5% gas fee', () => {
|
|
49
|
+
const bump = calculator.calcRateBump(now, (0, ethers_1.parseUnits)('15', 9));
|
|
50
|
+
expect(calculator.calcAuctionTakingAmount(takingAmount, bump)).toBe((0, ethers_1.parseEther)('1.035'));
|
|
51
|
+
});
|
|
52
|
+
it('100 gwei = 10% gas fee, should be capped with takingAmount', () => {
|
|
53
|
+
const bump = calculator.calcRateBump(now, (0, ethers_1.parseUnits)('100', 9));
|
|
54
|
+
expect(calculator.calcAuctionTakingAmount(takingAmount, bump)).toBe((0, ethers_1.parseEther)('1'));
|
|
55
|
+
});
|
|
30
56
|
});
|
|
31
57
|
});
|
|
32
58
|
//# sourceMappingURL=auction-calculator.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auction-calculator.spec.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.spec.ts"],"names":[],"mappings":";;AAAA,4DAA8C;AAC9C,6DAAsD;AACtD,kDAA6E;AAC7E,gCAAuC;AAEvC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,MAAM,gBAAgB,GAAG,WAAW,CAAA;QAEpC,MAAM,eAAe,GAAG,4CAA6B,CAAC,GAAG,CAAC;YACtD,aAAa,EAAE;gBACX,KAAK,EAAE,IAAA,sBAAgB,EAAC,CAAC,CAAC;gBAC1B,QAAQ,EAAE,yBAAO,CAAC,UAAU,CAAC,EAAE,CAAC;aACnC;YACD,OAAO,EAAE,EAAE;YACX,gBAAgB;YAChB,SAAS,EAAE,EAAE;SAChB,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,IAAI,6BAAc,CAAC;YACtC,SAAS,EAAE,gBAAgB;YAC3B,eAAe,EAAE,KAAK;YACtB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,EAAE;SACb,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,sCAAiB,CAAC,eAAe,CAChD,eAAe,EACf,cAAc,CACjB,CAAA;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"auction-calculator.spec.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,13 @@ export declare class FusionOrder {
|
|
|
9
9
|
private inner;
|
|
10
10
|
private constructor();
|
|
11
11
|
get extension(): Extension;
|
|
12
|
+
get maker(): Address;
|
|
13
|
+
get takerAsset(): Address;
|
|
14
|
+
get makerAsset(): Address;
|
|
15
|
+
get takingAmount(): bigint;
|
|
16
|
+
get makingAmount(): bigint;
|
|
17
|
+
get receiver(): Address;
|
|
18
|
+
get deadline(): bigint;
|
|
12
19
|
static new(settlementExtension: Address, orderInfo: OrderInfoData, details: {
|
|
13
20
|
auction: AuctionDetails;
|
|
14
21
|
fees?: {
|
|
@@ -30,4 +37,5 @@ export declare class FusionOrder {
|
|
|
30
37
|
getOrderHash(domain?: import("@1inch/limit-order-sdk").EIP712DomainType): string;
|
|
31
38
|
getTypedData(domain?: import("@1inch/limit-order-sdk").EIP712DomainType): EIP712TypedData;
|
|
32
39
|
getCalculator(): AuctionCalculator;
|
|
40
|
+
calcTakingAmount(makingAmount: bigint, time: bigint, blockBaseFee?: bigint): bigint;
|
|
33
41
|
}
|
|
@@ -12,6 +12,7 @@ const settlement_post_interaction_data_1 = require("./settlement-post-interactio
|
|
|
12
12
|
const auction_calculator_1 = require("../auction-calculator");
|
|
13
13
|
const utils_1 = require("../utils");
|
|
14
14
|
const constants_1 = require("../constants");
|
|
15
|
+
const amounts_1 = require("../utils/amounts");
|
|
15
16
|
class FusionOrder {
|
|
16
17
|
constructor(extensionContract, orderInfo, auctionDetails, postInteractionData, extra = FusionOrder.defaultExtra) {
|
|
17
18
|
const { allowPartialFills, allowMultipleFills, unwrapWETH, enablePermit2, orderExpirationDelay, nonce, permit } = {
|
|
@@ -51,6 +52,27 @@ class FusionOrder {
|
|
|
51
52
|
get extension() {
|
|
52
53
|
return this.inner.extension;
|
|
53
54
|
}
|
|
55
|
+
get maker() {
|
|
56
|
+
return this.inner.maker;
|
|
57
|
+
}
|
|
58
|
+
get takerAsset() {
|
|
59
|
+
return this.inner.takerAsset;
|
|
60
|
+
}
|
|
61
|
+
get makerAsset() {
|
|
62
|
+
return this.inner.makerAsset;
|
|
63
|
+
}
|
|
64
|
+
get takingAmount() {
|
|
65
|
+
return this.inner.takingAmount;
|
|
66
|
+
}
|
|
67
|
+
get makingAmount() {
|
|
68
|
+
return this.inner.makingAmount;
|
|
69
|
+
}
|
|
70
|
+
get receiver() {
|
|
71
|
+
return this.inner.receiver;
|
|
72
|
+
}
|
|
73
|
+
get deadline() {
|
|
74
|
+
return this.inner.makerTraits.expiration() || 0n;
|
|
75
|
+
}
|
|
54
76
|
static new(settlementExtension, orderInfo, details, extra = FusionOrder.defaultExtra) {
|
|
55
77
|
return new FusionOrder(settlementExtension, orderInfo, details.auction, settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
56
78
|
bankFee: details.fees?.bankFee || 0n,
|
|
@@ -102,6 +124,12 @@ class FusionOrder {
|
|
|
102
124
|
getCalculator() {
|
|
103
125
|
return auction_calculator_1.AuctionCalculator.fromAuctionData(this.fusionExtension.postInteractionData, this.fusionExtension.details);
|
|
104
126
|
}
|
|
127
|
+
calcTakingAmount(makingAmount, time, blockBaseFee = 0n) {
|
|
128
|
+
const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
|
|
129
|
+
const calculator = this.getCalculator();
|
|
130
|
+
const bump = calculator.calcRateBump(time, blockBaseFee);
|
|
131
|
+
return calculator.calcAuctionTakingAmount(takingAmount, bump);
|
|
132
|
+
}
|
|
105
133
|
}
|
|
106
134
|
exports.FusionOrder = FusionOrder;
|
|
107
135
|
FusionOrder.defaultExtra = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusion-order.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-order.ts"],"names":[],"mappings":";;;;;;AAAA,4DAS+B;AAC/B,oDAA2B;AAC3B,yDAAkD;AAClD,uDAAgD;AAChD,yFAI2C;AAC3C,8DAAuD;AACvD,oCAA8B;AAC9B,4CAA+B;
|
|
1
|
+
{"version":3,"file":"fusion-order.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-order.ts"],"names":[],"mappings":"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"}
|