@1inch/fusion-sdk 2.1.11 → 2.1.12-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.
Files changed (196) 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 +39 -27
  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 -6
  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/cancellation-auction.js +20 -0
  35. package/dist/cjs/fusion-order/cancellation-auction.js.map +1 -0
  36. package/dist/cjs/fusion-order/constants.js +3 -1
  37. package/dist/cjs/fusion-order/constants.js.map +1 -1
  38. package/dist/cjs/fusion-order/fusion-extension.js +18 -137
  39. package/dist/cjs/fusion-order/fusion-extension.js.map +1 -1
  40. package/dist/cjs/fusion-order/fusion-order.js +64 -53
  41. package/dist/cjs/fusion-order/fusion-order.js.map +1 -1
  42. package/dist/cjs/fusion-order/index.js +4 -4
  43. package/dist/cjs/fusion-order/index.js.map +1 -1
  44. package/dist/cjs/fusion-order/settlement-post-interaction-data/index.js +6 -0
  45. package/dist/cjs/fusion-order/settlement-post-interaction-data/index.js.map +1 -0
  46. package/dist/cjs/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js +153 -0
  47. package/dist/cjs/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js.map +1 -0
  48. package/dist/cjs/fusion-order/settlement-post-interaction-data/types.js.map +1 -0
  49. package/dist/cjs/fusion-order/source-track.js +2 -1
  50. package/dist/cjs/fusion-order/source-track.js.map +1 -1
  51. package/dist/cjs/{utils → fusion-order}/types.js.map +1 -1
  52. package/dist/cjs/index.js +5 -2
  53. package/dist/cjs/index.js.map +1 -1
  54. package/dist/cjs/sdk/encoders/cancel-order.encoder.js +2 -1
  55. package/dist/cjs/sdk/encoders/cancel-order.encoder.js.map +1 -1
  56. package/dist/cjs/sdk/sdk.js +38 -25
  57. package/dist/cjs/sdk/sdk.js.map +1 -1
  58. package/dist/cjs/sdk/utils.js +3 -2
  59. package/dist/cjs/sdk/utils.js.map +1 -1
  60. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  61. package/dist/cjs/utils/amounts.js +3 -2
  62. package/dist/cjs/utils/amounts.js.map +1 -1
  63. package/dist/cjs/utils/time.js +2 -1
  64. package/dist/cjs/utils/time.js.map +1 -1
  65. package/dist/cjs/utils.js +3 -2
  66. package/dist/cjs/utils.js.map +1 -1
  67. package/dist/cjs/validations.js +6 -5
  68. package/dist/cjs/validations.js.map +1 -1
  69. package/dist/cjs/ws-api/active-websocket-orders-api.js.map +1 -1
  70. package/dist/cjs/ws-api/rpc-websocket-api.js.map +1 -1
  71. package/dist/cjs/ws-api/url.js +2 -1
  72. package/dist/cjs/ws-api/url.js.map +1 -1
  73. package/dist/cjs/ws-api/ws-api.js.map +1 -1
  74. package/dist/esm/api/orders/orders.api.js +3 -4
  75. package/dist/esm/api/orders/orders.api.js.map +1 -1
  76. package/dist/esm/api/orders/orders.request.js.map +1 -1
  77. package/dist/esm/api/pagination.js.map +1 -1
  78. package/dist/esm/api/params.js +3 -7
  79. package/dist/esm/api/params.js.map +1 -1
  80. package/dist/esm/api/quoter/quote/order-params.js.map +1 -1
  81. package/dist/esm/api/quoter/quote/quote.js +40 -29
  82. package/dist/esm/api/quoter/quote/quote.js.map +1 -1
  83. package/dist/esm/api/quoter/quoter-custom-preset.request.js +1 -1
  84. package/dist/esm/api/quoter/quoter-custom-preset.request.js.map +1 -1
  85. package/dist/esm/api/quoter/quoter.api.js.map +1 -1
  86. package/dist/esm/api/quoter/quoter.request.js +3 -6
  87. package/dist/esm/api/quoter/quoter.request.js.map +1 -1
  88. package/dist/esm/api/quoter/types.js.map +1 -1
  89. package/dist/esm/{amount-calculator/auction-calculator → auction-calculator}/auction-calculator.js +10 -14
  90. package/dist/esm/auction-calculator/auction-calculator.js.map +1 -0
  91. package/dist/esm/auction-calculator/constants.js +2 -0
  92. package/dist/esm/auction-calculator/constants.js.map +1 -0
  93. package/dist/esm/auction-calculator/index.js +3 -0
  94. package/dist/esm/auction-calculator/index.js.map +1 -0
  95. package/dist/esm/auction-calculator/utils.js +13 -0
  96. package/dist/esm/auction-calculator/utils.js.map +1 -0
  97. package/dist/esm/connector/http/axios-provider.connector.js.map +1 -1
  98. package/dist/esm/connector/ws/websocket-client.connector.js.map +1 -1
  99. package/dist/esm/constants.js +2 -0
  100. package/dist/esm/constants.js.map +1 -1
  101. package/dist/esm/fusion-order/auction-details/auction-details.js +11 -19
  102. package/dist/esm/fusion-order/auction-details/auction-details.js.map +1 -1
  103. package/dist/esm/fusion-order/cancellation-auction.js +15 -0
  104. package/dist/esm/fusion-order/cancellation-auction.js.map +1 -0
  105. package/dist/esm/fusion-order/constants.js +3 -1
  106. package/dist/esm/fusion-order/constants.js.map +1 -1
  107. package/dist/esm/fusion-order/fusion-extension.js +19 -138
  108. package/dist/esm/fusion-order/fusion-extension.js.map +1 -1
  109. package/dist/esm/fusion-order/fusion-order.js +64 -53
  110. package/dist/esm/fusion-order/fusion-order.js.map +1 -1
  111. package/dist/esm/fusion-order/index.js +3 -2
  112. package/dist/esm/fusion-order/index.js.map +1 -1
  113. package/dist/esm/fusion-order/settlement-post-interaction-data/index.js +3 -0
  114. package/dist/esm/fusion-order/settlement-post-interaction-data/index.js.map +1 -0
  115. package/dist/esm/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js +148 -0
  116. package/dist/esm/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.js.map +1 -0
  117. package/dist/esm/fusion-order/settlement-post-interaction-data/types.js.map +1 -0
  118. package/dist/esm/fusion-order/source-track.js.map +1 -1
  119. package/dist/esm/{utils → fusion-order}/types.js.map +1 -1
  120. package/dist/esm/index.js +2 -2
  121. package/dist/esm/index.js.map +1 -1
  122. package/dist/esm/sdk/sdk.js +38 -25
  123. package/dist/esm/sdk/sdk.js.map +1 -1
  124. package/dist/esm/sdk/utils.js.map +1 -1
  125. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  126. package/dist/esm/utils.js.map +1 -1
  127. package/dist/esm/validations.js +1 -1
  128. package/dist/esm/validations.js.map +1 -1
  129. package/dist/esm/ws-api/active-websocket-orders-api.js.map +1 -1
  130. package/dist/esm/ws-api/rpc-websocket-api.js.map +1 -1
  131. package/dist/esm/ws-api/url.js.map +1 -1
  132. package/dist/esm/ws-api/ws-api.js.map +1 -1
  133. package/dist/types/src/api/orders/types.d.ts +0 -1
  134. package/dist/types/src/api/params.d.ts +1 -1
  135. package/dist/types/src/api/quoter/quote/quote.d.ts +6 -4
  136. package/dist/types/src/api/quoter/quote/types.d.ts +2 -11
  137. package/dist/types/src/api/quoter/quoter.request.d.ts +3 -4
  138. package/dist/types/src/api/quoter/types.d.ts +4 -11
  139. package/dist/types/src/{amount-calculator/auction-calculator → auction-calculator}/auction-calculator.d.ts +5 -5
  140. package/dist/types/src/auction-calculator/constants.d.ts +1 -0
  141. package/dist/types/src/{amount-calculator/auction-calculator → auction-calculator}/index.d.ts +1 -0
  142. package/dist/types/src/auction-calculator/utils.d.ts +5 -0
  143. package/dist/types/src/constants.d.ts +3 -1
  144. package/dist/types/src/fusion-order/auction-details/auction-details.d.ts +0 -3
  145. package/dist/types/src/fusion-order/cancellation-auction.d.ts +7 -0
  146. package/dist/types/src/fusion-order/constants.d.ts +2 -0
  147. package/dist/types/src/fusion-order/fusion-extension.d.ts +6 -18
  148. package/dist/types/src/fusion-order/fusion-order.d.ts +15 -39
  149. package/dist/types/src/fusion-order/index.d.ts +3 -2
  150. package/dist/types/src/fusion-order/settlement-post-interaction-data/index.d.ts +2 -0
  151. package/dist/types/src/fusion-order/settlement-post-interaction-data/settlement-post-interaction-data.d.ts +22 -0
  152. package/dist/types/src/fusion-order/settlement-post-interaction-data/types.d.ts +16 -0
  153. package/dist/types/src/fusion-order/types.d.ts +22 -0
  154. package/dist/types/src/index.d.ts +2 -2
  155. package/dist/types/src/sdk/sdk.d.ts +4 -0
  156. package/dist/types/src/sdk/types.d.ts +9 -4
  157. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  158. package/package.json +23 -24
  159. package/dist/cjs/amount-calculator/amount-calculator.js +0 -66
  160. package/dist/cjs/amount-calculator/amount-calculator.js.map +0 -1
  161. package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.js.map +0 -1
  162. package/dist/cjs/amount-calculator/auction-calculator/index.js.map +0 -1
  163. package/dist/cjs/amount-calculator/index.js +0 -10
  164. package/dist/cjs/amount-calculator/index.js.map +0 -1
  165. package/dist/cjs/api/version.js +0 -5
  166. package/dist/cjs/api/version.js.map +0 -1
  167. package/dist/cjs/fusion-order/whitelist/index.js +0 -5
  168. package/dist/cjs/fusion-order/whitelist/index.js.map +0 -1
  169. package/dist/cjs/fusion-order/whitelist/types.js.map +0 -1
  170. package/dist/cjs/fusion-order/whitelist/whitelist.js +0 -121
  171. package/dist/cjs/fusion-order/whitelist/whitelist.js.map +0 -1
  172. package/dist/esm/amount-calculator/amount-calculator.js +0 -62
  173. package/dist/esm/amount-calculator/amount-calculator.js.map +0 -1
  174. package/dist/esm/amount-calculator/auction-calculator/auction-calculator.js.map +0 -1
  175. package/dist/esm/amount-calculator/auction-calculator/index.js +0 -2
  176. package/dist/esm/amount-calculator/auction-calculator/index.js.map +0 -1
  177. package/dist/esm/amount-calculator/index.js +0 -4
  178. package/dist/esm/amount-calculator/index.js.map +0 -1
  179. package/dist/esm/api/version.js +0 -2
  180. package/dist/esm/api/version.js.map +0 -1
  181. package/dist/esm/fusion-order/whitelist/index.js +0 -2
  182. package/dist/esm/fusion-order/whitelist/index.js.map +0 -1
  183. package/dist/esm/fusion-order/whitelist/types.js.map +0 -1
  184. package/dist/esm/fusion-order/whitelist/whitelist.js +0 -116
  185. package/dist/esm/fusion-order/whitelist/whitelist.js.map +0 -1
  186. package/dist/types/src/amount-calculator/amount-calculator.d.ts +0 -21
  187. package/dist/types/src/amount-calculator/index.d.ts +0 -3
  188. package/dist/types/src/api/version.d.ts +0 -1
  189. package/dist/types/src/fusion-order/whitelist/index.d.ts +0 -1
  190. package/dist/types/src/fusion-order/whitelist/types.d.ts +0 -4
  191. package/dist/types/src/fusion-order/whitelist/whitelist.d.ts +0 -26
  192. package/dist/types/src/utils/types.d.ts +0 -3
  193. /package/dist/cjs/fusion-order/{whitelist → settlement-post-interaction-data}/types.js +0 -0
  194. /package/dist/cjs/{utils → fusion-order}/types.js +0 -0
  195. /package/dist/esm/fusion-order/{whitelist → settlement-post-interaction-data}/types.js +0 -0
  196. /package/dist/esm/{utils → fusion-order}/types.js +0 -0
