@1inch/fusion-sdk 2.3.4 → 2.3.6-rc.0

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 (419) hide show
  1. package/dist/cjs/amount-calculator/amount-calculator.js +274 -78
  2. package/dist/cjs/amount-calculator/amount-calculator.spec.js +66 -0
  3. package/dist/cjs/amount-calculator/auction-calculator/README.md +59 -0
  4. package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.js +183 -77
  5. package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.spec.js +57 -0
  6. package/dist/cjs/amount-calculator/auction-calculator/index.js +17 -4
  7. package/dist/cjs/amount-calculator/index.js +34 -9
  8. package/dist/cjs/api/fusion-api.js +119 -48
  9. package/dist/cjs/api/index.js +24 -11
  10. package/dist/cjs/api/orders/index.js +19 -6
  11. package/dist/cjs/api/orders/order-api.spec.js +746 -0
  12. package/dist/cjs/api/orders/orders.api.js +245 -36
  13. package/dist/cjs/api/orders/orders.request.js +159 -63
  14. package/dist/cjs/api/orders/types.js +14 -6
  15. package/dist/cjs/api/ordersVersion.js +12 -6
  16. package/dist/cjs/api/pagination.js +62 -15
  17. package/dist/cjs/api/pagination.spec.js +29 -0
  18. package/dist/cjs/api/params.js +27 -21
  19. package/dist/cjs/api/quoter/index.js +22 -9
  20. package/dist/cjs/api/quoter/preset.js +87 -28
  21. package/dist/cjs/api/quoter/quote/index.js +19 -6
  22. package/dist/cjs/api/quoter/quote/order-params.js +63 -14
  23. package/dist/cjs/api/quoter/quote/quote.js +158 -94
  24. package/dist/cjs/api/quoter/quote/types.js +3 -2
  25. package/dist/cjs/api/quoter/quoter-custom-preset.request.js +118 -56
  26. package/dist/cjs/api/quoter/quoter-custom-preset.request.spec.js +131 -0
  27. package/dist/cjs/api/quoter/quoter.api.js +241 -28
  28. package/dist/cjs/api/quoter/quoter.api.spec.js +365 -0
  29. package/dist/cjs/api/quoter/quoter.request.js +94 -34
  30. package/dist/cjs/api/quoter/quoter.request.spec.js +111 -0
  31. package/dist/cjs/api/quoter/types.js +16 -6
  32. package/dist/cjs/api/relayer/index.js +19 -6
  33. package/dist/cjs/api/relayer/relayer.api.js +73 -18
  34. package/dist/cjs/api/relayer/relayer.api.spec.js +234 -0
  35. package/dist/cjs/api/relayer/relayer.request.js +71 -18
  36. package/dist/cjs/api/relayer/types.js +3 -2
  37. package/dist/cjs/api/types.js +3 -2
  38. package/dist/cjs/api-ext.js +17 -4
  39. package/dist/cjs/connector/blockchain/blockchain-provider.connector.js +3 -2
  40. package/dist/cjs/connector/blockchain/index.js +19 -6
  41. package/dist/cjs/connector/blockchain/private-key-provider.connector.js +85 -19
  42. package/dist/cjs/connector/blockchain/private-key-provider.connector.spec.js +183 -0
  43. package/dist/cjs/connector/blockchain/web3-provider-connector.js +71 -22
  44. package/dist/cjs/connector/blockchain/web3-provider.connector.spec.js +186 -0
  45. package/dist/cjs/connector/http/axios-provider.connector.js +298 -39
  46. package/dist/cjs/connector/http/axios-provider.connector.spec.js +208 -0
  47. package/dist/cjs/connector/http/http-provider.connector.js +3 -2
  48. package/dist/cjs/connector/http/index.js +18 -5
  49. package/dist/cjs/connector/index.js +19 -6
  50. package/dist/cjs/connector/ws/index.js +19 -6
  51. package/dist/cjs/connector/ws/types.js +3 -2
  52. package/dist/cjs/connector/ws/websocket-client.connector.js +155 -71
  53. package/dist/cjs/connector/ws/websocket-provider.connector.js +3 -2
  54. package/dist/cjs/constants.js +53 -15
  55. package/dist/cjs/errors.js +123 -7
  56. package/dist/cjs/fusion-order/README.md +58 -0
  57. package/dist/cjs/fusion-order/auction-details/README.md +85 -0
  58. package/dist/cjs/fusion-order/auction-details/auction-details.js +182 -67
  59. package/dist/cjs/fusion-order/auction-details/auction-details.spec.js +25 -0
  60. package/dist/cjs/fusion-order/auction-details/index.js +18 -5
  61. package/dist/cjs/fusion-order/auction-details/types.js +3 -2
  62. package/dist/cjs/fusion-order/constants.js +26 -20
  63. package/dist/cjs/fusion-order/fees/fees.js +93 -27
  64. package/dist/cjs/fusion-order/fees/index.js +23 -9
  65. package/dist/cjs/fusion-order/fees/integrator-fee.js +54 -25
  66. package/dist/cjs/fusion-order/fees/resolver-fee.js +55 -20
  67. package/dist/cjs/fusion-order/fusion-extension.js +259 -155
  68. package/dist/cjs/fusion-order/fusion-extension.spec.js +78 -0
  69. package/dist/cjs/fusion-order/fusion-order.js +502 -199
  70. package/dist/cjs/fusion-order/fusion-order.spec.js +298 -0
  71. package/dist/cjs/fusion-order/index.js +29 -13
  72. package/dist/cjs/fusion-order/source-track.js +18 -12
  73. package/dist/cjs/fusion-order/surplus-params.js +80 -20
  74. package/dist/cjs/fusion-order/whitelist/README.md +54 -0
  75. package/dist/cjs/fusion-order/whitelist/index.js +18 -5
  76. package/dist/cjs/fusion-order/whitelist/types.js +3 -2
  77. package/dist/cjs/fusion-order/whitelist/whitelist.js +253 -109
  78. package/dist/cjs/fusion-order/whitelist/whitelist.spec.js +68 -0
  79. package/dist/cjs/index.js +91 -35
  80. package/dist/cjs/sdk/README.md +264 -0
  81. package/dist/cjs/sdk/encoders/cancel-order.encoder.js +20 -10
  82. package/dist/cjs/sdk/encoders/index.js +17 -4
  83. package/dist/cjs/sdk/index.js +20 -7
  84. package/dist/cjs/sdk/sdk.js +484 -129
  85. package/dist/cjs/sdk/sdk.spec.js +235 -0
  86. package/dist/cjs/sdk/types.js +3 -2
  87. package/dist/cjs/sdk/utils.js +21 -8
  88. package/dist/cjs/utils/amounts.js +35 -9
  89. package/dist/cjs/utils/time.js +9 -3
  90. package/dist/cjs/utils/types.js +3 -2
  91. package/dist/cjs/utils.js +17 -4
  92. package/dist/cjs/validations.js +32 -13
  93. package/dist/cjs/ws-api/README.md +627 -0
  94. package/dist/cjs/ws-api/active-websocket-orders-api.js +114 -50
  95. package/dist/cjs/ws-api/constants.js +10 -4
  96. package/dist/cjs/ws-api/index.js +21 -8
  97. package/dist/cjs/ws-api/rpc-websocket-api.js +110 -38
  98. package/dist/cjs/ws-api/types.js +3 -2
  99. package/dist/cjs/ws-api/url.js +9 -3
  100. package/dist/cjs/ws-api/ws-api.js +165 -48
  101. package/dist/cjs/ws-api/ws.spec.js +832 -0
  102. package/dist/esm/amount-calculator/amount-calculator.js +265 -75
  103. package/dist/esm/amount-calculator/amount-calculator.spec.js +62 -0
  104. package/dist/esm/amount-calculator/auction-calculator/README.md +59 -0
  105. package/dist/esm/amount-calculator/auction-calculator/auction-calculator.js +173 -73
  106. package/dist/esm/amount-calculator/auction-calculator/auction-calculator.spec.js +53 -0
  107. package/dist/esm/amount-calculator/auction-calculator/index.js +1 -2
  108. package/dist/esm/amount-calculator/index.js +4 -4
  109. package/dist/esm/api/fusion-api.js +107 -42
  110. package/dist/esm/api/index.js +8 -9
  111. package/dist/esm/api/orders/index.js +3 -4
  112. package/dist/esm/api/orders/order-api.spec.js +742 -0
  113. package/dist/esm/api/orders/orders.api.js +236 -33
  114. package/dist/esm/api/orders/orders.request.js +139 -58
  115. package/dist/esm/api/orders/types.js +5 -4
  116. package/dist/esm/api/ordersVersion.js +3 -4
  117. package/dist/esm/api/pagination.js +53 -12
  118. package/dist/esm/api/pagination.spec.js +25 -0
  119. package/dist/esm/api/params.js +18 -19
  120. package/dist/esm/api/quoter/index.js +6 -7
  121. package/dist/esm/api/quoter/preset.js +77 -24
  122. package/dist/esm/api/quoter/quote/index.js +3 -4
  123. package/dist/esm/api/quoter/quote/order-params.js +53 -10
  124. package/dist/esm/api/quoter/quote/quote.js +143 -85
  125. package/dist/esm/api/quoter/quote/types.js +12 -2
  126. package/dist/esm/api/quoter/quoter-custom-preset.request.js +110 -54
  127. package/dist/esm/api/quoter/quoter-custom-preset.request.spec.js +127 -0
  128. package/dist/esm/api/quoter/quoter.api.js +232 -25
  129. package/dist/esm/api/quoter/quoter.api.spec.js +361 -0
  130. package/dist/esm/api/quoter/quoter.request.js +80 -26
  131. package/dist/esm/api/quoter/quoter.request.spec.js +107 -0
  132. package/dist/esm/api/quoter/types.js +7 -4
  133. package/dist/esm/api/relayer/index.js +3 -4
  134. package/dist/esm/api/relayer/relayer.api.js +65 -16
  135. package/dist/esm/api/relayer/relayer.api.spec.js +230 -0
  136. package/dist/esm/api/relayer/relayer.request.js +62 -15
  137. package/dist/esm/api/relayer/types.js +1 -2
  138. package/dist/esm/api/types.js +1 -2
  139. package/dist/esm/api-ext.js +1 -2
  140. package/dist/esm/connector/blockchain/blockchain-provider.connector.js +1 -2
  141. package/dist/esm/connector/blockchain/index.js +3 -4
  142. package/dist/esm/connector/blockchain/private-key-provider.connector.js +76 -16
  143. package/dist/esm/connector/blockchain/private-key-provider.connector.spec.js +179 -0
  144. package/dist/esm/connector/blockchain/web3-provider-connector.js +62 -19
  145. package/dist/esm/connector/blockchain/web3-provider.connector.spec.js +182 -0
  146. package/dist/esm/connector/http/axios-provider.connector.js +249 -36
  147. package/dist/esm/connector/http/axios-provider.connector.spec.js +199 -0
  148. package/dist/esm/connector/http/http-provider.connector.js +1 -2
  149. package/dist/esm/connector/http/index.js +2 -3
  150. package/dist/esm/connector/index.js +3 -4
  151. package/dist/esm/connector/ws/index.js +3 -4
  152. package/dist/esm/connector/ws/types.js +1 -2
  153. package/dist/esm/connector/ws/websocket-client.connector.js +140 -66
  154. package/dist/esm/connector/ws/websocket-provider.connector.js +1 -2
  155. package/dist/esm/constants.js +12 -13
  156. package/dist/esm/errors.js +114 -4
  157. package/dist/esm/fusion-order/README.md +58 -0
  158. package/dist/esm/fusion-order/auction-details/README.md +85 -0
  159. package/dist/esm/fusion-order/auction-details/auction-details.js +160 -55
  160. package/dist/esm/fusion-order/auction-details/auction-details.spec.js +21 -0
  161. package/dist/esm/fusion-order/auction-details/index.js +2 -3
  162. package/dist/esm/fusion-order/auction-details/types.js +12 -2
  163. package/dist/esm/fusion-order/constants.js +16 -17
  164. package/dist/esm/fusion-order/fees/fees.js +75 -19
  165. package/dist/esm/fusion-order/fees/index.js +3 -4
  166. package/dist/esm/fusion-order/fees/integrator-fee.js +44 -21
  167. package/dist/esm/fusion-order/fees/resolver-fee.js +40 -15
  168. package/dist/esm/fusion-order/fusion-extension.js +243 -149
  169. package/dist/esm/fusion-order/fusion-extension.spec.js +74 -0
  170. package/dist/esm/fusion-order/fusion-order.js +485 -192
  171. package/dist/esm/fusion-order/fusion-order.spec.js +294 -0
  172. package/dist/esm/fusion-order/index.js +7 -8
  173. package/dist/esm/fusion-order/source-track.js +4 -5
  174. package/dist/esm/fusion-order/surplus-params.js +63 -13
  175. package/dist/esm/fusion-order/whitelist/README.md +54 -0
  176. package/dist/esm/fusion-order/whitelist/index.js +2 -3
  177. package/dist/esm/fusion-order/whitelist/types.js +6 -2
  178. package/dist/esm/fusion-order/whitelist/whitelist.js +236 -102
  179. package/dist/esm/fusion-order/whitelist/whitelist.spec.js +64 -0
  180. package/dist/esm/index.js +12 -13
  181. package/dist/esm/package.json +1 -0
  182. package/dist/esm/sdk/README.md +264 -0
  183. package/dist/esm/sdk/encoders/cancel-order.encoder.js +5 -4
  184. package/dist/esm/sdk/encoders/index.js +1 -2
  185. package/dist/esm/sdk/index.js +4 -5
  186. package/dist/esm/sdk/sdk.js +476 -127
  187. package/dist/esm/sdk/sdk.spec.js +231 -0
  188. package/dist/esm/sdk/types.js +12 -2
  189. package/dist/esm/sdk/utils.js +4 -5
  190. package/dist/esm/utils/amounts.js +18 -6
  191. package/dist/esm/utils/time.js +0 -1
  192. package/dist/esm/utils/types.js +1 -2
  193. package/dist/esm/utils.js +0 -1
  194. package/dist/esm/validations.js +7 -6
  195. package/dist/esm/ws-api/README.md +627 -0
  196. package/dist/esm/ws-api/active-websocket-orders-api.js +105 -47
  197. package/dist/esm/ws-api/constants.js +1 -2
  198. package/dist/esm/ws-api/index.js +5 -6
  199. package/dist/esm/ws-api/rpc-websocket-api.js +102 -36
  200. package/dist/esm/ws-api/types.js +1 -2
  201. package/dist/esm/ws-api/url.js +0 -1
  202. package/dist/esm/ws-api/ws-api.js +154 -43
  203. package/dist/esm/ws-api/ws.spec.js +828 -0
  204. package/dist/types/src/amount-calculator/amount-calculator.d.ts +4 -5
  205. package/dist/types/src/amount-calculator/auction-calculator/auction-calculator.d.ts +1 -1
  206. package/dist/types/src/amount-calculator/auction-calculator/index.d.ts +1 -1
  207. package/dist/types/src/amount-calculator/index.d.ts +4 -3
  208. package/dist/types/src/api/fusion-api.d.ts +5 -5
  209. package/dist/types/src/api/index.d.ts +8 -8
  210. package/dist/types/src/api/orders/index.d.ts +3 -3
  211. package/dist/types/src/api/orders/orders.api.d.ts +4 -4
  212. package/dist/types/src/api/orders/orders.request.d.ts +2 -2
  213. package/dist/types/src/api/orders/types.d.ts +4 -4
  214. package/dist/types/src/api/params.d.ts +1 -1
  215. package/dist/types/src/api/quoter/index.d.ts +6 -6
  216. package/dist/types/src/api/quoter/preset.d.ts +2 -2
  217. package/dist/types/src/api/quoter/quote/index.d.ts +3 -3
  218. package/dist/types/src/api/quoter/quote/order-params.d.ts +2 -2
  219. package/dist/types/src/api/quoter/quote/quote.d.ts +5 -5
  220. package/dist/types/src/api/quoter/quote/types.d.ts +2 -2
  221. package/dist/types/src/api/quoter/quoter-custom-preset.request.d.ts +1 -1
  222. package/dist/types/src/api/quoter/quoter.api.d.ts +5 -5
  223. package/dist/types/src/api/quoter/quoter.request.d.ts +2 -2
  224. package/dist/types/src/api/quoter/types.d.ts +2 -2
  225. package/dist/types/src/api/relayer/index.d.ts +3 -3
  226. package/dist/types/src/api/relayer/relayer.api.d.ts +3 -3
  227. package/dist/types/src/api/relayer/relayer.request.d.ts +1 -1
  228. package/dist/types/src/api/relayer/types.d.ts +1 -1
  229. package/dist/types/src/api/types.d.ts +2 -2
  230. package/dist/types/src/api-ext.d.ts +1 -1
  231. package/dist/types/src/connector/blockchain/index.d.ts +3 -3
  232. package/dist/types/src/connector/blockchain/private-key-provider.connector.d.ts +2 -2
  233. package/dist/types/src/connector/blockchain/web3-provider-connector.d.ts +1 -1
  234. package/dist/types/src/connector/http/axios-provider.connector.d.ts +1 -1
  235. package/dist/types/src/connector/http/index.d.ts +2 -2
  236. package/dist/types/src/connector/index.d.ts +3 -3
  237. package/dist/types/src/connector/ws/index.d.ts +3 -3
  238. package/dist/types/src/connector/ws/websocket-client.connector.d.ts +2 -2
  239. package/dist/types/src/connector/ws/websocket-provider.connector.d.ts +1 -1
  240. package/dist/types/src/fusion-order/auction-details/auction-details.d.ts +1 -1
  241. package/dist/types/src/fusion-order/auction-details/index.d.ts +2 -2
  242. package/dist/types/src/fusion-order/fees/fees.d.ts +2 -2
  243. package/dist/types/src/fusion-order/fees/index.d.ts +3 -3
  244. package/dist/types/src/fusion-order/fusion-extension.d.ts +7 -6
  245. package/dist/types/src/fusion-order/fusion-order.d.ts +7 -7
  246. package/dist/types/src/fusion-order/index.d.ts +7 -7
  247. package/dist/types/src/fusion-order/whitelist/index.d.ts +2 -2
  248. package/dist/types/src/fusion-order/whitelist/whitelist.d.ts +1 -1
  249. package/dist/types/src/index.d.ts +13 -13
  250. package/dist/types/src/sdk/encoders/index.d.ts +1 -1
  251. package/dist/types/src/sdk/index.d.ts +4 -4
  252. package/dist/types/src/sdk/sdk.d.ts +4 -4
  253. package/dist/types/src/sdk/types.d.ts +4 -4
  254. package/dist/types/src/ws-api/active-websocket-orders-api.d.ts +2 -2
  255. package/dist/types/src/ws-api/constants.d.ts +1 -1
  256. package/dist/types/src/ws-api/index.d.ts +5 -5
  257. package/dist/types/src/ws-api/rpc-websocket-api.d.ts +3 -3
  258. package/dist/types/src/ws-api/types.d.ts +4 -4
  259. package/dist/types/src/ws-api/ws-api.d.ts +4 -4
  260. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  261. package/package.json +6 -4
  262. package/dist/cjs/amount-calculator/amount-calculator.js.map +0 -1
  263. package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.js.map +0 -1
  264. package/dist/cjs/amount-calculator/auction-calculator/index.js.map +0 -1
  265. package/dist/cjs/amount-calculator/index.js.map +0 -1
  266. package/dist/cjs/api/fusion-api.js.map +0 -1
  267. package/dist/cjs/api/index.js.map +0 -1
  268. package/dist/cjs/api/orders/index.js.map +0 -1
  269. package/dist/cjs/api/orders/orders.api.js.map +0 -1
  270. package/dist/cjs/api/orders/orders.request.js.map +0 -1
  271. package/dist/cjs/api/orders/types.js.map +0 -1
  272. package/dist/cjs/api/ordersVersion.js.map +0 -1
  273. package/dist/cjs/api/pagination.js.map +0 -1
  274. package/dist/cjs/api/params.js.map +0 -1
  275. package/dist/cjs/api/quoter/index.js.map +0 -1
  276. package/dist/cjs/api/quoter/preset.js.map +0 -1
  277. package/dist/cjs/api/quoter/quote/index.js.map +0 -1
  278. package/dist/cjs/api/quoter/quote/order-params.js.map +0 -1
  279. package/dist/cjs/api/quoter/quote/quote.js.map +0 -1
  280. package/dist/cjs/api/quoter/quote/types.js.map +0 -1
  281. package/dist/cjs/api/quoter/quoter-custom-preset.request.js.map +0 -1
  282. package/dist/cjs/api/quoter/quoter.api.js.map +0 -1
  283. package/dist/cjs/api/quoter/quoter.request.js.map +0 -1
  284. package/dist/cjs/api/quoter/types.js.map +0 -1
  285. package/dist/cjs/api/relayer/index.js.map +0 -1
  286. package/dist/cjs/api/relayer/relayer.api.js.map +0 -1
  287. package/dist/cjs/api/relayer/relayer.request.js.map +0 -1
  288. package/dist/cjs/api/relayer/types.js.map +0 -1
  289. package/dist/cjs/api/types.js.map +0 -1
  290. package/dist/cjs/api-ext.js.map +0 -1
  291. package/dist/cjs/connector/blockchain/blockchain-provider.connector.js.map +0 -1
  292. package/dist/cjs/connector/blockchain/index.js.map +0 -1
  293. package/dist/cjs/connector/blockchain/private-key-provider.connector.js.map +0 -1
  294. package/dist/cjs/connector/blockchain/web3-provider-connector.js.map +0 -1
  295. package/dist/cjs/connector/http/axios-provider.connector.js.map +0 -1
  296. package/dist/cjs/connector/http/http-provider.connector.js.map +0 -1
  297. package/dist/cjs/connector/http/index.js.map +0 -1
  298. package/dist/cjs/connector/index.js.map +0 -1
  299. package/dist/cjs/connector/ws/index.js.map +0 -1
  300. package/dist/cjs/connector/ws/types.js.map +0 -1
  301. package/dist/cjs/connector/ws/websocket-client.connector.js.map +0 -1
  302. package/dist/cjs/connector/ws/websocket-provider.connector.js.map +0 -1
  303. package/dist/cjs/constants.js.map +0 -1
  304. package/dist/cjs/errors.js.map +0 -1
  305. package/dist/cjs/fusion-order/auction-details/auction-details.js.map +0 -1
  306. package/dist/cjs/fusion-order/auction-details/index.js.map +0 -1
  307. package/dist/cjs/fusion-order/auction-details/types.js.map +0 -1
  308. package/dist/cjs/fusion-order/constants.js.map +0 -1
  309. package/dist/cjs/fusion-order/fees/fees.js.map +0 -1
  310. package/dist/cjs/fusion-order/fees/index.js.map +0 -1
  311. package/dist/cjs/fusion-order/fees/integrator-fee.js.map +0 -1
  312. package/dist/cjs/fusion-order/fees/resolver-fee.js.map +0 -1
  313. package/dist/cjs/fusion-order/fusion-extension.js.map +0 -1
  314. package/dist/cjs/fusion-order/fusion-order.js.map +0 -1
  315. package/dist/cjs/fusion-order/index.js.map +0 -1
  316. package/dist/cjs/fusion-order/source-track.js.map +0 -1
  317. package/dist/cjs/fusion-order/surplus-params.js.map +0 -1
  318. package/dist/cjs/fusion-order/whitelist/index.js.map +0 -1
  319. package/dist/cjs/fusion-order/whitelist/types.js.map +0 -1
  320. package/dist/cjs/fusion-order/whitelist/whitelist.js.map +0 -1
  321. package/dist/cjs/index.js.map +0 -1
  322. package/dist/cjs/sdk/encoders/cancel-order.encoder.js.map +0 -1
  323. package/dist/cjs/sdk/encoders/index.js.map +0 -1
  324. package/dist/cjs/sdk/index.js.map +0 -1
  325. package/dist/cjs/sdk/sdk.js.map +0 -1
  326. package/dist/cjs/sdk/types.js.map +0 -1
  327. package/dist/cjs/sdk/utils.js.map +0 -1
  328. package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
  329. package/dist/cjs/utils/amounts.js.map +0 -1
  330. package/dist/cjs/utils/time.js.map +0 -1
  331. package/dist/cjs/utils/types.js.map +0 -1
  332. package/dist/cjs/utils.js.map +0 -1
  333. package/dist/cjs/validations.js.map +0 -1
  334. package/dist/cjs/ws-api/active-websocket-orders-api.js.map +0 -1
  335. package/dist/cjs/ws-api/constants.js.map +0 -1
  336. package/dist/cjs/ws-api/index.js.map +0 -1
  337. package/dist/cjs/ws-api/rpc-websocket-api.js.map +0 -1
  338. package/dist/cjs/ws-api/types.js.map +0 -1
  339. package/dist/cjs/ws-api/url.js.map +0 -1
  340. package/dist/cjs/ws-api/ws-api.js.map +0 -1
  341. package/dist/esm/amount-calculator/amount-calculator.js.map +0 -1
  342. package/dist/esm/amount-calculator/auction-calculator/auction-calculator.js.map +0 -1
  343. package/dist/esm/amount-calculator/auction-calculator/index.js.map +0 -1
  344. package/dist/esm/amount-calculator/index.js.map +0 -1
  345. package/dist/esm/api/fusion-api.js.map +0 -1
  346. package/dist/esm/api/index.js.map +0 -1
  347. package/dist/esm/api/orders/index.js.map +0 -1
  348. package/dist/esm/api/orders/orders.api.js.map +0 -1
  349. package/dist/esm/api/orders/orders.request.js.map +0 -1
  350. package/dist/esm/api/orders/types.js.map +0 -1
  351. package/dist/esm/api/ordersVersion.js.map +0 -1
  352. package/dist/esm/api/pagination.js.map +0 -1
  353. package/dist/esm/api/params.js.map +0 -1
  354. package/dist/esm/api/quoter/index.js.map +0 -1
  355. package/dist/esm/api/quoter/preset.js.map +0 -1
  356. package/dist/esm/api/quoter/quote/index.js.map +0 -1
  357. package/dist/esm/api/quoter/quote/order-params.js.map +0 -1
  358. package/dist/esm/api/quoter/quote/quote.js.map +0 -1
  359. package/dist/esm/api/quoter/quote/types.js.map +0 -1
  360. package/dist/esm/api/quoter/quoter-custom-preset.request.js.map +0 -1
  361. package/dist/esm/api/quoter/quoter.api.js.map +0 -1
  362. package/dist/esm/api/quoter/quoter.request.js.map +0 -1
  363. package/dist/esm/api/quoter/types.js.map +0 -1
  364. package/dist/esm/api/relayer/index.js.map +0 -1
  365. package/dist/esm/api/relayer/relayer.api.js.map +0 -1
  366. package/dist/esm/api/relayer/relayer.request.js.map +0 -1
  367. package/dist/esm/api/relayer/types.js.map +0 -1
  368. package/dist/esm/api/types.js.map +0 -1
  369. package/dist/esm/api-ext.js.map +0 -1
  370. package/dist/esm/connector/blockchain/blockchain-provider.connector.js.map +0 -1
  371. package/dist/esm/connector/blockchain/index.js.map +0 -1
  372. package/dist/esm/connector/blockchain/private-key-provider.connector.js.map +0 -1
  373. package/dist/esm/connector/blockchain/web3-provider-connector.js.map +0 -1
  374. package/dist/esm/connector/http/axios-provider.connector.js.map +0 -1
  375. package/dist/esm/connector/http/http-provider.connector.js.map +0 -1
  376. package/dist/esm/connector/http/index.js.map +0 -1
  377. package/dist/esm/connector/index.js.map +0 -1
  378. package/dist/esm/connector/ws/index.js.map +0 -1
  379. package/dist/esm/connector/ws/types.js.map +0 -1
  380. package/dist/esm/connector/ws/websocket-client.connector.js.map +0 -1
  381. package/dist/esm/connector/ws/websocket-provider.connector.js.map +0 -1
  382. package/dist/esm/constants.js.map +0 -1
  383. package/dist/esm/errors.js.map +0 -1
  384. package/dist/esm/fusion-order/auction-details/auction-details.js.map +0 -1
  385. package/dist/esm/fusion-order/auction-details/index.js.map +0 -1
  386. package/dist/esm/fusion-order/auction-details/types.js.map +0 -1
  387. package/dist/esm/fusion-order/constants.js.map +0 -1
  388. package/dist/esm/fusion-order/fees/fees.js.map +0 -1
  389. package/dist/esm/fusion-order/fees/index.js.map +0 -1
  390. package/dist/esm/fusion-order/fees/integrator-fee.js.map +0 -1
  391. package/dist/esm/fusion-order/fees/resolver-fee.js.map +0 -1
  392. package/dist/esm/fusion-order/fusion-extension.js.map +0 -1
  393. package/dist/esm/fusion-order/fusion-order.js.map +0 -1
  394. package/dist/esm/fusion-order/index.js.map +0 -1
  395. package/dist/esm/fusion-order/source-track.js.map +0 -1
  396. package/dist/esm/fusion-order/surplus-params.js.map +0 -1
  397. package/dist/esm/fusion-order/whitelist/index.js.map +0 -1
  398. package/dist/esm/fusion-order/whitelist/types.js.map +0 -1
  399. package/dist/esm/fusion-order/whitelist/whitelist.js.map +0 -1
  400. package/dist/esm/index.js.map +0 -1
  401. package/dist/esm/sdk/encoders/cancel-order.encoder.js.map +0 -1
  402. package/dist/esm/sdk/encoders/index.js.map +0 -1
  403. package/dist/esm/sdk/index.js.map +0 -1
  404. package/dist/esm/sdk/sdk.js.map +0 -1
  405. package/dist/esm/sdk/types.js.map +0 -1
  406. package/dist/esm/sdk/utils.js.map +0 -1
  407. package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
  408. package/dist/esm/utils/amounts.js.map +0 -1
  409. package/dist/esm/utils/time.js.map +0 -1
  410. package/dist/esm/utils/types.js.map +0 -1
  411. package/dist/esm/utils.js.map +0 -1
  412. package/dist/esm/validations.js.map +0 -1
  413. package/dist/esm/ws-api/active-websocket-orders-api.js.map +0 -1
  414. package/dist/esm/ws-api/constants.js.map +0 -1
  415. package/dist/esm/ws-api/index.js.map +0 -1
  416. package/dist/esm/ws-api/rpc-websocket-api.js.map +0 -1
  417. package/dist/esm/ws-api/types.js.map +0 -1
  418. package/dist/esm/ws-api/url.js.map +0 -1
  419. package/dist/esm/ws-api/ws-api.js.map +0 -1
