@1inch/fusion-sdk 1.0.1-rc.3 → 1.0.1-rc.31
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 +6 -5
- 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/quoter/quote/quote.d.ts +5 -1
- package/dist/api/quoter/quote/quote.js +13 -6
- package/dist/api/quoter/quote/quote.js.map +1 -1
- package/dist/api/quoter/quote/types.d.ts +4 -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/types.d.ts +3 -3
- 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 +23 -4
- package/dist/auction-calculator/auction-calculator.js +40 -6
- package/dist/auction-calculator/auction-calculator.js.map +1 -1
- package/dist/auction-calculator/auction-calculator.spec.js +7 -5
- package/dist/auction-calculator/auction-calculator.spec.js.map +1 -1
- package/dist/auction-calculator/calc.d.ts +8 -0
- package/dist/auction-calculator/calc.js +8 -0
- package/dist/auction-calculator/calc.js.map +1 -1
- package/dist/auction-calculator/constants.js +1 -1
- package/dist/auction-calculator/constants.js.map +1 -1
- package/dist/connector/blockchain/private-key-provider.connector.js +2 -0
- package/dist/connector/blockchain/private-key-provider.connector.js.map +1 -1
- package/dist/connector/ws/websocket-client.connector.js +2 -0
- package/dist/connector/ws/websocket-client.connector.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/fusion-order/auction-details/auction-details.d.ts +29 -0
- package/dist/fusion-order/auction-details/auction-details.js +21 -0
- package/dist/fusion-order/auction-details/auction-details.js.map +1 -1
- package/dist/fusion-order/auction-details/types.d.ts +12 -0
- package/dist/fusion-order/fusion-extension.d.ts +2 -2
- package/dist/fusion-order/fusion-extension.js +3 -3
- package/dist/fusion-order/fusion-extension.js.map +1 -1
- package/dist/fusion-order/fusion-order.d.ts +90 -3
- package/dist/fusion-order/fusion-order.js +144 -17
- package/dist/fusion-order/fusion-order.js.map +1 -1
- package/dist/fusion-order/fusion-order.spec.js +35 -5
- package/dist/fusion-order/fusion-order.spec.js.map +1 -1
- package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.d.ts +38 -1
- package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js +125 -46
- 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 +95 -8
- 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 +12 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/sdk/sdk.js +6 -7
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/types.d.ts +12 -0
- package/dist/sdk/utils.js +5 -2
- package/dist/sdk/utils.js.map +1 -1
- package/dist/utils/amounts.d.ts +17 -1
- package/dist/utils/amounts.js +19 -3
- package/dist/utils/amounts.js.map +1 -1
- package/dist/utils/time.d.ts +1 -0
- package/dist/utils/time.js +8 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/validations.d.ts +4 -0
- package/dist/validations.js +4 -0
- package/dist/validations.js.map +1 -1
- 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 +9 -8
- package/dist/ws-api/ws.spec.js.map +1 -1
- package/package.json +31 -24
- package/dist/limit-order-contract/index.d.ts +0 -1
- package/dist/limit-order-contract/index.js +0 -6
- package/dist/limit-order-contract/index.js.map +0 -1
|
@@ -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 = {
|
|
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;
|
|
@@ -14,16 +17,47 @@ class AuctionCalculator {
|
|
|
14
17
|
this.gasCost = gasCost;
|
|
15
18
|
}
|
|
16
19
|
static fromAuctionData(data, details) {
|
|
17
|
-
return new AuctionCalculator(
|
|
20
|
+
return new AuctionCalculator(details.startTime, details.duration, details.initialRateBump, details.points, data.integratorFee?.ratio || 0n, details.gasCost);
|
|
18
21
|
}
|
|
19
|
-
|
|
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
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @see https://github.com/1inch/limit-order-settlement/blob/1b6757eecb2574953b543821db6f7bbff5afee48/contracts/extensions/BaseExtension.sol#L56
|
|
29
|
+
*/
|
|
30
|
+
static calcAuctionTakingAmount(takingAmount, rate, takerFeeRatio) {
|
|
20
31
|
const auctionTakingAmount = (BigInt(takingAmount) * (BigInt(rate) + constants_1.RATE_BUMP_DENOMINATOR)) /
|
|
21
32
|
constants_1.RATE_BUMP_DENOMINATOR;
|
|
22
|
-
if (
|
|
33
|
+
if (takerFeeRatio === 0n) {
|
|
23
34
|
return auctionTakingAmount;
|
|
24
35
|
}
|
|
25
|
-
return (0, sdk_1.addRatioToAmount)(auctionTakingAmount,
|
|
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);
|
|
26
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* @see https://github.com/1inch/limit-order-settlement/blob/273defdf7b0f1867299dcbc306f32f035579310f/contracts/extensions/BaseExtension.sol#L121
|
|
58
|
+
* @param time auction timestamp in seconds
|
|
59
|
+
* @param blockBaseFee blockBaseFee in Wei, if passed, then rate will be calculated as if order executed in block with `blockBaseFee`
|
|
60
|
+
*/
|
|
27
61
|
calcRateBump(time, blockBaseFee = 0n) {
|
|
28
62
|
const gasBump = this.getGasPriceBump(blockBaseFee);
|
|
29
63
|
const auctionBump = this.getAuctionBump(time);
|
|
@@ -67,5 +101,5 @@ class AuctionCalculator {
|
|
|
67
101
|
}
|
|
68
102
|
}
|
|
69
103
|
exports.AuctionCalculator = AuctionCalculator;
|
|
70
|
-
AuctionCalculator.GAS_PRICE_BASE = 1000000n;
|
|
104
|
+
AuctionCalculator.GAS_PRICE_BASE = 1000000n; // 1000 means 1 Gwei
|
|
71
105
|
//# 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;AAMjD,gCAAuC;
|
|
1
|
+
{"version":3,"file":"auction-calculator.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,10 @@ describe('Auction Calculator', () => {
|
|
|
14
14
|
receiver: limit_order_sdk_1.Address.fromBigInt(1n)
|
|
15
15
|
},
|
|
16
16
|
bankFee: 0n,
|
|
17
|
-
auctionStartTime,
|
|
18
|
-
whitelist: [
|
|
17
|
+
resolvingStartTime: auctionStartTime,
|
|
18
|
+
whitelist: [
|
|
19
|
+
{ address: limit_order_sdk_1.Address.ZERO_ADDRESS, allowFrom: auctionStartTime }
|
|
20
|
+
]
|
|
19
21
|
});
|
|
20
22
|
const auctionDetails = new fusion_order_1.AuctionDetails({
|
|
21
23
|
startTime: auctionStartTime,
|
|
@@ -27,15 +29,15 @@ describe('Auction Calculator', () => {
|
|
|
27
29
|
const rate = calculator.calcRateBump(auctionStartTime + 60n);
|
|
28
30
|
const auctionTakingAmount = calculator.calcAuctionTakingAmount(1420000000n, rate);
|
|
29
31
|
expect(rate).toBe(25000);
|
|
30
|
-
expect(auctionTakingAmount).toBe(1423692355n);
|
|
32
|
+
expect(auctionTakingAmount).toBe(1423692355n); // 1423550000 from rate + 142355 (1bps) integrator fee
|
|
31
33
|
});
|
|
32
34
|
describe('Gas bump', () => {
|
|
33
35
|
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
34
|
-
const duration = 1800n;
|
|
36
|
+
const duration = 1800n; // 30m
|
|
35
37
|
const takingAmount = (0, ethers_1.parseEther)('1');
|
|
36
38
|
const calculator = new auction_calculator_1.AuctionCalculator(now - 60n, duration, 1000000n, [{ delay: 60, coefficient: 500000 }], 0n, {
|
|
37
39
|
gasBumpEstimate: 10000n,
|
|
38
|
-
gasPriceEstimate: 1000n
|
|
40
|
+
gasPriceEstimate: 1000n // 1gwei
|
|
39
41
|
});
|
|
40
42
|
it('0 gwei = no gas fee', () => {
|
|
41
43
|
const bump = calculator.calcRateBump(now);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auction-calculator.spec.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.spec.ts"],"names":[],"mappings":";;AAAA,4DAA8C;AAC9C,mCAA6C;AAC7C,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;
|
|
1
|
+
{"version":3,"file":"auction-calculator.spec.js","sourceRoot":"","sources":["../../src/auction-calculator/auction-calculator.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* v2(t-t1) + v1(t2-t)
|
|
4
|
+
* v = ---------------------
|
|
5
|
+
* t2-t1
|
|
6
|
+
*
|
|
7
|
+
* @see https://github.com/1inch/limit-order-settlement/blob/3c7cf9eacbaf7a60624d7a6f069c59d809f2204a/contracts/libraries/OrderSuffix.sol#L94
|
|
8
|
+
*/
|
|
1
9
|
export declare function linearInterpolation(t1: bigint, t2: bigint, v1: bigint, v2: bigint, t: bigint): bigint;
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.linearInterpolation = void 0;
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* v2(t-t1) + v1(t2-t)
|
|
7
|
+
* v = ---------------------
|
|
8
|
+
* t2-t1
|
|
9
|
+
*
|
|
10
|
+
* @see https://github.com/1inch/limit-order-settlement/blob/3c7cf9eacbaf7a60624d7a6f069c59d809f2204a/contracts/libraries/OrderSuffix.sol#L94
|
|
11
|
+
*/
|
|
4
12
|
function linearInterpolation(t1, t2, v1, v2, t) {
|
|
5
13
|
const timePassedFromNow = t - t1;
|
|
6
14
|
const timeLeft = t2 - t;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calc.js","sourceRoot":"","sources":["../../src/auction-calculator/calc.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"calc.js","sourceRoot":"","sources":["../../src/auction-calculator/calc.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAC/B,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,CAAS;IAET,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,CAAA;IAChC,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAA;IAEvB,MAAM,kBAAkB,GAAG,EAAE,GAAG,iBAAiB,CAAA;IACjD,MAAM,sBAAsB,GAAG,EAAE,GAAG,QAAQ,CAAA;IAE5C,MAAM,WAAW,GAAG,kBAAkB,GAAG,sBAAsB,CAAA;IAE/D,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,CAAA;IAE9B,OAAO,WAAW,GAAG,cAAc,CAAA;AACvC,CAAC;AAlBD,kDAkBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/auction-calculator/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,SAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/auction-calculator/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,SAAW,CAAA,CAAC,OAAO"}
|
|
@@ -11,6 +11,8 @@ class PrivateKeyProviderConnector {
|
|
|
11
11
|
signTypedData(_walletAddress, typedData) {
|
|
12
12
|
const result = (0, eth_sig_util_1.signTypedData)({
|
|
13
13
|
privateKey: this.privateKeyBuffer,
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
15
|
+
// @ts-ignore
|
|
14
16
|
data: typedData,
|
|
15
17
|
version: eth_sig_util_1.SignTypedDataVersion.V4
|
|
16
18
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-key-provider.connector.js","sourceRoot":"","sources":["../../../src/connector/blockchain/private-key-provider.connector.ts"],"names":[],"mappings":";;;AAAA,yDAA0E;AAK1E,MAAa,2BAA2B;IAKpC,YACa,UAAkB,EACR,YAAsB;QADhC,eAAU,GAAV,UAAU,CAAQ;QACR,iBAAY,GAAZ,YAAY,CAAU;QAEzC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5E,CAAC;IAED,aAAa,CACT,cAAsB,EACtB,SAA0B;QAE1B,MAAM,MAAM,GAAG,IAAA,4BAAa,EAAC;YACzB,UAAU,EAAE,IAAI,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"private-key-provider.connector.js","sourceRoot":"","sources":["../../../src/connector/blockchain/private-key-provider.connector.ts"],"names":[],"mappings":";;;AAAA,yDAA0E;AAK1E,MAAa,2BAA2B;IAKpC,YACa,UAAkB,EACR,YAAsB;QADhC,eAAU,GAAV,UAAU,CAAQ;QACR,iBAAY,GAAZ,YAAY,CAAU;QAEzC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5E,CAAC;IAED,aAAa,CACT,cAAsB,EACtB,SAA0B;QAE1B,MAAM,MAAM,GAAG,IAAA,4BAAa,EAAC;YACzB,UAAU,EAAE,IAAI,CAAC,gBAAgB;YACjC,6DAA6D;YAC7D,aAAa;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,mCAAoB,CAAC,EAAE;SACnC,CAAC,CAAA;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,CAAC,eAAuB,EAAE,QAAgB;QAC7C,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B,EAAE,EAAE,eAAe;YACnB,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAA;IACN,CAAC;CACJ;AAjCD,kEAiCC"}
|
|
@@ -27,7 +27,9 @@ class WebsocketClient {
|
|
|
27
27
|
if (this.initialized) {
|
|
28
28
|
throw new Error('WebSocket is already initialized');
|
|
29
29
|
}
|
|
30
|
+
// @ts-expect-error hack for readonly property
|
|
30
31
|
this.initialized = true;
|
|
32
|
+
// @ts-expect-error hack for readonly property
|
|
31
33
|
this.ws = new ws_1.default(this.url, this.authKey
|
|
32
34
|
? {
|
|
33
35
|
headers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-client.connector.js","sourceRoot":"","sources":["../../../src/connector/ws/websocket-client.connector.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA0B;AAS1B,MAAa,eAAe;IASxB,YAAY,MAAmB;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAE7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAA;QAEzC,IAAI,CAAC,QAAQ,EAAE;YACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,EAAE,GAAG,IAAI,YAAS,CACnB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO;gBACR,CAAC,CAAC;oBACI,OAAO,EAAE;wBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;qBAC1C;iBACJ;gBACH,CAAC,CAAC,SAAS,CAClB,CAAA;YAED,OAAM;SACT;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;IAC5B,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACtD;
|
|
1
|
+
{"version":3,"file":"websocket-client.connector.js","sourceRoot":"","sources":["../../../src/connector/ws/websocket-client.connector.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare enum NetworkEnum {
|
|
|
12
12
|
}
|
|
13
13
|
export declare const ONE_INCH_LIMIT_ORDER_V4 = "0x111111125421ca6dc452d289314280a0f8842a65";
|
|
14
14
|
export declare const UINT_160_MAX: bigint;
|
|
15
|
+
export declare const UINT_16_MAX: bigint;
|
|
15
16
|
export declare const UINT_80_MAX: bigint;
|
|
16
17
|
export declare const UINT_40_MAX: bigint;
|
|
17
18
|
export declare const UINT_32_MAX: bigint;
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UINT_256_MAX = exports.UINT_24_MAX = exports.UINT_32_MAX = exports.UINT_40_MAX = exports.UINT_80_MAX = exports.UINT_160_MAX = exports.ONE_INCH_LIMIT_ORDER_V4 = exports.NetworkEnum = exports.ZX = void 0;
|
|
3
|
+
exports.UINT_256_MAX = exports.UINT_24_MAX = exports.UINT_32_MAX = exports.UINT_40_MAX = exports.UINT_80_MAX = exports.UINT_16_MAX = exports.UINT_160_MAX = exports.ONE_INCH_LIMIT_ORDER_V4 = exports.NetworkEnum = exports.ZX = void 0;
|
|
4
4
|
exports.ZX = '0x';
|
|
5
5
|
var NetworkEnum;
|
|
6
6
|
(function (NetworkEnum) {
|
|
@@ -16,6 +16,7 @@ var NetworkEnum;
|
|
|
16
16
|
})(NetworkEnum = exports.NetworkEnum || (exports.NetworkEnum = {}));
|
|
17
17
|
exports.ONE_INCH_LIMIT_ORDER_V4 = '0x111111125421ca6dc452d289314280a0f8842a65';
|
|
18
18
|
exports.UINT_160_MAX = (1n << 160n) - 1n;
|
|
19
|
+
exports.UINT_16_MAX = (1n << 16n) - 1n;
|
|
19
20
|
exports.UINT_80_MAX = (1n << 80n) - 1n;
|
|
20
21
|
exports.UINT_40_MAX = (1n << 40n) - 1n;
|
|
21
22
|
exports.UINT_32_MAX = (1n << 32n) - 1n;
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,EAAE,GAAG,IAAI,CAAA;AAEtB,IAAY,WAUX;AAVD,WAAY,WAAW;IACnB,qDAAY,CAAA;IACZ,qDAAa,CAAA;IACb,oDAAY,CAAA;IACZ,yDAAgB,CAAA;IAChB,2DAAiB,CAAA;IACjB,sDAAa,CAAA;IACb,mDAAY,CAAA;IACZ,mDAAY,CAAA;IACZ,wDAAe,CAAA;AACnB,CAAC,EAVW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAUtB;AAEY,QAAA,uBAAuB,GAChC,4CAA4C,CAAA;AAEnC,QAAA,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AAChC,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,EAAE,GAAG,IAAI,CAAA;AAEtB,IAAY,WAUX;AAVD,WAAY,WAAW;IACnB,qDAAY,CAAA;IACZ,qDAAa,CAAA;IACb,oDAAY,CAAA;IACZ,yDAAgB,CAAA;IAChB,2DAAiB,CAAA;IACjB,sDAAa,CAAA;IACb,mDAAY,CAAA;IACZ,mDAAY,CAAA;IACZ,wDAAe,CAAA;AACnB,CAAC,EAVW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAUtB;AAEY,QAAA,uBAAuB,GAChC,4CAA4C,CAAA;AAEnC,QAAA,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AAChC,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC9B,QAAA,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA"}
|
|
@@ -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;
|
|
@@ -5,7 +6,13 @@ export declare class AuctionDetails {
|
|
|
5
6
|
readonly initialRateBump: bigint;
|
|
6
7
|
readonly points: AuctionPoint[];
|
|
7
8
|
readonly gasCost: {
|
|
9
|
+
/**
|
|
10
|
+
* Rate bump to cover gas price. 10_000_000 means 100%
|
|
11
|
+
*/
|
|
8
12
|
gasBumpEstimate: bigint;
|
|
13
|
+
/**
|
|
14
|
+
* Gas price at estimation time. 1000 means 1 Gwei
|
|
15
|
+
*/
|
|
9
16
|
gasPriceEstimate: bigint;
|
|
10
17
|
};
|
|
11
18
|
constructor(auction: {
|
|
@@ -13,8 +20,30 @@ export declare class AuctionDetails {
|
|
|
13
20
|
initialRateBump: number;
|
|
14
21
|
duration: bigint;
|
|
15
22
|
points: AuctionPoint[];
|
|
23
|
+
/**
|
|
24
|
+
* Allows to scale estimate gas costs to actual gas costs
|
|
25
|
+
*/
|
|
16
26
|
gasCost?: AuctionGasCostInfo;
|
|
17
27
|
});
|
|
28
|
+
/**
|
|
29
|
+
* Construct `AuctionDetails` from bytes
|
|
30
|
+
*
|
|
31
|
+
* @param data bytes with 0x prefix in next format:
|
|
32
|
+
* - uint24 gasBumpEstimate
|
|
33
|
+
* - uint32 gasPriceEstimate
|
|
34
|
+
* - uint32 startTime
|
|
35
|
+
* - uint24 duration
|
|
36
|
+
* - uint24 initialRateBump
|
|
37
|
+
* - [uint24 rate, uint16 delay] * N points
|
|
38
|
+
*
|
|
39
|
+
* All data is tight packed
|
|
40
|
+
*
|
|
41
|
+
* @see AuctionDetails.encode
|
|
42
|
+
*/
|
|
18
43
|
static decode(data: string): AuctionDetails;
|
|
44
|
+
static fromExtension(extension: Extension): AuctionDetails;
|
|
45
|
+
/**
|
|
46
|
+
* Serialize auction data to bytes
|
|
47
|
+
*/
|
|
19
48
|
encode(): string;
|
|
20
49
|
}
|
|
@@ -26,6 +26,21 @@ class AuctionDetails {
|
|
|
26
26
|
(0, assert_1.default)(this.duration <= constants_1.UINT_24_MAX);
|
|
27
27
|
(0, assert_1.default)(this.initialRateBump <= constants_1.UINT_24_MAX);
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Construct `AuctionDetails` from bytes
|
|
31
|
+
*
|
|
32
|
+
* @param data bytes with 0x prefix in next format:
|
|
33
|
+
* - uint24 gasBumpEstimate
|
|
34
|
+
* - uint32 gasPriceEstimate
|
|
35
|
+
* - uint32 startTime
|
|
36
|
+
* - uint24 duration
|
|
37
|
+
* - uint24 initialRateBump
|
|
38
|
+
* - [uint24 rate, uint16 delay] * N points
|
|
39
|
+
*
|
|
40
|
+
* All data is tight packed
|
|
41
|
+
*
|
|
42
|
+
* @see AuctionDetails.encode
|
|
43
|
+
*/
|
|
29
44
|
static decode(data) {
|
|
30
45
|
(0, assert_1.default)((0, validations_1.isHexBytes)(data), 'Invalid auction details data');
|
|
31
46
|
const iter = byte_utils_1.BytesIter.BigInt(data);
|
|
@@ -52,6 +67,12 @@ class AuctionDetails {
|
|
|
52
67
|
}
|
|
53
68
|
});
|
|
54
69
|
}
|
|
70
|
+
static fromExtension(extension) {
|
|
71
|
+
return AuctionDetails.decode((0, utils_1.add0x)(extension.makingAmountData.slice(42)));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Serialize auction data to bytes
|
|
75
|
+
*/
|
|
55
76
|
encode() {
|
|
56
77
|
let details = ethers_1.ethers.solidityPacked(['uint24', 'uint32', 'uint32', 'uint24', 'uint24'], [
|
|
57
78
|
this.gasCost.gasBumpEstimate,
|
|
@@ -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,8 +1,20 @@
|
|
|
1
1
|
export type AuctionPoint = {
|
|
2
|
+
/**
|
|
3
|
+
* point in time of this point relatively to previous point
|
|
4
|
+
*/
|
|
2
5
|
delay: number;
|
|
6
|
+
/**
|
|
7
|
+
* coefficient rate bump from the end of an auction
|
|
8
|
+
*/
|
|
3
9
|
coefficient: number;
|
|
4
10
|
};
|
|
5
11
|
export type AuctionGasCostInfo = {
|
|
12
|
+
/**
|
|
13
|
+
* Rate bump to cover gas price. 10_000_000 means 100%
|
|
14
|
+
*/
|
|
6
15
|
gasBumpEstimate: bigint;
|
|
16
|
+
/**
|
|
17
|
+
* Gas price at estimation time. 1000 means 1 Gwei
|
|
18
|
+
*/
|
|
7
19
|
gasPriceEstimate: bigint;
|
|
8
20
|
};
|
|
@@ -3,8 +3,8 @@ import { AuctionDetails } from './auction-details';
|
|
|
3
3
|
import { SettlementPostInteractionData } from './settlement-post-interaction-data';
|
|
4
4
|
export declare class FusionExtension extends ExtensionBuilder {
|
|
5
5
|
readonly address: Address;
|
|
6
|
-
readonly
|
|
6
|
+
readonly auctionDetails: AuctionDetails;
|
|
7
7
|
readonly postInteractionData: SettlementPostInteractionData;
|
|
8
|
-
constructor(address: Address,
|
|
8
|
+
constructor(address: Address, auctionDetails: AuctionDetails, postInteractionData: SettlementPostInteractionData);
|
|
9
9
|
build(): Extension;
|
|
10
10
|
}
|
|
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FusionExtension = void 0;
|
|
4
4
|
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
5
5
|
class FusionExtension extends limit_order_sdk_1.ExtensionBuilder {
|
|
6
|
-
constructor(address,
|
|
6
|
+
constructor(address, auctionDetails, postInteractionData) {
|
|
7
7
|
super();
|
|
8
8
|
this.address = address;
|
|
9
|
-
this.
|
|
9
|
+
this.auctionDetails = auctionDetails;
|
|
10
10
|
this.postInteractionData = postInteractionData;
|
|
11
11
|
}
|
|
12
12
|
build() {
|
|
13
|
-
const detailsBytes = this.
|
|
13
|
+
const detailsBytes = this.auctionDetails.encode();
|
|
14
14
|
this.withMakingAmountData(this.address, detailsBytes)
|
|
15
15
|
.withTakingAmountData(this.address, detailsBytes)
|
|
16
16
|
.withPostInteraction(new limit_order_sdk_1.Interaction(this.address, this.postInteractionData.encode()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":";;;AAAA,4DAK+B;AAI/B,MAAa,eAAgB,SAAQ,kCAAgB;IACjD,YACoB,OAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":";;;AAAA,4DAK+B;AAI/B,MAAa,eAAgB,SAAQ,kCAAgB;IACjD,YACoB,OAAgB,EAChB,cAA8B,EAC9B,mBAAkD;QAElE,KAAK,EAAE,CAAA;QAJS,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,wBAAmB,GAAnB,mBAAmB,CAA+B;IAGtE,CAAC;IAEM,KAAK;QACR,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAA;QAEjD,IAAI,CAAC,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,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;CACJ;AApBD,0CAoBC"}
|
|
@@ -4,30 +4,117 @@ 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;
|
|
10
16
|
private constructor();
|
|
11
17
|
get extension(): Extension;
|
|
12
|
-
|
|
18
|
+
get maker(): Address;
|
|
19
|
+
get takerAsset(): Address;
|
|
20
|
+
get makerAsset(): Address;
|
|
21
|
+
get takingAmount(): bigint;
|
|
22
|
+
get makingAmount(): bigint;
|
|
23
|
+
get receiver(): Address;
|
|
24
|
+
/**
|
|
25
|
+
* Timestamp in sec
|
|
26
|
+
*/
|
|
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 partialFillAllowed(): boolean;
|
|
37
|
+
get multipleFillsAllowed(): boolean;
|
|
38
|
+
static new(
|
|
39
|
+
/**
|
|
40
|
+
* Fusion extension address
|
|
41
|
+
* @see https://github.com/1inch/limit-order-settlement
|
|
42
|
+
*/
|
|
43
|
+
settlementExtension: Address, orderInfo: OrderInfoData, details: {
|
|
13
44
|
auction: AuctionDetails;
|
|
14
45
|
fees?: {
|
|
15
46
|
integratorFee?: IntegratorFee;
|
|
16
47
|
bankFee?: bigint;
|
|
17
48
|
};
|
|
18
49
|
whitelist: AuctionWhitelistItem[];
|
|
50
|
+
/**
|
|
51
|
+
* Time from which order can be executed
|
|
52
|
+
*/
|
|
53
|
+
resolvingStartTime?: bigint;
|
|
19
54
|
}, extra?: {
|
|
20
55
|
unwrapWETH?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Required if `allowPartialFills` or `allowMultipleFills` is false
|
|
58
|
+
* Max size is 40bit
|
|
59
|
+
*/
|
|
21
60
|
nonce?: bigint;
|
|
22
61
|
permit?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Default is true
|
|
64
|
+
*/
|
|
23
65
|
allowPartialFills?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Default is true
|
|
68
|
+
*/
|
|
24
69
|
allowMultipleFills?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Order will expire in `orderExpirationDelay` after auction ends
|
|
72
|
+
* Default 12s
|
|
73
|
+
*/
|
|
25
74
|
orderExpirationDelay?: bigint;
|
|
26
75
|
enablePermit2?: boolean;
|
|
27
76
|
}): FusionOrder;
|
|
77
|
+
/**
|
|
78
|
+
* Create FusionOrder from order data and extension
|
|
79
|
+
*
|
|
80
|
+
*/
|
|
28
81
|
static fromDataAndExtension(order: LimitOrderV4Struct, extension: Extension): FusionOrder;
|
|
29
82
|
build(): LimitOrderV4Struct;
|
|
30
|
-
getOrderHash(
|
|
31
|
-
getTypedData(
|
|
83
|
+
getOrderHash(chainId: number): string;
|
|
84
|
+
getTypedData(chainId: number): EIP712TypedData;
|
|
32
85
|
getCalculator(): AuctionCalculator;
|
|
86
|
+
/**
|
|
87
|
+
* Calculates required taking amount for passed `makingAmount` at block time `time`
|
|
88
|
+
*
|
|
89
|
+
* @param makingAmount maker swap amount
|
|
90
|
+
* @param time execution time in sec
|
|
91
|
+
* @param blockBaseFee block fee in wei.
|
|
92
|
+
* */
|
|
93
|
+
calcTakingAmount(makingAmount: bigint, time: bigint, blockBaseFee?: bigint): bigint;
|
|
94
|
+
/**
|
|
95
|
+
* Check whether address allowed to execute order at the given time
|
|
96
|
+
*
|
|
97
|
+
* @param executor address of executor
|
|
98
|
+
* @param executionTime timestamp in sec at which order planning to execute
|
|
99
|
+
*/
|
|
100
|
+
canExecuteAt(executor: Address, executionTime: bigint): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Check is order expired at a given time
|
|
103
|
+
*
|
|
104
|
+
* @param time timestamp in seconds
|
|
105
|
+
*/
|
|
106
|
+
isExpiredAt(time: bigint): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Returns how much fee will be credited from a resolver deposit account
|
|
109
|
+
* Token of fee set in Settlement extension constructor
|
|
110
|
+
* Actual deployments can be found at https://github.com/1inch/limit-order-settlement/tree/master/deployments
|
|
111
|
+
*
|
|
112
|
+
* @param filledMakingAmount which resolver fills
|
|
113
|
+
* @see https://github.com/1inch/limit-order-settlement/blob/0e3cae3653092ebb4ea5d2a338c87a54351ad883/contracts/extensions/ResolverFeeExtension.sol#L29
|
|
114
|
+
*/
|
|
115
|
+
getResolverFee(filledMakingAmount: bigint): bigint;
|
|
116
|
+
/**
|
|
117
|
+
* Check if `wallet` can fill order before other
|
|
118
|
+
*/
|
|
119
|
+
isExclusiveResolver(wallet: Address): boolean;
|
|
33
120
|
}
|