@@ -0,0 +1,13 @@
1
+ export function mulDiv(a, b, x, rounding = Rounding.Floor) {
2
+ const res = (a * b) / x;
3
+ if (rounding === Rounding.Ceil && (a * b) % x > 0) {
4
+ return res + 1n;
5
+ }
6
+ return res;
7
+ }
8
+ export var Rounding;
9
+ (function (Rounding) {
10
+ Rounding[Rounding["Ceil"] = 0] = "Ceil";
11
+ Rounding[Rounding["Floor"] = 1] = "Floor";
12
+ })(Rounding || (Rounding = {}));
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/auction-calculator/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAClB,CAAS,EACT,CAAS,EACT,CAAS,EACT,WAAqB,QAAQ,CAAC,KAAK;IAEnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAEvB,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC/C,OAAO,GAAG,GAAG,EAAE,CAAA;KAClB;IAED,OAAO,GAAG,CAAA;AACd,CAAC;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,uCAAI,CAAA;IACJ,yCAAK,CAAA;AACT,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"axios-provider.connector.js","sourceRoot":"","sources":["../../../../src/connector/http/axios-provider.connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,YAAY,EAAC,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAA;AAEtC,MAAM,OAAO,sBAAsB;IAC/B,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,KAAK,CAAC,GAAG,CAAI,GAAW;QACpB,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CACvB,GAAG,EACH,IAAI,CAAC,OAAO;gBACR,CAAC,CAAC;oBACI,OAAO,EAAE;wBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;qBAC1C;iBACJ;gBACH,CAAC,CAAC,SAAS,CAClB,CAAA;YAED,OAAO,GAAG,CAAC,IAAI,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACxD,MAAM,IAAI,SAAS,EAAE,CAAA;YACzB,CAAC;YAED,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAa;QACpC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CACxB,GAAG,EACH,IAAI,EACJ,IAAI,CAAC,OAAO;gBACR,CAAC,CAAC;oBACI,OAAO,EAAE;wBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;qBAC1C;iBACJ;gBACH,CAAC,CAAC,SAAS,CAClB,CAAA;YAED,OAAO,GAAG,CAAC,IAAI,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACxD,MAAM,IAAI,SAAS,EAAE,CAAA;YACzB,CAAC;YAED,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"axios-provider.connector.js","sourceRoot":"","sources":["../../../../src/connector/http/axios-provider.connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,YAAY,EAAC,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAA;AAEtC,MAAM,OAAO,sBAAsB;IAC/B,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,KAAK,CAAC,GAAG,CAAI,GAAW;QACpB,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CACvB,GAAG,EACH,IAAI,CAAC,OAAO;gBACR,CAAC,CAAC;oBACI,OAAO,EAAE;wBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;qBAC1C;iBACJ;gBACH,CAAC,CAAC,SAAS,CAClB,CAAA;YAED,OAAO,GAAG,CAAC,IAAI,CAAA;SAClB;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE;gBACvD,MAAM,IAAI,SAAS,EAAE,CAAA;aACxB;YAED,MAAM,KAAK,CAAA;SACd;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAa;QACpC,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CACxB,GAAG,EACH,IAAI,EACJ,IAAI,CAAC,OAAO;gBACR,CAAC,CAAC;oBACI,OAAO,EAAE;wBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;qBAC1C;iBACJ;gBACH,CAAC,CAAC,SAAS,CAClB,CAAA;YAED,OAAO,GAAG,CAAC,IAAI,CAAA;SAClB;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE;gBACvD,MAAM,IAAI,SAAS,EAAE,CAAA;aACxB;YAED,MAAM,KAAK,CAAA;SACd;IACL,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-client.connector.js","sourceRoot":"","sources":["../../../../src/connector/ws/websocket-client.connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-client.connector.js","sourceRoot":"","sources":["../../../../src/connector/ws/websocket-client.connector.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAA;AAS1B,MAAM,OAAO,eAAe;IASxB,YAAY,MAAmB;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAE7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAA;QAEzC,IAAI,CAAC,QAAQ,EAAE;YACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CACnB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO;gBACR,CAAC,CAAC;oBACI,OAAO,EAAE;wBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;qBAC1C;iBACJ;gBACH,CAAC,CAAC,SAAS,CAClB,CAAA;YAED,OAAM;SACT;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;IAC5B,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACtD;QAGD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QAEvB,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CACnB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO;YACR,CAAC,CAAC;gBACI,OAAO,EAAE;oBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;iBAC1C;aACJ;YACH,CAAC,CAAC,SAAS,CAClB,CAAA;IACL,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,EAAuB;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,EAAuB;QACtC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,EAAuB;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,IAAI,CAAI,OAAU;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC5B,CAAC;IAED,SAAS,CAAC,EAAe;QACrB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEnC,EAAE,CAAC,UAAU,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,CAAC,EAAe;QACnB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,CAAC,EAAe;QACnB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,cAAc,EAAE,CAAA;SACnB;IACL,CAAC;CACJ;AAED,SAAS,cAAc;IACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;AACvE,CAAC"}
@@ -12,6 +12,8 @@ export var NetworkEnum;
12
12
  NetworkEnum[NetworkEnum["GNOSIS"] = 100] = "GNOSIS";
13
13
  NetworkEnum[NetworkEnum["COINBASE"] = 8453] = "COINBASE";
14
14
  NetworkEnum[NetworkEnum["LINEA"] = 59144] = "LINEA";
15
+ NetworkEnum[NetworkEnum["SONIC"] = 146] = "SONIC";
16
+ NetworkEnum[NetworkEnum["UNICHAIN"] = 130] = "UNICHAIN";
15
17
  })(NetworkEnum || (NetworkEnum = {}));
