@1inch/fusion-sdk 2.1.11-rc.1 → 2.1.11-rc.2

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.
Files changed (189) hide show
  1. package/README.md +2 -0
  2. package/dist/cjs/api/orders/orders.api.js +3 -4
  3. package/dist/cjs/api/orders/orders.api.js.map +1 -1
  4. package/dist/cjs/api/orders/orders.request.js.map +1 -1
  5. package/dist/cjs/api/orders/types.js +1 -1
  6. package/dist/cjs/api/orders/types.js.map +1 -1
  7. package/dist/cjs/api/pagination.js.map +1 -1
  8. package/dist/cjs/api/params.js +5 -8
  9. package/dist/cjs/api/params.js.map +1 -1
  10. package/dist/cjs/api/quoter/quote/order-params.js.map +1 -1
  11. package/dist/cjs/api/quoter/quote/quote.js +18 -24
  12. package/dist/cjs/api/quoter/quote/quote.js.map +1 -1
  13. package/dist/cjs/api/quoter/quoter-custom-preset.request.js +1 -1
  14. package/dist/cjs/api/quoter/quoter-custom-preset.request.js.map +1 -1
  15. package/dist/cjs/api/quoter/quoter.api.js.map +1 -1
  16. package/dist/cjs/api/quoter/quoter.request.js +3 -3
  17. package/dist/cjs/api/quoter/quoter.request.js.map +1 -1
  18. package/dist/cjs/api/quoter/types.js +1 -1
  19. package/dist/cjs/api/quoter/types.js.map +1 -1
  20. package/dist/cjs/{amount-calculator/auction-calculator → auction-calculator}/auction-calculator.js +10 -14
  21. package/dist/cjs/auction-calculator/auction-calculator.js.map +1 -0
  22. package/dist/cjs/auction-calculator/constants.js +5 -0
  23. package/dist/cjs/auction-calculator/constants.js.map +1 -0
  24. package/dist/cjs/{amount-calculator/auction-calculator → auction-calculator}/index.js +1 -0
  25. package/dist/cjs/auction-calculator/index.js.map +1 -0
  26. package/dist/cjs/auction-calculator/utils.js +17 -0
  27. package/dist/cjs/auction-calculator/utils.js.map +1 -0
  28. package/dist/cjs/connector/http/axios-provider.connector.js.map +1 -1
  29. package/dist/cjs/connector/ws/websocket-client.connector.js.map +1 -1
  30. package/dist/cjs/constants.js +3 -1
  31. package/dist/cjs/constants.js.map +1 -1
  32. package/dist/cjs/fusion-order/auction-details/auction-details.js +10 -18
  33. package/dist/cjs/fusion-order/auction-details/auction-details.js.map +1 -1
  34. package/dist/cjs/fusion-order/constants.js +3 -1
  35. package/dist/cjs/fusion-order/constants.js.map +1 -1
  36. package/dist/cjs/fusion-order/fusion-extension.js +18 -137
  37. package/dist/cjs/fusion-order/fusion-extension.js.map +1 -1
  38. package/dist/cjs/fusion-order/fusion-order.js +34 -52
  39. package/dist/cjs/fusion-order/fusion-order.js.map +1 -1
  40. package/dist/cjs/fusion-order/index.js +2 -4
  41. package/dist/cjs/fusion-order/index.js.map +1 -1
  42. package/dist/cjs/fusion-order/settlement-post-interaction-data/index.js +6 -0
  43. package/dist/cjs/fusion-order/settlement-post-interaction-data/index.js.map +1 -0
  44. package/dist/cjs/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js +153 -0
  45. package/dist/cjs/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js.map +1 -0
  46. package/dist/cjs/fusion-order/settlement-post-interaction-data/types.js.map +1 -0
  47. package/dist/cjs/fusion-order/source-track.js +2 -1
  48. package/dist/cjs/fusion-order/source-track.js.map +1 -1
  49. package/dist/cjs/index.js +1 -1
  50. package/dist/cjs/index.js.map +1 -1
  51. package/dist/cjs/sdk/encoders/cancel-order.encoder.js +2 -1
  52. package/dist/cjs/sdk/encoders/cancel-order.encoder.js.map +1 -1
  53. package/dist/cjs/sdk/sdk.js +6 -5
  54. package/dist/cjs/sdk/sdk.js.map +1 -1
  55. package/dist/cjs/sdk/utils.js +3 -2
  56. package/dist/cjs/sdk/utils.js.map +1 -1
  57. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  58. package/dist/cjs/utils/amounts.js +3 -2
  59. package/dist/cjs/utils/amounts.js.map +1 -1
  60. package/dist/cjs/utils/time.js +2 -1
  61. package/dist/cjs/utils/time.js.map +1 -1
  62. package/dist/cjs/utils.js +3 -2
  63. package/dist/cjs/utils.js.map +1 -1
  64. package/dist/cjs/validations.js +6 -5
  65. package/dist/cjs/validations.js.map +1 -1
  66. package/dist/cjs/ws-api/active-websocket-orders-api.js.map +1 -1
  67. package/dist/cjs/ws-api/rpc-websocket-api.js.map +1 -1
  68. package/dist/cjs/ws-api/url.js +2 -1
  69. package/dist/cjs/ws-api/url.js.map +1 -1
  70. package/dist/cjs/ws-api/ws-api.js.map +1 -1
  71. package/dist/esm/api/orders/orders.api.js +3 -4
  72. package/dist/esm/api/orders/orders.api.js.map +1 -1
  73. package/dist/esm/api/orders/orders.request.js.map +1 -1
  74. package/dist/esm/api/pagination.js.map +1 -1
  75. package/dist/esm/api/params.js +3 -7
  76. package/dist/esm/api/params.js.map +1 -1
  77. package/dist/esm/api/quoter/quote/order-params.js.map +1 -1
  78. package/dist/esm/api/quoter/quote/quote.js +20 -26
  79. package/dist/esm/api/quoter/quote/quote.js.map +1 -1
  80. package/dist/esm/api/quoter/quoter-custom-preset.request.js +1 -1
  81. package/dist/esm/api/quoter/quoter-custom-preset.request.js.map +1 -1
  82. package/dist/esm/api/quoter/quoter.api.js.map +1 -1
  83. package/dist/esm/api/quoter/quoter.request.js +3 -3
  84. package/dist/esm/api/quoter/quoter.request.js.map +1 -1
  85. package/dist/esm/api/quoter/types.js.map +1 -1
  86. package/dist/esm/{amount-calculator/auction-calculator → auction-calculator}/auction-calculator.js +10 -14
  87. package/dist/esm/auction-calculator/auction-calculator.js.map +1 -0
  88. package/dist/esm/auction-calculator/constants.js +2 -0
  89. package/dist/esm/auction-calculator/constants.js.map +1 -0
  90. package/dist/esm/auction-calculator/index.js +3 -0
  91. package/dist/esm/auction-calculator/index.js.map +1 -0
  92. package/dist/esm/auction-calculator/utils.js +13 -0
  93. package/dist/esm/auction-calculator/utils.js.map +1 -0
  94. package/dist/esm/connector/http/axios-provider.connector.js.map +1 -1
  95. package/dist/esm/connector/ws/websocket-client.connector.js.map +1 -1
  96. package/dist/esm/constants.js +2 -0
  97. package/dist/esm/constants.js.map +1 -1
  98. package/dist/esm/fusion-order/auction-details/auction-details.js +11 -19
  99. package/dist/esm/fusion-order/auction-details/auction-details.js.map +1 -1
  100. package/dist/esm/fusion-order/constants.js +3 -1
  101. package/dist/esm/fusion-order/constants.js.map +1 -1
  102. package/dist/esm/fusion-order/fusion-extension.js +19 -138
  103. package/dist/esm/fusion-order/fusion-extension.js.map +1 -1
  104. package/dist/esm/fusion-order/fusion-order.js +34 -52
  105. package/dist/esm/fusion-order/fusion-order.js.map +1 -1
  106. package/dist/esm/fusion-order/index.js +1 -2
  107. package/dist/esm/fusion-order/index.js.map +1 -1
  108. package/dist/esm/fusion-order/settlement-post-interaction-data/index.js +3 -0
  109. package/dist/esm/fusion-order/settlement-post-interaction-data/index.js.map +1 -0
  110. package/dist/esm/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js +148 -0
  111. package/dist/esm/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js.map +1 -0
  112. package/dist/esm/fusion-order/settlement-post-interaction-data/types.js.map +1 -0
  113. package/dist/esm/fusion-order/source-track.js.map +1 -1
  114. package/dist/esm/index.js +1 -1
  115. package/dist/esm/index.js.map +1 -1
  116. package/dist/esm/sdk/sdk.js +6 -5
  117. package/dist/esm/sdk/sdk.js.map +1 -1
  118. package/dist/esm/sdk/utils.js.map +1 -1
  119. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  120. package/dist/esm/utils.js.map +1 -1
  121. package/dist/esm/validations.js +1 -1
  122. package/dist/esm/validations.js.map +1 -1
  123. package/dist/esm/ws-api/active-websocket-orders-api.js.map +1 -1
  124. package/dist/esm/ws-api/rpc-websocket-api.js.map +1 -1
  125. package/dist/esm/ws-api/url.js.map +1 -1
  126. package/dist/esm/ws-api/ws-api.js.map +1 -1
  127. package/dist/types/src/api/orders/types.d.ts +0 -1
  128. package/dist/types/src/api/params.d.ts +1 -1
  129. package/dist/types/src/api/quoter/quote/quote.d.ts +3 -3
  130. package/dist/types/src/api/quoter/quote/types.d.ts +2 -11
  131. package/dist/types/src/api/quoter/quoter.request.d.ts +3 -4
  132. package/dist/types/src/api/quoter/types.d.ts +2 -11
  133. package/dist/types/src/{amount-calculator/auction-calculator → auction-calculator}/auction-calculator.d.ts +5 -5
  134. package/dist/types/src/auction-calculator/constants.d.ts +1 -0
  135. package/dist/types/src/{amount-calculator/auction-calculator → auction-calculator}/index.d.ts +1 -0
  136. package/dist/types/src/auction-calculator/utils.d.ts +5 -0
  137. package/dist/types/src/constants.d.ts +3 -1
  138. package/dist/types/src/fusion-order/auction-details/auction-details.d.ts +0 -3
  139. package/dist/types/src/fusion-order/constants.d.ts +2 -0
  140. package/dist/types/src/fusion-order/fusion-extension.d.ts +6 -18
  141. package/dist/types/src/fusion-order/fusion-order.d.ts +12 -16
  142. package/dist/types/src/fusion-order/index.d.ts +1 -2
  143. package/dist/types/src/fusion-order/settlement-post-interaction-data/index.d.ts +2 -0
  144. package/dist/types/src/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.d.ts +22 -0
  145. package/dist/types/src/fusion-order/settlement-post-interaction-data/types.d.ts +16 -0
  146. package/dist/types/src/index.d.ts +1 -1
  147. package/dist/types/src/sdk/types.d.ts +7 -3
  148. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  149. package/package.json +22 -23
  150. package/dist/cjs/amount-calculator/amount-calculator.js +0 -66
  151. package/dist/cjs/amount-calculator/amount-calculator.js.map +0 -1
  152. package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.js.map +0 -1
  153. package/dist/cjs/amount-calculator/auction-calculator/index.js.map +0 -1
  154. package/dist/cjs/amount-calculator/index.js +0 -10
  155. package/dist/cjs/amount-calculator/index.js.map +0 -1
  156. package/dist/cjs/api/version.js +0 -5
  157. package/dist/cjs/api/version.js.map +0 -1
  158. package/dist/cjs/fusion-order/whitelist/index.js +0 -5
  159. package/dist/cjs/fusion-order/whitelist/index.js.map +0 -1
  160. package/dist/cjs/fusion-order/whitelist/types.js.map +0 -1
  161. package/dist/cjs/fusion-order/whitelist/whitelist.js +0 -121
  162. package/dist/cjs/fusion-order/whitelist/whitelist.js.map +0 -1
  163. package/dist/cjs/utils/types.js +0 -3
  164. package/dist/cjs/utils/types.js.map +0 -1
  165. package/dist/esm/amount-calculator/amount-calculator.js +0 -62
  166. package/dist/esm/amount-calculator/amount-calculator.js.map +0 -1
  167. package/dist/esm/amount-calculator/auction-calculator/auction-calculator.js.map +0 -1
  168. package/dist/esm/amount-calculator/auction-calculator/index.js +0 -2
  169. package/dist/esm/amount-calculator/auction-calculator/index.js.map +0 -1
  170. package/dist/esm/amount-calculator/index.js +0 -4
  171. package/dist/esm/amount-calculator/index.js.map +0 -1
  172. package/dist/esm/api/version.js +0 -2
  173. package/dist/esm/api/version.js.map +0 -1
  174. package/dist/esm/fusion-order/whitelist/index.js +0 -2
  175. package/dist/esm/fusion-order/whitelist/index.js.map +0 -1
  176. package/dist/esm/fusion-order/whitelist/types.js.map +0 -1
  177. package/dist/esm/fusion-order/whitelist/whitelist.js +0 -116
  178. package/dist/esm/fusion-order/whitelist/whitelist.js.map +0 -1
  179. package/dist/esm/utils/types.js +0 -2
  180. package/dist/esm/utils/types.js.map +0 -1
  181. package/dist/types/src/amount-calculator/amount-calculator.d.ts +0 -21
  182. package/dist/types/src/amount-calculator/index.d.ts +0 -3
  183. package/dist/types/src/api/version.d.ts +0 -1
  184. package/dist/types/src/fusion-order/whitelist/index.d.ts +0 -1
  185. package/dist/types/src/fusion-order/whitelist/types.d.ts +0 -4
  186. package/dist/types/src/fusion-order/whitelist/whitelist.d.ts +0 -26
  187. package/dist/types/src/utils/types.d.ts +0 -3
  188. /package/dist/cjs/fusion-order/{whitelist → settlement-post-interaction-data}/types.js +0 -0
  189. /package/dist/esm/fusion-order/{whitelist → settlement-post-interaction-data}/types.js +0 -0
