@1inch/fusion-sdk 1.0.1-rc.9 → 1.0.1
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 +5 -5
- 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 +2 -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 +15 -10
- package/dist/auction-calculator/auction-calculator.js +31 -5
- package/dist/auction-calculator/auction-calculator.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/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 +41 -3
- package/dist/fusion-order/fusion-order.js +90 -21
- package/dist/fusion-order/fusion-order.js.map +1 -1
- package/dist/fusion-order/fusion-order.spec.js +64 -1
- 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 +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 +16 -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 +12 -10
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/types.d.ts +3 -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/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 +8 -8
- package/package.json +22 -22
|
@@ -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 fusion_order_1 = require("./fusion-order");
|
|
5
6
|
const auction_details_1 = require("./auction-details");
|
|
6
7
|
describe('Fusion Order', () => {
|
|
@@ -41,7 +42,7 @@ describe('Fusion Order', () => {
|
|
|
41
42
|
receiver: '0x0000000000000000000000000000000000000000',
|
|
42
43
|
takerAsset: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
43
44
|
takingAmount: '1420000000',
|
|
44
|
-
makerTraits: '
|
|
45
|
+
makerTraits: '33471150795161712739625987854073848363835856965607525350783622537007396290560',
|
|
45
46
|
salt: '14969955465678758833706505435513058355190519874774'
|
|
46
47
|
});
|
|
47
48
|
const makerTraits = new limit_order_sdk_1.MakerTraits(BigInt(builtOrder.makerTraits));
|
|
@@ -79,5 +80,67 @@ describe('Fusion Order', () => {
|
|
|
79
80
|
});
|
|
80
81
|
expect(fusion_order_1.FusionOrder.fromDataAndExtension(order.build(), order.extension)).toStrictEqual(order);
|
|
81
82
|
});
|
|
83
|
+
it('should decode fusion order from order + extension with provided source', () => {
|
|
84
|
+
const extensionContract = new limit_order_sdk_1.Address('0x8273f37417da37c4a6c3995e82cf442f87a25d9c');
|
|
85
|
+
const order = fusion_order_1.FusionOrder.new(extensionContract, {
|
|
86
|
+
makerAsset: new limit_order_sdk_1.Address('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
|
|
87
|
+
takerAsset: new limit_order_sdk_1.Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
|
|
88
|
+
makingAmount: 1000000000000000000n,
|
|
89
|
+
takingAmount: 1420000000n,
|
|
90
|
+
maker: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
91
|
+
salt: 10n
|
|
92
|
+
}, {
|
|
93
|
+
auction: new auction_details_1.AuctionDetails({
|
|
94
|
+
duration: 180n,
|
|
95
|
+
startTime: 1673548149n,
|
|
96
|
+
initialRateBump: 50000,
|
|
97
|
+
points: [
|
|
98
|
+
{
|
|
99
|
+
coefficient: 20000,
|
|
100
|
+
delay: 12
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}),
|
|
104
|
+
whitelist: [
|
|
105
|
+
{
|
|
106
|
+
address: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
107
|
+
allowFrom: 0n
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}, {
|
|
111
|
+
source: 'test'
|
|
112
|
+
});
|
|
113
|
+
expect(fusion_order_1.FusionOrder.fromDataAndExtension(order.build(), order.extension)).toStrictEqual(order);
|
|
114
|
+
});
|
|
115
|
+
it('Should calculate taking amount', () => {
|
|
116
|
+
const now = 10000n;
|
|
117
|
+
const order = fusion_order_1.FusionOrder.new(new limit_order_sdk_1.Address('0x8273f37417da37c4a6c3995e82cf442f87a25d9c'), {
|
|
118
|
+
makerAsset: new limit_order_sdk_1.Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' // USDC
|
|
119
|
+
),
|
|
120
|
+
takerAsset: new limit_order_sdk_1.Address('0x111111111117dc0aa78b770fa6a738034120c302' // 1INCH
|
|
121
|
+
),
|
|
122
|
+
maker: limit_order_sdk_1.Address.fromBigInt(1n),
|
|
123
|
+
makingAmount: (0, ethers_1.parseUnits)('150', 6),
|
|
124
|
+
takingAmount: (0, ethers_1.parseUnits)('200')
|
|
125
|
+
}, {
|
|
126
|
+
auction: new auction_details_1.AuctionDetails({
|
|
127
|
+
startTime: now,
|
|
128
|
+
duration: 120n,
|
|
129
|
+
initialRateBump: 10000000,
|
|
130
|
+
points: []
|
|
131
|
+
}),
|
|
132
|
+
whitelist: [
|
|
133
|
+
{
|
|
134
|
+
address: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
135
|
+
allowFrom: 0n
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
resolvingStartTime: 0n
|
|
139
|
+
}, {
|
|
140
|
+
source: 'some_id'
|
|
141
|
+
});
|
|
142
|
+
expect(order.calcTakingAmount(order.makingAmount, now)).toEqual(2n * order.takingAmount // because init rate bump is 100%
|
|
143
|
+
);
|
|
144
|
+
});
|
|
82
145
|
});
|
|
83
146
|
//# sourceMappingURL=fusion-order.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusion-order.spec.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-order.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fusion-order.spec.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-order.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.d.ts
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
import { Address } from '@1inch/limit-order-sdk';
|
|
1
|
+
import { Address, Extension } from '@1inch/limit-order-sdk';
|
|
2
2
|
import { IntegratorFee, SettlementSuffixData } from './types';
|
|
3
3
|
export declare class SettlementPostInteractionData {
|
|
4
4
|
readonly whitelist: WhitelistItem[];
|
|
5
5
|
readonly integratorFee?: IntegratorFee;
|
|
6
6
|
readonly bankFee: bigint;
|
|
7
7
|
readonly resolvingStartTime: bigint;
|
|
8
|
+
readonly customReceiver?: Address;
|
|
8
9
|
private constructor();
|
|
9
10
|
static new(data: SettlementSuffixData): SettlementPostInteractionData;
|
|
10
11
|
/**
|
|
11
12
|
* Construct `SettlementPostInteractionData` from bytes
|
|
12
13
|
* @param data bytes with 0x prefix in next format:
|
|
13
14
|
* - [uint32 feeBank] only when first bit of `bitMask` enabled
|
|
14
|
-
* - [uint160 integratorFeeReceiver,
|
|
15
|
+
* - [uint16 integratorFeeRation, uint160 integratorFeeReceiver, [uint160 customReceiver]] only when second bit of `bitMask` enabled
|
|
15
16
|
* - uint32 auctionStartTime
|
|
16
17
|
* - (bytes10 last10bytesOfAddress, uint16 auctionDelay) * N whitelist info
|
|
17
18
|
* - uint8 bitMask:
|
|
18
19
|
* 0b0000_0001 - fee bank mask
|
|
19
20
|
* 0b0000_0010 - integrator fee mask
|
|
21
|
+
* 0b0000_0100 - is custom receiver present (only used when integrator fee enabled)
|
|
20
22
|
* 0b1111_1000 - resolvers count mask
|
|
21
23
|
*
|
|
22
24
|
* All data is tight packed
|
|
23
25
|
* @see SettlementPostInteractionData.encode
|
|
24
26
|
*/
|
|
25
27
|
static decode(data: string): SettlementPostInteractionData;
|
|
28
|
+
static fromExtension(extension: Extension): SettlementPostInteractionData;
|
|
26
29
|
/**
|
|
27
30
|
* Serialize post-interaction data to bytes
|
|
28
31
|
*/
|
|
@@ -34,6 +37,7 @@ export declare class SettlementPostInteractionData {
|
|
|
34
37
|
* @param executionTime timestamp in sec at which order planning to execute
|
|
35
38
|
*/
|
|
36
39
|
canExecuteAt(executor: Address, executionTime: bigint): boolean;
|
|
40
|
+
isExclusiveResolver(wallet: Address): boolean;
|
|
37
41
|
}
|
|
38
42
|
type WhitelistItem = {
|
|
39
43
|
/**
|
package/dist/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js
CHANGED
|
@@ -16,6 +16,10 @@ class SettlementPostInteractionData {
|
|
|
16
16
|
this.integratorFee = data?.integratorFee;
|
|
17
17
|
this.bankFee = data.bankFee || 0n;
|
|
18
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) {
|
|
21
25
|
(0, assert_1.default)(data.whitelist.length, 'Whitelist can not be empty');
|
|
@@ -47,12 +51,13 @@ class SettlementPostInteractionData {
|
|
|
47
51
|
* Construct `SettlementPostInteractionData` from bytes
|
|
48
52
|
* @param data bytes with 0x prefix in next format:
|
|
49
53
|
* - [uint32 feeBank] only when first bit of `bitMask` enabled
|
|
50
|
-
* - [uint160 integratorFeeReceiver,
|
|
54
|
+
* - [uint16 integratorFeeRation, uint160 integratorFeeReceiver, [uint160 customReceiver]] only when second bit of `bitMask` enabled
|
|
51
55
|
* - uint32 auctionStartTime
|
|
52
56
|
* - (bytes10 last10bytesOfAddress, uint16 auctionDelay) * N whitelist info
|
|
53
57
|
* - uint8 bitMask:
|
|
54
58
|
* 0b0000_0001 - fee bank mask
|
|
55
59
|
* 0b0000_0010 - integrator fee mask
|
|
60
|
+
* 0b0000_0100 - is custom receiver present (only used when integrator fee enabled)
|
|
56
61
|
* 0b1111_1000 - resolvers count mask
|
|
57
62
|
*
|
|
58
63
|
* All data is tight packed
|
|
@@ -61,21 +66,26 @@ class SettlementPostInteractionData {
|
|
|
61
66
|
static decode(data) {
|
|
62
67
|
(0, assert_1.default)((0, validations_1.isHexBytes)(data), 'Post interaction data must be valid bytes string');
|
|
63
68
|
const iter = byte_utils_1.BytesIter.BigInt(data);
|
|
64
|
-
const
|
|
69
|
+
const flags = new byte_utils_1.BN(iter.nextByte(byte_utils_1.BytesIter.SIDE.Back));
|
|
65
70
|
let bankFee = 0n;
|
|
66
71
|
let integratorFee;
|
|
72
|
+
let customReceiver;
|
|
67
73
|
// fee bank presented
|
|
68
|
-
if ((
|
|
74
|
+
if (flags.getBit(0n)) {
|
|
69
75
|
bankFee = iter.nextUint32();
|
|
70
76
|
}
|
|
71
77
|
// integrator fee presented
|
|
72
|
-
if ((
|
|
78
|
+
if (flags.getBit(1n)) {
|
|
79
|
+
const integratorFeeRatio = iter.nextUint16();
|
|
73
80
|
const integratorAddress = iter.nextUint160();
|
|
74
|
-
const integratorFeeRatio = iter.nextUint32();
|
|
75
81
|
integratorFee = {
|
|
76
82
|
ratio: integratorFeeRatio,
|
|
77
83
|
receiver: limit_order_sdk_1.Address.fromBigInt(integratorAddress)
|
|
78
84
|
};
|
|
85
|
+
// custom receiver presented
|
|
86
|
+
if (flags.getBit(2n)) {
|
|
87
|
+
customReceiver = limit_order_sdk_1.Address.fromBigInt(iter.nextUint160());
|
|
88
|
+
}
|
|
79
89
|
}
|
|
80
90
|
const resolvingStartTime = iter.nextUint32();
|
|
81
91
|
const whitelist = [];
|
|
@@ -94,9 +104,13 @@ class SettlementPostInteractionData {
|
|
|
94
104
|
integratorFee,
|
|
95
105
|
bankFee,
|
|
96
106
|
resolvingStartTime,
|
|
97
|
-
whitelist
|
|
107
|
+
whitelist,
|
|
108
|
+
customReceiver
|
|
98
109
|
});
|
|
99
110
|
}
|
|
111
|
+
static fromExtension(extension) {
|
|
112
|
+
return SettlementPostInteractionData.decode((0, utils_1.add0x)(extension.postInteraction.slice(42)));
|
|
113
|
+
}
|
|
100
114
|
/**
|
|
101
115
|
* Serialize post-interaction data to bytes
|
|
102
116
|
*/
|
|
@@ -104,6 +118,7 @@ class SettlementPostInteractionData {
|
|
|
104
118
|
/**
|
|
105
119
|
* 0b0000_0001 - fee bank mask
|
|
106
120
|
* 0b0000_0010 - integrator fee mask
|
|
121
|
+
* 0b0000_0100 - is custom receiver present
|
|
107
122
|
* 0b1111_1000 - resolvers count mask
|
|
108
123
|
*/
|
|
109
124
|
let bitMask = new byte_utils_1.BN(0n);
|
|
@@ -117,8 +132,12 @@ class SettlementPostInteractionData {
|
|
|
117
132
|
if (this.integratorFee?.ratio) {
|
|
118
133
|
bitMask = bitMask.setBit(1n, 1);
|
|
119
134
|
bytes
|
|
120
|
-
.
|
|
121
|
-
.
|
|
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
|
+
}
|
|
122
141
|
}
|
|
123
142
|
bytes.addUint32(this.resolvingStartTime);
|
|
124
143
|
// whitelist data
|
|
@@ -149,6 +168,18 @@ class SettlementPostInteractionData {
|
|
|
149
168
|
}
|
|
150
169
|
return false;
|
|
151
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;
|
|
180
|
+
}
|
|
181
|
+
return addressHalf === this.whitelist[0].addressHalf;
|
|
182
|
+
}
|
|
152
183
|
}
|
|
153
184
|
exports.SettlementPostInteractionData = SettlementPostInteractionData;
|
|
154
185
|
//# sourceMappingURL=settlement-post-interaction-data.js.map
|
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
|
@@ -5,7 +5,7 @@ const byte_utils_1 = require("@1inch/byte-utils");
|
|
|
5
5
|
const settlement_post_interaction_data_1 = require("./settlement-post-interaction-data");
|
|
6
6
|
const utils_1 = require("../../sdk/utils");
|
|
7
7
|
describe('SettlementPostInteractionData', () => {
|
|
8
|
-
it('Should encode/decode with
|
|
8
|
+
it('Should encode/decode with bank fee and whitelist', () => {
|
|
9
9
|
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
10
10
|
bankFee: 1n,
|
|
11
11
|
resolvingStartTime: 1708117482n,
|
|
@@ -20,6 +20,20 @@ describe('SettlementPostInteractionData', () => {
|
|
|
20
20
|
expect((0, byte_utils_1.getBytesCount)(encoded)).toEqual(21n);
|
|
21
21
|
expect(settlement_post_interaction_data_1.SettlementPostInteractionData.decode(encoded)).toStrictEqual(data);
|
|
22
22
|
});
|
|
23
|
+
it('Should encode/decode with no fees and whitelist', () => {
|
|
24
|
+
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
25
|
+
resolvingStartTime: 1708117482n,
|
|
26
|
+
whitelist: [
|
|
27
|
+
{
|
|
28
|
+
address: limit_order_sdk_1.Address.ZERO_ADDRESS,
|
|
29
|
+
allowFrom: 0n
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
});
|
|
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);
|
|
36
|
+
});
|
|
23
37
|
it('Should encode/decode with fees and whitelist', () => {
|
|
24
38
|
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
25
39
|
bankFee: 0n,
|
|
@@ -31,12 +45,30 @@ describe('SettlementPostInteractionData', () => {
|
|
|
31
45
|
}
|
|
32
46
|
],
|
|
33
47
|
integratorFee: {
|
|
34
|
-
receiver: limit_order_sdk_1.Address.
|
|
48
|
+
receiver: limit_order_sdk_1.Address.fromBigInt(1n),
|
|
35
49
|
ratio: (0, utils_1.bpsToRatioFormat)(10)
|
|
36
50
|
}
|
|
37
51
|
});
|
|
38
52
|
expect(settlement_post_interaction_data_1.SettlementPostInteractionData.decode(data.encode())).toStrictEqual(data);
|
|
39
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
|
+
});
|
|
40
72
|
it('Should generate correct whitelist', () => {
|
|
41
73
|
const start = 1708117482n;
|
|
42
74
|
const data = settlement_post_interaction_data_1.SettlementPostInteractionData.new({
|
|
@@ -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,kDAA+C;AAC/C,yFAAgF;AAChF,2CAAgD;AAEhD,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC3C,EAAE,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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function injectTrackCode(salt: bigint, source?: string): bigint;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.injectTrackCode = void 0;
|
|
4
|
+
const byte_utils_1 = require("@1inch/byte-utils");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
const TRACK_CODE_MASK = new byte_utils_1.BitMask(224n, 256n);
|
|
8
|
+
function getTrackCodeForSource(source) {
|
|
9
|
+
return BigInt((0, utils_1.add0x)((0, ethers_1.id)(source).slice(0, 10)));
|
|
10
|
+
}
|
|
11
|
+
function injectTrackCode(salt, source) {
|
|
12
|
+
const track = source ? getTrackCodeForSource(source) : 0n;
|
|
13
|
+
return new byte_utils_1.BN(salt).setMask(TRACK_CODE_MASK, track).value;
|
|
14
|
+
}
|
|
15
|
+
exports.injectTrackCode = injectTrackCode;
|
|
16
|
+
//# sourceMappingURL=source-track.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-track.js","sourceRoot":"","sources":["../../src/fusion-order/source-track.ts"],"names":[],"mappings":";;;AAAA,kDAA6C;AAC7C,mCAAyB;AACzB,oCAA8B;AAE9B,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE/C,SAAS,qBAAqB,CAAC,MAAc;IACzC,OAAO,MAAM,CAAC,IAAA,aAAK,EAAC,IAAA,WAAE,EAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY,EAAE,MAAe;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEzD,OAAO,IAAI,eAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,KAAK,CAAA;AAC7D,CAAC;AAJD,0CAIC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -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 { QuoterRequest, RelayerRequest, QuoterCustomPresetRequest, PresetEnum, Preset, Quote } from './api';
|
|
12
|
+
export { QuoterRequest, QuoterResponse, RelayerRequest, QuoterCustomPresetRequest, PresetEnum, Preset, Quote } from './api';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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
|
@@ -36,7 +36,8 @@ class FusionSDK {
|
|
|
36
36
|
permit: params.permit,
|
|
37
37
|
enableEstimate: false,
|
|
38
38
|
fee: params?.takingFeeBps,
|
|
39
|
-
source: params.source
|
|
39
|
+
source: params.source,
|
|
40
|
+
isPermit2: params.isPermit2
|
|
40
41
|
});
|
|
41
42
|
return this.api.getQuote(request);
|
|
42
43
|
}
|
|
@@ -49,7 +50,8 @@ class FusionSDK {
|
|
|
49
50
|
permit: params.permit,
|
|
50
51
|
enableEstimate: false,
|
|
51
52
|
fee: params?.takingFeeBps,
|
|
52
|
-
source: params.source
|
|
53
|
+
source: params.source,
|
|
54
|
+
isPermit2: params.isPermit2
|
|
53
55
|
});
|
|
54
56
|
const bodyRequest = api_1.QuoterCustomPresetRequest.new({
|
|
55
57
|
customPreset: body.customPreset
|
|
@@ -67,13 +69,11 @@ class FusionSDK {
|
|
|
67
69
|
: undefined,
|
|
68
70
|
preset: params.preset,
|
|
69
71
|
nonce: params.nonce,
|
|
70
|
-
permit: params.permit,
|
|
71
72
|
takingFeeReceiver: params.fee?.takingFeeReceiver,
|
|
72
73
|
allowPartialFills: params.allowPartialFills,
|
|
73
74
|
allowMultipleFills: params.allowMultipleFills
|
|
74
75
|
});
|
|
75
|
-
const
|
|
76
|
-
const hash = order.getOrderHash(domain);
|
|
76
|
+
const hash = order.getOrderHash(this.config.network);
|
|
77
77
|
return { order, hash, quoteId: quote.quoteId };
|
|
78
78
|
}
|
|
79
79
|
async submitOrder(order, quoteId) {
|
|
@@ -81,19 +81,20 @@ class FusionSDK {
|
|
|
81
81
|
throw new Error('blockchainProvider has not set to config');
|
|
82
82
|
}
|
|
83
83
|
const orderStruct = order.build();
|
|
84
|
-
const
|
|
85
|
-
const signature = await this.config.blockchainProvider.signTypedData(orderStruct.maker, order.getTypedData(domain));
|
|
84
|
+
const signature = await this.config.blockchainProvider.signTypedData(orderStruct.maker, order.getTypedData(this.config.network));
|
|
86
85
|
const relayerRequest = api_1.RelayerRequest.new({
|
|
87
86
|
order: orderStruct,
|
|
88
87
|
signature,
|
|
89
|
-
quoteId
|
|
88
|
+
quoteId,
|
|
89
|
+
extension: order.extension.encode()
|
|
90
90
|
});
|
|
91
91
|
await this.api.submitOrder(relayerRequest);
|
|
92
92
|
return {
|
|
93
93
|
order: orderStruct,
|
|
94
94
|
signature,
|
|
95
95
|
quoteId,
|
|
96
|
-
orderHash: order.getOrderHash(
|
|
96
|
+
orderHash: order.getOrderHash(this.config.network),
|
|
97
|
+
extension: relayerRequest.extension
|
|
97
98
|
};
|
|
98
99
|
}
|
|
99
100
|
async placeOrder(params) {
|
|
@@ -118,7 +119,8 @@ class FusionSDK {
|
|
|
118
119
|
permit: params.permit,
|
|
119
120
|
enableEstimate: true,
|
|
120
121
|
fee: params.fee?.takingFeeBps,
|
|
121
|
-
source: params.source
|
|
122
|
+
source: params.source,
|
|
123
|
+
isPermit2: params.isPermit2
|
|
122
124
|
});
|
|
123
125
|
if (!params.customPreset) {
|
|
124
126
|
return this.api.getQuote(quoterRequest);
|
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
|
@@ -17,6 +17,7 @@ export type QuoteParams = {
|
|
|
17
17
|
permit?: string;
|
|
18
18
|
takingFeeBps?: number;
|
|
19
19
|
source?: string;
|
|
20
|
+
isPermit2?: boolean;
|
|
20
21
|
};
|
|
21
22
|
export type QuoteCustomPresetParams = {
|
|
22
23
|
customPreset: CustomPreset;
|
|
@@ -37,6 +38,7 @@ export type OrderParams = {
|
|
|
37
38
|
nonce?: bigint;
|
|
38
39
|
fee?: TakingFeeInfo;
|
|
39
40
|
source?: string;
|
|
41
|
+
isPermit2?: boolean;
|
|
40
42
|
customPreset?: CustomPreset;
|
|
41
43
|
/**
|
|
42
44
|
* true by default
|
|
@@ -56,6 +58,7 @@ export type OrderInfo = {
|
|
|
56
58
|
signature: string;
|
|
57
59
|
quoteId: string;
|
|
58
60
|
orderHash: string;
|
|
61
|
+
extension: string;
|
|
59
62
|
};
|
|
60
63
|
export type PreparedOrder = {
|
|
61
64
|
order: FusionOrder;
|
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
|
@@ -15,4 +15,4 @@ export declare function calcTakingAmount(swapMakerAmount: bigint, orderMakerAmou
|
|
|
15
15
|
* @return Floored maker amount
|
|
16
16
|
* @see https://github.com/1inch/limit-order-protocol/blob/23d655844191dea7960a186652307604a1ed480a/contracts/libraries/AmountCalculatorLib.sol#L6
|
|
17
17
|
*/
|
|
18
|
-
export declare function
|
|
18
|
+
export declare function calcMakingAmount(swapTakerAmount: bigint, orderMakerAmount: bigint, orderTakerAmount: bigint): bigint;
|
package/dist/utils/amounts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.calcMakingAmount = exports.calcTakingAmount = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Calculates taker amount by linear proportion
|
|
6
6
|
* Note: use for minReturn only, because other amounts calculated based on auction curve
|
|
@@ -22,8 +22,8 @@ exports.calcTakingAmount = calcTakingAmount;
|
|
|
22
22
|
* @return Floored maker amount
|
|
23
23
|
* @see https://github.com/1inch/limit-order-protocol/blob/23d655844191dea7960a186652307604a1ed480a/contracts/libraries/AmountCalculatorLib.sol#L6
|
|
24
24
|
*/
|
|
25
|
-
function
|
|
25
|
+
function calcMakingAmount(swapTakerAmount, orderMakerAmount, orderTakerAmount) {
|
|
26
26
|
return (swapTakerAmount * orderMakerAmount) / orderTakerAmount;
|
|
27
27
|
}
|
|
28
|
-
exports.
|
|
28
|
+
exports.calcMakingAmount = calcMakingAmount;
|
|
29
29
|
//# sourceMappingURL=amounts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amounts.js","sourceRoot":"","sources":["../../src/utils/amounts.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC5B,eAAuB,EACvB,gBAAwB,EACxB,gBAAwB;IAExB,OAAO,CACH,CAAC,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,EAAE,CAAC;QAC5D,gBAAgB,CACnB,CAAA;AACL,CAAC;AATD,4CASC;AAED;;;;;;;GAOG;AACH,SAAgB,
|
|
1
|
+
{"version":3,"file":"amounts.js","sourceRoot":"","sources":["../../src/utils/amounts.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC5B,eAAuB,EACvB,gBAAwB,EACxB,gBAAwB;IAExB,OAAO,CACH,CAAC,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,EAAE,CAAC;QAC5D,gBAAgB,CACnB,CAAA;AACL,CAAC;AATD,4CASC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC5B,eAAuB,EACvB,gBAAwB,EACxB,gBAAwB;IAExB,OAAO,CAAC,eAAe,GAAG,gBAAgB,CAAC,GAAG,gBAAgB,CAAA;AAClE,CAAC;AAND,4CAMC"}
|
package/dist/ws-api/ws-api.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { RpcWebsocketApi } from './rpc-websocket-api';
|
|
|
3
3
|
import { WsApiConfigWithNetwork } from './types';
|
|
4
4
|
import { AnyFunction, AnyFunctionWithThis, OnMessageCb, WsProviderConnector } from '../connector/ws';
|
|
5
5
|
export declare class WebSocketApi {
|
|
6
|
+
private static Version;
|
|
6
7
|
readonly rpc: RpcWebsocketApi;
|
|
7
8
|
readonly order: ActiveOrdersWebSocketApi;
|
|
8
9
|
readonly provider: WsProviderConnector;
|
package/dist/ws-api/ws-api.js
CHANGED
|
@@ -9,7 +9,7 @@ class WebSocketApi {
|
|
|
9
9
|
constructor(configOrProvider) {
|
|
10
10
|
if (instanceOfWsApiConfigWithNetwork(configOrProvider)) {
|
|
11
11
|
const url = (0, url_1.castUrl)(configOrProvider.url);
|
|
12
|
-
const urlWithNetwork = `${url}
|
|
12
|
+
const urlWithNetwork = `${url}/${WebSocketApi.Version}/${configOrProvider.network}`;
|
|
13
13
|
const configWithUrl = { ...configOrProvider, url: urlWithNetwork };
|
|
14
14
|
const provider = new ws_1.WebsocketClient(configWithUrl);
|
|
15
15
|
this.provider = provider;
|
|
@@ -53,6 +53,7 @@ class WebSocketApi {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
exports.WebSocketApi = WebSocketApi;
|
|
56
|
+
WebSocketApi.Version = 'v2.0';
|
|
56
57
|
function instanceOfWsApiConfigWithNetwork(val) {
|
|
57
58
|
return 'url' in val && 'network' in val;
|
|
58
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-api.js","sourceRoot":"","sources":["../../src/ws-api/ws-api.ts"],"names":[],"mappings":";;;AAAA,+EAAsE;AACtE,2DAAmD;AAEnD,+BAA6B;AAC7B,wCAMwB;AAExB,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"ws-api.js","sourceRoot":"","sources":["../../src/ws-api/ws-api.ts"],"names":[],"mappings":";;;AAAA,+EAAsE;AACtE,2DAAmD;AAEnD,+BAA6B;AAC7B,wCAMwB;AAExB,MAAa,YAAY;IASrB,YACI,gBAA8D;QAE9D,IAAI,gCAAgC,CAAC,gBAAgB,CAAC,EAAE;YACpD,MAAM,GAAG,GAAG,IAAA,aAAO,EAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;YACzC,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,YAAY,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAA;YACnF,MAAM,aAAa,GAAG,EAAC,GAAG,gBAAgB,EAAE,GAAG,EAAE,cAAc,EAAC,CAAA;YAChE,MAAM,QAAQ,GAAG,IAAI,oBAAe,CAAC,aAAa,CAAC,CAAA;YAEnD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;YACxB,IAAI,CAAC,GAAG,GAAG,IAAI,mCAAe,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,sDAAwB,CAAC,QAAQ,CAAC,CAAA;YAEnD,OAAM;SACT;QAED,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAA;QAChC,IAAI,CAAC,GAAG,GAAG,IAAI,mCAAe,CAAC,gBAAgB,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,sDAAwB,CAAC,gBAAgB,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,CAAC,GAAG,CACN,gBAA8D;QAE9D,OAAO,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI;QACA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,EAAuB;QACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,EAAuB;QACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,EAAuB;QAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,CAAI,OAAU;QACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,EAAe;QACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,CAAC,EAAe;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO,CAAC,EAAe;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;;AAtEL,oCAuEC;AAtEkB,oBAAO,GAAG,MAAM,CAAA;AAwEnC,SAAS,gCAAgC,CACrC,GAAiD;IAEjD,OAAO,KAAK,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAA;AAC3C,CAAC"}
|