16
18
  export const ONE_INCH_LIMIT_ORDER_V4 = '0x111111125421ca6dc452d289314280a0f8842a65';
17
19
  export const UINT_160_MAX = (1n << 160n) - 1n;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAA;AAEtB,MAAM,CAAN,IAAY,WAYX;AAZD,WAAY,WAAW;IACnB,qDAAY,CAAA;IACZ,qDAAa,CAAA;IACb,mDAAY,CAAA;IACZ,oDAAY,CAAA;IACZ,yDAAgB,CAAA;IAChB,2DAAiB,CAAA;IACjB,sDAAa,CAAA;IACb,mDAAY,CAAA;IACZ,mDAAY,CAAA;IACZ,wDAAe,CAAA;IACf,mDAAa,CAAA;AACjB,CAAC,EAZW,WAAW,KAAX,WAAW,QAYtB;AAED,MAAM,CAAC,MAAM,uBAAuB,GAChC,4CAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAA;AAEtB,MAAM,CAAN,IAAY,WAcX;AAdD,WAAY,WAAW;IACnB,qDAAY,CAAA;IACZ,qDAAa,CAAA;IACb,mDAAY,CAAA;IACZ,oDAAY,CAAA;IACZ,yDAAgB,CAAA;IAChB,2DAAiB,CAAA;IACjB,sDAAa,CAAA;IACb,mDAAY,CAAA;IACZ,mDAAY,CAAA;IACZ,wDAAe,CAAA;IACf,mDAAa,CAAA;IACb,iDAAW,CAAA;IACX,uDAAc,CAAA;AAClB,CAAC,EAdW,WAAW,KAAX,WAAW,QActB;AAED,MAAM,CAAC,MAAM,uBAAuB,GAChC,4CAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { ethers } from 'ethers';