@@ -1,81 +1,271 @@
1
- import { Bps, FeeTakerExt, mulDiv, Rounding } from '@1inch/limit-order-sdk';
2
- import { Fees } from '@1inch/limit-order-sdk/extensions/fee-taker';
3
- import { AuctionCalculator } from './auction-calculator';
4
- import { SurplusParams } from '../fusion-order';
5
- export class AmountCalculator {
6
- constructor(auctionCalculator, feeCalculator, surplus = SurplusParams.NO_FEE) {
1
+ function _class_call_check(instance, Constructor) {
2
+ if (!(instance instanceof Constructor)) {
3
+ throw new TypeError("Cannot call a class as a function");
4
+ }
5
+ }
6
+ function _defineProperties(target, props) {
7
+ for(var i = 0; i < props.length; i++){
8
+ var descriptor = props[i];
9
+ descriptor.enumerable = descriptor.enumerable || false;
10
+ descriptor.configurable = true;
11
+ if ("value" in descriptor) descriptor.writable = true;
12
+ Object.defineProperty(target, descriptor.key, descriptor);
13
+ }
14
+ }
15
+ function _create_class(Constructor, protoProps, staticProps) {
16
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
17
+ if (staticProps) _defineProperties(Constructor, staticProps);
18
+ return Constructor;
19
+ }
20
+ function _define_property(obj, key, value) {
21
+ if (key in obj) {
22
+ Object.defineProperty(obj, key, {
23
+ value: value,
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true
27
+ });
28
+ } else {
29
+ obj[key] = value;
30
+ }
31
+ return obj;
32
+ }
33
+ import { Bps, mulDiv, Rounding, FeeTakerExt } from '@1inch/limit-order-sdk';
34
+ import { AuctionCalculator } from './auction-calculator/index.js';
35
+ import { SurplusParams } from '../fusion-order/index.js';
36
+ import { Fees } from '../fusion-order/fees/index.js';
37
+ /**
38
+ * Calculates fees/amount with accounting to auction
39
+ *
40
+ * @see FusionOrder
41
+ */ export var AmountCalculator = /*#__PURE__*/ function() {
42
+ "use strict";
43
+ function AmountCalculator(auctionCalculator, feeCalculator) {
44
+ var surplus = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : SurplusParams.NO_FEE;
45
+ _class_call_check(this, AmountCalculator);
46
+ _define_property(this, "auctionCalculator", void 0);
47
+ _define_property(this, "feeCalculator", void 0);
48
+ _define_property(this, "surplus", void 0);
7
49
  this.auctionCalculator = auctionCalculator;
8
50
  this.feeCalculator = feeCalculator;
9
51
  this.surplus = surplus;
10
52
  }
11
- static fromExtension(ext) {
12
- return new AmountCalculator(AuctionCalculator.fromAuctionData(ext.auctionDetails), ext.extra?.fees
13
- ? new FeeTakerExt.FeeCalculator(ext.extra?.fees, ext.whitelist)
14
- : undefined, ext.surplus);
15
- }
16
- static calcAuctionTakingAmount(baseTakingAmount, rate, fee = Bps.ZERO) {
17
- const withoutFee = AuctionCalculator.calcAuctionTakingAmount(baseTakingAmount, rate);
18
- if (fee.isZero()) {
19
- return withoutFee;
53
+ _create_class(AmountCalculator, [
54
+ {
55
+ key: "getRequiredTakingAmount",
56
+ value: /**
57
+ * Returns adjusted taking amount with included fees and auction bump
58
+ *
59
+ * @param taker address which fill order
60
+ * @param takingAmount base taking amount without auction and fee
61
+ * @param time block time at which order will be filled
62
+ * @param blockBaseFee base fee of block at which order will be filled
63
+ */ function getRequiredTakingAmount(taker, takingAmount, time) {
64
+ var blockBaseFee = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0n;
65
+ var _this_feeCalculator;
66
+ var _this_feeCalculator_getTakingAmount;
67
+ var withFee = (_this_feeCalculator_getTakingAmount = (_this_feeCalculator = this.feeCalculator) === null || _this_feeCalculator === void 0 ? void 0 : _this_feeCalculator.getTakingAmount(taker, takingAmount)) !== null && _this_feeCalculator_getTakingAmount !== void 0 ? _this_feeCalculator_getTakingAmount : takingAmount;
68
+ return this.getAuctionBumpedAmount(withFee, time, blockBaseFee);
69
+ }
70
+ },
71
+ {
72
+ key: "getRequiredMakingAmount",
73
+ value: /**
74
+ * Returns adjusted making amount with accounting of fees and auction bump
75
+ *
76
+ * @param taker address which fill order
77
+ * @param makingAmount base making amount without auction and fee
78
+ * @param time block time at which order will be filled
79
+ * @param blockBaseFee base fee of block at which order will be filled
80
+ */ function getRequiredMakingAmount(taker, makingAmount, time) {
81
+ var blockBaseFee = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0n;
82
+ var _this_feeCalculator;
83
+ var _this_feeCalculator_getMakingAmount;
84
+ var withFee = (_this_feeCalculator_getMakingAmount = (_this_feeCalculator = this.feeCalculator) === null || _this_feeCalculator === void 0 ? void 0 : _this_feeCalculator.getMakingAmount(taker, makingAmount)) !== null && _this_feeCalculator_getMakingAmount !== void 0 ? _this_feeCalculator_getMakingAmount : makingAmount;
85
+ var rateBump = this.auctionCalculator.calcRateBump(time, blockBaseFee);
86
+ return AuctionCalculator.calcAuctionMakingAmount(withFee, rateBump);
87
+ }
88
+ },
89
+ {
90
+ key: "getTotalFee",
91
+ value: /**
92
+ * Returns total fee = integrator + protocol
93
+ *
94
+ * @param taker
95
+ * @param takingAmount base taking amount without auction and fee
96
+ * @param time block time at which order will be filled
97
+ * @param blockBaseFee base fee of block at which order will be filled
98
+ */ function getTotalFee(taker, takingAmount, time) {
99
+ var blockBaseFee = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0n;
100
+ return this.getIntegratorFee(taker, takingAmount, time, blockBaseFee) + this.getProtocolFee(taker, takingAmount, time, blockBaseFee);
101
+ }
102
+ },
103
+ {
104
+ key: "getUserTakingAmount",
105
+ value: /**
106
+ * Returns amount which will receive user
107
+ *
108
+ * @param taker
109
+ * @param makingAmount amount to be filled
110
+ * @param takingAmount base taking amount without auction and fee
111
+ * @param orderMakingAmount full order making amount
112
+ * @param time block time at which order will be filled
113
+ * @param blockBaseFee base fee of block at which order will be filled
114
+ */ function getUserTakingAmount(taker, makingAmount, takingAmount, orderMakingAmount, time) {
115
+ var blockBaseFee = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 0n;
116
+ var whole = this.getRequiredTakingAmount(taker, takingAmount, time, blockBaseFee);
117
+ var preSurplus = whole - this.getTotalFee(taker, takingAmount, time, blockBaseFee);
118
+ var surplusFee = this._getSurplusFee(preSurplus, makingAmount, orderMakingAmount);
119
+ return preSurplus - surplusFee;
120
+ }
121
+ },
122
+ {
123
+ key: "getSurplusFee",
124
+ value: /**
125
+ * Returns amount in taker asset which sent to protocol as part of surplus share
126
+ *
127
+ * @param taker
128
+ * @param makingAmount amount to be filled
129
+ * @param takingAmount base taking amount without auction and fee
130
+ * @param orderMakingAmount full order making amount
131
+ * @param time block time at which order will be filled
132
+ * @param blockBaseFee base fee of block at which order will be filled
133
+ */ function getSurplusFee(taker, makingAmount, takingAmount, orderMakingAmount, time) {
134
+ var blockBaseFee = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 0n;
135
+ var whole = this.getRequiredTakingAmount(taker, takingAmount, time, blockBaseFee);
136
+ var preSurplus = whole - this.getTotalFee(taker, takingAmount, time, blockBaseFee);
137
+ return this._getSurplusFee(preSurplus, makingAmount, orderMakingAmount);
138
+ }
139
+ },
140
+ {
141
+ key: "getResolverFee",
142
+ value: /**
143
+ * Fee in `takerAsset` which resolver pays to resolver fee receiver
144
+ *
145
+ * @param taker who will fill order
146
+ * @param takingAmount taking amount to calculate fee from, must be without fees/auction adjustments
147
+ * @param time block time at which order will be filled
148
+ * @param blockBaseFee base fee of block at which order will be filled
149
+ */ function getResolverFee(taker, takingAmount, time) {
150
+ var blockBaseFee = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0n;
151
+ var _this_feeCalculator;
152
+ var _this_feeCalculator_getResolverFee;
153
+ return (_this_feeCalculator_getResolverFee = (_this_feeCalculator = this.feeCalculator) === null || _this_feeCalculator === void 0 ? void 0 : _this_feeCalculator.getResolverFee(taker, this.getAuctionBumpedAmount(takingAmount, time, blockBaseFee))) !== null && _this_feeCalculator_getResolverFee !== void 0 ? _this_feeCalculator_getResolverFee : 0n;
154
+ }
155
+ },
156
+ {
157
+ key: "getIntegratorFee",
158
+ value: /**
159
+ * Fee in `takerAsset` which integrator gets to integrator wallet
160
+ *
161
+ * @param taker who will fill order
162
+ * @param takingAmount taking amount to calculate fee from, must be without fees/auction adjustments
163
+ * @param time block time at which order will be filled
164
+ * @param blockBaseFee base fee of block at which order will be filled
165
+ */ function getIntegratorFee(taker, takingAmount, time) {
166
+ var blockBaseFee = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0n;
167
+ var _this_feeCalculator;
168
+ var _this_feeCalculator_getIntegratorFee;
169
+ return (_this_feeCalculator_getIntegratorFee = (_this_feeCalculator = this.feeCalculator) === null || _this_feeCalculator === void 0 ? void 0 : _this_feeCalculator.getIntegratorFee(taker, this.getAuctionBumpedAmount(takingAmount, time, blockBaseFee))) !== null && _this_feeCalculator_getIntegratorFee !== void 0 ? _this_feeCalculator_getIntegratorFee : 0n;
170
+ }
171
+ },
172
+ {
173
+ key: "getProtocolShareOfIntegratorFee",
174
+ value: /**
175
+ * Fee in `takerAsset` which protocol gets as share from integrator fee
176
+ *
177
+ * @param taker who will fill order
178
+ * @param takingAmount taking amount to calculate fee from, must be without fees/auction adjustments
179
+ * @param time block time at which order will be filled
180
+ * @param blockBaseFee base fee of block at which order will be filled
181
+ */ function getProtocolShareOfIntegratorFee(taker, takingAmount, time) {
182
+ var blockBaseFee = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0n;
183
+ var _this_feeCalculator;
184
+ var _this_feeCalculator_getProtocolShareOfIntegratorFee;
185
+ return (_this_feeCalculator_getProtocolShareOfIntegratorFee = (_this_feeCalculator = this.feeCalculator) === null || _this_feeCalculator === void 0 ? void 0 : _this_feeCalculator.getProtocolShareOfIntegratorFee(taker, this.getAuctionBumpedAmount(takingAmount, time, blockBaseFee))) !== null && _this_feeCalculator_getProtocolShareOfIntegratorFee !== void 0 ? _this_feeCalculator_getProtocolShareOfIntegratorFee : 0n;
186
+ }
187
+ },
188
+ {
189
+ key: "getProtocolFee",
190
+ value: /**
191
+ * Fee in `takerAsset` which protocol gets
192
+ * It equals to `share from integrator fee plus resolver fee`
193
+ *
194
+ * @param taker who will fill order
195
+ * @param takingAmount taking amount to calculate fee from, must be without fees/auction adjustments
196
+ * @param time block time at which order will be filled
197
+ * @param blockBaseFee base fee of block at which order will be filled
198
+ */ function getProtocolFee(taker, takingAmount, time) {
199
+ var blockBaseFee = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0n;
200
+ var _this_feeCalculator;
201
+ var _this_feeCalculator_getProtocolFee;
202
+ return (_this_feeCalculator_getProtocolFee = (_this_feeCalculator = this.feeCalculator) === null || _this_feeCalculator === void 0 ? void 0 : _this_feeCalculator.getProtocolFee(taker, this.getAuctionBumpedAmount(takingAmount, time, blockBaseFee))) !== null && _this_feeCalculator_getProtocolFee !== void 0 ? _this_feeCalculator_getProtocolFee : 0n;
203
+ }
204
+ },
205
+ {
206
+ key: "_getSurplusFee",
207
+ value: /**
208
+ * Calculates surplus fee. It will be sent to the same address as `protocolFee`
209
+ *
210
+ * @param userTakingAmount how much user would receive without surplus
211
+ * @param makingAmount making amount to be filled
212
+ * @param orderMakingAmount full order making amount
213
+ */ function _getSurplusFee(userTakingAmount, makingAmount, orderMakingAmount) {
214
+ var estimatedTakingAmount = mulDiv(this.surplus.estimatedTakerAmount, makingAmount, orderMakingAmount);
215
+ if (userTakingAmount > estimatedTakingAmount) {
216
+ var surplusFee = (userTakingAmount - estimatedTakingAmount) * BigInt(this.surplus.protocolFee.toPercent()) / 100n;
217
+ return surplusFee;
218
+ }
219
+ return 0n;
220
+ }
221
+ },
222
+ {
223
+ key: "getAuctionBumpedAmount",
224
+ value: function getAuctionBumpedAmount(takingAmount, time) {
225
+ var blockBaseFee = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0n;
226
+ var rateBump = this.auctionCalculator.calcRateBump(time, blockBaseFee);
227
+ return AuctionCalculator.calcAuctionTakingAmount(takingAmount, rateBump);
228
+ }
20
229
  }
21
- const numerator = Fees.BASE_1E5 + BigInt(fee.toFraction(Fees.BASE_1E5));
22
- return (withoutFee * numerator) / Fees.BASE_1E5;
23
- }
24
- static extractFeeAmount(requiredTakingAmount, fee) {
25
- return (requiredTakingAmount -
26
- mulDiv(requiredTakingAmount, Fees.BASE_1E5, Fees.BASE_1E5 + BigInt(fee.toFraction(Fees.BASE_1E5)), Rounding.Ceil));
27
- }
28
- getRequiredTakingAmount(taker, takingAmount, time, blockBaseFee = 0n) {
29
- const withFee = this.feeCalculator?.getTakingAmount(taker, takingAmount) ??
30
- takingAmount;
31
- return this.getAuctionBumpedAmount(withFee, time, blockBaseFee);
32
- }
33
- getRequiredMakingAmount(taker, makingAmount, time, blockBaseFee = 0n) {
34
- const withFee = this.feeCalculator?.getMakingAmount(taker, makingAmount) ??
35
- makingAmount;
36
- const rateBump = this.auctionCalculator.calcRateBump(time, blockBaseFee);
37
- return AuctionCalculator.calcAuctionMakingAmount(withFee, rateBump);
38
- }
39
- getTotalFee(taker, takingAmount, time, blockBaseFee = 0n) {
40
- return (this.getIntegratorFee(taker, takingAmount, time, blockBaseFee) +
41
- this.getProtocolFee(taker, takingAmount, time, blockBaseFee));
42
- }
43
- getUserTakingAmount(taker, makingAmount, takingAmount, orderMakingAmount, time, blockBaseFee = 0n) {
44
- const whole = this.getRequiredTakingAmount(taker, takingAmount, time, blockBaseFee);
45
- const preSurplus = whole - this.getTotalFee(taker, takingAmount, time, blockBaseFee);
46
- const surplusFee = this._getSurplusFee(preSurplus, makingAmount, orderMakingAmount);
47
- return preSurplus - surplusFee;
48
- }
49
- getSurplusFee(taker, makingAmount, takingAmount, orderMakingAmount, time, blockBaseFee = 0n) {
50
- const whole = this.getRequiredTakingAmount(taker, takingAmount, time, blockBaseFee);
51
- const preSurplus = whole - this.getTotalFee(taker, takingAmount, time, blockBaseFee);
52
- return this._getSurplusFee(preSurplus, makingAmount, orderMakingAmount);
53
- }
54
- getResolverFee(taker, takingAmount, time, blockBaseFee = 0n) {
55
- return (this.feeCalculator?.getResolverFee(taker, this.getAuctionBumpedAmount(takingAmount, time, blockBaseFee)) ?? 0n);
56
- }
57
- getIntegratorFee(taker, takingAmount, time, blockBaseFee = 0n) {
58
- return (this.feeCalculator?.getIntegratorFee(taker, this.getAuctionBumpedAmount(takingAmount, time, blockBaseFee)) ?? 0n);
59
- }
60
- getProtocolShareOfIntegratorFee(taker, takingAmount, time, blockBaseFee = 0n) {
61
- return (this.feeCalculator?.getProtocolShareOfIntegratorFee(taker, this.getAuctionBumpedAmount(takingAmount, time, blockBaseFee)) ?? 0n);
62
- }
63
- getProtocolFee(taker, takingAmount, time, blockBaseFee = 0n) {
64
- return (this.feeCalculator?.getProtocolFee(taker, this.getAuctionBumpedAmount(takingAmount, time, blockBaseFee)) ?? 0n);
65
- }
66
- _getSurplusFee(userTakingAmount, makingAmount, orderMakingAmount) {
67
- const estimatedTakingAmount = mulDiv(this.surplus.estimatedTakerAmount, makingAmount, orderMakingAmount);
68
- if (userTakingAmount > estimatedTakingAmount) {
69
- const surplusFee = ((userTakingAmount - estimatedTakingAmount) *
70
- BigInt(this.surplus.protocolFee.toPercent())) /
71
- 100n;
72
- return surplusFee;
230
+ ], [
231
+ {
232
+ key: "fromExtension",
233
+ value: function fromExtension(ext) {
234
+ var _ext_extra, _ext_extra1;
235
+ return new AmountCalculator(AuctionCalculator.fromAuctionData(ext.auctionDetails), ((_ext_extra = ext.extra) === null || _ext_extra === void 0 ? void 0 : _ext_extra.fees) ? new FeeTakerExt.FeeCalculator((_ext_extra1 = ext.extra) === null || _ext_extra1 === void 0 ? void 0 : _ext_extra1.fees, ext.whitelist) : undefined, ext.surplus);
236
+ }
237
+ },
238
+ {
239
+ key: "calcAuctionTakingAmount",
240
+ value: /**
241
+ * Returns amount with applied rate bump and fees
242
+ *
243
+ * @param baseTakingAmount base amount to apply bump to
244
+ * @param rate auction rate bump
245
+ * @param fee all fees applied to amount
246
+ *
247
+ * @see AuctionCalculator.calcInitialRateBump
248
+ */ function calcAuctionTakingAmount(baseTakingAmount, rate) {
249
+ var fee = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Bps.ZERO;
250
+ var withoutFee = AuctionCalculator.calcAuctionTakingAmount(baseTakingAmount, rate);
251
+ if (fee.isZero()) {
252
+ return withoutFee;
253
+ }
254
+ var numerator = Fees.BASE_1E5 + BigInt(fee.toFraction(Fees.BASE_1E5));
255
+ return withoutFee * numerator / Fees.BASE_1E5;
256
+ }
257
+ },
258
+ {
259
+ key: "extractFeeAmount",
260
+ value: /**
261
+ * Return fee amount in taker asset which is included in `requiredTakingAmount`
262
+ *
263
+ * @param requiredTakingAmount must already contain fee
264
+ * @param fee to extract
265
+ */ function extractFeeAmount(requiredTakingAmount, fee) {
266
+ return requiredTakingAmount - mulDiv(requiredTakingAmount, Fees.BASE_1E5, Fees.BASE_1E5 + BigInt(fee.toFraction(Fees.BASE_1E5)), Rounding.Ceil);
267
+ }
73
268
  }
74
- return 0n;
75
- }
76
- getAuctionBumpedAmount(takingAmount, time, blockBaseFee = 0n) {
77
- const rateBump = this.auctionCalculator.calcRateBump(time, blockBaseFee);
78
- return AuctionCalculator.calcAuctionTakingAmount(takingAmount, rateBump);
79
- }
80
- }
81
- //# sourceMappingURL=amount-calculator.js.map
269
+ ]);
270
+ return AmountCalculator;
271
+ }();
@@ -0,0 +1,62 @@
1
+ import { FeeTakerExt, Address, Bps } from '@1inch/limit-order-sdk';
2
+ import { AmountCalculator } from './amount-calculator.js';
3
+ import { AuctionCalculator } from './auction-calculator/index.js';
4
+ import { SurplusParams, Whitelist } from '../fusion-order/index.js';
5
+ import { now } from '../utils/time.js';
6
+ import { Fees, IntegratorFee } from '../fusion-order/fees/index.js';
7
+ describe('AmountCalculator', function() {
8
+ it('should correct extract fee', function() {
9
+ var integratorFeeBps = new Bps(6n);
10
+ // 60% from 10bps
11
+ var calculator = new AmountCalculator(new AuctionCalculator(1738650250n, 180n, 1218519n, [
12
+ {
13
+ coefficient: 609353,
14
+ delay: 180
15
+ }
16
+ ], {
17
+ gasBumpEstimate: 609353n,
18
+ gasPriceEstimate: 1526n
19
+ }), new FeeTakerExt.FeeCalculator(Fees.integratorFee(new IntegratorFee(new Address('0x8e097e5e0493de033270a01b324caf31f464dc67'), new Address('0x90cbe4bdd538d6e9b379bff5fe72c3d67a521de5'), new Bps(10n), new Bps(6000n))), Whitelist.new(1738650226n, [
20
+ {
21
+ address: Address.fromBigInt(1n),
22
+ allowFrom: 0n
23
+ }
24
+ ])));
25
+ var takingAmount = 100000n;
26
+ var requiredTakingAmount = calculator.getRequiredTakingAmount(Address.ZERO_ADDRESS, takingAmount, now(), 10n);
27
+ var integratorFee = calculator.getIntegratorFee(Address.ZERO_ADDRESS, takingAmount, now(), 10n);
28
+ expect(AmountCalculator.extractFeeAmount(requiredTakingAmount, integratorFeeBps)).toEqual(integratorFee);
29
+ });
30
+ it('should apply surplus', function() {
31
+ var startTime = 1738650250n;
32
+ var execTime = startTime + 180n;
33
+ // end of auction
34
+ var auction = new AuctionCalculator(startTime, 180n, 1218519n, [
35
+ {
36
+ coefficient: 609353,
37
+ delay: 180
38
+ }
39
+ ], {
40
+ gasBumpEstimate: 609353n,
41
+ gasPriceEstimate: 1526n
42
+ });
43
+ var taker = Address.fromBigInt(1n);
44
+ var feeCalculator = new FeeTakerExt.FeeCalculator(Fees.integratorFee(new IntegratorFee(new Address('0x8e097e5e0493de033270a01b324caf31f464dc67'), new Address('0x90cbe4bdd538d6e9b379bff5fe72c3d67a521de5'), new Bps(10n), new Bps(6000n))), Whitelist.new(1738650226n, [
45
+ {
46
+ address: taker,
47
+ allowFrom: 0n
48
+ }
49
+ ]));
50
+ var calculatorNoSurplusFee = new AmountCalculator(auction, feeCalculator);
51
+ var takingAmount = 100000n;
52
+ var makingAmount = 1000n;
53
+ var surplus = takingAmount / 3n;
54
+ var estimatedTakingAmount = takingAmount - surplus;
55
+ var calculator = new AmountCalculator(auction, feeCalculator, new SurplusParams(estimatedTakingAmount, Bps.fromPercent(50)));
56
+ var userAmount = calculatorNoSurplusFee.getUserTakingAmount(taker, makingAmount, takingAmount, makingAmount, execTime);
57
+ var userAmountWithChargedSurplus = calculator.getUserTakingAmount(taker, makingAmount, takingAmount, makingAmount, execTime);
58
+ expect(userAmount).toBeGreaterThan(userAmountWithChargedSurplus);
59
+ expect(userAmount - userAmountWithChargedSurplus).toEqual(surplus / 2n);
60
+ });
61
+ }) // fee is 50%
62
+ ;
@@ -0,0 +1,59 @@
1
+ ## AuctionCalculator
2
+
3
+ **Description:** used to calculate taker amount and auction rate
4
+
5
+ ### Real world example
6
+
7
+ ```typescript
8
+ import {
9
+ AuctionCalculator,
10
+ SettlementPostInteractionData,
11
+ AuctionDetails,
12
+ Address,
13
+ bpsToRatioFormat
14
+ } from '@1inch/fusion-sdk'
15
+
16
+ const startTime = 1673548149n
17
+ const settlementData = SettlementPostInteractionData.new({
18
+ bankFee: 0n,
19
+ auctionStartTime: startTime,
20
+ whitelist: [
21
+ {
22
+ address: new Address('0x111111111117dc0aa78b770fa6a738034120c302'),
23
+ delay: 0n
24
+ }
25
+ ],
26
+ integratorFee: {
27
+ receiver: new Address('0x111111111117dc0aa78b770fa6a738034120c302'),
28
+ ratio: bpsToRatioFormat(10)
29
+ }
30
+ })
31
+ const details = new AuctionDetails({
32
+ duration: 180n, // in seconds,
33
+ startTime, // unix timestamp (in sec),
34
+ initialRateBump: 50000,
35
+ points: [
36
+ {
37
+ delay: 10, // relative to auction start time
38
+ coefficient: 40000
39
+ },
40
+
41
+ {
42
+ delay: 10, // relative to previous point
43
+ coefficient: 40000
44
+ }
45
+ ]
46
+ })
47
+ const calculator = AuctionCalculator.fromAuctionData(settlementData, details) // #=> AuctionCalculator instance
48
+
49
+ const rate = calculator.calcRateBump(startTime + 11n)
50
+ // #=> 40000
51
+
52
+ const auctionTakingAmount = calculator.calcAuctionTakingAmount(
53
+ 1420000000n,
54
+ rate
55
+ )
56
+ // #=> 1427105680
57
+ ```
58
+
59
+