@@ -3,17 +3,24 @@ 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");
7
6
  const assert_1 = tslib_1.__importDefault(require("assert"));
8
7
  const auction_details_1 = require("./auction-details");
9
- const whitelist_1 = require("./whitelist/whitelist");
10
- const utils_1 = require("../utils");
8
+ const settlement_post_interaction_data_1 = require("./settlement-post-interaction-data");
11
9
  class FusionExtension {
12
- constructor(address, auctionDetails, whitelist, extra) {
10
+ constructor(address, auctionDetails, postInteractionData, makerPermit) {
13
11
  this.address = address;
14
12
  this.auctionDetails = auctionDetails;
15
- this.whitelist = whitelist;
16
- this.extra = extra;
13
+ this.postInteractionData = postInteractionData;
14
+ this.makerPermit = makerPermit;
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
+ }
17
24
  }
18
25
  static decode(bytes) {
19
26
  const extension = limit_order_sdk_1.Extension.decode(bytes);
@@ -23,142 +30,16 @@ class FusionExtension {
23
30
  const settlementContract = limit_order_sdk_1.Address.fromFirstBytes(extension.makingAmountData);
24
31
  (0, assert_1.default)(limit_order_sdk_1.Address.fromFirstBytes(extension.takingAmountData).equal(settlementContract) &&
25
32
  limit_order_sdk_1.Address.fromFirstBytes(extension.postInteraction).equal(settlementContract), 'Invalid extension, all calls should be to the same address');
26
- (0, assert_1.default)(extension.takingAmountData == extension.makingAmountData, 'Invalid extension, taking amount data must be equal to making amount data');
27
- const interactionBytes = byte_utils_1.BytesIter.HexString(extension.postInteraction);
28
- interactionBytes.nextUint160();
29
- const flags = byte_utils_1.BN.fromHex(interactionBytes.nextUint8());
30
- const integratorFeeRecipient = new limit_order_sdk_1.Address(interactionBytes.nextUint160());
31
- const protocolFeeRecipient = new limit_order_sdk_1.Address(interactionBytes.nextUint160());
32
- const customReceiver = flags.getBit(FusionExtension.CUSTOM_RECEIVER_FLAG_BIT)
33
- ? new limit_order_sdk_1.Address(interactionBytes.nextUint160())
34
- : undefined;
35
- const interactionData = parseAmountData(interactionBytes);
36
- const whitelist = whitelist_1.Whitelist.decodeFrom(interactionBytes);
37
- const amountBytes = byte_utils_1.BytesIter.HexString(extension.makingAmountData);
38
- amountBytes.nextUint160();
39
- const auctionDetails = auction_details_1.AuctionDetails.decodeFrom(amountBytes);
40
- const amountData = parseAmountData(amountBytes);
41
- const whitelistAddressLength = Number(amountBytes.nextUint8());
42
- (0, assert_1.default)(whitelist.length === whitelistAddressLength, 'whitelist addresses must be same in interaction data and in amount data');
43
- const whitelistAddressesFromAmount = [];
44
- for (let i = 0; i < whitelistAddressLength; i++) {
45
- whitelistAddressesFromAmount.push(BigInt(amountBytes.nextBytes(10)).toString(16).padStart(20, '0'));
46
- }
47
- const makerPermit = extension.hasMakerPermit
33
+ const auctionDetails = auction_details_1.AuctionDetails.fromExtension(extension);
34
+ const postInteractionData = settlement_post_interaction_data_1.SettlementPostInteractionData.fromExtension(extension);
35
+ const permit = extension.hasMakerPermit
48
36
  ? limit_order_sdk_1.Interaction.decode(extension.makerPermit)
49
37
  : undefined;
50
- (0, assert_1.default)(amountData.fees.integratorFee.value ===
51
- interactionData.fees.integratorFee.value, `invalid extension: integrator fee must be same in interaction data and in amount data`);
52
- (0, assert_1.default)(amountData.fees.resolverFee.value ===
53
- interactionData.fees.resolverFee.value, `invalid extension: resolver fee must be same in interaction data and in amount data`);
54
- (0, assert_1.default)(amountData.fees.whitelistDiscount.equal(interactionData.fees.whitelistDiscount), `invalid extension: whitelistDiscount must be same in interaction data and in amount data`);
55
- (0, assert_1.default)(amountData.fees.integratorShare.value ===
56
- interactionData.fees.integratorShare.value, `invalid extension: integrator share must be same in interaction data and in amount data`);
57
- (0, assert_1.default)(whitelist.whitelist.every(({ addressHalf }, i) => whitelistAddressesFromAmount[i] === addressHalf), 'whitelist addresses must be same in interaction data and in amount data');
58
- const hasFees = !integratorFeeRecipient.isZero() || !protocolFeeRecipient.isZero();
59
- if (!hasFees) {
60
- return new FusionExtension(settlementContract, auctionDetails, whitelist, {
61
- makerPermit,
62
- customReceiver,
63
- fees: undefined
64
- });
65
- }
66
- const fees = new limit_order_sdk_1.FeeTakerExt.Fees(interactionData.fees.resolverFee.isZero()
67
- ? limit_order_sdk_1.FeeTakerExt.ResolverFee.ZERO
68
- : new limit_order_sdk_1.FeeTakerExt.ResolverFee(protocolFeeRecipient, interactionData.fees.resolverFee, interactionData.fees.whitelistDiscount), interactionData.fees.integratorFee.isZero()
69
- ? limit_order_sdk_1.FeeTakerExt.IntegratorFee.ZERO
70
- : new limit_order_sdk_1.FeeTakerExt.IntegratorFee(integratorFeeRecipient, protocolFeeRecipient, interactionData.fees.integratorFee, interactionData.fees.integratorShare));
71
- return new FusionExtension(settlementContract, auctionDetails, whitelist, {
72
- makerPermit,
73
- fees,
74
- customReceiver
75
- });
38
+ return new FusionExtension(settlementContract, auctionDetails, postInteractionData, permit);
76
39
  }
77
40
  build() {
78
- const amountData = this.buildAmountGetterData(true);
79
- const builder = new limit_order_sdk_1.ExtensionBuilder()
80
- .withMakingAmountData(this.address, amountData)
81
- .withTakingAmountData(this.address, amountData)
82
- .withPostInteraction(new limit_order_sdk_1.Interaction(this.address, this.buildInteractionData()));
83
- if (this.extra?.makerPermit) {
84
- builder.withMakerPermit(this.extra?.makerPermit.target, this.extra?.makerPermit.data);
85
- }
86
- return builder.build();
87
- }
88
- buildInteractionData() {
89
- const customReceiver = this.extra?.customReceiver || limit_order_sdk_1.Address.ZERO_ADDRESS;
90
- const flags = new byte_utils_1.BN(0n).setBit(FusionExtension.CUSTOM_RECEIVER_FLAG_BIT, Boolean(!customReceiver.isZero()));
91
- const integratorReceiver = this.extra?.fees?.integrator.integrator || limit_order_sdk_1.Address.ZERO_ADDRESS;
92
- const protocolReceiver = this.extra?.fees?.protocol || limit_order_sdk_1.Address.ZERO_ADDRESS;
93
- const builder = new byte_utils_1.BytesBuilder()
94
- .addUint8(flags)
95
- .addAddress(integratorReceiver.toString())
96
- .addAddress(protocolReceiver.toString());
97
- if (!customReceiver.isZero()) {
98
- builder.addAddress(customReceiver.toString());
99
- }
100
- builder.addBytes(this.buildAmountGetterData(false));
101
- return builder.asHex();
102
- }
103
- buildAmountGetterData(forAmountGetters) {
104
- const builder = new byte_utils_1.BytesBuilder();
105
- if (forAmountGetters) {
106
- this.auctionDetails.encodeInto(builder);
107
- }
108
- const integrator = {
109
- fee: this.extra?.fees?.integrator.fee.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5) || 0,
110
- share: this.extra?.fees?.integrator.share.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) || 0
111
- };
112
- const resolverFee = this.extra?.fees?.resolver.fee.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5) || 0;
113
- const whitelistDiscount = this.extra?.fees?.resolver.whitelistDiscount || limit_order_sdk_1.Bps.ZERO;
114
- builder
115
- .addUint16(BigInt(integrator.fee))
116
- .addUint8(BigInt(integrator.share))
117
- .addUint16(BigInt(resolverFee))
118
- .addUint8(BigInt(Number(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) -
119
- whitelistDiscount.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2)));
120
- if (forAmountGetters) {
121
- builder.addUint8(BigInt(this.whitelist.whitelist.length));
122
- this.whitelist.whitelist.forEach((i) => {
123
- builder.addBytes((0, utils_1.add0x)(i.addressHalf));
124
- });
125
- }
126
- else {
127
- this.whitelist.encodeInto(builder);
128
- }
129
- return builder.asHex();
130
- }
131
- getFeesForTaker(taker) {
132
- const whitelistDiscount = this.extra?.fees?.resolver.whitelistDiscount.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) || 0;
133
- const discountNumerator = this.whitelist.isWhitelisted(taker)
134
- ? (Number(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2) - whitelistDiscount) /
135
- Number(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2)
136
- : 1;
137
- const resolverFee = discountNumerator *
138
- (this.extra?.fees?.resolver.fee.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5) || 0);
139
- const resolverFeeBN = BigInt(resolverFee);
140
- const integratorFeeBN = BigInt(this.extra?.fees?.integrator.fee.toFraction(limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5) || 0);
141
- return {
142
- resolverFee: resolverFeeBN,
143
- integratorFee: integratorFeeBN
144
- };
145
- }
146
- getTakingAmountWithFee(taker, orderTakingAmount) {
147
- const fees = this.getFeesForTaker(taker);
148
- 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);
41
+ return this.builder.build();
149
42
  }
