@1inch/fusion-sdk 1.0.1-rc.9 → 2.0.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/dist/api/orders/order-api.spec.js +230 -144
- package/dist/api/orders/order-api.spec.js.map +1 -1
- package/dist/api/orders/orders.api.d.ts +1 -0
- package/dist/api/orders/orders.api.js +4 -3
- package/dist/api/orders/orders.api.js.map +1 -1
- package/dist/api/orders/types.d.ts +8 -0
- package/dist/api/orders/types.js.map +1 -1
- package/dist/api/quoter/quote/order-params.d.ts +1 -0
- package/dist/api/quoter/quote/order-params.js +1 -0
- package/dist/api/quoter/quote/order-params.js.map +1 -1
- package/dist/api/quoter/quote/quote.d.ts +1 -1
- package/dist/api/quoter/quote/quote.js +17 -10
- package/dist/api/quoter/quote/quote.js.map +1 -1
- package/dist/api/quoter/quote/types.d.ts +1 -0
- package/dist/api/quoter/quoter.api.d.ts +1 -0
- package/dist/api/quoter/quoter.api.js +3 -2
- package/dist/api/quoter/quoter.api.js.map +1 -1
- package/dist/api/quoter/quoter.api.spec.js +21 -6
- package/dist/api/quoter/quoter.api.spec.js.map +1 -1
- package/dist/api/quoter/quoter.request.d.ts +1 -0
- package/dist/api/quoter/quoter.request.js +3 -1
- package/dist/api/quoter/quoter.request.js.map +1 -1
- package/dist/api/quoter/types.d.ts +4 -3
- package/dist/api/quoter/types.js.map +1 -1
- package/dist/api/relayer/relayer.api.d.ts +1 -0
- package/dist/api/relayer/relayer.api.js +3 -2
- package/dist/api/relayer/relayer.api.js.map +1 -1
- package/dist/api/relayer/relayer.api.spec.js +8 -5
- package/dist/api/relayer/relayer.api.spec.js.map +1 -1
- package/dist/api/relayer/relayer.request.d.ts +1 -0
- package/dist/api/relayer/relayer.request.js +3 -1
- package/dist/api/relayer/relayer.request.js.map +1 -1
- package/dist/api/relayer/types.d.ts +1 -0
- package/dist/auction-calculator/auction-calculator.d.ts +20 -11
- package/dist/auction-calculator/auction-calculator.js +54 -25
- package/dist/auction-calculator/auction-calculator.js.map +1 -1
- package/dist/auction-calculator/index.d.ts +0 -1
- package/dist/auction-calculator/index.js +0 -1
- package/dist/auction-calculator/index.js.map +1 -1
- package/dist/fusion-order/auction-details/auction-details.d.ts +2 -0
- package/dist/fusion-order/auction-details/auction-details.js +3 -0
- package/dist/fusion-order/auction-details/auction-details.js.map +1 -1
- package/dist/fusion-order/auction-details/auction-details.spec.js +3 -3
- package/dist/fusion-order/auction-details/auction-details.spec.js.map +1 -1
- package/dist/fusion-order/fusion-extension.d.ts +12 -4
- package/dist/fusion-order/fusion-extension.js +37 -9
- package/dist/fusion-order/fusion-extension.js.map +1 -1
- package/dist/fusion-order/fusion-extension.spec.d.ts +1 -0
- package/dist/fusion-order/fusion-extension.spec.js +75 -0
- package/dist/fusion-order/fusion-extension.spec.js.map +1 -0
- package/dist/fusion-order/fusion-order.d.ts +42 -3
- package/dist/fusion-order/fusion-order.js +93 -21
- package/dist/fusion-order/fusion-order.js.map +1 -1
- package/dist/fusion-order/fusion-order.spec.js +79 -1
- package/dist/fusion-order/fusion-order.spec.js.map +1 -1
- package/dist/fusion-order/index.d.ts +1 -0
- package/dist/fusion-order/index.js +1 -0
- package/dist/fusion-order/index.js.map +1 -1
- package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.d.ts +6 -2
- package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js +39 -8
- package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js.map +1 -1
- package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.spec.js +34 -2
- package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.spec.js.map +1 -1
- package/dist/fusion-order/settlement-post-interaction-data/types.d.ts +1 -0
- package/dist/fusion-order/source-track.d.ts +1 -0
- package/dist/fusion-order/source-track.js +29 -0
- package/dist/fusion-order/source-track.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/sdk/sdk.js +16 -14
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/types.d.ts +5 -0
- package/dist/sdk/utils.js +5 -2
- package/dist/sdk/utils.js.map +1 -1
- package/dist/utils/amounts.d.ts +1 -1
- package/dist/utils/amounts.js +3 -3
- package/dist/utils/amounts.js.map +1 -1
- package/dist/ws-api/types.d.ts +1 -0
- package/dist/ws-api/ws-api.d.ts +1 -0
- package/dist/ws-api/ws-api.js +2 -1
- package/dist/ws-api/ws-api.js.map +1 -1
- package/dist/ws-api/ws.spec.js +113 -106
- package/dist/ws-api/ws.spec.js.map +1 -1
- package/package.json +22 -22
- package/dist/auction-calculator/calc.d.ts +0 -9
- package/dist/auction-calculator/calc.js +0 -22
- package/dist/auction-calculator/calc.js.map +0 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AuctionCalculator = void 0;
|
|
4
|
-
const calc_1 = require("./calc");
|
|
5
4
|
const constants_1 = require("./constants");
|
|
6
5
|
const sdk_1 = require("../sdk");
|
|
7
6
|
class AuctionCalculator {
|
|
8
|
-
constructor(startTime, duration, initialRateBump, points, takerFeeRatio, gasCost = {
|
|
7
|
+
constructor(startTime, duration, initialRateBump, points, takerFeeRatio, gasCost = {
|
|
8
|
+
gasBumpEstimate: 0n,
|
|
9
|
+
gasPriceEstimate: 0n
|
|
10
|
+
}) {
|
|
9
11
|
this.startTime = startTime;
|
|
10
12
|
this.duration = duration;
|
|
11
13
|
this.initialRateBump = initialRateBump;
|
|
@@ -13,19 +15,48 @@ class AuctionCalculator {
|
|
|
13
15
|
this.takerFeeRatio = takerFeeRatio;
|
|
14
16
|
this.gasCost = gasCost;
|
|
15
17
|
}
|
|
18
|
+
get finishTime() {
|
|
19
|
+
return this.startTime + this.duration;
|
|
20
|
+
}
|
|
16
21
|
static fromAuctionData(data, details) {
|
|
17
|
-
return new AuctionCalculator(
|
|
22
|
+
return new AuctionCalculator(details.startTime, details.duration, details.initialRateBump, details.points, data.integratorFee?.ratio || 0n, details.gasCost);
|
|
23
|
+
}
|
|
24
|
+
static calcInitialRateBump(startAmount, endAmount) {
|
|
25
|
+
const bump = (constants_1.RATE_BUMP_DENOMINATOR * startAmount) / endAmount -
|
|
26
|
+
constants_1.RATE_BUMP_DENOMINATOR;
|
|
27
|
+
return Number(bump);
|
|
18
28
|
}
|
|
19
29
|
/**
|
|
20
|
-
*
|
|
30
|
+
* Important!: method implementation is different from contract implementation
|
|
31
|
+
* Because of that, sdk amount can be less than contract amount by 1 wad
|
|
32
|
+
*
|
|
33
|
+
* @see https://github.com/1inch/limit-order-settlement/blob/2eef6f86bf0142024f9a8bf054a0256b41d8362a/contracts/extensions/BaseExtension.sol#L66
|
|
21
34
|
*/
|
|
22
|
-
calcAuctionTakingAmount(takingAmount, rate) {
|
|
35
|
+
static calcAuctionTakingAmount(takingAmount, rate, takerFeeRatio) {
|
|
23
36
|
const auctionTakingAmount = (BigInt(takingAmount) * (BigInt(rate) + constants_1.RATE_BUMP_DENOMINATOR)) /
|
|
24
37
|
constants_1.RATE_BUMP_DENOMINATOR;
|
|
25
|
-
if (
|
|
38
|
+
if (takerFeeRatio === 0n) {
|
|
26
39
|
return auctionTakingAmount;
|
|
27
40
|
}
|
|
28
|
-
return (0, sdk_1.addRatioToAmount)(auctionTakingAmount,
|
|
41
|
+
return (0, sdk_1.addRatioToAmount)(auctionTakingAmount, takerFeeRatio);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Encode estimation `baseFee` as `gasPriceEstimate` for `AuctionGasCostInfo`
|
|
45
|
+
*/
|
|
46
|
+
static baseFeeToGasPriceEstimate(baseFee) {
|
|
47
|
+
return baseFee / AuctionCalculator.GAS_PRICE_BASE;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Calculates `gasBumpEstimate` for `AuctionGasCostInfo`
|
|
51
|
+
*
|
|
52
|
+
* @param endTakingAmount min return in destToken
|
|
53
|
+
* @param gasCostInToToken gas cost in destToken
|
|
54
|
+
*/
|
|
55
|
+
static calcGasBumpEstimate(endTakingAmount, gasCostInToToken) {
|
|
56
|
+
return (gasCostInToToken * constants_1.RATE_BUMP_DENOMINATOR) / endTakingAmount;
|
|
57
|
+
}
|
|
58
|
+
calcAuctionTakingAmount(takingAmount, rate) {
|
|
59
|
+
return AuctionCalculator.calcAuctionTakingAmount(takingAmount, rate, this.takerFeeRatio);
|
|
29
60
|
}
|
|
30
61
|
/**
|
|
31
62
|
* @see https://github.com/1inch/limit-order-settlement/blob/273defdf7b0f1867299dcbc306f32f035579310f/contracts/extensions/BaseExtension.sol#L121
|
|
@@ -48,30 +79,28 @@ class AuctionCalculator {
|
|
|
48
79
|
this.gasCost.gasPriceEstimate /
|
|
49
80
|
AuctionCalculator.GAS_PRICE_BASE);
|
|
50
81
|
}
|
|
51
|
-
getAuctionBump(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const startBump = BigInt(this.initialRateBump);
|
|
55
|
-
const currentTime = BigInt(time);
|
|
56
|
-
if (currentTime <= cumulativeTime) {
|
|
82
|
+
getAuctionBump(blockTime) {
|
|
83
|
+
const auctionFinishTime = this.finishTime;
|
|
84
|
+
if (blockTime <= this.startTime) {
|
|
57
85
|
return this.initialRateBump;
|
|
58
86
|
}
|
|
59
|
-
else if (
|
|
87
|
+
else if (blockTime >= auctionFinishTime) {
|
|
60
88
|
return 0n;
|
|
61
89
|
}
|
|
62
|
-
let
|
|
63
|
-
let
|
|
64
|
-
for (
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
90
|
+
let currentPointTime = this.startTime;
|
|
91
|
+
let currentRateBump = this.initialRateBump;
|
|
92
|
+
for (const { coefficient: nextRateBump, delay } of this.points) {
|
|
93
|
+
const nextPointTime = BigInt(delay) + currentPointTime;
|
|
94
|
+
if (blockTime <= nextPointTime) {
|
|
95
|
+
return (((blockTime - currentPointTime) * BigInt(nextRateBump) +
|
|
96
|
+
(nextPointTime - blockTime) * currentRateBump) /
|
|
97
|
+
(nextPointTime - currentPointTime));
|
|
70
98
|
}
|
|
71
|
-
|
|
72
|
-
|
|
99
|
+
currentPointTime = nextPointTime;
|
|
100
|
+
currentRateBump = BigInt(nextRateBump);
|
|
73
101
|
}
|
|
74
|
-
return (
|
|
102
|
+
return (((auctionFinishTime - blockTime) * currentRateBump) /
|
|
103
|
+
(auctionFinishTime - currentPointTime));
|
|
75
104
|
}
|
|
76
105
|
}
|
|
77
106
|
exports.AuctionCalculator = AuctionCalculator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auction-calculator.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"auction-calculator.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./auction-calculator"), exports);
|
|
18
|
-
__exportStar(require("./calc"), exports);
|
|
19
18
|
__exportStar(require("./constants"), exports);
|
|
20
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auction-calculator/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auction-calculator/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,8CAA2B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Extension } from '@1inch/limit-order-sdk';
|
|
1
2
|
import { AuctionGasCostInfo, AuctionPoint } from './types';
|
|
2
3
|
export declare class AuctionDetails {
|
|
3
4
|
readonly startTime: bigint;
|
|
@@ -40,6 +41,7 @@ export declare class AuctionDetails {
|
|
|
40
41
|
* @see AuctionDetails.encode
|
|
41
42
|
*/
|
|
42
43
|
static decode(data: string): AuctionDetails;
|
|
44
|
+
static fromExtension(extension: Extension): AuctionDetails;
|
|
43
45
|
/**
|
|
44
46
|
* Serialize auction data to bytes
|
|
45
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auction-details.js","sourceRoot":"","sources":["../../../src/fusion-order/auction-details/auction-details.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA6B;AAC7B,kDAA2C;
|
|
1
|
+
{"version":3,"file":"auction-details.js","sourceRoot":"","sources":["../../../src/fusion-order/auction-details/auction-details.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auction-details.spec.js","sourceRoot":"","sources":["../../../src/fusion-order/auction-details/auction-details.spec.ts"],"names":[],"mappings":";;AAAA,uDAAgD;AAEhD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACpC,MAAM,OAAO,GAAG,IAAI,gCAAc,CAAC;YAC/B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,WAAW;YACtB,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE;gBACJ;oBACI,KAAK,EAAE,EAAE;oBACT,WAAW,EAAE,KAAK;iBACrB;
|
|
1
|
+
{"version":3,"file":"auction-details.spec.js","sourceRoot":"","sources":["../../../src/fusion-order/auction-details/auction-details.spec.ts"],"names":[],"mappings":";;AAAA,uDAAgD;AAEhD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACpC,MAAM,OAAO,GAAG,IAAI,gCAAc,CAAC;YAC/B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,WAAW;YACtB,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE;gBACJ;oBACI,KAAK,EAAE,EAAE;oBACT,WAAW,EAAE,KAAK;iBACrB;gBACD;oBACI,KAAK,EAAE,EAAE;oBACT,WAAW,EAAE,IAAI;iBACpB;aACJ;SACJ,CAAC,CAAA;QAEF,MAAM,CAAC,gCAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import { Address, Extension,
|
|
1
|
+
import { Address, Extension, Interaction } from '@1inch/limit-order-sdk';
|
|
2
2
|
import { AuctionDetails } from './auction-details';
|
|
3
3
|
import { SettlementPostInteractionData } from './settlement-post-interaction-data';
|
|
4
|
-
export declare class FusionExtension
|
|
4
|
+
export declare class FusionExtension {
|
|
5
5
|
readonly address: Address;
|
|
6
|
-
readonly
|
|
6
|
+
readonly auctionDetails: AuctionDetails;
|
|
7
7
|
readonly postInteractionData: SettlementPostInteractionData;
|
|
8
|
-
|
|
8
|
+
readonly makerPermit?: Interaction | undefined;
|
|
9
|
+
private readonly builder;
|
|
10
|
+
constructor(address: Address, auctionDetails: AuctionDetails, postInteractionData: SettlementPostInteractionData, makerPermit?: Interaction | undefined);
|
|
11
|
+
/**
|
|
12
|
+
* Create `FusionExtension` from bytes
|
|
13
|
+
*
|
|
14
|
+
* @param bytes 0x prefixed bytes
|
|
15
|
+
*/
|
|
16
|
+
static decode(bytes: string): FusionExtension;
|
|
9
17
|
build(): Extension;
|
|
10
18
|
}
|
|
@@ -1,20 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.FusionExtension = void 0;
|
|
4
7
|
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
const auction_details_1 = require("./auction-details");
|
|
10
|
+
const settlement_post_interaction_data_1 = require("./settlement-post-interaction-data");
|
|
11
|
+
class FusionExtension {
|
|
12
|
+
constructor(address, auctionDetails, postInteractionData, makerPermit) {
|
|
8
13
|
this.address = address;
|
|
9
|
-
this.
|
|
14
|
+
this.auctionDetails = auctionDetails;
|
|
10
15
|
this.postInteractionData = postInteractionData;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const detailsBytes = this.
|
|
14
|
-
this.
|
|
16
|
+
this.makerPermit = makerPermit;
|
|
17
|
+
this.builder = new limit_order_sdk_1.ExtensionBuilder();
|
|
18
|
+
const detailsBytes = this.auctionDetails.encode();
|
|
19
|
+
this.builder
|
|
20
|
+
.withMakingAmountData(this.address, detailsBytes)
|
|
15
21
|
.withTakingAmountData(this.address, detailsBytes)
|
|
16
22
|
.withPostInteraction(new limit_order_sdk_1.Interaction(this.address, this.postInteractionData.encode()));
|
|
17
|
-
|
|
23
|
+
if (makerPermit) {
|
|
24
|
+
this.builder.withMakerPermit(makerPermit.target, makerPermit.data);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create `FusionExtension` from bytes
|
|
29
|
+
*
|
|
30
|
+
* @param bytes 0x prefixed bytes
|
|
31
|
+
*/
|
|
32
|
+
static decode(bytes) {
|
|
33
|
+
const extension = limit_order_sdk_1.Extension.decode(bytes);
|
|
34
|
+
const settlementContract = limit_order_sdk_1.Address.fromFirstBytes(extension.makingAmountData);
|
|
35
|
+
(0, assert_1.default)(limit_order_sdk_1.Address.fromFirstBytes(extension.takingAmountData).equal(settlementContract) &&
|
|
36
|
+
limit_order_sdk_1.Address.fromFirstBytes(extension.postInteraction).equal(settlementContract), 'Invalid extension, all calls should be to the same address');
|
|
37
|
+
const auctionDetails = auction_details_1.AuctionDetails.fromExtension(extension);
|
|
38
|
+
const postInteractionData = settlement_post_interaction_data_1.SettlementPostInteractionData.fromExtension(extension);
|
|
39
|
+
const permit = extension.hasMakerPermit
|
|
40
|
+
? limit_order_sdk_1.Interaction.decode(extension.makerPermit)
|
|
41
|
+
: undefined;
|
|
42
|
+
return new FusionExtension(settlementContract, auctionDetails, postInteractionData, permit);
|
|
43
|
+
}
|
|
44
|
+
build() {
|
|
45
|
+
return this.builder.build();
|
|
18
46
|
}
|
|
19
47
|
}
|
|
20
48
|
exports.FusionExtension = FusionExtension;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":";;;;;;AAAA,4DAK+B;AAC/B,oDAA2B;AAE3B,uDAAgD;AAChD,yFAAgF;AAEhF,MAAa,eAAe;IAGxB,YACoB,OAAgB,EAChB,cAA8B,EAC9B,mBAAkD,EAClD,WAAyB;QAHzB,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,wBAAmB,GAAnB,mBAAmB,CAA+B;QAClD,gBAAW,GAAX,WAAW,CAAc;QAN5B,YAAO,GAAG,IAAI,kCAAgB,EAAE,CAAA;QAQ7C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAA;QAEjD,IAAI,CAAC,OAAO;aACP,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;aAChD,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;aAChD,mBAAmB,CAChB,IAAI,6BAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CACnE,CAAA;QAEL,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;SACrE;IACL,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,KAAa;QAC9B,MAAM,SAAS,GAAG,2BAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEzC,MAAM,kBAAkB,GAAG,yBAAO,CAAC,cAAc,CAC7C,SAAS,CAAC,gBAAgB,CAC7B,CAAA;QAED,IAAA,gBAAM,EACF,yBAAO,CAAC,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK,CACpD,kBAAkB,CACrB;YACG,yBAAO,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CACnD,kBAAkB,CACrB,EACL,4DAA4D,CAC/D,CAAA;QAED,MAAM,cAAc,GAAG,gCAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE9D,MAAM,mBAAmB,GACrB,gEAA6B,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE1D,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc;YACnC,CAAC,CAAC,6BAAW,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAA;QAEf,OAAO,IAAI,eAAe,CACtB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,MAAM,CACT,CAAA;IACL,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC;CACJ;AAjED,0CAiEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
4
|
+
const fusion_order_1 = require("./fusion-order");
|
|
5
|
+
const auction_details_1 = require("./auction-details");
|
|
6
|
+
const fusion_extension_1 = require("./fusion-extension");
|
|
7
|
+
describe('FusionExtension', () => {
|
|
8
|
+
it('should decode', () => {
|
|
9
|
+
const extensionContract = new limit_order_sdk_1.Address('0x8273f37417da37c4a6c3995e82cf442f87a25d9c');
|
|
10
|
+
const order = fusion_order_1.FusionOrder.new(extensionContract, {
|
|
11
|
+
makerAsset: new limit_order_sdk_1.Address('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
|
|
12
|
+
takerAsset: new limit_order_sdk_1.Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
|
|
13
|
+
makingAmount: 1000000000000000000n,
|
|
14
|
+
takingAmount: 1420000000n,
|
|
15
|
+
maker: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
16
|
+
salt: 10n
|
|
17
|
+
}, {
|
|
18
|
+
auction: new auction_details_1.AuctionDetails({
|
|
19
|
+
duration: 180n,
|
|
20
|
+
startTime: 1673548149n,
|
|
21
|
+
initialRateBump: 50000,
|
|
22
|
+
points: [
|
|
23
|
+
{
|
|
24
|
+
coefficient: 20000,
|
|
25
|
+
delay: 12
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}),
|
|
29
|
+
whitelist: [
|
|
30
|
+
{
|
|
31
|
+
address: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
32
|
+
allowFrom: 0n
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
resolvingStartTime: 1673548139n
|
|
36
|
+
});
|
|
37
|
+
const fusionExtension = fusion_extension_1.FusionExtension.decode(order.extension.encode());
|
|
38
|
+
expect(fusionExtension).toStrictEqual(order.fusionExtension);
|
|
39
|
+
});
|
|
40
|
+
it('should decode with permit', () => {
|
|
41
|
+
const extensionContract = new limit_order_sdk_1.Address('0x8273f37417da37c4a6c3995e82cf442f87a25d9c');
|
|
42
|
+
const order = fusion_order_1.FusionOrder.new(extensionContract, {
|
|
43
|
+
makerAsset: new limit_order_sdk_1.Address('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
|
|
44
|
+
takerAsset: new limit_order_sdk_1.Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
|
|
45
|
+
makingAmount: 1000000000000000000n,
|
|
46
|
+
takingAmount: 1420000000n,
|
|
47
|
+
maker: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
48
|
+
salt: 10n
|
|
49
|
+
}, {
|
|
50
|
+
auction: new auction_details_1.AuctionDetails({
|
|
51
|
+
duration: 180n,
|
|
52
|
+
startTime: 1673548149n,
|
|
53
|
+
initialRateBump: 50000,
|
|
54
|
+
points: [
|
|
55
|
+
{
|
|
56
|
+
coefficient: 20000,
|
|
57
|
+
delay: 12
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}),
|
|
61
|
+
whitelist: [
|
|
62
|
+
{
|
|
63
|
+
address: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
64
|
+
allowFrom: 0n
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
resolvingStartTime: 1673548139n
|
|
68
|
+
}, {
|
|
69
|
+
permit: '0xdeadbeef'
|
|
70
|
+
});
|
|
71
|
+
const fusionExtension = fusion_extension_1.FusionExtension.decode(order.extension.encode());
|
|
72
|
+
expect(fusionExtension).toStrictEqual(order.fusionExtension);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=fusion-extension.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fusion-extension.spec.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-extension.spec.ts"],"names":[],"mappings":";;AAAA,4DAA8C;AAC9C,iDAA0C;AAC1C,uDAAgD;AAChD,yDAAkD;AAElD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACrB,MAAM,iBAAiB,GAAG,IAAI,yBAAO,CACjC,4CAA4C,CAC/C,CAAA;QAED,MAAM,KAAK,GAAG,0BAAW,CAAC,GAAG,CACzB,iBAAiB,EACjB;YACI,UAAU,EAAE,IAAI,yBAAO,CACnB,4CAA4C,CAC/C;YACD,UAAU,EAAE,IAAI,yBAAO,CACnB,4CAA4C,CAC/C;YACD,YAAY,EAAE,oBAAoB;YAClC,YAAY,EAAE,WAAW;YACzB,KAAK,EAAE,IAAI,yBAAO,CACd,4CAA4C,CAC/C;YACD,IAAI,EAAE,GAAG;SACZ,EACD;YACI,OAAO,EAAE,IAAI,gCAAc,CAAC;gBACxB,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,WAAW;gBACtB,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE;oBACJ;wBACI,WAAW,EAAE,KAAK;wBAClB,KAAK,EAAE,EAAE;qBACZ;iBACJ;aACJ,CAAC;YACF,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,IAAI,yBAAO,CAChB,4CAA4C,CAC/C;oBACD,SAAS,EAAE,EAAE;iBAChB;aACJ;YACD,kBAAkB,EAAE,WAAW;SAClC,CACJ,CAAA;QACD,MAAM,eAAe,GAAG,kCAAe,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QACxE,MAAM,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,iBAAiB,GAAG,IAAI,yBAAO,CACjC,4CAA4C,CAC/C,CAAA;QAED,MAAM,KAAK,GAAG,0BAAW,CAAC,GAAG,CACzB,iBAAiB,EACjB;YACI,UAAU,EAAE,IAAI,yBAAO,CACnB,4CAA4C,CAC/C;YACD,UAAU,EAAE,IAAI,yBAAO,CACnB,4CAA4C,CAC/C;YACD,YAAY,EAAE,oBAAoB;YAClC,YAAY,EAAE,WAAW;YACzB,KAAK,EAAE,IAAI,yBAAO,CACd,4CAA4C,CAC/C;YACD,IAAI,EAAE,GAAG;SACZ,EACD;YACI,OAAO,EAAE,IAAI,gCAAc,CAAC;gBACxB,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,WAAW;gBACtB,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE;oBACJ;wBACI,WAAW,EAAE,KAAK;wBAClB,KAAK,EAAE,EAAE;qBACZ;iBACJ;aACJ,CAAC;YACF,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,IAAI,yBAAO,CAChB,4CAA4C,CAC/C;oBACD,SAAS,EAAE,EAAE;iBAChB;aACJ;YACD,kBAAkB,EAAE,WAAW;SAClC,EACD;YACI,MAAM,EAAE,YAAY;SACvB,CACJ,CAAA;QACD,MAAM,eAAe,GAAG,kCAAe,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QACxE,MAAM,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -4,6 +4,12 @@ import { AuctionDetails } from './auction-details';
|
|
|
4
4
|
import { AuctionWhitelistItem, IntegratorFee } from './settlement-post-interaction-data';
|
|
5
5
|
import { AuctionCalculator } from '../auction-calculator';
|
|
6
6
|
export declare class FusionOrder {
|
|
7
|
+
/**
|
|
8
|
+
* Fusion extension address
|
|
9
|
+
* @see https://github.com/1inch/limit-order-settlement
|
|
10
|
+
*/
|
|
11
|
+
readonly settlementExtensionContract: Address;
|
|
12
|
+
private static _ORDER_FEE_BASE_POINTS;
|
|
7
13
|
private static defaultExtra;
|
|
8
14
|
readonly fusionExtension: FusionExtension;
|
|
9
15
|
private inner;
|
|
@@ -19,6 +25,18 @@ export declare class FusionOrder {
|
|
|
19
25
|
* Timestamp in sec
|
|
20
26
|
*/
|
|
21
27
|
get deadline(): bigint;
|
|
28
|
+
/**
|
|
29
|
+
* Timestamp in sec
|
|
30
|
+
*/
|
|
31
|
+
get auctionStartTime(): bigint;
|
|
32
|
+
/**
|
|
33
|
+
* Timestamp in sec
|
|
34
|
+
*/
|
|
35
|
+
get auctionEndTime(): bigint;
|
|
36
|
+
get isBitInvalidatorMode(): boolean;
|
|
37
|
+
get partialFillAllowed(): boolean;
|
|
38
|
+
get multipleFillsAllowed(): boolean;
|
|
39
|
+
get nonce(): bigint;
|
|
22
40
|
static new(
|
|
23
41
|
/**
|
|
24
42
|
* Fusion extension address
|
|
@@ -38,7 +56,8 @@ export declare class FusionOrder {
|
|
|
38
56
|
}, extra?: {
|
|
39
57
|
unwrapWETH?: boolean;
|
|
40
58
|
/**
|
|
41
|
-
* Required if `allowPartialFills` is false
|
|
59
|
+
* Required if `allowPartialFills` or `allowMultipleFills` is false
|
|
60
|
+
* Max size is 40bit
|
|
42
61
|
*/
|
|
43
62
|
nonce?: bigint;
|
|
44
63
|
permit?: string;
|
|
@@ -56,6 +75,7 @@ export declare class FusionOrder {
|
|
|
56
75
|
*/
|
|
57
76
|
orderExpirationDelay?: bigint;
|
|
58
77
|
enablePermit2?: boolean;
|
|
78
|
+
source?: string;
|
|
59
79
|
}): FusionOrder;
|
|
60
80
|
/**
|
|
61
81
|
* Create FusionOrder from order data and extension
|
|
@@ -63,8 +83,8 @@ export declare class FusionOrder {
|
|
|
63
83
|
*/
|
|
64
84
|
static fromDataAndExtension(order: LimitOrderV4Struct, extension: Extension): FusionOrder;
|
|
65
85
|
build(): LimitOrderV4Struct;
|
|
66
|
-
getOrderHash(
|
|
67
|
-
getTypedData(
|
|
86
|
+
getOrderHash(chainId: number): string;
|
|
87
|
+
getTypedData(chainId: number): EIP712TypedData;
|
|
68
88
|
getCalculator(): AuctionCalculator;
|
|
69
89
|
/**
|
|
70
90
|
* Calculates required taking amount for passed `makingAmount` at block time `time`
|
|
@@ -81,4 +101,23 @@ export declare class FusionOrder {
|
|
|
81
101
|
* @param executionTime timestamp in sec at which order planning to execute
|
|
82
102
|
*/
|
|
83
103
|
canExecuteAt(executor: Address, executionTime: bigint): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Check is order expired at a given time
|
|
106
|
+
*
|
|
107
|
+
* @param time timestamp in seconds
|
|
108
|
+
*/
|
|
109
|
+
isExpiredAt(time: bigint): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Returns how much fee will be credited from a resolver deposit account
|
|
112
|
+
* Token of fee set in Settlement extension constructor
|
|
113
|
+
* Actual deployments can be found at https://github.com/1inch/limit-order-settlement/tree/master/deployments
|
|
114
|
+
*
|
|
115
|
+
* @param filledMakingAmount which resolver fills
|
|
116
|
+
* @see https://github.com/1inch/limit-order-settlement/blob/0e3cae3653092ebb4ea5d2a338c87a54351ad883/contracts/extensions/ResolverFeeExtension.sol#L29
|
|
117
|
+
*/
|
|
118
|
+
getResolverFee(filledMakingAmount: bigint): bigint;
|
|
119
|
+
/**
|
|
120
|
+
* Check if `wallet` can fill order before other
|
|
121
|
+
*/
|
|
122
|
+
isExclusiveResolver(wallet: Address): boolean;
|
|
84
123
|
}
|