2
- import { BytesBuilder, BytesIter } from '@1inch/byte-utils';
2
+ import { BytesIter } from '@1inch/byte-utils';
3
3
  import assert from 'assert';
4
4
  import { isHexBytes } from '../../validations';
5
5
  import { add0x, trim0x } from '../../utils';
@@ -20,55 +20,47 @@ export class AuctionDetails {
20
20
  assert(this.duration <= UINT_24_MAX);
21
21
  assert(this.initialRateBump <= UINT_24_MAX);
22
22
  }
23
- static decodeFrom(iter) {
23
+ static decode(data) {
24
+ assert(isHexBytes(data), 'Invalid auction details data');
25
+ const iter = BytesIter.BigInt(data);
24
26
  const gasBumpEstimate = iter.nextUint24();
25
27
  const gasPriceEstimate = iter.nextUint32();
26
28
  const start = iter.nextUint32();
27
29
  const duration = iter.nextUint24();
28
30
  const rateBump = Number(iter.nextUint24());
29
31
  const points = [];
30
- let pointsLen = BigInt(iter.nextUint8());
31
- while (pointsLen--) {
32
+ while (!iter.isEmpty()) {
32
33
  points.push({
33
34
  coefficient: Number(iter.nextUint24()),
34
35
  delay: Number(iter.nextUint16())
35
36
  });
36
37
  }
37
38
  return new AuctionDetails({
38
- startTime: BigInt(start),
39
- duration: BigInt(duration),
39
+ startTime: start,
40
+ duration: duration,
40
41
  initialRateBump: rateBump,
41
42
  points,
42
43
  gasCost: {
43
- gasBumpEstimate: BigInt(gasBumpEstimate),
44
- gasPriceEstimate: BigInt(gasPriceEstimate)
44
+ gasBumpEstimate,
45
+ gasPriceEstimate
45
46
  }
46
47
  });
47
48
  }
48
- static decode(data) {
49
- assert(isHexBytes(data), 'Invalid auction details data');
50
- const iter = BytesIter.BigInt(data);
51
- return AuctionDetails.decodeFrom(iter);
52
- }
53
49
  static fromExtension(extension) {
54
50
  return AuctionDetails.decode(add0x(extension.makingAmountData.slice(42)));
55
51
  }
56
52
  encode() {
57
- let details = ethers.solidityPacked(['uint24', 'uint32', 'uint32', 'uint24', 'uint24', 'uint8'], [
53
+ let details = ethers.solidityPacked(['uint24', 'uint32', 'uint32', 'uint24', 'uint24'], [
58
54
  this.gasCost.gasBumpEstimate,
59
55
  this.gasCost.gasPriceEstimate,
60
56
  this.startTime,
61
57
  this.duration,
62
- this.initialRateBump,
63
- this.points.length
58
+ this.initialRateBump
64
59
  ]);
65
60
  for (let i = 0; i < this.points.length; i++) {
66
61
  details += trim0x(ethers.solidityPacked(['uint24', 'uint16'], [this.points[i].coefficient, this.points[i].delay]));
67
62
  }
68
63
  return details;
69
64
  }
70
- encodeInto(builder = new BytesBuilder()) {
71
- return builder.addBytes(this.encode());
72
- }
73
65
  }
74
66
  //# sourceMappingURL=auction-details.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auction-details.js","sourceRoot":"","sources":["../../../../src/fusion-order/auction-details/auction-details.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auction-details.js","sourceRoot":"","sources":["../../../../src/fusion-order/auction-details/auction-details.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { UINT_32_MAX, UINT_16_MAX } from '@1inch/byte-utils';
2
+ import assert from 'assert';
3
+ export class CancellationAuction {
4
+ constructor(duration, maxRewardBps) {
5
+ this.duration = duration;
6
+ this.maxRewardBps = maxRewardBps;
7
+ assert(duration <= UINT_32_MAX, 'max cancellation auction duration must be <= UINT_32_MAX');
8
+ assert(maxRewardBps <= UINT_16_MAX, 'max cancellation auction maxRewardBps must be <= UINT_16_MAX');
9
+ }
10
+ build() {
11
+ return (this.duration << 16n) | this.maxRewardBps;
12
+ }
13
+ }
14
+ CancellationAuction.ZERO = new CancellationAuction(0n, 0n);
15
+ //# sourceMappingURL=cancellation-auction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancellation-auction.js","sourceRoot":"","sources":["../../../src/fusion-order/cancellation-auction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC1D,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,MAAM,OAAO,mBAAmB;IAG5B,YACoB,QAAgB,EAYhB,YAAoB;QAZpB,aAAQ,GAAR,QAAQ,CAAQ;QAYhB,iBAAY,GAAZ,YAAY,CAAQ;QAEpC,MAAM,CACF,QAAQ,IAAI,WAAW,EACvB,0DAA0D,CAC7D,CAAA;QAED,MAAM,CACF,YAAY,IAAI,WAAW,EAC3B,8DAA8D,CACjE,CAAA;IACL,CAAC;IAEM,KAAK;QACR,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAA;IACrD,CAAC;;AA9BM,wBAAI,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA"}
@@ -11,6 +11,8 @@ export const CHAIN_TO_WRAPPER = {
11
11
  [NetworkEnum.OPTIMISM]: new Address('0x4200000000000000000000000000000000000006'),
12
12
  [NetworkEnum.FANTOM]: new Address('0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83'),
13
13
  [NetworkEnum.ZKSYNC]: new Address('0x5aea5775959fbc2557cc8789bc1bf90a239d9a91'),
14
- [NetworkEnum.LINEA]: new Address('0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f')
14
+ [NetworkEnum.LINEA]: new Address('0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f'),
15
+ [NetworkEnum.SONIC]: new Address('0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38'),
16
+ [NetworkEnum.UNICHAIN]: new Address('0x4200000000000000000000000000000000000006')
15
17
  };
16
18
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/fusion-order/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAC9B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAC9B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,OAAO,CAChC,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,CAC7B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,CAC7B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,CAC7B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,CAC5B,4CAA4C,CAC/C;CACJ,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/fusion-order/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAC9B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAC9B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,OAAO,CAChC,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,CAC7B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,CAC7B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,CAC7B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,CAC5B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,CAC5B,4CAA4C,CAC/C;IACD,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAC/B,4CAA4C,CAC/C;CACJ,CAAA"}
@@ -1,15 +1,22 @@
1
- import { Address, Extension, ExtensionBuilder, Interaction, Bps, mulDiv, Rounding, FeeTakerExt } from '@1inch/limit-order-sdk';
2
- import { BN, BytesBuilder, BytesIter } from '@1inch/byte-utils';
1
+ import { Address, Extension, ExtensionBuilder, Interaction } from '@1inch/limit-order-sdk';
3
2
  import assert from 'assert';
4
3
  import { AuctionDetails } from './auction-details';
5
- import { Whitelist } from './whitelist/whitelist';
6
- import { add0x } from '../utils';
4
+ import { SettlementPostInteractionData } from './settlement-post-interaction-data';
7
5
  export class FusionExtension {
8
- constructor(address, auctionDetails, whitelist, extra) {
6
+ constructor(address, auctionDetails, postInteractionData, makerPermit) {
9
7
  this.address = address;
10
8
  this.auctionDetails = auctionDetails;
11
- this.whitelist = whitelist;
12
- this.extra = extra;
9
+ this.postInteractionData = postInteractionData;
10
+ this.makerPermit = makerPermit;
11
+ this.builder = new ExtensionBuilder();
12
+ const detailsBytes = this.auctionDetails.encode();
13
+ this.builder
14
+ .withMakingAmountData(this.address, detailsBytes)
15
+ .withTakingAmountData(this.address, detailsBytes)
16
+ .withPostInteraction(new Interaction(this.address, this.postInteractionData.encode()));
17
+ if (makerPermit) {
18
+ this.builder.withMakerPermit(makerPermit.target, makerPermit.data);
19
+ }
13
20
  }
14
21
  static decode(bytes) {
15
22
  const extension = Extension.decode(bytes);
@@ -19,141 +26,15 @@ export class FusionExtension {
19
26
  const settlementContract = Address.fromFirstBytes(extension.makingAmountData);
20
27
  assert(Address.fromFirstBytes(extension.takingAmountData).equal(settlementContract) &&
21
28
  Address.fromFirstBytes(extension.postInteraction).equal(settlementContract), 'Invalid extension, all calls should be to the same address');
22
- assert(extension.takingAmountData == extension.makingAmountData, 'Invalid extension, taking amount data must be equal to making amount data');
23
- const interactionBytes = BytesIter.HexString(extension.postInteraction);
24
- interactionBytes.nextUint160();
25
- const flags = BN.fromHex(interactionBytes.nextUint8());
26
- const integratorFeeRecipient = new Address(interactionBytes.nextUint160());
27
- const protocolFeeRecipient = new Address(interactionBytes.nextUint160());
28
- const customReceiver = flags.getBit(FusionExtension.CUSTOM_RECEIVER_FLAG_BIT)
29
- ? new Address(interactionBytes.nextUint160())
30
- : undefined;
31
- const interactionData = parseAmountData(interactionBytes);
32
- const whitelist = Whitelist.decodeFrom(interactionBytes);
33
- const amountBytes = BytesIter.HexString(extension.makingAmountData);
34
- amountBytes.nextUint160();
35
- const auctionDetails = AuctionDetails.decodeFrom(amountBytes);
36
- const amountData = parseAmountData(amountBytes);
37
- const whitelistAddressLength = Number(amountBytes.nextUint8());
38
- assert(whitelist.length === whitelistAddressLength, 'whitelist addresses must be same in interaction data and in amount data');
39
- const whitelistAddressesFromAmount = [];
40
- for (let i = 0; i < whitelistAddressLength; i++) {
41
- whitelistAddressesFromAmount.push(BigInt(amountBytes.nextBytes(10)).toString(16).padStart(20, '0'));
42
- }
43
- const makerPermit = extension.hasMakerPermit
29
+ const auctionDetails = AuctionDetails.fromExtension(extension);
30
+ const postInteractionData = SettlementPostInteractionData.fromExtension(extension);
31
+ const permit = extension.hasMakerPermit
44
32
  ? Interaction.decode(extension.makerPermit)
45
33
  : undefined;
46
- assert(amountData.fees.integratorFee.value ===
47
- interactionData.fees.integratorFee.value, `invalid extension: integrator fee must be same in interaction data and in amount data`);
48
- assert(amountData.fees.resolverFee.value ===
49
- interactionData.fees.resolverFee.value, `invalid extension: resolver fee must be same in interaction data and in amount data`);
50
- assert(amountData.fees.whitelistDiscount.equal(interactionData.fees.whitelistDiscount), `invalid extension: whitelistDiscount must be same in interaction data and in amount data`);
51
- assert(amountData.fees.integratorShare.value ===
52
- interactionData.fees.integratorShare.value, `invalid extension: integrator share must be same in interaction data and in amount data`);
53
- assert(whitelist.whitelist.every(({ addressHalf }, i) => whitelistAddressesFromAmount[i] === addressHalf), 'whitelist addresses must be same in interaction data and in amount data');
54
- const hasFees = !integratorFeeRecipient.isZero() || !protocolFeeRecipient.isZero();
55
- if (!hasFees) {
56
- return new FusionExtension(settlementContract, auctionDetails, whitelist, {
57
- makerPermit,
58
- customReceiver,
59
- fees: undefined
60
- });
61
- }
62
- const fees = new FeeTakerExt.Fees(interactionData.fees.resolverFee.isZero()
63
- ? FeeTakerExt.ResolverFee.ZERO
64
- : new FeeTakerExt.ResolverFee(protocolFeeRecipient, interactionData.fees.resolverFee, interactionData.fees.whitelistDiscount), interactionData.fees.integratorFee.isZero()
65
- ? FeeTakerExt.IntegratorFee.ZERO
66
- : new FeeTakerExt.IntegratorFee(integratorFeeRecipient, protocolFeeRecipient, interactionData.fees.integratorFee, interactionData.fees.integratorShare));
67
- return new FusionExtension(settlementContract, auctionDetails, whitelist, {
68
- makerPermit,
69
- fees,
70
- customReceiver
71
- });
34
+ return new FusionExtension(settlementContract, auctionDetails, postInteractionData, permit);
72
35
  }
73
36
  build() {
74
- const amountData = this.buildAmountGetterData(true);
75
- const builder = new ExtensionBuilder()
76
- .withMakingAmountData(this.address, amountData)
77
- .withTakingAmountData(this.address, amountData)
78
- .withPostInteraction(new Interaction(this.address, this.buildInteractionData()));
79
- if (this.extra?.makerPermit) {
80
- builder.withMakerPermit(this.extra?.makerPermit.target, this.extra?.makerPermit.data);
81
- }
82
- return builder.build();
83
- }
84
- buildInteractionData() {
85
- const customReceiver = this.extra?.customReceiver || Address.ZERO_ADDRESS;
86
- const flags = new BN(0n).setBit(FusionExtension.CUSTOM_RECEIVER_FLAG_BIT, Boolean(!customReceiver.isZero()));
87
- const integratorReceiver = this.extra?.fees?.integrator.integrator || Address.ZERO_ADDRESS;
88
- const protocolReceiver = this.extra?.fees?.protocol || Address.ZERO_ADDRESS;
89
- const builder = new BytesBuilder()
90
- .addUint8(flags)
91
- .addAddress(integratorReceiver.toString())
92
- .addAddress(protocolReceiver.toString());
93
- if (!customReceiver.isZero()) {
94
- builder.addAddress(customReceiver.toString());
95
- }
96
- builder.addBytes(this.buildAmountGetterData(false));
97
- return builder.asHex();
37
+ return this.builder.build();
98
38
  }
99
- buildAmountGetterData(forAmountGetters) {
100
- const builder = new BytesBuilder();
101
- if (forAmountGetters) {
102
- this.auctionDetails.encodeInto(builder);
103
- }
104
- const integrator = {
105
- fee: this.extra?.fees?.integrator.fee.toFraction(FeeTakerExt.Fees.BASE_1E5) || 0,
106
- share: this.extra?.fees?.integrator.share.toFraction(FeeTakerExt.Fees.BASE_1E2) || 0
107
- };
108
- const resolverFee = this.extra?.fees?.resolver.fee.toFraction(FeeTakerExt.Fees.BASE_1E5) || 0;
109
- const whitelistDiscount = this.extra?.fees?.resolver.whitelistDiscount || Bps.ZERO;
110
- builder
111
- .addUint16(BigInt(integrator.fee))
112
- .addUint8(BigInt(integrator.share))
113
- .addUint16(BigInt(resolverFee))
114
- .addUint8(BigInt(Number(FeeTakerExt.Fees.BASE_1E2) -
115
- whitelistDiscount.toFraction(FeeTakerExt.Fees.BASE_1E2)));
116
- if (forAmountGetters) {
117
- builder.addUint8(BigInt(this.whitelist.whitelist.length));
118
- this.whitelist.whitelist.forEach((i) => {
119
- builder.addBytes(add0x(i.addressHalf));
120
- });
121
- }
122
- else {
123
- this.whitelist.encodeInto(builder);
124
- }
125
- return builder.asHex();
126
- }
127
- getFeesForTaker(taker) {
128
- const whitelistDiscount = this.extra?.fees?.resolver.whitelistDiscount.toFraction(FeeTakerExt.Fees.BASE_1E2) || 0;
129
- const discountNumerator = this.whitelist.isWhitelisted(taker)
130
- ? (Number(FeeTakerExt.Fees.BASE_1E2) - whitelistDiscount) /
131
- Number(FeeTakerExt.Fees.BASE_1E2)
132
- : 1;
133
- const resolverFee = discountNumerator *
134
- (this.extra?.fees?.resolver.fee.toFraction(FeeTakerExt.Fees.BASE_1E5) || 0);
135
- const resolverFeeBN = BigInt(resolverFee);
136
- const integratorFeeBN = BigInt(this.extra?.fees?.integrator.fee.toFraction(FeeTakerExt.Fees.BASE_1E5) || 0);
137
- return {
138
- resolverFee: resolverFeeBN,
139
- integratorFee: integratorFeeBN
140
- };
141
- }
142
- getTakingAmountWithFee(taker, orderTakingAmount) {
143
- const fees = this.getFeesForTaker(taker);
144
- return mulDiv(orderTakingAmount, FeeTakerExt.Fees.BASE_1E5 + fees.resolverFee + fees.integratorFee, FeeTakerExt.Fees.BASE_1E5, Rounding.Ceil);
145
- }
146
- }
147
- FusionExtension.CUSTOM_RECEIVER_FLAG_BIT = 0n;
148
- function parseAmountData(iter) {
149
- const fees = {
150
- integratorFee: Bps.fromFraction(Number(iter.nextUint16()), FeeTakerExt.Fees.BASE_1E5),
151
- integratorShare: Bps.fromFraction(Number(iter.nextUint8()), FeeTakerExt.Fees.BASE_1E2),
152
- resolverFee: Bps.fromFraction(Number(iter.nextUint16()), FeeTakerExt.Fees.BASE_1E5),
153
- whitelistDiscount: Bps.fromFraction(Number(FeeTakerExt.Fees.BASE_1E2) - Number(iter.nextUint8()), FeeTakerExt.Fees.BASE_1E2)
154
- };
155
- return {
156
- fees
157
- };
158
39
  }
159
40
  //# 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,OAAO,EACH,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,WAAW,EACd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAA;AAEhF,MAAM,OAAO,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,gBAAgB,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,WAAW,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,SAAS,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,OAAO,CAAC,cAAc,CAC7C,SAAS,CAAC,gBAAgB,CAC7B,CAAA;QAED,MAAM,CACF,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK,CACpD,kBAAkB,CACrB;YACG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CACnD,kBAAkB,CACrB,EACL,4DAA4D,CAC/D,CAAA;QAED,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE9D,MAAM,mBAAmB,GACrB,6BAA6B,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE1D,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc;YACnC,CAAC,CAAC,WAAW,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"}
@@ -1,20 +1,17 @@
1
1
  import { Address, Interaction, LimitOrder, MakerTraits } from '@1inch/limit-order-sdk';
2
2
  import assert from 'assert';
3
3
  import { FusionExtension } from './fusion-extension';
4
+ import { AuctionDetails } from './auction-details';
5
+ import { SettlementPostInteractionData } from './settlement-post-interaction-data';
4
6
  import { injectTrackCode } from './source-track';
5
- import { AuctionCalculator } from '../amount-calculator/auction-calculator';
7
+ import { AuctionCalculator } from '../auction-calculator';
6
8
  import { ZX } from '../constants';
7
9
  import { calcTakingAmount } from '../utils/amounts';
8
10
  import { now } from '../utils/time';
9
- import { AmountCalculator } from '../amount-calculator/amount-calculator';
10
11
  export class FusionOrder {
11
- constructor(settlementExtensionContract, orderInfo, auctionDetails, whitelist, extra = FusionOrder.defaultExtra, extension = new FusionExtension(settlementExtensionContract, auctionDetails, whitelist, {
12
- makerPermit: extra.permit
13
- ? new Interaction(orderInfo.makerAsset, extra.permit)
14
- : undefined,
15
- customReceiver: orderInfo.receiver,
16
- fees: extra?.fees
17
- })) {
12
+ constructor(settlementExtensionContract, orderInfo, auctionDetails, postInteractionData, extra = FusionOrder.defaultExtra, extension = new FusionExtension(settlementExtensionContract, auctionDetails, postInteractionData, extra.permit
13
+ ? new Interaction(orderInfo.makerAsset, extra.permit)
14
+ : undefined)) {
18
15
  this.settlementExtensionContract = settlementExtensionContract;
19
16
  const allowPartialFills = extra.allowPartialFills ??
20
17
  FusionOrder.defaultExtra.allowPartialFills;
@@ -44,7 +41,7 @@ export class FusionOrder {
44
41
  if (extra.nonce !== undefined) {
45
42
  makerTraits.withNonce(extra.nonce);
46
43
  }
47
- const receiver = extra.fees
44
+ const receiver = postInteractionData.integratorFee?.ratio
48
45
  ? settlementExtensionContract
49
46
  : orderInfo.receiver;
50
47
  const builtExtension = extension.build();
@@ -52,11 +49,17 @@ export class FusionOrder {
52
49
  const saltWithInjectedTrackCode = orderInfo.salt
53
50
  ? salt
54
51
  : injectTrackCode(salt, extra.source);
52
+ if (orderInfo.makerAsset.isNative()) {
53
+ throw new Error('use FusionOrder.fromNative to create order from native asset');
54
+ }
55
+ const optimizeReceiverAddress = extra.optimizeReceiverAddress !== undefined
56
+ ? extra.optimizeReceiverAddress
57
+ : FusionOrder.defaultExtra.optimizeReceiverAddress;
55
58
  this.inner = new LimitOrder({
56
59
  ...orderInfo,
57
60
  receiver,
58
61
  salt: saltWithInjectedTrackCode
59
- }, makerTraits, builtExtension);
62
+ }, makerTraits, builtExtension, { optimizeReceiverAddress });
60
63
  this.fusionExtension = extension;
61
64
  }
62
65
  get extension() {
@@ -77,13 +80,6 @@ export class FusionOrder {
77
80
  get makingAmount() {
78
81
  return this.inner.makingAmount;
79
82
  }
80
- get realReceiver() {
81
- const hasFee = Boolean(this.fusionExtension.extra?.fees);
82
- const receiver = hasFee
83
- ? this.fusionExtension.extra?.customReceiver
84
- : this.inner.receiver;
85
- return receiver && !receiver.isZero() ? receiver : this.maker;
86
- }
87
83
  get receiver() {
88
84
  return this.inner.receiver;
89
85
  }
@@ -113,7 +109,28 @@ export class FusionOrder {
113
109
  return this.inner.salt;
114
110
  }
115
111
  static new(settlementExtension, orderInfo, details, extra) {
116
- return new FusionOrder(settlementExtension, orderInfo, details.auction, details.whitelist, extra);
112
+ return new FusionOrder(settlementExtension, orderInfo, details.auction, SettlementPostInteractionData.new({
113
+ bankFee: details.fees?.bankFee || 0n,
114
+ integratorFee: details.fees?.integratorFee,
115
+ whitelist: details.whitelist,
116
+ resolvingStartTime: details.resolvingStartTime ?? now(),
117
+ customReceiver: orderInfo.receiver
118
+ }), extra);
119
+ }
120
+ static isNativeOrder(chainId, ethOrderFactory, order, signature) {
121
+ return LimitOrder.isNativeOrder(chainId, ethOrderFactory, order, signature);
122
+ }
123
+ static fromNative(chainId, ethOrdersFactory, settlementExtension, orderInfo, details, extra) {
124
+ const _orderInfo = {
125
+ ...orderInfo,
126
+ makerAsset: LimitOrder.CHAIN_TO_WRAPPER[chainId],
127
+ receiver: orderInfo.receiver && !orderInfo.receiver.isZero()
128
+ ? orderInfo.receiver
129
+ : orderInfo.maker
130
+ };
131
+ const _order = FusionOrder.new(settlementExtension, _orderInfo, details, { ...extra, optimizeReceiverAddress: false });
132
+ _order.inner = LimitOrder.fromNative(chainId, ethOrdersFactory, { ..._orderInfo, salt: _order.salt }, _order.inner.makerTraits, _order.inner.extension);
133
+ return _order;
117
134
  }
118
135
  static fromDataAndExtension(order, extension) {
119
136
  const settlementContract = Address.fromFirstBytes(extension.makingAmountData);
@@ -122,7 +139,8 @@ export class FusionOrder {
122
139
  const makerTraits = new MakerTraits(BigInt(order.makerTraits));
123
140
  assert(!makerTraits.isPrivate(), 'fusion order can not be private');
124
141
  assert(makerTraits.hasPostInteraction(), 'post-interaction must be enabled');
125
- const { auctionDetails, whitelist, extra } = FusionExtension.fromExtension(extension);
142
+ const auctionDetails = AuctionDetails.fromExtension(extension);
143
+ const postInteractionData = SettlementPostInteractionData.fromExtension(extension);
126
144
  const deadline = makerTraits.expiration();
127
145
  const orderExpirationDelay = deadline === null
128
146
  ? undefined
@@ -130,12 +148,12 @@ export class FusionOrder {
130
148
  return new FusionOrder(settlementContract, {
131
149
  salt: BigInt(order.salt) >> 160n,
132
150
  maker: new Address(order.maker),
133
- receiver: extra?.customReceiver,
151
+ receiver: new Address(order.receiver),
134
152
  makerAsset: new Address(order.makerAsset),
135
153
  takerAsset: new Address(order.takerAsset),
136
154
  makingAmount: BigInt(order.makingAmount),
137
155
  takingAmount: BigInt(order.takingAmount)
138
- }, auctionDetails, whitelist, {
156
+ }, auctionDetails, postInteractionData, {
139
157
  allowMultipleFills: makerTraits.isMultipleFillsAllowed(),
140
158
  allowPartialFills: makerTraits.isPartialFillAllowed(),
141
159
  enablePermit2: makerTraits.isPermit2(),
@@ -145,9 +163,15 @@ export class FusionOrder {
145
163
  : Interaction.decode(extension.makerPermit).data,
146
164
  unwrapWETH: makerTraits.isNativeUnwrapEnabled(),
147
165
  orderExpirationDelay,
148
- fees: extra?.fees
166
+ optimizeReceiverAddress: true
149
167
  });
150
168
  }
169
+ isNative(chainId, ethOrderFactory, signature) {
170
+ return this.inner.isNative(chainId, ethOrderFactory, signature);
171
+ }
172
+ nativeSignature(maker) {
173
+ return this.inner.nativeSignature(maker);
174
+ }
151
175
  build() {
152
176
  return this.inner.build();
153
177
  }
@@ -158,53 +182,40 @@ export class FusionOrder {
158
182
  return this.inner.getTypedData(chainId);
159
183
  }
160
184
  getCalculator() {
161
- return AuctionCalculator.fromAuctionData(this.fusionExtension.auctionDetails);
162
- }
163
- calcTakingAmount(taker, makingAmount, time, blockBaseFee = 0n) {
164
- const takingAmount = calcTakingAmount(makingAmount, this.makingAmount, this.takingAmount);
165
- return this.getAmountCalculator().getRequiredTakingAmount(taker, takingAmount, time, blockBaseFee);
166
- }
167
- getUserReceiveAmount(taker, makingAmount, time, blockBaseFee = 0n) {
168
- const takingAmount = calcTakingAmount(makingAmount, this.makingAmount, this.takingAmount);
169
- return this.getAmountCalculator().getUserTakingAmountAmount(taker, takingAmount, time, blockBaseFee);
185
+ return AuctionCalculator.fromAuctionData(this.fusionExtension.postInteractionData, this.fusionExtension.auctionDetails);
170
186
  }
171
- getResolverFee(taker, time, blockBaseFee = 0n, makingAmount = this.makingAmount) {
187
+ calcTakingAmount(makingAmount, time, blockBaseFee = 0n) {
172
188
  const takingAmount = calcTakingAmount(makingAmount, this.makingAmount, this.takingAmount);
173
- return (this.getAmountCalculator().getResolverFee(taker, takingAmount, time, blockBaseFee) ?? 0n);
174
- }
175
- getIntegratorFee(taker, time, blockBaseFee = 0n, makingAmount = this.makingAmount) {
176
- const takingAmount = calcTakingAmount(makingAmount, this.makingAmount, this.takingAmount);
177
- return (this.getAmountCalculator().getIntegratorFee(taker, takingAmount, time, blockBaseFee) ?? 0n);
178
- }
179
- getProtocolShareOfIntegratorFee(taker, time, blockBaseFee = 0n, makingAmount = this.makingAmount) {
180
- const takingAmount = calcTakingAmount(makingAmount, this.makingAmount, this.takingAmount);
181
- return (this.getAmountCalculator().getProtocolShareOfIntegratorFee(taker, takingAmount, time, blockBaseFee) ?? 0n);
182
- }
183
- getProtocolFee(taker, time, blockBaseFee = 0n, makingAmount = this.makingAmount) {
184
- const takingAmount = calcTakingAmount(makingAmount, this.makingAmount, this.takingAmount);
185
- return (this.getAmountCalculator().getProtocolFee(taker, takingAmount, time, blockBaseFee) ?? 0n);
189
+ const calculator = this.getCalculator();
190
+ const bump = calculator.calcRateBump(time, blockBaseFee);
191
+ return calculator.calcAuctionTakingAmount(takingAmount, bump);
186
192
  }
187
193
  canExecuteAt(executor, executionTime) {
188
- return this.fusionExtension.whitelist.canExecuteAt(executor, executionTime);
194
+ return this.fusionExtension.postInteractionData.canExecuteAt(executor, executionTime);
189
195
  }
190
196
  isExpiredAt(time) {
191
197
  return time > this.deadline;
192
198
  }
199
+ getResolverFee(filledMakingAmount) {
200
+ return ((this.fusionExtension.postInteractionData.bankFee *
201
+ FusionOrder._ORDER_FEE_BASE_POINTS *
202
+ filledMakingAmount) /
203
+ this.makingAmount);
204
+ }
193
205
  isExclusiveResolver(wallet) {
194
- return this.fusionExtension.whitelist.isExclusiveResolver(wallet);
206
+ return this.fusionExtension.postInteractionData.isExclusiveResolver(wallet);
195
207
  }
196
208
  isExclusivityPeriod(time = now()) {
197
- return this.fusionExtension.whitelist.isExclusivityPeriod(time);
198
- }
199
- getAmountCalculator() {
200
- return AmountCalculator.fromExtension(this.fusionExtension);
209
+ return this.fusionExtension.postInteractionData.isExclusivityPeriod(time);
201
210
  }
202
211
  }
212
+ FusionOrder._ORDER_FEE_BASE_POINTS = 10n ** 15n;
203
213
  FusionOrder.defaultExtra = {
204
214
  allowPartialFills: true,
205
215
  allowMultipleFills: true,
206
216
  unwrapWETH: false,
207
217
  enablePermit2: false,
208
- orderExpirationDelay: 12n
218
+ orderExpirationDelay: 12n,
219
+ optimizeReceiverAddress: true
209
220
  };
210
221
  //# sourceMappingURL=fusion-order.js.map