@1inch/fusion-sdk 2.1.8-rc.0 → 2.1.9-rc.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/README.md +2 -2
- package/dist/cjs/amount-calculator/amount-calculator.js +42 -0
- package/dist/cjs/amount-calculator/amount-calculator.js.map +1 -0
- package/dist/cjs/{auction-calculator → amount-calculator/auction-calculator}/auction-calculator.js +16 -17
- package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.js.map +1 -0
- package/dist/cjs/{auction-calculator → amount-calculator/auction-calculator}/index.js +0 -1
- package/dist/cjs/amount-calculator/auction-calculator/index.js.map +1 -0
- package/dist/cjs/api/orders/orders.api.js.map +1 -1
- package/dist/cjs/api/orders/orders.request.js.map +1 -1
- package/dist/cjs/api/orders/types.js +1 -1
- package/dist/cjs/api/orders/types.js.map +1 -1
- package/dist/cjs/api/pagination.js.map +1 -1
- package/dist/cjs/api/params.js +1 -2
- package/dist/cjs/api/params.js.map +1 -1
- package/dist/cjs/api/quoter/quote/order-params.js.map +1 -1
- package/dist/cjs/api/quoter/quote/quote.js +8 -17
- package/dist/cjs/api/quoter/quote/quote.js.map +1 -1
- package/dist/cjs/api/quoter/quoter-custom-preset.request.js +1 -1
- package/dist/cjs/api/quoter/quoter-custom-preset.request.js.map +1 -1
- package/dist/cjs/api/quoter/quoter.api.js.map +1 -1
- package/dist/cjs/api/quoter/quoter.request.js.map +1 -1
- package/dist/cjs/api/quoter/types.js +1 -1
- package/dist/cjs/api/quoter/types.js.map +1 -1
- package/dist/cjs/connector/http/axios-provider.connector.js.map +1 -1
- package/dist/cjs/connector/ws/websocket-client.connector.js.map +1 -1
- package/dist/cjs/constants.js +1 -2
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/fusion-order/auction-details/auction-details.js +18 -10
- package/dist/cjs/fusion-order/auction-details/auction-details.js.map +1 -1
- package/dist/cjs/fusion-order/constants.js +1 -2
- package/dist/cjs/fusion-order/constants.js.map +1 -1
- package/dist/cjs/fusion-order/fusion-extension.js +115 -18
- package/dist/cjs/fusion-order/fusion-extension.js.map +1 -1
- package/dist/cjs/fusion-order/fusion-order.js +42 -34
- package/dist/cjs/fusion-order/fusion-order.js.map +1 -1
- package/dist/cjs/fusion-order/index.js +4 -2
- package/dist/cjs/fusion-order/index.js.map +1 -1
- package/dist/cjs/fusion-order/source-track.js +1 -2
- package/dist/cjs/fusion-order/source-track.js.map +1 -1
- package/dist/cjs/fusion-order/whitelist/index.js +5 -0
- package/dist/cjs/fusion-order/whitelist/index.js.map +1 -0
- package/dist/cjs/fusion-order/whitelist/types.js.map +1 -0
- package/dist/cjs/fusion-order/whitelist/whitelist.js +118 -0
- package/dist/cjs/fusion-order/whitelist/whitelist.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/sdk/encoders/cancel-order.encoder.js +1 -2
- package/dist/cjs/sdk/encoders/cancel-order.encoder.js.map +1 -1
- package/dist/cjs/sdk/sdk.js.map +1 -1
- package/dist/cjs/sdk/utils.js +2 -3
- package/dist/cjs/sdk/utils.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/utils/amounts.js +2 -3
- package/dist/cjs/utils/amounts.js.map +1 -1
- package/dist/cjs/utils/time.js +1 -2
- package/dist/cjs/utils/time.js.map +1 -1
- package/dist/cjs/utils/types.js +3 -0
- package/dist/cjs/utils/types.js.map +1 -0
- package/dist/cjs/utils.js +2 -3
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/validations.js +5 -6
- package/dist/cjs/validations.js.map +1 -1
- package/dist/cjs/ws-api/active-websocket-orders-api.js.map +1 -1
- package/dist/cjs/ws-api/rpc-websocket-api.js.map +1 -1
- package/dist/cjs/ws-api/url.js +1 -2
- package/dist/cjs/ws-api/url.js.map +1 -1
- package/dist/cjs/ws-api/ws-api.js.map +1 -1
- package/dist/esm/amount-calculator/amount-calculator.js +38 -0
- package/dist/esm/amount-calculator/amount-calculator.js.map +1 -0
- package/dist/esm/{auction-calculator → amount-calculator/auction-calculator}/auction-calculator.js +16 -17
- package/dist/esm/amount-calculator/auction-calculator/auction-calculator.js.map +1 -0
- package/dist/esm/amount-calculator/auction-calculator/index.js +2 -0
- package/dist/esm/amount-calculator/auction-calculator/index.js.map +1 -0
- package/dist/esm/api/orders/orders.api.js.map +1 -1
- package/dist/esm/api/orders/orders.request.js.map +1 -1
- package/dist/esm/api/pagination.js.map +1 -1
- package/dist/esm/api/params.js.map +1 -1
- package/dist/esm/api/quoter/quote/order-params.js.map +1 -1
- package/dist/esm/api/quoter/quote/quote.js +9 -18
- package/dist/esm/api/quoter/quote/quote.js.map +1 -1
- package/dist/esm/api/quoter/quoter-custom-preset.request.js +1 -1
- package/dist/esm/api/quoter/quoter-custom-preset.request.js.map +1 -1
- package/dist/esm/api/quoter/quoter.api.js.map +1 -1
- package/dist/esm/api/quoter/quoter.request.js.map +1 -1
- package/dist/esm/connector/http/axios-provider.connector.js.map +1 -1
- package/dist/esm/connector/ws/websocket-client.connector.js.map +1 -1
- package/dist/esm/constants.js +0 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/fusion-order/auction-details/auction-details.js +19 -11
- package/dist/esm/fusion-order/auction-details/auction-details.js.map +1 -1
- package/dist/esm/fusion-order/constants.js +1 -2
- package/dist/esm/fusion-order/constants.js.map +1 -1
- package/dist/esm/fusion-order/fusion-extension.js +116 -19
- package/dist/esm/fusion-order/fusion-extension.js.map +1 -1
- package/dist/esm/fusion-order/fusion-order.js +42 -34
- package/dist/esm/fusion-order/fusion-order.js.map +1 -1
- package/dist/esm/fusion-order/index.js +2 -1
- package/dist/esm/fusion-order/index.js.map +1 -1
- package/dist/esm/fusion-order/source-track.js.map +1 -1
- package/dist/esm/fusion-order/whitelist/index.js +2 -0
- package/dist/esm/fusion-order/whitelist/index.js.map +1 -0
- package/dist/esm/fusion-order/whitelist/types.js.map +1 -0
- package/dist/esm/fusion-order/whitelist/whitelist.js +113 -0
- package/dist/esm/fusion-order/whitelist/whitelist.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/sdk/sdk.js.map +1 -1
- package/dist/esm/sdk/utils.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/utils/types.js +2 -0
- package/dist/esm/utils/types.js.map +1 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/validations.js +1 -1
- package/dist/esm/validations.js.map +1 -1
- package/dist/esm/ws-api/active-websocket-orders-api.js.map +1 -1
- package/dist/esm/ws-api/rpc-websocket-api.js.map +1 -1
- package/dist/esm/ws-api/url.js.map +1 -1
- package/dist/esm/ws-api/ws-api.js.map +1 -1
- package/dist/types/src/amount-calculator/amount-calculator.d.ts +15 -0
- package/dist/types/src/{auction-calculator → amount-calculator/auction-calculator}/auction-calculator.d.ts +6 -6
- package/dist/types/src/{auction-calculator → amount-calculator/auction-calculator}/index.d.ts +0 -1
- package/dist/types/src/api/quoter/quote/quote.d.ts +1 -1
- package/dist/types/src/constants.d.ts +1 -2
- package/dist/types/src/fusion-order/auction-details/auction-details.d.ts +3 -0
- package/dist/types/src/fusion-order/constants.d.ts +0 -1
- package/dist/types/src/fusion-order/fusion-extension.d.ts +18 -6
- package/dist/types/src/fusion-order/fusion-order.d.ts +14 -13
- package/dist/types/src/fusion-order/index.d.ts +2 -1
- package/dist/types/src/fusion-order/whitelist/index.d.ts +1 -0
- package/dist/types/src/fusion-order/whitelist/types.d.ts +4 -0
- package/dist/types/src/fusion-order/whitelist/whitelist.d.ts +25 -0
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/utils/types.d.ts +3 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +27 -25
- package/dist/cjs/auction-calculator/auction-calculator.js.map +0 -1
- package/dist/cjs/auction-calculator/constants.js +0 -5
- package/dist/cjs/auction-calculator/constants.js.map +0 -1
- package/dist/cjs/auction-calculator/index.js.map +0 -1
- package/dist/cjs/fusion-order/settlement-post-interaction-data/index.js +0 -6
- package/dist/cjs/fusion-order/settlement-post-interaction-data/index.js.map +0 -1
- package/dist/cjs/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js +0 -153
- package/dist/cjs/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js.map +0 -1
- package/dist/cjs/fusion-order/settlement-post-interaction-data/types.js.map +0 -1
- package/dist/esm/auction-calculator/auction-calculator.js.map +0 -1
- package/dist/esm/auction-calculator/constants.js +0 -2
- package/dist/esm/auction-calculator/constants.js.map +0 -1
- package/dist/esm/auction-calculator/index.js +0 -3
- package/dist/esm/auction-calculator/index.js.map +0 -1
- package/dist/esm/fusion-order/settlement-post-interaction-data/index.js +0 -3
- package/dist/esm/fusion-order/settlement-post-interaction-data/index.js.map +0 -1
- package/dist/esm/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js +0 -148
- package/dist/esm/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js.map +0 -1
- package/dist/esm/fusion-order/settlement-post-interaction-data/types.js.map +0 -1
- package/dist/types/src/auction-calculator/constants.d.ts +0 -1
- package/dist/types/src/fusion-order/settlement-post-interaction-data/index.d.ts +0 -2
- package/dist/types/src/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.d.ts +0 -22
- package/dist/types/src/fusion-order/settlement-post-interaction-data/types.d.ts +0 -16
- /package/dist/cjs/fusion-order/{settlement-post-interaction-data → whitelist}/types.js +0 -0
- /package/dist/esm/fusion-order/{settlement-post-interaction-data → whitelist}/types.js +0 -0
|
@@ -3,24 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FusionExtension = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
6
|
+
const byte_utils_1 = require("@1inch/byte-utils");
|
|
6
7
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
7
8
|
const auction_details_1 = require("./auction-details");
|
|
8
|
-
const
|
|
9
|
+
const whitelist_1 = require("./whitelist/whitelist");
|
|
9
10
|
class FusionExtension {
|
|
10
|
-
constructor(address, auctionDetails,
|
|
11
|
+
constructor(address, auctionDetails, whitelist, extra) {
|
|
11
12
|
this.address = address;
|
|
12
13
|
this.auctionDetails = auctionDetails;
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
15
|
-
this.builder = new limit_order_sdk_1.ExtensionBuilder();
|
|
16
|
-
const detailsBytes = this.auctionDetails.encode();
|
|
17
|
-
this.builder
|
|
18
|
-
.withMakingAmountData(this.address, detailsBytes)
|
|
19
|
-
.withTakingAmountData(this.address, detailsBytes)
|
|
20
|
-
.withPostInteraction(new limit_order_sdk_1.Interaction(this.address, this.postInteractionData.encode()));
|
|
21
|
-
if (makerPermit) {
|
|
22
|
-
this.builder.withMakerPermit(makerPermit.target, makerPermit.data);
|
|
23
|
-
}
|
|
14
|
+
this.whitelist = whitelist;
|
|
15
|
+
this.extra = extra;
|
|
24
16
|
}
|
|
25
17
|
static decode(bytes) {
|
|
26
18
|
const extension = limit_order_sdk_1.Extension.decode(bytes);
|
|
@@ -30,16 +22,121 @@ class FusionExtension {
|
|
|
30
22
|
const settlementContract = limit_order_sdk_1.Address.fromFirstBytes(extension.makingAmountData);
|
|
31
23
|
(0, assert_1.default)(limit_order_sdk_1.Address.fromFirstBytes(extension.takingAmountData).equal(settlementContract) &&
|
|
32
24
|
limit_order_sdk_1.Address.fromFirstBytes(extension.postInteraction).equal(settlementContract), 'Invalid extension, all calls should be to the same address');
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
25
|
+
(0, assert_1.default)(extension.takingAmountData == extension.makingAmountData, 'Invalid extension, taking amount data must be equal to making amount data');
|
|
26
|
+
const interactionBytes = byte_utils_1.BytesIter.HexString(extension.postInteraction);
|
|
27
|
+
interactionBytes.nextUint160();
|
|
28
|
+
const flags = byte_utils_1.BN.fromHex(interactionBytes.nextUint8());
|
|
29
|
+
const integratorFeeRecipient = new limit_order_sdk_1.Address(interactionBytes.nextUint160());
|
|
30
|
+
const protocolFeeRecipient = new limit_order_sdk_1.Address(interactionBytes.nextUint160());
|
|
31
|
+
const customReceiver = flags.getBit(FusionExtension.CUSTOM_RECEIVER_FLAG_BIT)
|
|
32
|
+
? new limit_order_sdk_1.Address(interactionBytes.nextUint160())
|
|
33
|
+
: undefined;
|
|
34
|
+
const interactionData = parseAmountData(interactionBytes);
|
|
35
|
+
const amountBytes = byte_utils_1.BytesIter.HexString(extension.makingAmountData);
|
|
36
|
+
amountBytes.nextUint160();
|
|
37
|
+
const auctionDetails = auction_details_1.AuctionDetails.decodeFrom(amountBytes);
|
|
38
|
+
const amountData = parseAmountData(amountBytes);
|
|
39
|
+
const makerPermit = extension.hasMakerPermit
|
|
36
40
|
? limit_order_sdk_1.Interaction.decode(extension.makerPermit)
|
|
37
41
|
: undefined;
|
|
38
|
-
|
|
42
|
+
(0, assert_1.default)(amountData.fees.integratorFee.value ===
|
|
43
|
+
interactionData.fees.integratorFee.value, `invalid extension: integrator fee must be same in interaction data and in amount data`);
|
|
44
|
+
(0, assert_1.default)(amountData.fees.resolverFee.value ===
|
|
45
|
+
interactionData.fees.resolverFee.value, `invalid extension: resolver fee must be same in interaction data and in amount data`);
|
|
46
|
+
(0, assert_1.default)(amountData.fees.whitelistDiscount.equal(interactionData.fees.whitelistDiscount), `invalid extension: whitelistDiscount must be same in interaction data and in amount data`);
|
|
47
|
+
(0, assert_1.default)(amountData.fees.integratorShare.value ===
|
|
48
|
+
interactionData.fees.integratorShare.value, `invalid extension: integrator share must be same in interaction data and in amount data`);
|
|
49
|
+
(0, assert_1.default)(interactionData.whitelist.equal(amountData.whitelist), 'whitelist must be same in interaction data and in amount data');
|
|
50
|
+
const hasFees = !integratorFeeRecipient.isZero() || !protocolFeeRecipient.isZero();
|
|
51
|
+
const fees = hasFees
|
|
52
|
+
? new limit_order_sdk_1.FeeTakerExt.Fees(new limit_order_sdk_1.FeeTakerExt.ResolverFee(protocolFeeRecipient, interactionData.fees.resolverFee, interactionData.fees.whitelistDiscount), new limit_order_sdk_1.FeeTakerExt.IntegratorFee(integratorFeeRecipient, protocolFeeRecipient, interactionData.fees.integratorFee, interactionData.fees.integratorShare))
|
|
53
|
+
: undefined;
|
|
54
|
+
return new FusionExtension(settlementContract, auctionDetails, interactionData.whitelist, {
|
|
55
|
+
makerPermit,
|
|
56
|
+
fees,
|
|
57
|
+
customReceiver
|
|
58
|
+
});
|
|
39
59
|
}
|
|
40
60
|
build() {
|
|
41
|
-
|
|
61
|
+
const amountData = this.buildAmountGetterData(true);
|
|
62
|
+
const builder = new limit_order_sdk_1.ExtensionBuilder()
|
|
63
|
+
.withMakingAmountData(this.address, amountData)
|
|
64
|
+
.withTakingAmountData(this.address, amountData)
|
|
65
|
+
.withPostInteraction(new limit_order_sdk_1.Interaction(this.address, this.buildInteractionData()));
|
|
66
|
+
if (this.extra?.makerPermit) {
|
|
67
|
+
builder.withMakerPermit(this.extra?.makerPermit.target, this.extra?.makerPermit.data);
|
|
68
|
+
}
|
|
69
|
+
return builder.build();
|
|
70
|
+
}
|
|
71
|
+
buildInteractionData() {
|
|
72
|
+
const customReceiver = this.extra?.customReceiver || limit_order_sdk_1.Address.ZERO_ADDRESS;
|
|
73
|
+
const flags = new byte_utils_1.BN(0n).setBit(FusionExtension.CUSTOM_RECEIVER_FLAG_BIT, Boolean(!customReceiver.isZero()));
|
|
74
|
+
const integratorReceiver = this.extra?.fees?.integrator.integrator || limit_order_sdk_1.Address.ZERO_ADDRESS;
|
|
75
|
+
const protocolReceiver = this.extra?.fees?.protocol || limit_order_sdk_1.Address.ZERO_ADDRESS;
|
|
76
|
+
const builder = new byte_utils_1.BytesBuilder()
|
|
77
|
+
.addUint8(flags)
|
|
78
|
+
.addAddress(integratorReceiver.toString())
|
|
79
|
+
.addAddress(protocolReceiver.toString());
|
|
80
|
+
if (!customReceiver.isZero()) {
|
|
81
|
+
builder.addAddress(customReceiver.toString());
|
|
82
|
+
}
|
|
83
|
+
builder.addBytes(this.buildAmountGetterData(false));
|
|
84
|
+
return builder.asHex();
|
|
85
|
+
}
|
|
86
|
+
buildAmountGetterData(withAuction) {
|
|
87
|
+
const builder = new byte_utils_1.BytesBuilder();
|
|
88
|
+
if (withAuction) {
|
|
89
|
+
this.auctionDetails.encodeInto(builder);
|
|
90
|
+
}
|
|
91
|
+
const integrator = {
|
|
92
|
+
fee: this.extra?.fees?.integrator.fee.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5) || 0,
|
|
93
|
+
share: this.extra?.fees?.integrator.share.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) ||
|
|
94
|
+
0
|
|
95
|
+
};
|
|
96
|
+
const resolverFee = this.extra?.fees?.resolver.fee.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5) || 0;
|
|
97
|
+
const whitelistDiscount = this.extra?.fees?.resolver.whitelistDiscount || limit_order_sdk_1.Bps.ZERO;
|
|
98
|
+
builder
|
|
99
|
+
.addUint16(BigInt(integrator.fee))
|
|
100
|
+
.addUint8(BigInt(integrator.share))
|
|
101
|
+
.addUint16(BigInt(resolverFee))
|
|
102
|
+
.addUint8(BigInt(Number(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) -
|
|
103
|
+
whitelistDiscount.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2)));
|
|
104
|
+
this.whitelist.encodeInto(builder);
|
|
105
|
+
return builder.asHex();
|
|
106
|
+
}
|
|
107
|
+
getFeesForTaker(taker) {
|
|
108
|
+
const whitelistDiscount = this.extra?.fees?.resolver.whitelistDiscount.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) || 0;
|
|
109
|
+
const discountNumerator = this.whitelist.isWhitelisted(taker)
|
|
110
|
+
? (Number(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) - whitelistDiscount) /
|
|
111
|
+
Number(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2)
|
|
112
|
+
: 1;
|
|
113
|
+
const resolverFee = discountNumerator *
|
|
114
|
+
(this.extra?.fees?.resolver.fee.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5) || 0);
|
|
115
|
+
const resolverFeeBN = BigInt(resolverFee);
|
|
116
|
+
const integratorFeeBN = BigInt(this.extra?.fees?.integrator.fee.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5) || 0);
|
|
117
|
+
return {
|
|
118
|
+
resolverFee: resolverFeeBN,
|
|
119
|
+
integratorFee: integratorFeeBN
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
getTakingAmountWithFee(taker, orderTakingAmount) {
|
|
123
|
+
const fees = this.getFeesForTaker(taker);
|
|
124
|
+
return (0, limit_order_sdk_1.mulDiv)(orderTakingAmount, limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5 + fees.resolverFee + fees.integratorFee, limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5, limit_order_sdk_1.Rounding.Ceil);
|
|
42
125
|
}
|
|
43
126
|
}
|
|
44
127
|
exports.FusionExtension = FusionExtension;
|
|
128
|
+
FusionExtension.CUSTOM_RECEIVER_FLAG_BIT = 0n;
|
|
129
|
+
function parseAmountData(iter) {
|
|
130
|
+
const fees = {
|
|
131
|
+
integratorFee: limit_order_sdk_1.Bps.fromFraction(Number(iter.nextUint16()), limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5),
|
|
132
|
+
integratorShare: limit_order_sdk_1.Bps.fromFraction(Number(iter.nextUint8()), limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2),
|
|
133
|
+
resolverFee: limit_order_sdk_1.Bps.fromFraction(Number(iter.nextUint16()), limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5),
|
|
134
|
+
whitelistDiscount: limit_order_sdk_1.Bps.fromFraction(Number(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) - Number(iter.nextUint8()), limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2)
|
|
135
|
+
};
|
|
136
|
+
const whitelist = whitelist_1.Whitelist.decodeFrom(iter);
|
|
137
|
+
return {
|
|
138
|
+
fees,
|
|
139
|
+
whitelist
|
|
140
|
+
};
|
|
141
|
+
}
|
|
45
142
|
//# sourceMappingURL=fusion-extension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":";;;;AAAA,4DAS+B;AAC/B,kDAA6D;AAE7D,4DAA2B;AAC3B,uDAAgD;AAChD,qDAA+C;AAE/C,MAAa,eAAe;IAOxB,YACoB,OAAgB,EAChB,cAA8B,EAC9B,SAAoB,EACpB,KAIf;QAPe,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,cAAS,GAAT,SAAS,CAAW;QACpB,UAAK,GAAL,KAAK,CAIpB;IACF,CAAC;IAOG,MAAM,CAAC,MAAM,CAAC,KAAa;QAC9B,MAAM,SAAS,GAAG,2BAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEzC,OAAO,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IACnD,CAAC;IAKM,MAAM,CAAC,aAAa,CAAC,SAAoB;QAC5C,MAAM,kBAAkB,GAAG,yBAAO,CAAC,cAAc,CAC7C,SAAS,CAAC,gBAAgB,CAC7B,CAAA;QAED,IAAA,gBAAM,EACF,yBAAO,CAAC,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK,CACpD,kBAAkB,CACrB;YACG,yBAAO,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CACnD,kBAAkB,CACrB,EACL,4DAA4D,CAC/D,CAAA;QAED,IAAA,gBAAM,EACF,SAAS,CAAC,gBAAgB,IAAI,SAAS,CAAC,gBAAgB,EACxD,2EAA2E,CAC9E,CAAA;QAGD,MAAM,gBAAgB,GAAG,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QACvE,gBAAgB,CAAC,WAAW,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,eAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAA;QACtD,MAAM,sBAAsB,GAAG,IAAI,yBAAO,CACtC,gBAAgB,CAAC,WAAW,EAAE,CACjC,CAAA;QACD,MAAM,oBAAoB,GAAG,IAAI,yBAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAA;QAExE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAC/B,eAAe,CAAC,wBAAwB,CAC3C;YACG,CAAC,CAAC,IAAI,yBAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,eAAe,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAA;QAIzD,MAAM,WAAW,GAAG,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;QACnE,WAAW,CAAC,WAAW,EAAE,CAAA;QAEzB,MAAM,cAAc,GAAG,gCAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QAI/C,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc;YACxC,CAAC,CAAC,6BAAW,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAA;QAEf,IAAA,gBAAM,EACF,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK;YAC/B,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAC5C,uFAAuF,CAC1F,CAAA;QACD,IAAA,gBAAM,EACF,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAC1C,qFAAqF,CACxF,CAAA;QAED,IAAA,gBAAM,EACF,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CACnC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CACzC,EACD,0FAA0F,CAC7F,CAAA;QAED,IAAA,gBAAM,EACF,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK;YACjC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAC9C,yFAAyF,CAC5F,CAAA;QAED,IAAA,gBAAM,EACF,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EACrD,+DAA+D,CAClE,CAAA;QAED,MAAM,OAAO,GACT,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAA;QAEtE,MAAM,IAAI,GAAG,OAAO;YAChB,CAAC,CAAC,IAAI,6BAAW,CAAC,IAAI,CAChB,IAAI,6BAAW,CAAC,WAAW,CACvB,oBAAoB,EACpB,eAAe,CAAC,IAAI,CAAC,WAAW,EAChC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CACzC,EACD,IAAI,6BAAW,CAAC,aAAa,CACzB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,CAAC,IAAI,CAAC,aAAa,EAClC,eAAe,CAAC,IAAI,CAAC,eAAe,CACvC,CACJ;YACH,CAAC,CAAC,SAAS,CAAA;QAEf,OAAO,IAAI,eAAe,CACtB,kBAAkB,EAClB,cAAc,EACd,eAAe,CAAC,SAAS,EACzB;YACI,WAAW;YACX,IAAI;YACJ,cAAc;SACjB,CACJ,CAAA;IACL,CAAC;IAEM,KAAK;QACR,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAEnD,MAAM,OAAO,GAAG,IAAI,kCAAgB,EAAE;aACjC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;aAC9C,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;aAC9C,mBAAmB,CAChB,IAAI,6BAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAC7D,CAAA;QAEL,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YAC1B,OAAO,CAAC,eAAe,CACnB,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAC9B,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAC/B,CAAA;QACL,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAeO,oBAAoB;QACxB,MAAM,cAAc,GAChB,IAAI,CAAC,KAAK,EAAE,cAAc,IAAI,yBAAO,CAAC,YAAY,CAAA;QAEtD,MAAM,KAAK,GAAG,IAAI,eAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAC3B,eAAe,CAAC,wBAAwB,EACxC,OAAO,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CACpC,CAAA;QAED,MAAM,kBAAkB,GACpB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,IAAI,yBAAO,CAAC,YAAY,CAAA;QACnE,MAAM,gBAAgB,GAClB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,IAAI,yBAAO,CAAC,YAAY,CAAA;QAEtD,MAAM,OAAO,GAAG,IAAI,yBAAY,EAAE;aAC7B,QAAQ,CAAC,KAAK,CAAC;aACf,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;aACzC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE5C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;QAEnD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAcO,qBAAqB,CAAC,WAAoB;QAC9C,MAAM,OAAO,GAAG,IAAI,yBAAY,EAAE,CAAA;QAElC,IAAI,WAAW,EAAE,CAAC;YAEd,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,UAAU,GAAG;YACf,GAAG,EACC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC/E,KAAK,EACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxE,CAAC;SACR,CAAA;QAED,MAAM,WAAW,GACb,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC7E,MAAM,iBAAiB,GACnB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,iBAAiB,IAAI,qBAAG,CAAC,IAAI,CAAA;QAE5D,OAAO;aACF,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACjC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAClC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;aAC9B,QAAQ,CACL,MAAM,CAEF,MAAM,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7B,iBAAiB,CAAC,UAAU,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC9D,CACJ,CAAA;QAEL,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAElC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAEO,eAAe,CAAC,KAAc;QAIlC,MAAM,iBAAiB,GACnB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CACnD,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAC5B,IAAI,CAAC,CAAA;QAEV,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACzD,CAAC,CAAC,CAAC,MAAM,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC;gBACvD,MAAM,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC,CAAC,CAAC,CAAC,CAAA;QAEP,MAAM,WAAW,GACb,iBAAiB;YACjB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAE/E,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;QACzC,MAAM,eAAe,GAAG,MAAM,CAC1B,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9E,CAAA;QAED,OAAO;YACH,WAAW,EAAE,aAAa;YAC1B,aAAa,EAAE,eAAe;SACjC,CAAA;IACL,CAAC;IAQO,sBAAsB,CAC1B,KAAc,EACd,iBAAyB;QAEzB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAExC,OAAO,IAAA,wBAAM,EACT,iBAAiB,EACjB,6BAAW,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,EACjE,6BAAW,CAAC,IAAI,CAAC,QAAQ,EACzB,0BAAQ,CAAC,IAAI,CAChB,CAAA;IACL,CAAC;;AA7SL,0CA8SC;AAzSkB,wCAAwB,GAAG,EAAE,CAAA;AA2ShD,SAAS,eAAe,CAAC,IAAuB;IAS5C,MAAM,IAAI,GAAG;QACT,aAAa,EAAE,qBAAG,CAAC,YAAY,CAC3B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EACzB,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAC5B;QACD,eAAe,EAAE,qBAAG,CAAC,YAAY,CAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EACxB,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAC5B;QACD,WAAW,EAAE,qBAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnF,iBAAiB,EAAE,qBAAG,CAAC,YAAY,CAC/B,MAAM,CAAC,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAC5D,6BAAW,CAAC,IAAI,CAAC,QAAQ,CAC5B;KACJ,CAAA;IAED,MAAM,SAAS,GAAG,qBAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAE5C,OAAO;QACH,IAAI;QACJ,SAAS;KACZ,CAAA;AACL,CAAC"}
|
|
@@ -5,17 +5,20 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
6
6
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
7
7
|
const fusion_extension_1 = require("./fusion-extension");
|
|
8
|
-
const auction_details_1 = require("./auction-details");
|
|
9
|
-
const settlement_post_interaction_data_1 = require("./settlement-post-interaction-data");
|
|
10
8
|
const source_track_1 = require("./source-track");
|
|
11
|
-
const auction_calculator_1 = require("../auction-calculator");
|
|
9
|
+
const auction_calculator_1 = require("../amount-calculator/auction-calculator");
|
|
12
10
|
const constants_1 = require("../constants");
|
|
13
11
|
const amounts_1 = require("../utils/amounts");
|
|
14
12
|
const time_1 = require("../utils/time");
|
|
13
|
+
const amount_calculator_1 = require("../amount-calculator/amount-calculator");
|
|
15
14
|
class FusionOrder {
|
|
16
|
-
constructor(settlementExtensionContract, orderInfo, auctionDetails,
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
constructor(settlementExtensionContract, orderInfo, auctionDetails, whitelist, extra = FusionOrder.defaultExtra, extension = new fusion_extension_1.FusionExtension(settlementExtensionContract, auctionDetails, whitelist, {
|
|
16
|
+
makerPermit: extra.permit
|
|
17
|
+
? new limit_order_sdk_1.Interaction(orderInfo.makerAsset, extra.permit)
|
|
18
|
+
: undefined,
|
|
19
|
+
customReceiver: orderInfo.receiver,
|
|
20
|
+
fees: extra?.fees
|
|
21
|
+
})) {
|
|
19
22
|
this.settlementExtensionContract = settlementExtensionContract;
|
|
20
23
|
const allowPartialFills = extra.allowPartialFills ??
|
|
21
24
|
FusionOrder.defaultExtra.allowPartialFills;
|
|
@@ -45,7 +48,7 @@ class FusionOrder {
|
|
|
45
48
|
if (extra.nonce !== undefined) {
|
|
46
49
|
makerTraits.withNonce(extra.nonce);
|
|
47
50
|
}
|
|
48
|
-
const receiver =
|
|
51
|
+
const receiver = extra.fees
|
|
49
52
|
? settlementExtensionContract
|
|
50
53
|
: orderInfo.receiver;
|
|
51
54
|
const builtExtension = extension.build();
|
|
@@ -107,13 +110,7 @@ class FusionOrder {
|
|
|
107
110
|
return this.inner.salt;
|
|
108
111
|
}
|
|
109
112
|
static new(settlementExtension, orderInfo, details, extra) {
|
|
110
|
-
return new FusionOrder(settlementExtension, orderInfo, details.auction,
|
|
111
|
-
bankFee: details.fees?.bankFee || 0n,
|
|
112
|
-
integratorFee: details.fees?.integratorFee,
|
|
113
|
-
whitelist: details.whitelist,
|
|
114
|
-
resolvingStartTime: details.resolvingStartTime ?? (0, time_1.now)(),
|
|
115
|
-
customReceiver: orderInfo.receiver
|
|
116
|
-
}), extra);
|
|
113
|
+
return new FusionOrder(settlementExtension, orderInfo, details.auction, details.whitelist, extra);
|
|
117
114
|
}
|
|
118
115
|
static fromDataAndExtension(order, extension) {
|
|
119
116
|
const settlementContract = limit_order_sdk_1.Address.fromFirstBytes(extension.makingAmountData);
|
|
@@ -122,8 +119,7 @@ class FusionOrder {
|
|
|
122
119
|
const makerTraits = new limit_order_sdk_1.MakerTraits(BigInt(order.makerTraits));
|
|
123
120
|
(0, assert_1.default)(!makerTraits.isPrivate(), 'fusion order can not be private');
|
|
124
121
|
(0, assert_1.default)(makerTraits.hasPostInteraction(), 'post-interaction must be enabled');
|
|
125
|
-
const auctionDetails =
|
|
126
|
-
const postInteractionData = settlement_post_interaction_data_1.SettlementPostInteractionData.fromExtension(extension);
|
|
122
|
+
const { auctionDetails, whitelist, extra } = fusion_extension_1.FusionExtension.fromExtension(extension);
|
|
127
123
|
const deadline = makerTraits.expiration();
|
|
128
124
|
const orderExpirationDelay = deadline === null
|
|
129
125
|
? undefined
|
|
@@ -131,12 +127,12 @@ class FusionOrder {
|
|
|
131
127
|
return new FusionOrder(settlementContract, {
|
|
132
128
|
salt: BigInt(order.salt) >> 160n,
|
|
133
129
|
maker: new limit_order_sdk_1.Address(order.maker),
|
|
134
|
-
receiver:
|
|
130
|
+
receiver: extra?.customReceiver,
|
|
135
131
|
makerAsset: new limit_order_sdk_1.Address(order.makerAsset),
|
|
136
132
|
takerAsset: new limit_order_sdk_1.Address(order.takerAsset),
|
|
137
133
|
makingAmount: BigInt(order.makingAmount),
|
|
138
134
|
takingAmount: BigInt(order.takingAmount)
|
|
139
|
-
}, auctionDetails,
|
|
135
|
+
}, auctionDetails, whitelist, {
|
|
140
136
|
allowMultipleFills: makerTraits.isMultipleFillsAllowed(),
|
|
141
137
|
allowPartialFills: makerTraits.isPartialFillAllowed(),
|
|
142
138
|
enablePermit2: makerTraits.isPermit2(),
|
|
@@ -145,7 +141,8 @@ class FusionOrder {
|
|
|
145
141
|
? undefined
|
|
146
142
|
: limit_order_sdk_1.Interaction.decode(extension.makerPermit).data,
|
|
147
143
|
unwrapWETH: makerTraits.isNativeUnwrapEnabled(),
|
|
148
|
-
orderExpirationDelay
|
|
144
|
+
orderExpirationDelay,
|
|
145
|
+
fees: extra?.fees
|
|
149
146
|
});
|
|
150
147
|
}
|
|
151
148
|
build() {
|
|
@@ -158,35 +155,46 @@ class FusionOrder {
|
|
|
158
155
|
return this.inner.getTypedData(chainId);
|
|
159
156
|
}
|
|
160
157
|
getCalculator() {
|
|
161
|
-
return auction_calculator_1.AuctionCalculator.fromAuctionData(this.fusionExtension.
|
|
158
|
+
return auction_calculator_1.AuctionCalculator.fromAuctionData(this.fusionExtension.auctionDetails);
|
|
162
159
|
}
|
|
163
|
-
calcTakingAmount(makingAmount, time, blockBaseFee = 0n) {
|
|
160
|
+
calcTakingAmount(taker, makingAmount, time, blockBaseFee = 0n) {
|
|
164
161
|
const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
162
|
+
return this.getAmountCalculator().getTakingAmount(taker, takingAmount, time, blockBaseFee);
|
|
163
|
+
}
|
|
164
|
+
getResolverFee(taker, makingAmount = this.makingAmount) {
|
|
165
|
+
const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
|
|
166
|
+
return (this.getAmountCalculator().getResolverFee(taker, takingAmount) ?? 0n);
|
|
167
|
+
}
|
|
168
|
+
getIntegratorFee(taker, makingAmount = this.makingAmount) {
|
|
169
|
+
const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
|
|
170
|
+
return (this.getAmountCalculator().getIntegratorFee(taker, takingAmount) ??
|
|
171
|
+
0n);
|
|
172
|
+
}
|
|
173
|
+
getProtocolShareOfIntegratorFee(taker, makingAmount = this.makingAmount) {
|
|
174
|
+
const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
|
|
175
|
+
return (this.getAmountCalculator().getProtocolShareOfIntegratorFee(taker, takingAmount) ?? 0n);
|
|
176
|
+
}
|
|
177
|
+
getProtocolFee(taker, makingAmount = this.makingAmount) {
|
|
178
|
+
const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
|
|
179
|
+
return (this.getAmountCalculator().getProtocolFee(taker, takingAmount) ?? 0n);
|
|
168
180
|
}
|
|
169
181
|
canExecuteAt(executor, executionTime) {
|
|
170
|
-
return this.fusionExtension.
|
|
182
|
+
return this.fusionExtension.whitelist.canExecuteAt(executor, executionTime);
|
|
171
183
|
}
|
|
172
184
|
isExpiredAt(time) {
|
|
173
185
|
return time > this.deadline;
|
|
174
186
|
}
|
|
175
|
-
getResolverFee(filledMakingAmount) {
|
|
176
|
-
return ((this.fusionExtension.postInteractionData.bankFee *
|
|
177
|
-
FusionOrder._ORDER_FEE_BASE_POINTS *
|
|
178
|
-
filledMakingAmount) /
|
|
179
|
-
this.makingAmount);
|
|
180
|
-
}
|
|
181
187
|
isExclusiveResolver(wallet) {
|
|
182
|
-
return this.fusionExtension.
|
|
188
|
+
return this.fusionExtension.whitelist.isExclusiveResolver(wallet);
|
|
183
189
|
}
|
|
184
190
|
isExclusivityPeriod(time = (0, time_1.now)()) {
|
|
185
|
-
return this.fusionExtension.
|
|
191
|
+
return this.fusionExtension.whitelist.isExclusivityPeriod(time);
|
|
192
|
+
}
|
|
193
|
+
getAmountCalculator() {
|
|
194
|
+
return amount_calculator_1.AmountCalculator.fromExtension(this.fusionExtension);
|
|
186
195
|
}
|
|
187
196
|
}
|
|
188
197
|
exports.FusionOrder = FusionOrder;
|
|
189
|
-
FusionOrder._ORDER_FEE_BASE_POINTS = 10n ** 15n;
|
|
190
198
|
FusionOrder.defaultExtra = {
|
|
191
199
|
allowPartialFills: true,
|
|
192
200
|
allowMultipleFills: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusion-order.js","sourceRoot":"","sources":["../../../src/fusion-order/fusion-order.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"fusion-order.js","sourceRoot":"","sources":["../../../src/fusion-order/fusion-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CHAIN_TO_WRAPPER = void 0;
|
|
3
|
+
exports.FeeTakerExt = exports.CHAIN_TO_WRAPPER = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
tslib_1.__exportStar(require("./fusion-order"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./auction-details"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./
|
|
7
|
+
tslib_1.__exportStar(require("./whitelist"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./fusion-extension"), exports);
|
|
9
9
|
var constants_1 = require("./constants");
|
|
10
10
|
Object.defineProperty(exports, "CHAIN_TO_WRAPPER", { enumerable: true, get: function () { return constants_1.CHAIN_TO_WRAPPER; } });
|
|
11
|
+
var limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
12
|
+
Object.defineProperty(exports, "FeeTakerExt", { enumerable: true, get: function () { return limit_order_sdk_1.FeeTakerExt; } });
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fusion-order/index.ts"],"names":[],"mappings":";;;;AAAA,yDAA8B;AAC9B,4DAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fusion-order/index.ts"],"names":[],"mappings":";;;;AAAA,yDAA8B;AAC9B,4DAAiC;AACjC,sDAA2B;AAC3B,6DAAkC;AAClC,yCAA4C;AAApC,6GAAA,gBAAgB,OAAA;AACxB,0DAAkD;AAA1C,8GAAA,WAAW,OAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.injectTrackCode =
|
|
3
|
+
exports.injectTrackCode = injectTrackCode;
|
|
4
4
|
const byte_utils_1 = require("@1inch/byte-utils");
|
|
5
5
|
const ethers_1 = require("ethers");
|
|
6
6
|
const utils_1 = require("../utils");
|
|
@@ -25,5 +25,4 @@ function injectTrackCode(salt, source) {
|
|
|
25
25
|
const track = source ? getTrackCodeForSource(source) : 0n;
|
|
26
26
|
return new byte_utils_1.BN(salt).setMask(TRACK_CODE_MASK, track).value;
|
|
27
27
|
}
|
|
28
|
-
exports.injectTrackCode = injectTrackCode;
|
|
29
28
|
//# sourceMappingURL=source-track.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-track.js","sourceRoot":"","sources":["../../../src/fusion-order/source-track.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source-track.js","sourceRoot":"","sources":["../../../src/fusion-order/source-track.ts"],"names":[],"mappings":";;AA2BA,0CAIC;AA/BD,kDAA6C;AAC7C,mCAAyB;AACzB,oCAA8B;AAC9B,gDAA0C;AAE1C,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE/C,SAAS,qBAAqB,CAAC,MAAc;IACzC,IAAI,CAAC,IAAA,yBAAW,EAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc;IAC5B,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/fusion-order/whitelist/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/fusion-order/whitelist/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Whitelist = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const byte_utils_1 = require("@1inch/byte-utils");
|
|
6
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
7
|
+
const constants_1 = require("../../constants");
|
|
8
|
+
const time_1 = require("../../utils/time");
|
|
9
|
+
const utils_1 = require("../../utils");
|
|
10
|
+
class Whitelist {
|
|
11
|
+
constructor(resolvingStartTime, whitelist) {
|
|
12
|
+
this.resolvingStartTime = resolvingStartTime;
|
|
13
|
+
this.whitelist = whitelist;
|
|
14
|
+
(0, assert_1.default)(whitelist.length, 'whitelist can not be empty');
|
|
15
|
+
whitelist.forEach((w) => {
|
|
16
|
+
(0, assert_1.default)(w.delay < constants_1.UINT_16_MAX, 'too big diff between timestamps');
|
|
17
|
+
(0, assert_1.default)(w.delay >= 0n, 'delay can not be negative');
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
static decodeFrom(bytes) {
|
|
21
|
+
const whitelist = [];
|
|
22
|
+
const resolvingStartTime = BigInt(bytes.nextUint32());
|
|
23
|
+
const size = BigInt(bytes.nextUint8());
|
|
24
|
+
for (let i = 0; i < size; i++) {
|
|
25
|
+
const addressHalf = BigInt(bytes.nextBytes(10))
|
|
26
|
+
.toString(16)
|
|
27
|
+
.padStart(20, '0');
|
|
28
|
+
const delay = BigInt(bytes.nextUint16());
|
|
29
|
+
whitelist.push({
|
|
30
|
+
addressHalf,
|
|
31
|
+
delay
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return new Whitelist(resolvingStartTime, whitelist);
|
|
35
|
+
}
|
|
36
|
+
static decode(bytes) {
|
|
37
|
+
return Whitelist.decodeFrom(byte_utils_1.BytesIter.HexString(bytes));
|
|
38
|
+
}
|
|
39
|
+
static new(resolvingStartTime, whitelist) {
|
|
40
|
+
let sumDelay = 0n;
|
|
41
|
+
const _whitelist = whitelist
|
|
42
|
+
.map((d) => ({
|
|
43
|
+
addressHalf: d.address.toString().slice(-20),
|
|
44
|
+
allowFrom: d.allowFrom < resolvingStartTime
|
|
45
|
+
? resolvingStartTime
|
|
46
|
+
: d.allowFrom
|
|
47
|
+
}))
|
|
48
|
+
.sort((a, b) => Number(a.allowFrom - b.allowFrom))
|
|
49
|
+
.map((val) => {
|
|
50
|
+
const delay = val.allowFrom - resolvingStartTime - sumDelay;
|
|
51
|
+
sumDelay += delay;
|
|
52
|
+
return {
|
|
53
|
+
delay,
|
|
54
|
+
addressHalf: val.addressHalf
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
return new Whitelist(resolvingStartTime, _whitelist);
|
|
58
|
+
}
|
|
59
|
+
static fromNow(whitelist) {
|
|
60
|
+
return Whitelist.new((0, time_1.now)(), whitelist);
|
|
61
|
+
}
|
|
62
|
+
canExecuteAt(executor, executionTime) {
|
|
63
|
+
const addressHalf = executor.toString().slice(-20);
|
|
64
|
+
let allowedFrom = this.resolvingStartTime;
|
|
65
|
+
for (const whitelist of this.whitelist) {
|
|
66
|
+
allowedFrom += whitelist.delay;
|
|
67
|
+
if (addressHalf === whitelist.addressHalf) {
|
|
68
|
+
return executionTime >= allowedFrom;
|
|
69
|
+
}
|
|
70
|
+
else if (executionTime < allowedFrom) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
isExclusivityPeriod(time = (0, time_1.now)()) {
|
|
77
|
+
if (this.whitelist.length === 1) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
if (this.whitelist[0].delay === this.whitelist[1].delay) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
return time <= this.resolvingStartTime + this.whitelist[1].delay;
|
|
84
|
+
}
|
|
85
|
+
isExclusiveResolver(wallet) {
|
|
86
|
+
const addressHalf = wallet.toString().slice(-20);
|
|
87
|
+
if (this.whitelist.length === 1) {
|
|
88
|
+
return addressHalf === this.whitelist[0].addressHalf;
|
|
89
|
+
}
|
|
90
|
+
if (this.whitelist[0].delay === this.whitelist[1].delay) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
return addressHalf === this.whitelist[0].addressHalf;
|
|
94
|
+
}
|
|
95
|
+
isWhitelisted(address) {
|
|
96
|
+
const half = address.lastHalf();
|
|
97
|
+
return this.whitelist.some((w) => w.addressHalf === half);
|
|
98
|
+
}
|
|
99
|
+
encodeInto(builder = new byte_utils_1.BytesBuilder()) {
|
|
100
|
+
builder
|
|
101
|
+
.addUint32(this.resolvingStartTime)
|
|
102
|
+
.addUint8(BigInt(this.whitelist.length));
|
|
103
|
+
for (const wl of this.whitelist) {
|
|
104
|
+
builder.addBytes((0, utils_1.add0x)(wl.addressHalf)).addUint16(wl.delay);
|
|
105
|
+
}
|
|
106
|
+
return builder;
|
|
107
|
+
}
|
|
108
|
+
encode() {
|
|
109
|
+
return this.encodeInto().asHex();
|
|
110
|
+
}
|
|
111
|
+
equal(other) {
|
|
112
|
+
return (this.whitelist.length === other.whitelist.length &&
|
|
113
|
+
this.whitelist.every((val, i) => other.whitelist[i].delay === val.delay &&
|
|
114
|
+
other.whitelist[i].addressHalf === val.addressHalf));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.Whitelist = Whitelist;
|
|
118
|
+
//# sourceMappingURL=whitelist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whitelist.js","sourceRoot":"","sources":["../../../../src/fusion-order/whitelist/whitelist.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "getLimitOrderV4Domain", { enumerable: true, get:
|
|
|
15
15
|
Object.defineProperty(exports, "LimitOrderContract", { enumerable: true, get: function () { return limit_order_sdk_1.LimitOrderContract; } });
|
|
16
16
|
Object.defineProperty(exports, "MakerTraits", { enumerable: true, get: function () { return limit_order_sdk_1.MakerTraits; } });
|
|
17
17
|
tslib_1.__exportStar(require("./fusion-order/index"), exports);
|
|
18
|
-
tslib_1.__exportStar(require("./auction-calculator/index"), exports);
|
|
18
|
+
tslib_1.__exportStar(require("./amount-calculator/auction-calculator/index"), exports);
|
|
19
19
|
tslib_1.__exportStar(require("./connector/index"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./sdk/index"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./constants"), exports);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,0DAe+B;AAd3B,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;AAGlB,8GAAA,WAAW,OAAA;AAEf,+DAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,0DAe+B;AAd3B,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;AAGlB,8GAAA,WAAW,OAAA;AAEf,+DAAoC;AACpC,uFAA4D;AAC5D,4DAAiC;AACjC,sDAA2B;AAC3B,sDAA2B;AAC3B,kDAAuB;AACvB,0DAA+B;AAC/B,uDAA4B;AAC5B,wDAA6B;AAC7B,mDAAwB;AACxB,mDAAwB;AACxB,6BAUc;AATV,oGAAA,aAAa,OAAA;AAEb,qGAAA,cAAc,OAAA;AACd,gHAAA,yBAAyB,OAAA;AACzB,iGAAA,UAAU,OAAA;AACV,6FAAA,MAAM,OAAA;AACN,4FAAA,KAAK,OAAA;AAEL,kGAAA,WAAW,OAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.encodeCancelOrder =
|
|
3
|
+
exports.encodeCancelOrder = encodeCancelOrder;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const ethers_1 = require("ethers");
|
|
6
6
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
@@ -14,5 +14,4 @@ function encodeCancelOrder(hash, makerTraits) {
|
|
|
14
14
|
hash
|
|
15
15
|
]);
|
|
16
16
|
}
|
|
17
|
-
exports.encodeCancelOrder = encodeCancelOrder;
|
|
18
17
|
//# sourceMappingURL=cancel-order.encoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancel-order.encoder.js","sourceRoot":"","sources":["../../../../src/sdk/encoders/cancel-order.encoder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cancel-order.encoder.js","sourceRoot":"","sources":["../../../../src/sdk/encoders/cancel-order.encoder.ts"],"names":[],"mappings":";;AAQA,8CAUC;;AAlBD,mCAAgC;AAEhC,4DAA2B;AAC3B,kHAAkE;AAClE,mDAA4C;AAE5C,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC,sCAAa,CAAC,CAAA;AAE3C,SAAgB,iBAAiB,CAC7B,IAAY,EACZ,WAAwB;IAExB,IAAA,gBAAM,EAAC,IAAA,wBAAU,EAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAA;IAE9C,OAAO,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE;QAC5C,WAAW,CAAC,QAAQ,EAAE;QACtB,IAAI;KACP,CAAC,CAAA;AACN,CAAC"}
|