150
43
  }
151
44
  exports.FusionExtension = FusionExtension;
152
- FusionExtension.CUSTOM_RECEIVER_FLAG_BIT = 0n;
153
- function parseAmountData(iter) {
154
- const fees = {
155
- integratorFee: limit_order_sdk_1.Bps.fromFraction(Number(iter.nextUint16()), limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5),
156
- integratorShare: limit_order_sdk_1.Bps.fromFraction(Number(iter.nextUint8()), limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E2),
157
- resolverFee: limit_order_sdk_1.Bps.fromFraction(Number(iter.nextUint16()), limit_order_sdk_1.FeeTakerExt.Fees.BASE_1E5),
158
- 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)
159
- };
160
- return {
161
- fees
162
- };
163
- }
164
45
  //# sourceMappingURL=fusion-extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":";;;;AAAA,4DAK+B;AAC/B,4DAA2B;AAE3B,uDAAgD;AAChD,yFAAgF;AAEhF,MAAa,eAAe;IAGxB,YACoB,OAAgB,EAChB,cAA8B,EAC9B,mBAAkD,EAClD,WAAyB;QAHzB,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,wBAAmB,GAAnB,mBAAmB,CAA+B;QAClD,gBAAW,GAAX,WAAW,CAAc;QAN5B,YAAO,GAAG,IAAI,kCAAgB,EAAE,CAAA;QAQ7C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAA;QAEjD,IAAI,CAAC,OAAO;aACP,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;aAChD,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;aAChD,mBAAmB,CAChB,IAAI,6BAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CACnE,CAAA;QAEL,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;SACrE;IACL,CAAC;IAOM,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,MAAM,cAAc,GAAG,gCAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE9D,MAAM,mBAAmB,GACrB,gEAA6B,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE1D,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc;YACnC,CAAC,CAAC,6BAAW,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAA;QAEf,OAAO,IAAI,eAAe,CACtB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,MAAM,CACT,CAAA;IACL,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC;CACJ;AAxED,0CAwEC"}
