@1inch/fusion-sdk 1.0.1-rc.3 → 1.0.1-rc.30
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 +1 -0
- package/dist/api/orders/order-api.spec.js.map +1 -1
- package/dist/api/quoter/quote/quote.d.ts +5 -1
- package/dist/api/quoter/quote/quote.js +3 -3
- 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.spec.js +18 -3
- package/dist/api/quoter/quoter.api.spec.js.map +1 -1
- package/dist/api/quoter/types.d.ts +3 -3
- 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 +89 -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 +3 -6
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/types.d.ts +11 -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.spec.js +1 -0
- 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
package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js
CHANGED
|
@@ -4,102 +4,181 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SettlementPostInteractionData = void 0;
|
|
7
|
-
const ethers_1 = require("ethers");
|
|
8
7
|
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
9
8
|
const byte_utils_1 = require("@1inch/byte-utils");
|
|
10
9
|
const assert_1 = __importDefault(require("assert"));
|
|
11
10
|
const validations_1 = require("../../validations");
|
|
12
11
|
const utils_1 = require("../../utils");
|
|
12
|
+
const constants_1 = require("../../constants");
|
|
13
13
|
class SettlementPostInteractionData {
|
|
14
14
|
constructor(data) {
|
|
15
15
|
this.whitelist = data.whitelist;
|
|
16
16
|
this.integratorFee = data?.integratorFee;
|
|
17
|
-
this.bankFee = data.bankFee;
|
|
18
|
-
this.
|
|
17
|
+
this.bankFee = data.bankFee || 0n;
|
|
18
|
+
this.resolvingStartTime = data.resolvingStartTime;
|
|
19
|
+
this.customReceiver = data.customReceiver;
|
|
20
|
+
if (this.integratorFee?.ratio) {
|
|
21
|
+
(0, assert_1.default)(!this.integratorFee.receiver.isZero(), 'Fee receiver can not be zero when fee set');
|
|
22
|
+
}
|
|
19
23
|
}
|
|
20
24
|
static new(data) {
|
|
25
|
+
(0, assert_1.default)(data.whitelist.length, 'Whitelist can not be empty');
|
|
26
|
+
// transform timestamps to cumulative delays
|
|
27
|
+
let sumDelay = 0n;
|
|
28
|
+
const whitelist = data.whitelist
|
|
29
|
+
.map((d) => ({
|
|
30
|
+
addressHalf: d.address.toString().slice(-20),
|
|
31
|
+
allowFrom: d.allowFrom < data.resolvingStartTime
|
|
32
|
+
? data.resolvingStartTime
|
|
33
|
+
: d.allowFrom
|
|
34
|
+
}))
|
|
35
|
+
.sort((a, b) => Number(a.allowFrom - b.allowFrom)) // ASC
|
|
36
|
+
.map((val) => {
|
|
37
|
+
const delay = val.allowFrom - data.resolvingStartTime - sumDelay;
|
|
38
|
+
sumDelay += delay;
|
|
39
|
+
(0, assert_1.default)(delay < constants_1.UINT_16_MAX, 'Too big diff between timestamps');
|
|
40
|
+
return {
|
|
41
|
+
delay,
|
|
42
|
+
addressHalf: val.addressHalf
|
|
43
|
+
};
|
|
44
|
+
});
|
|
21
45
|
return new SettlementPostInteractionData({
|
|
22
46
|
...data,
|
|
23
|
-
whitelist
|
|
24
|
-
addressHalf: d.address.toString().slice(-20),
|
|
25
|
-
delay: d.delay
|
|
26
|
-
}))
|
|
47
|
+
whitelist
|
|
27
48
|
});
|
|
28
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Construct `SettlementPostInteractionData` from bytes
|
|
52
|
+
* @param data bytes with 0x prefix in next format:
|
|
53
|
+
* - [uint32 feeBank] only when first bit of `bitMask` enabled
|
|
54
|
+
* - [uint16 integratorFeeRation, uint160 integratorFeeReceiver, [uint160 customReceiver]] only when second bit of `bitMask` enabled
|
|
55
|
+
* - uint32 auctionStartTime
|
|
56
|
+
* - (bytes10 last10bytesOfAddress, uint16 auctionDelay) * N whitelist info
|
|
57
|
+
* - uint8 bitMask:
|
|
58
|
+
* 0b0000_0001 - fee bank mask
|
|
59
|
+
* 0b0000_0010 - integrator fee mask
|
|
60
|
+
* 0b0000_0100 - is custom receiver present (only used when integrator fee enabled)
|
|
61
|
+
* 0b1111_1000 - resolvers count mask
|
|
62
|
+
*
|
|
63
|
+
* All data is tight packed
|
|
64
|
+
* @see SettlementPostInteractionData.encode
|
|
65
|
+
*/
|
|
29
66
|
static decode(data) {
|
|
30
67
|
(0, assert_1.default)((0, validations_1.isHexBytes)(data), 'Post interaction data must be valid bytes string');
|
|
31
68
|
const iter = byte_utils_1.BytesIter.BigInt(data);
|
|
32
|
-
const
|
|
69
|
+
const flags = new byte_utils_1.BN(iter.nextByte(byte_utils_1.BytesIter.SIDE.Back));
|
|
33
70
|
let bankFee = 0n;
|
|
34
71
|
let integratorFee;
|
|
35
|
-
|
|
72
|
+
let customReceiver;
|
|
73
|
+
// fee bank presented
|
|
74
|
+
if (flags.getBit(0n)) {
|
|
36
75
|
bankFee = iter.nextUint32();
|
|
37
76
|
}
|
|
38
|
-
|
|
77
|
+
// integrator fee presented
|
|
78
|
+
if (flags.getBit(1n)) {
|
|
79
|
+
const integratorFeeRatio = iter.nextUint16();
|
|
39
80
|
const integratorAddress = iter.nextUint160();
|
|
40
|
-
const integratorFeeRatio = iter.nextUint32();
|
|
41
81
|
integratorFee = {
|
|
42
82
|
ratio: integratorFeeRatio,
|
|
43
83
|
receiver: limit_order_sdk_1.Address.fromBigInt(integratorAddress)
|
|
44
84
|
};
|
|
85
|
+
// custom receiver presented
|
|
86
|
+
if (flags.getBit(2n)) {
|
|
87
|
+
customReceiver = limit_order_sdk_1.Address.fromBigInt(iter.nextUint160());
|
|
88
|
+
}
|
|
45
89
|
}
|
|
46
|
-
const
|
|
90
|
+
const resolvingStartTime = iter.nextUint32();
|
|
47
91
|
const whitelist = [];
|
|
48
92
|
while (!iter.isEmpty()) {
|
|
49
93
|
const addressHalf = iter
|
|
50
94
|
.nextBytes(10)
|
|
51
95
|
.toString(16)
|
|
52
96
|
.padStart(20, '0');
|
|
53
|
-
const
|
|
97
|
+
const delay = iter.nextUint16();
|
|
54
98
|
whitelist.push({
|
|
55
99
|
addressHalf,
|
|
56
|
-
delay
|
|
100
|
+
delay
|
|
57
101
|
});
|
|
58
102
|
}
|
|
59
103
|
return new SettlementPostInteractionData({
|
|
60
104
|
integratorFee,
|
|
61
105
|
bankFee,
|
|
62
|
-
|
|
63
|
-
whitelist
|
|
106
|
+
resolvingStartTime,
|
|
107
|
+
whitelist,
|
|
108
|
+
customReceiver
|
|
64
109
|
});
|
|
65
110
|
}
|
|
111
|
+
static fromExtension(extension) {
|
|
112
|
+
return SettlementPostInteractionData.decode((0, utils_1.add0x)(extension.postInteraction.slice(42)));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Serialize post-interaction data to bytes
|
|
116
|
+
*/
|
|
66
117
|
encode() {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
118
|
+
/**
|
|
119
|
+
* 0b0000_0001 - fee bank mask
|
|
120
|
+
* 0b0000_0010 - integrator fee mask
|
|
121
|
+
* 0b0000_0100 - is custom receiver present
|
|
122
|
+
* 0b1111_1000 - resolvers count mask
|
|
123
|
+
*/
|
|
124
|
+
let bitMask = new byte_utils_1.BN(0n);
|
|
125
|
+
const bytes = new byte_utils_1.BytesBuilder();
|
|
126
|
+
// Add bank fee if exists
|
|
72
127
|
if (this.bankFee) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
type: 'uint32',
|
|
76
|
-
value: ethers_1.ethers.solidityPacked(['uint32'], [this.bankFee])
|
|
77
|
-
});
|
|
128
|
+
bitMask = bitMask.setBit(0n, 1);
|
|
129
|
+
bytes.addUint32(this.bankFee);
|
|
78
130
|
}
|
|
131
|
+
// add integrator fee if exists
|
|
79
132
|
if (this.integratorFee?.ratio) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
133
|
+
bitMask = bitMask.setBit(1n, 1);
|
|
134
|
+
bytes
|
|
135
|
+
.addUint16(this.integratorFee.ratio)
|
|
136
|
+
.addAddress(this.integratorFee.receiver.toString());
|
|
137
|
+
if (this.customReceiver && !this.customReceiver.isZero()) {
|
|
138
|
+
bitMask = bitMask.setBit(2n, 1);
|
|
139
|
+
bytes.addAddress(this.customReceiver.toString());
|
|
140
|
+
}
|
|
88
141
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
value: this.auctionStartTime
|
|
92
|
-
});
|
|
142
|
+
bytes.addUint32(this.resolvingStartTime);
|
|
143
|
+
// whitelist data
|
|
93
144
|
for (const wl of this.whitelist) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
145
|
+
bytes.addBytes((0, utils_1.add0x)(wl.addressHalf)).addUint16(wl.delay);
|
|
146
|
+
}
|
|
147
|
+
bitMask = bitMask.setMask(new byte_utils_1.BitMask(3n, 8n), BigInt(this.whitelist.length));
|
|
148
|
+
bytes.addUint8(bitMask.value);
|
|
149
|
+
return bytes.asHex();
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Check whether address allowed to execute order at the given time
|
|
153
|
+
*
|
|
154
|
+
* @param executor address of executor
|
|
155
|
+
* @param executionTime timestamp in sec at which order planning to execute
|
|
156
|
+
*/
|
|
157
|
+
canExecuteAt(executor, executionTime) {
|
|
158
|
+
const addressHalf = executor.toString().slice(-20);
|
|
159
|
+
let allowedFrom = this.resolvingStartTime;
|
|
160
|
+
for (const whitelist of this.whitelist) {
|
|
161
|
+
allowedFrom += whitelist.delay;
|
|
162
|
+
if (addressHalf === whitelist.addressHalf) {
|
|
163
|
+
return executionTime >= allowedFrom;
|
|
164
|
+
}
|
|
165
|
+
else if (executionTime < allowedFrom) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
isExclusiveResolver(wallet) {
|
|
172
|
+
const addressHalf = wallet.toString().slice(-20);
|
|
173
|
+
// only one resolver, so check if it is the passed address
|
|
174
|
+
if (this.whitelist.length === 1) {
|
|
175
|
+
return addressHalf === this.whitelist[0].addressHalf;
|
|
176
|
+
}
|
|
177
|
+
// more than 1 address can fill at the same time, no exclusivity
|
|
178
|
+
if (this.whitelist[0].delay === this.whitelist[1].delay) {
|
|
179
|
+
return false;
|
|
101
180
|
}
|
|
102
|
-
return
|
|
181
|
+
return addressHalf === this.whitelist[0].addressHalf;
|
|
103
182
|
}
|
|
104
183
|
}
|
|
105
184
|
exports.SettlementPostInteractionData = SettlementPostInteractionData;
|
package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settlement-post-interaction-data.js","sourceRoot":"","sources":["../../../src/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"settlement-post-interaction-data.js","sourceRoot":"","sources":["../../../src/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.ts"],"names":[],"mappings":"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"}
|
package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.spec.js
CHANGED
|
@@ -1,33 +1,120 @@
|
|
|
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 byte_utils_1 = require("@1inch/byte-utils");
|
|
4
5
|
const settlement_post_interaction_data_1 = require("./settlement-post-interaction-data");
|
|
5
6
|
const utils_1 = require("../../sdk/utils");
|
|
6
|
-
describe('
|
|
7
|
+
describe('SettlementPostInteractionData', () => {
|
|
8
|
+
it('Should encode/decode with bank fee and whitelist', () => {
|
|
9
|
+
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
10
|
+
bankFee: 1n,
|
|
11
|
+
resolvingStartTime: 1708117482n,
|
|
12
|
+
whitelist: [
|
|
13
|
+
{
|
|
14
|
+
address: limit_order_sdk_1.Address.ZERO_ADDRESS,
|
|
15
|
+
allowFrom: 0n
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
});
|
|
19
|
+
const encoded = data.encode();
|
|
20
|
+
expect((0, byte_utils_1.getBytesCount)(encoded)).toEqual(21n);
|
|
21
|
+
expect(settlement_post_interaction_data_1.SettlementPostInteractionData.decode(encoded)).toStrictEqual(data);
|
|
22
|
+
});
|
|
7
23
|
it('Should encode/decode with no fees and whitelist', () => {
|
|
8
24
|
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
25
|
+
resolvingStartTime: 1708117482n,
|
|
26
|
+
whitelist: [
|
|
27
|
+
{
|
|
28
|
+
address: limit_order_sdk_1.Address.ZERO_ADDRESS,
|
|
29
|
+
allowFrom: 0n
|
|
30
|
+
}
|
|
31
|
+
]
|
|
12
32
|
});
|
|
13
|
-
|
|
33
|
+
const encoded = data.encode();
|
|
34
|
+
expect((0, byte_utils_1.getBytesCount)(encoded)).toEqual(17n);
|
|
35
|
+
expect(settlement_post_interaction_data_1.SettlementPostInteractionData.decode(encoded)).toStrictEqual(data);
|
|
14
36
|
});
|
|
15
37
|
it('Should encode/decode with fees and whitelist', () => {
|
|
16
38
|
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
17
39
|
bankFee: 0n,
|
|
18
|
-
|
|
40
|
+
resolvingStartTime: 1708117482n,
|
|
19
41
|
whitelist: [
|
|
20
42
|
{
|
|
21
43
|
address: limit_order_sdk_1.Address.ZERO_ADDRESS,
|
|
22
|
-
|
|
44
|
+
allowFrom: 0n
|
|
23
45
|
}
|
|
24
46
|
],
|
|
25
47
|
integratorFee: {
|
|
26
|
-
receiver: limit_order_sdk_1.Address.
|
|
48
|
+
receiver: limit_order_sdk_1.Address.fromBigInt(1n),
|
|
27
49
|
ratio: (0, utils_1.bpsToRatioFormat)(10)
|
|
28
50
|
}
|
|
29
51
|
});
|
|
30
52
|
expect(settlement_post_interaction_data_1.SettlementPostInteractionData.decode(data.encode())).toStrictEqual(data);
|
|
31
53
|
});
|
|
54
|
+
it('Should encode/decode with fees, custom receiver and whitelist', () => {
|
|
55
|
+
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
56
|
+
bankFee: 0n,
|
|
57
|
+
resolvingStartTime: 1708117482n,
|
|
58
|
+
whitelist: [
|
|
59
|
+
{
|
|
60
|
+
address: limit_order_sdk_1.Address.ZERO_ADDRESS,
|
|
61
|
+
allowFrom: 0n
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
integratorFee: {
|
|
65
|
+
receiver: limit_order_sdk_1.Address.fromBigInt(1n),
|
|
66
|
+
ratio: (0, utils_1.bpsToRatioFormat)(10)
|
|
67
|
+
},
|
|
68
|
+
customReceiver: limit_order_sdk_1.Address.fromBigInt(1337n)
|
|
69
|
+
});
|
|
70
|
+
expect(settlement_post_interaction_data_1.SettlementPostInteractionData.decode(data.encode())).toStrictEqual(data);
|
|
71
|
+
});
|
|
72
|
+
it('Should generate correct whitelist', () => {
|
|
73
|
+
const start = 1708117482n;
|
|
74
|
+
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
75
|
+
resolvingStartTime: start,
|
|
76
|
+
whitelist: [
|
|
77
|
+
{
|
|
78
|
+
address: limit_order_sdk_1.Address.fromBigInt(2n),
|
|
79
|
+
allowFrom: start + 1000n
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
address: limit_order_sdk_1.Address.ZERO_ADDRESS,
|
|
83
|
+
allowFrom: start - 10n // should be set to start
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
address: limit_order_sdk_1.Address.fromBigInt(1n),
|
|
87
|
+
allowFrom: start + 10n
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
address: limit_order_sdk_1.Address.fromBigInt(3n),
|
|
91
|
+
allowFrom: start + 10n
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
});
|
|
95
|
+
expect(data.whitelist).toStrictEqual([
|
|
96
|
+
{
|
|
97
|
+
addressHalf: limit_order_sdk_1.Address.ZERO_ADDRESS.toString().slice(-20),
|
|
98
|
+
delay: 0n
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
addressHalf: limit_order_sdk_1.Address.fromBigInt(1n).toString().slice(-20),
|
|
102
|
+
delay: 10n
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
addressHalf: limit_order_sdk_1.Address.fromBigInt(3n).toString().slice(-20),
|
|
106
|
+
delay: 0n
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
addressHalf: limit_order_sdk_1.Address.fromBigInt(2n).toString().slice(-20),
|
|
110
|
+
delay: 990n
|
|
111
|
+
}
|
|
112
|
+
]);
|
|
113
|
+
expect(data.canExecuteAt(limit_order_sdk_1.Address.fromBigInt(1n), start + 10n)).toEqual(true);
|
|
114
|
+
expect(data.canExecuteAt(limit_order_sdk_1.Address.fromBigInt(1n), start + 9n)).toEqual(false);
|
|
115
|
+
expect(data.canExecuteAt(limit_order_sdk_1.Address.fromBigInt(3n), start + 10n)).toEqual(true);
|
|
116
|
+
expect(data.canExecuteAt(limit_order_sdk_1.Address.fromBigInt(3n), start + 9n)).toEqual(false);
|
|
117
|
+
expect(data.canExecuteAt(limit_order_sdk_1.Address.fromBigInt(2n), start + 50n)).toEqual(false);
|
|
118
|
+
});
|
|
32
119
|
});
|
|
33
120
|
//# sourceMappingURL=settlement-post-interaction-data.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settlement-post-interaction-data.spec.js","sourceRoot":"","sources":["../../../src/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.spec.ts"],"names":[],"mappings":";;AAAA,4DAA8C;AAC9C,yFAAgF;AAChF,2CAAgD;AAEhD,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"settlement-post-interaction-data.spec.js","sourceRoot":"","sources":["../../../src/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import { Address } from '@1inch/limit-order-sdk';
|
|
2
2
|
export type AuctionWhitelistItem = {
|
|
3
3
|
address: Address;
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Timestamp in sec at which address can start resolving
|
|
6
|
+
*/
|
|
7
|
+
allowFrom: bigint;
|
|
5
8
|
};
|
|
6
9
|
export type SettlementSuffixData = {
|
|
7
10
|
whitelist: AuctionWhitelistItem[];
|
|
8
11
|
integratorFee?: IntegratorFee;
|
|
9
|
-
bankFee
|
|
10
|
-
|
|
12
|
+
bankFee?: bigint;
|
|
13
|
+
resolvingStartTime: bigint;
|
|
14
|
+
customReceiver?: Address;
|
|
11
15
|
};
|
|
12
16
|
export type IntegratorFee = {
|
|
17
|
+
/**
|
|
18
|
+
* In pbs multiplied by precision
|
|
19
|
+
*
|
|
20
|
+
* @see bpsToRatioFormat
|
|
21
|
+
*/
|
|
13
22
|
ratio: bigint;
|
|
14
23
|
receiver: Address;
|
|
15
24
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Address, LimitOrderV4Struct, Extension, randBigInt, getLimitOrderContract, Interaction, TakerTraits, ExtensionBuilder } from '@1inch/limit-order-sdk';
|
|
1
|
+
export { Address, LimitOrderV4Struct, Extension, randBigInt, getLimitOrderContract, Interaction, TakerTraits, ExtensionBuilder, AmountMode, getLimitOrderV4Domain, LimitOrderContract } from '@1inch/limit-order-sdk';
|
|
2
2
|
export * from './fusion-order/index';
|
|
3
3
|
export * from './auction-calculator/index';
|
|
4
4
|
export * from './connector/index';
|
|
@@ -9,4 +9,4 @@ export * from './utils/amounts';
|
|
|
9
9
|
export * from './validations';
|
|
10
10
|
export * from './ws-api';
|
|
11
11
|
export * from './errors';
|
|
12
|
-
export
|
|
12
|
+
export { QuoterRequest, QuoterResponse, RelayerRequest, QuoterCustomPresetRequest, PresetEnum, Preset, Quote } from './api';
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.ExtensionBuilder = exports.TakerTraits = exports.Interaction = exports.getLimitOrderContract = exports.randBigInt = exports.Extension = exports.Address = void 0;
|
|
17
|
+
exports.Quote = exports.Preset = exports.PresetEnum = exports.QuoterCustomPresetRequest = exports.RelayerRequest = exports.QuoterRequest = exports.LimitOrderContract = exports.getLimitOrderV4Domain = exports.AmountMode = exports.ExtensionBuilder = exports.TakerTraits = exports.Interaction = exports.getLimitOrderContract = exports.randBigInt = exports.Extension = exports.Address = void 0;
|
|
18
18
|
var limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
19
19
|
Object.defineProperty(exports, "Address", { enumerable: true, get: function () { return limit_order_sdk_1.Address; } });
|
|
20
20
|
Object.defineProperty(exports, "Extension", { enumerable: true, get: function () { return limit_order_sdk_1.Extension; } });
|
|
@@ -23,6 +23,9 @@ Object.defineProperty(exports, "getLimitOrderContract", { enumerable: true, get:
|
|
|
23
23
|
Object.defineProperty(exports, "Interaction", { enumerable: true, get: function () { return limit_order_sdk_1.Interaction; } });
|
|
24
24
|
Object.defineProperty(exports, "TakerTraits", { enumerable: true, get: function () { return limit_order_sdk_1.TakerTraits; } });
|
|
25
25
|
Object.defineProperty(exports, "ExtensionBuilder", { enumerable: true, get: function () { return limit_order_sdk_1.ExtensionBuilder; } });
|
|
26
|
+
Object.defineProperty(exports, "AmountMode", { enumerable: true, get: function () { return limit_order_sdk_1.AmountMode; } });
|
|
27
|
+
Object.defineProperty(exports, "getLimitOrderV4Domain", { enumerable: true, get: function () { return limit_order_sdk_1.getLimitOrderV4Domain; } });
|
|
28
|
+
Object.defineProperty(exports, "LimitOrderContract", { enumerable: true, get: function () { return limit_order_sdk_1.LimitOrderContract; } });
|
|
26
29
|
__exportStar(require("./fusion-order/index"), exports);
|
|
27
30
|
__exportStar(require("./auction-calculator/index"), exports);
|
|
28
31
|
__exportStar(require("./connector/index"), exports);
|
|
@@ -33,5 +36,11 @@ __exportStar(require("./utils/amounts"), exports);
|
|
|
33
36
|
__exportStar(require("./validations"), exports);
|
|
34
37
|
__exportStar(require("./ws-api"), exports);
|
|
35
38
|
__exportStar(require("./errors"), exports);
|
|
36
|
-
|
|
39
|
+
var api_1 = require("./api");
|
|
40
|
+
Object.defineProperty(exports, "QuoterRequest", { enumerable: true, get: function () { return api_1.QuoterRequest; } });
|
|
41
|
+
Object.defineProperty(exports, "RelayerRequest", { enumerable: true, get: function () { return api_1.RelayerRequest; } });
|
|
42
|
+
Object.defineProperty(exports, "QuoterCustomPresetRequest", { enumerable: true, get: function () { return api_1.QuoterCustomPresetRequest; } });
|
|
43
|
+
Object.defineProperty(exports, "PresetEnum", { enumerable: true, get: function () { return api_1.PresetEnum; } });
|
|
44
|
+
Object.defineProperty(exports, "Preset", { enumerable: true, get: function () { return api_1.Preset; } });
|
|
45
|
+
Object.defineProperty(exports, "Quote", { enumerable: true, get: function () { return api_1.Quote; } });
|
|
37
46
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAY+B;AAX3B,0GAAA,OAAO,OAAA;AAEP,4GAAA,SAAS,OAAA;AACT,6GAAA,UAAU,OAAA;AACV,wHAAA,qBAAqB,OAAA;AACrB,8GAAA,WAAW,OAAA;AACX,8GAAA,WAAW,OAAA;AACX,mHAAA,gBAAgB,OAAA;AAChB,6GAAA,UAAU,OAAA;AACV,wHAAA,qBAAqB,OAAA;AACrB,qHAAA,kBAAkB,OAAA;AAEtB,uDAAoC;AACpC,6DAA0C;AAC1C,oDAAiC;AACjC,8CAA2B;AAC3B,8CAA2B;AAC3B,0CAAuB;AACvB,kDAA+B;AAC/B,gDAA6B;AAC7B,2CAAwB;AACxB,2CAAwB;AACxB,6BAQc;AAPV,oGAAA,aAAa,OAAA;AAEb,qGAAA,cAAc,OAAA;AACd,gHAAA,yBAAyB,OAAA;AACzB,iGAAA,UAAU,OAAA;AACV,6FAAA,MAAM,OAAA;AACN,4FAAA,KAAK,OAAA"}
|
package/dist/sdk/sdk.js
CHANGED
|
@@ -67,13 +67,11 @@ class FusionSDK {
|
|
|
67
67
|
: undefined,
|
|
68
68
|
preset: params.preset,
|
|
69
69
|
nonce: params.nonce,
|
|
70
|
-
permit: params.permit,
|
|
71
70
|
takingFeeReceiver: params.fee?.takingFeeReceiver,
|
|
72
71
|
allowPartialFills: params.allowPartialFills,
|
|
73
72
|
allowMultipleFills: params.allowMultipleFills
|
|
74
73
|
});
|
|
75
|
-
const
|
|
76
|
-
const hash = order.getOrderHash(domain);
|
|
74
|
+
const hash = order.getOrderHash(this.config.network);
|
|
77
75
|
return { order, hash, quoteId: quote.quoteId };
|
|
78
76
|
}
|
|
79
77
|
async submitOrder(order, quoteId) {
|
|
@@ -81,8 +79,7 @@ class FusionSDK {
|
|
|
81
79
|
throw new Error('blockchainProvider has not set to config');
|
|
82
80
|
}
|
|
83
81
|
const orderStruct = order.build();
|
|
84
|
-
const
|
|
85
|
-
const signature = await this.config.blockchainProvider.signTypedData(orderStruct.maker, order.getTypedData(domain));
|
|
82
|
+
const signature = await this.config.blockchainProvider.signTypedData(orderStruct.maker, order.getTypedData(this.config.network));
|
|
86
83
|
const relayerRequest = api_1.RelayerRequest.new({
|
|
87
84
|
order: orderStruct,
|
|
88
85
|
signature,
|
|
@@ -93,7 +90,7 @@ class FusionSDK {
|
|
|
93
90
|
order: orderStruct,
|
|
94
91
|
signature,
|
|
95
92
|
quoteId,
|
|
96
|
-
orderHash: order.getOrderHash(
|
|
93
|
+
orderHash: order.getOrderHash(this.config.network)
|
|
97
94
|
};
|
|
98
95
|
}
|
|
99
96
|
async placeOrder(params) {
|
package/dist/sdk/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk/sdk.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/types.d.ts
CHANGED
|
@@ -29,11 +29,22 @@ export type OrderParams = {
|
|
|
29
29
|
permit?: string;
|
|
30
30
|
receiver?: string;
|
|
31
31
|
preset?: PresetEnum;
|
|
32
|
+
/**
|
|
33
|
+
* Unique for `walletAddress` can be serial or random generated
|
|
34
|
+
*
|
|
35
|
+
* @see randBigInt
|
|
36
|
+
*/
|
|
32
37
|
nonce?: bigint;
|
|
33
38
|
fee?: TakingFeeInfo;
|
|
34
39
|
source?: string;
|
|
35
40
|
customPreset?: CustomPreset;
|
|
41
|
+
/**
|
|
42
|
+
* true by default
|
|
43
|
+
*/
|
|
36
44
|
allowPartialFills?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* true by default
|
|
47
|
+
*/
|
|
37
48
|
allowMultipleFills?: boolean;
|
|
38
49
|
};
|
|
39
50
|
export type TakingFeeInfo = {
|
package/dist/sdk/utils.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addRatioToAmount = exports.bpsToRatioFormat = void 0;
|
|
4
|
+
const FEE_BASE = 100000n;
|
|
5
|
+
const BPS_BASE = 10000n;
|
|
6
|
+
const BPS_TO_RATIO_NUMERATOR = FEE_BASE / BPS_BASE;
|
|
4
7
|
function bpsToRatioFormat(bps) {
|
|
5
8
|
if (!bps) {
|
|
6
9
|
return 0n;
|
|
7
10
|
}
|
|
8
|
-
return BigInt(bps) *
|
|
11
|
+
return BigInt(bps) * BPS_TO_RATIO_NUMERATOR;
|
|
9
12
|
}
|
|
10
13
|
exports.bpsToRatioFormat = bpsToRatioFormat;
|
|
11
14
|
function addRatioToAmount(amount, ratio) {
|
|
12
|
-
return amount + (amount * ratio) /
|
|
15
|
+
return amount + (amount * ratio) / FEE_BASE;
|
|
13
16
|
}
|
|
14
17
|
exports.addRatioToAmount = addRatioToAmount;
|
|
15
18
|
//# sourceMappingURL=utils.js.map
|
package/dist/sdk/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/sdk/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,gBAAgB,CAAC,GAAY;IACzC,IAAI,CAAC,GAAG,EAAE;QACN,OAAO,EAAE,CAAA;KACZ;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/sdk/utils.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,OAAQ,CAAA;AACzB,MAAM,QAAQ,GAAG,MAAO,CAAA;AACxB,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAElD,SAAgB,gBAAgB,CAAC,GAAY;IACzC,IAAI,CAAC,GAAG,EAAE;QACN,OAAO,EAAE,CAAA;KACZ;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAA;AAC/C,CAAC;AAND,4CAMC;AAED,SAAgB,gBAAgB,CAAC,MAAc,EAAE,KAAa;IAC1D,OAAO,MAAM,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAA;AAC/C,CAAC;AAFD,4CAEC"}
|
package/dist/utils/amounts.d.ts
CHANGED
|
@@ -1,2 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates taker amount by linear proportion
|
|
3
|
+
* Note: use for minReturn only, because other amounts calculated based on auction curve
|
|
4
|
+
*
|
|
5
|
+
* @see AuctionCalculator
|
|
6
|
+
* @return Ceiled taker amount
|
|
7
|
+
* @see https://github.com/1inch/limit-order-protocol/blob/23d655844191dea7960a186652307604a1ed480a/contracts/libraries/AmountCalculatorLib.sol#L6
|
|
8
|
+
*/
|
|
1
9
|
export declare function calcTakingAmount(swapMakerAmount: bigint, orderMakerAmount: bigint, orderTakerAmount: bigint): bigint;
|
|
2
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Calculates maker amount by linear proportion
|
|
12
|
+
* Note: use for minReturn only, because other amounts calculated based on auction curve
|
|
13
|
+
*
|
|
14
|
+
* @see AuctionCalculator
|
|
15
|
+
* @return Floored maker amount
|
|
16
|
+
* @see https://github.com/1inch/limit-order-protocol/blob/23d655844191dea7960a186652307604a1ed480a/contracts/libraries/AmountCalculatorLib.sol#L6
|
|
17
|
+
*/
|
|
18
|
+
export declare function calcMakingAmount(swapTakerAmount: bigint, orderMakerAmount: bigint, orderTakerAmount: bigint): bigint;
|