@@ -5,20 +5,17 @@ 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");
8
10
  const source_track_1 = require("./source-track");
9
- const auction_calculator_1 = require("../amount-calculator/auction-calculator");
11
+ const auction_calculator_1 = require("../auction-calculator");
10
12
  const constants_1 = require("../constants");
11
13
  const amounts_1 = require("../utils/amounts");
12
14
  const time_1 = require("../utils/time");
13
- const amount_calculator_1 = require("../amount-calculator/amount-calculator");
14
15
  class FusionOrder {
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
- })) {
16
+ constructor(settlementExtensionContract, orderInfo, auctionDetails, postInteractionData, extra = FusionOrder.defaultExtra, extension = new fusion_extension_1.FusionExtension(settlementExtensionContract, auctionDetails, postInteractionData, extra.permit
17
+ ? new limit_order_sdk_1.Interaction(orderInfo.makerAsset, extra.permit)
18
+ : undefined)) {
22
19
  this.settlementExtensionContract = settlementExtensionContract;
23
20
  const allowPartialFills = extra.allowPartialFills ??
24
21
  FusionOrder.defaultExtra.allowPartialFills;
@@ -48,7 +45,7 @@ class FusionOrder {
48
45
  if (extra.nonce !== undefined) {
49
46
  makerTraits.withNonce(extra.nonce);
50
47
  }
51
- const receiver = extra.fees
48
+ const receiver = postInteractionData.integratorFee?.ratio
52
49
  ? settlementExtensionContract
53
50
  : orderInfo.receiver;
54
51
  const builtExtension = extension.build();
@@ -81,13 +78,6 @@ class FusionOrder {
81
78
  get makingAmount() {
82
79
  return this.inner.makingAmount;
83
80
  }
84
- get realReceiver() {
85
- const hasFee = Boolean(this.fusionExtension.extra?.fees);
86
- const receiver = hasFee
87
- ? this.fusionExtension.extra?.customReceiver
88
- : this.inner.receiver;
89
- return receiver && !receiver.isZero() ? receiver : this.maker;
90
- }
91
81
  get receiver() {
92
82
  return this.inner.receiver;
93
83
  }
@@ -117,7 +107,13 @@ class FusionOrder {
117
107
  return this.inner.salt;
118
108
  }
119
109
  static new(settlementExtension, orderInfo, details, extra) {
120
- return new FusionOrder(settlementExtension, orderInfo, details.auction, details.whitelist, extra);
110
+ return new FusionOrder(settlementExtension, orderInfo, details.auction, settlement_post_interaction_data_1.SettlementPostInteractionData.new({
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);
121
117
  }
122
118
  static fromDataAndExtension(order, extension) {
123
119
  const settlementContract = limit_order_sdk_1.Address.fromFirstBytes(extension.makingAmountData);
@@ -126,7 +122,8 @@ class FusionOrder {
126
122
  const makerTraits = new limit_order_sdk_1.MakerTraits(BigInt(order.makerTraits));
127
123
  (0, assert_1.default)(!makerTraits.isPrivate(), 'fusion order can not be private');
128
124
  (0, assert_1.default)(makerTraits.hasPostInteraction(), 'post-interaction must be enabled');
129
- const { auctionDetails, whitelist, extra } = fusion_extension_1.FusionExtension.fromExtension(extension);
125
+ const auctionDetails = auction_details_1.AuctionDetails.fromExtension(extension);
126
+ const postInteractionData = settlement_post_interaction_data_1.SettlementPostInteractionData.fromExtension(extension);
130
127
  const deadline = makerTraits.expiration();
131
128
  const orderExpirationDelay = deadline === null
132
129
  ? undefined
@@ -134,12 +131,12 @@ class FusionOrder {
134
131
  return new FusionOrder(settlementContract, {
135
132
  salt: BigInt(order.salt) >> 160n,
136
133
  maker: new limit_order_sdk_1.Address(order.maker),
137
- receiver: extra?.customReceiver,
134
+ receiver: new limit_order_sdk_1.Address(order.receiver),
138
135
  makerAsset: new limit_order_sdk_1.Address(order.makerAsset),
139
136
  takerAsset: new limit_order_sdk_1.Address(order.takerAsset),
140
137
  makingAmount: BigInt(order.makingAmount),
141
138
  takingAmount: BigInt(order.takingAmount)
142
- }, auctionDetails, whitelist, {
139
+ }, auctionDetails, postInteractionData, {
143
140
  allowMultipleFills: makerTraits.isMultipleFillsAllowed(),
144
141
  allowPartialFills: makerTraits.isPartialFillAllowed(),
145
142
  enablePermit2: makerTraits.isPermit2(),
@@ -148,8 +145,7 @@ class FusionOrder {
148
145
  ? undefined
149
146
  : limit_order_sdk_1.Interaction.decode(extension.makerPermit).data,
150
147
  unwrapWETH: makerTraits.isNativeUnwrapEnabled(),
151
- orderExpirationDelay,
152
- fees: extra?.fees
148
+ orderExpirationDelay
153
149
  });
154
150
  }
155
151
  build() {
@@ -162,49 +158,35 @@ class FusionOrder {
162
158
  return this.inner.getTypedData(chainId);
163
159
  }
164
160
  getCalculator() {
165
- return auction_calculator_1.AuctionCalculator.fromAuctionData(this.fusionExtension.auctionDetails);
166
- }
167
- calcTakingAmount(taker, makingAmount, time, blockBaseFee = 0n) {
168
- const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
169
- return this.getAmountCalculator().getRequiredTakingAmount(taker, takingAmount, time, blockBaseFee);
170
- }
171
- getUserReceiveAmount(taker, makingAmount, time, blockBaseFee = 0n) {
172
- const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
173
- return this.getAmountCalculator().getUserTakingAmountAmount(taker, takingAmount, time, blockBaseFee);
174
- }
175
- getResolverFee(taker, time, blockBaseFee = 0n, makingAmount = this.makingAmount) {
176
- const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
177
- return (this.getAmountCalculator().getResolverFee(taker, takingAmount, time, blockBaseFee) ?? 0n);
161
+ return auction_calculator_1.AuctionCalculator.fromAuctionData(this.fusionExtension.postInteractionData, this.fusionExtension.auctionDetails);
178
162
  }
179
- getIntegratorFee(taker, time, blockBaseFee = 0n, makingAmount = this.makingAmount) {
163
+ calcTakingAmount(makingAmount, time, blockBaseFee = 0n) {
180
164
  const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
181
- return (this.getAmountCalculator().getIntegratorFee(taker, takingAmount, time, blockBaseFee) ?? 0n);
182
- }
183
- getProtocolShareOfIntegratorFee(taker, time, blockBaseFee = 0n, makingAmount = this.makingAmount) {
184
- const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
185
- return (this.getAmountCalculator().getProtocolShareOfIntegratorFee(taker, takingAmount, time, blockBaseFee) ?? 0n);
186
- }
187
- getProtocolFee(taker, time, blockBaseFee = 0n, makingAmount = this.makingAmount) {
188
- const takingAmount = (0, amounts_1.calcTakingAmount)(makingAmount, this.makingAmount, this.takingAmount);
189
- return (this.getAmountCalculator().getProtocolFee(taker, takingAmount, time, blockBaseFee) ?? 0n);
165
+ const calculator = this.getCalculator();
166
+ const bump = calculator.calcRateBump(time, blockBaseFee);
167
+ return calculator.calcAuctionTakingAmount(takingAmount, bump);
190
168
  }
191
169
  canExecuteAt(executor, executionTime) {
192
- return this.fusionExtension.whitelist.canExecuteAt(executor, executionTime);
170
+ return this.fusionExtension.postInteractionData.canExecuteAt(executor, executionTime);
193
171
  }
194
172
  isExpiredAt(time) {
195
173
  return time > this.deadline;
196
174
  }
175
+ getResolverFee(filledMakingAmount) {
176
+ return ((this.fusionExtension.postInteractionData.bankFee *
177
+ FusionOrder._ORDER_FEE_BASE_POINTS *
178
+ filledMakingAmount) /
179
+ this.makingAmount);
180
+ }
197
181
  isExclusiveResolver(wallet) {
198
- return this.fusionExtension.whitelist.isExclusiveResolver(wallet);
182
+ return this.fusionExtension.postInteractionData.isExclusiveResolver(wallet);
199
183
  }
200
184
  isExclusivityPeriod(time = (0, time_1.now)()) {
201
- return this.fusionExtension.whitelist.isExclusivityPeriod(time);
202
- }
203
- getAmountCalculator() {
204
- return amount_calculator_1.AmountCalculator.fromExtension(this.fusionExtension);
185
+ return this.fusionExtension.postInteractionData.isExclusivityPeriod(time);
205
186
  }
206
187
  }
207
188
  exports.FusionOrder = FusionOrder;
189
+ FusionOrder._ORDER_FEE_BASE_POINTS = 10n ** 15n;
208
190
  FusionOrder.defaultExtra = {
209
191
  allowPartialFills: true,
210
192
  allowMultipleFills: true,
@@ -1 +1 @@
1
- {"version":3,"file":"fusion-order.js","sourceRoot":"","sources":["../../../src/fusion-order/fusion-order.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fusion-order.js","sourceRoot":"","sources":["../../../src/fusion-order/fusion-order.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FeeTakerExt = exports.CHAIN_TO_WRAPPER = void 0;
3
+ 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("./whitelist"), exports);
7
+ tslib_1.__exportStar(require("./settlement-post-interaction-data"), 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; } });
13
11
  //# 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,sDAA2B;AAC3B,6DAAkC;AAClC,yCAA4C;AAApC,6GAAA,gBAAgB,OAAA;AACxB,0DAAkD;AAA1C,8GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fusion-order/index.ts"],"names":[],"mappings":";;;;AAAA,yDAA8B;AAC9B,4DAAiC;AACjC,6EAAkD;AAClD,6DAAkC;AAClC,yCAA4C;AAApC,6GAAA,gBAAgB,OAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./settlement-post-interaction-data"), exports);
5
+ tslib_1.__exportStar(require("./types"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/fusion-order/settlement-post-interaction-data/index.ts"],"names":[],"mappings":";;;AAAA,6EAAkD;AAClD,kDAAuB"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettlementPostInteractionData = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
6
+ const byte_utils_1 = require("@1inch/byte-utils");
7
+ const assert_1 = tslib_1.__importDefault(require("assert"));
8
+ const validations_1 = require("../../validations");
9
+ const utils_1 = require("../../utils");
10
+ const constants_1 = require("../../constants");
11
+ const time_1 = require("../../utils/time");
12
+ class SettlementPostInteractionData {
13
+ constructor(data) {
14
+ this.whitelist = data.whitelist;
15
+ this.integratorFee = data?.integratorFee;
16
+ this.bankFee = data.bankFee || 0n;
17
+ this.resolvingStartTime = data.resolvingStartTime;
18
+ this.customReceiver = data.customReceiver;
19
+ if (this.integratorFee?.ratio) {
20
+ (0, assert_1.default)(!this.integratorFee.receiver.isZero(), 'Fee receiver can not be zero when fee set');
21
+ }
22
+ }
23
+ static new(data) {
24
+ (0, assert_1.default)(data.whitelist.length, 'Whitelist can not be empty');
25
+ let sumDelay = 0n;
26
+ const whitelist = data.whitelist
27
+ .map((d) => ({
28
+ addressHalf: d.address.toString().slice(-20),
29
+ allowFrom: d.allowFrom < data.resolvingStartTime
30
+ ? data.resolvingStartTime
31
+ : d.allowFrom
32
+ }))
33
+ .sort((a, b) => Number(a.allowFrom - b.allowFrom))
34
+ .map((val) => {
35
+ const delay = val.allowFrom - data.resolvingStartTime - sumDelay;
36
+ sumDelay += delay;
37
+ (0, assert_1.default)(delay < constants_1.UINT_16_MAX, 'Too big diff between timestamps');
38
+ return {
39
+ delay,
40
+ addressHalf: val.addressHalf
41
+ };
42
+ });
43
+ return new SettlementPostInteractionData({
44
+ ...data,
45
+ whitelist
46
+ });
47
+ }
48
+ static decode(data) {
49
+ (0, assert_1.default)((0, validations_1.isHexBytes)(data), 'Post interaction data must be valid bytes string');
50
+ const iter = byte_utils_1.BytesIter.BigInt(data);
51
+ const flags = new byte_utils_1.BN(iter.nextByte(byte_utils_1.BytesIter.SIDE.Back));
52
+ let bankFee = 0n;
53
+ let integratorFee;
54
+ let customReceiver;
55
+ if (flags.getBit(0n)) {
56
+ bankFee = iter.nextUint32();
57
+ }
58
+ if (flags.getBit(1n)) {
59
+ const integratorFeeRatio = iter.nextUint16();
60
+ const integratorAddress = iter.nextUint160();
61
+ integratorFee = {
62
+ ratio: integratorFeeRatio,
63
+ receiver: limit_order_sdk_1.Address.fromBigInt(integratorAddress)
64
+ };
65
+ if (flags.getBit(2n)) {
66
+ customReceiver = limit_order_sdk_1.Address.fromBigInt(iter.nextUint160());
67
+ }
68
+ }
69
+ const resolvingStartTime = iter.nextUint32();
70
+ const whitelist = [];
71
+ while (!iter.isEmpty()) {
72
+ const addressHalf = iter
73
+ .nextBytes(10)
74
+ .toString(16)
75
+ .padStart(20, '0');
76
+ const delay = iter.nextUint16();
77
+ whitelist.push({
78
+ addressHalf,
79
+ delay
80
+ });
81
+ }
82
+ return new SettlementPostInteractionData({
83
+ integratorFee,
84
+ bankFee,
85
+ resolvingStartTime,
86
+ whitelist,
87
+ customReceiver
88
+ });
89
+ }
90
+ static fromExtension(extension) {
91
+ return SettlementPostInteractionData.decode((0, utils_1.add0x)(extension.postInteraction.slice(42)));
92
+ }
93
+ encode() {
94
+ let bitMask = new byte_utils_1.BN(0n);
95
+ const bytes = new byte_utils_1.BytesBuilder();
96
+ if (this.bankFee) {
97
+ bitMask = bitMask.setBit(0n, 1);
98
+ bytes.addUint32(this.bankFee);
99
+ }
100
+ if (this.integratorFee?.ratio) {
101
+ bitMask = bitMask.setBit(1n, 1);
102
+ bytes
103
+ .addUint16(this.integratorFee.ratio)
104
+ .addAddress(this.integratorFee.receiver.toString());
105
+ if (this.customReceiver && !this.customReceiver.isZero()) {
106
+ bitMask = bitMask.setBit(2n, 1);
107
+ bytes.addAddress(this.customReceiver.toString());
108
+ }
109
+ }
110
+ bytes.addUint32(this.resolvingStartTime);
111
+ for (const wl of this.whitelist) {
112
+ bytes.addBytes((0, utils_1.add0x)(wl.addressHalf)).addUint16(wl.delay);
113
+ }
114
+ bitMask = bitMask.setMask(new byte_utils_1.BitMask(3n, 8n), BigInt(this.whitelist.length));
115
+ bytes.addUint8(bitMask.value);
116
+ return bytes.asHex();
117
+ }
118
+ canExecuteAt(executor, executionTime) {
119
+ const addressHalf = executor.toString().slice(-20);
120
+ let allowedFrom = this.resolvingStartTime;
121
+ for (const whitelist of this.whitelist) {
122
+ allowedFrom += whitelist.delay;
123
+ if (addressHalf === whitelist.addressHalf) {
124
+ return executionTime >= allowedFrom;
125
+ }
126
+ else if (executionTime < allowedFrom) {
127
+ return false;
128
+ }
129
+ }
130
+ return false;
131
+ }
132
+ isExclusivityPeriod(time = (0, time_1.now)()) {
133
+ if (this.whitelist.length === 1) {
134
+ return true;
135
+ }
136
+ if (this.whitelist[0].delay === this.whitelist[1].delay) {
137
+ return false;
138
+ }
139
+ return time <= this.resolvingStartTime + this.whitelist[1].delay;
140
+ }
141
+ isExclusiveResolver(wallet) {
142
+ const addressHalf = wallet.toString().slice(-20);
143
+ if (this.whitelist.length === 1) {
144
+ return addressHalf === this.whitelist[0].addressHalf;
145
+ }
146
+ if (this.whitelist[0].delay === this.whitelist[1].delay) {
147
+ return false;
148
+ }
149
+ return addressHalf === this.whitelist[0].addressHalf;
150
+ }
151
+ }
152
+ exports.SettlementPostInteractionData = SettlementPostInteractionData;
153
+ //# sourceMappingURL=settlement-post-interaction-data.js.map
@@ -0,0 +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":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/fusion-order/settlement-post-interaction-data/types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.injectTrackCode = injectTrackCode;
3
+ exports.injectTrackCode = void 0;
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,4 +25,5 @@ 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;
28
29
  //# sourceMappingURL=source-track.js.map