@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.
- package/dist/cjs/amount-calculator/amount-calculator.js +274 -78
- package/dist/cjs/amount-calculator/amount-calculator.spec.js +66 -0
- package/dist/cjs/amount-calculator/auction-calculator/README.md +59 -0
- package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.js +183 -77
- package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.spec.js +57 -0
- package/dist/cjs/amount-calculator/auction-calculator/index.js +17 -4
- package/dist/cjs/amount-calculator/index.js +34 -9
- package/dist/cjs/api/fusion-api.js +119 -48
- package/dist/cjs/api/index.js +24 -11
- package/dist/cjs/api/orders/index.js +19 -6
- package/dist/cjs/api/orders/order-api.spec.js +746 -0
- package/dist/cjs/api/orders/orders.api.js +245 -36
- package/dist/cjs/api/orders/orders.request.js +159 -63
- package/dist/cjs/api/orders/types.js +14 -6
- package/dist/cjs/api/ordersVersion.js +12 -6
- package/dist/cjs/api/pagination.js +62 -15
- package/dist/cjs/api/pagination.spec.js +29 -0
- package/dist/cjs/api/params.js +27 -21
- package/dist/cjs/api/quoter/index.js +22 -9
- package/dist/cjs/api/quoter/preset.js +87 -28
- package/dist/cjs/api/quoter/quote/index.js +19 -6
- package/dist/cjs/api/quoter/quote/order-params.js +63 -14
- package/dist/cjs/api/quoter/quote/quote.js +158 -94
- package/dist/cjs/api/quoter/quote/types.js +3 -2
- package/dist/cjs/api/quoter/quoter-custom-preset.request.js +118 -56
- package/dist/cjs/api/quoter/quoter-custom-preset.request.spec.js +131 -0
- package/dist/cjs/api/quoter/quoter.api.js +241 -28
- package/dist/cjs/api/quoter/quoter.api.spec.js +365 -0
- package/dist/cjs/api/quoter/quoter.request.js +94 -34
- package/dist/cjs/api/quoter/quoter.request.spec.js +111 -0
- package/dist/cjs/api/quoter/types.js +16 -6
- package/dist/cjs/api/relayer/index.js +19 -6
- package/dist/cjs/api/relayer/relayer.api.js +73 -18
- package/dist/cjs/api/relayer/relayer.api.spec.js +234 -0
- package/dist/cjs/api/relayer/relayer.request.js +71 -18
- package/dist/cjs/api/relayer/types.js +3 -2
- package/dist/cjs/api/types.js +3 -2
- package/dist/cjs/api-ext.js +17 -4
- package/dist/cjs/connector/blockchain/blockchain-provider.connector.js +3 -2
- package/dist/cjs/connector/blockchain/index.js +19 -6
- package/dist/cjs/connector/blockchain/private-key-provider.connector.js +85 -19
- package/dist/cjs/connector/blockchain/private-key-provider.connector.spec.js +183 -0
- package/dist/cjs/connector/blockchain/web3-provider-connector.js +71 -22
- package/dist/cjs/connector/blockchain/web3-provider.connector.spec.js +186 -0
- package/dist/cjs/connector/http/axios-provider.connector.js +298 -39
- package/dist/cjs/connector/http/axios-provider.connector.spec.js +208 -0
- package/dist/cjs/connector/http/http-provider.connector.js +3 -2
- package/dist/cjs/connector/http/index.js +18 -5
- package/dist/cjs/connector/index.js +19 -6
- package/dist/cjs/connector/ws/index.js +19 -6
- package/dist/cjs/connector/ws/types.js +3 -2
- package/dist/cjs/connector/ws/websocket-client.connector.js +155 -71
- package/dist/cjs/connector/ws/websocket-provider.connector.js +3 -2
- package/dist/cjs/constants.js +53 -15
- package/dist/cjs/errors.js +123 -7
- package/dist/cjs/fusion-order/README.md +58 -0
- package/dist/cjs/fusion-order/auction-details/README.md +85 -0
- package/dist/cjs/fusion-order/auction-details/auction-details.js +182 -67
- package/dist/cjs/fusion-order/auction-details/auction-details.spec.js +25 -0
- package/dist/cjs/fusion-order/auction-details/index.js +18 -5
- package/dist/cjs/fusion-order/auction-details/types.js +3 -2
- package/dist/cjs/fusion-order/constants.js +26 -20
- package/dist/cjs/fusion-order/fees/fees.js +93 -27
- package/dist/cjs/fusion-order/fees/index.js +23 -9
- package/dist/cjs/fusion-order/fees/integrator-fee.js +54 -25
- package/dist/cjs/fusion-order/fees/resolver-fee.js +55 -20
- package/dist/cjs/fusion-order/fusion-extension.js +259 -155
- package/dist/cjs/fusion-order/fusion-extension.spec.js +78 -0
- package/dist/cjs/fusion-order/fusion-order.js +502 -199
- package/dist/cjs/fusion-order/fusion-order.spec.js +298 -0
- package/dist/cjs/fusion-order/index.js +29 -13
- package/dist/cjs/fusion-order/source-track.js +18 -12
- package/dist/cjs/fusion-order/surplus-params.js +80 -20
- package/dist/cjs/fusion-order/whitelist/README.md +54 -0
- package/dist/cjs/fusion-order/whitelist/index.js +18 -5
- package/dist/cjs/fusion-order/whitelist/types.js +3 -2
- package/dist/cjs/fusion-order/whitelist/whitelist.js +253 -109
- package/dist/cjs/fusion-order/whitelist/whitelist.spec.js +68 -0
- package/dist/cjs/index.js +91 -35
- package/dist/cjs/sdk/README.md +264 -0
- package/dist/cjs/sdk/encoders/cancel-order.encoder.js +20 -10
- package/dist/cjs/sdk/encoders/index.js +17 -4
- package/dist/cjs/sdk/index.js +20 -7
- package/dist/cjs/sdk/sdk.js +484 -129
- package/dist/cjs/sdk/sdk.spec.js +235 -0
- package/dist/cjs/sdk/types.js +3 -2
- package/dist/cjs/sdk/utils.js +21 -8
- package/dist/cjs/utils/amounts.js +35 -9
- package/dist/cjs/utils/time.js +9 -3
- package/dist/cjs/utils/types.js +3 -2
- package/dist/cjs/utils.js +17 -4
- package/dist/cjs/validations.js +32 -13
- package/dist/cjs/ws-api/README.md +627 -0
- package/dist/cjs/ws-api/active-websocket-orders-api.js +114 -50
- package/dist/cjs/ws-api/constants.js +10 -4
- package/dist/cjs/ws-api/index.js +21 -8
- package/dist/cjs/ws-api/rpc-websocket-api.js +110 -38
- package/dist/cjs/ws-api/types.js +3 -2
- package/dist/cjs/ws-api/url.js +9 -3
- package/dist/cjs/ws-api/ws-api.js +165 -48
- package/dist/cjs/ws-api/ws.spec.js +832 -0
- package/dist/esm/amount-calculator/amount-calculator.js +265 -75
- package/dist/esm/amount-calculator/amount-calculator.spec.js +62 -0
- package/dist/esm/amount-calculator/auction-calculator/README.md +59 -0
- package/dist/esm/amount-calculator/auction-calculator/auction-calculator.js +173 -73
- package/dist/esm/amount-calculator/auction-calculator/auction-calculator.spec.js +53 -0
- package/dist/esm/amount-calculator/auction-calculator/index.js +1 -2
- package/dist/esm/amount-calculator/index.js +4 -4
- package/dist/esm/api/fusion-api.js +107 -42
- package/dist/esm/api/index.js +8 -9
- package/dist/esm/api/orders/index.js +3 -4
- package/dist/esm/api/orders/order-api.spec.js +742 -0
- package/dist/esm/api/orders/orders.api.js +236 -33
- package/dist/esm/api/orders/orders.request.js +139 -58
- package/dist/esm/api/orders/types.js +5 -4
- package/dist/esm/api/ordersVersion.js +3 -4
- package/dist/esm/api/pagination.js +53 -12
- package/dist/esm/api/pagination.spec.js +25 -0
- package/dist/esm/api/params.js +18 -19
- package/dist/esm/api/quoter/index.js +6 -7
- package/dist/esm/api/quoter/preset.js +77 -24
- package/dist/esm/api/quoter/quote/index.js +3 -4
- package/dist/esm/api/quoter/quote/order-params.js +53 -10
- package/dist/esm/api/quoter/quote/quote.js +143 -85
- package/dist/esm/api/quoter/quote/types.js +12 -2
- package/dist/esm/api/quoter/quoter-custom-preset.request.js +110 -54
- package/dist/esm/api/quoter/quoter-custom-preset.request.spec.js +127 -0
- package/dist/esm/api/quoter/quoter.api.js +232 -25
- package/dist/esm/api/quoter/quoter.api.spec.js +361 -0
- package/dist/esm/api/quoter/quoter.request.js +80 -26
- package/dist/esm/api/quoter/quoter.request.spec.js +107 -0
- package/dist/esm/api/quoter/types.js +7 -4
- package/dist/esm/api/relayer/index.js +3 -4
- package/dist/esm/api/relayer/relayer.api.js +65 -16
- package/dist/esm/api/relayer/relayer.api.spec.js +230 -0
- package/dist/esm/api/relayer/relayer.request.js +62 -15
- package/dist/esm/api/relayer/types.js +1 -2
- package/dist/esm/api/types.js +1 -2
- package/dist/esm/api-ext.js +1 -2
- package/dist/esm/connector/blockchain/blockchain-provider.connector.js +1 -2
- package/dist/esm/connector/blockchain/index.js +3 -4
- package/dist/esm/connector/blockchain/private-key-provider.connector.js +76 -16
- package/dist/esm/connector/blockchain/private-key-provider.connector.spec.js +179 -0
- package/dist/esm/connector/blockchain/web3-provider-connector.js +62 -19
- package/dist/esm/connector/blockchain/web3-provider.connector.spec.js +182 -0
- package/dist/esm/connector/http/axios-provider.connector.js +249 -36
- package/dist/esm/connector/http/axios-provider.connector.spec.js +199 -0
- package/dist/esm/connector/http/http-provider.connector.js +1 -2
- package/dist/esm/connector/http/index.js +2 -3
- package/dist/esm/connector/index.js +3 -4
- package/dist/esm/connector/ws/index.js +3 -4
- package/dist/esm/connector/ws/types.js +1 -2
- package/dist/esm/connector/ws/websocket-client.connector.js +140 -66
- package/dist/esm/connector/ws/websocket-provider.connector.js +1 -2
- package/dist/esm/constants.js +12 -13
- package/dist/esm/errors.js +114 -4
- package/dist/esm/fusion-order/README.md +58 -0
- package/dist/esm/fusion-order/auction-details/README.md +85 -0
- package/dist/esm/fusion-order/auction-details/auction-details.js +160 -55
- package/dist/esm/fusion-order/auction-details/auction-details.spec.js +21 -0
- package/dist/esm/fusion-order/auction-details/index.js +2 -3
- package/dist/esm/fusion-order/auction-details/types.js +12 -2
- package/dist/esm/fusion-order/constants.js +16 -17
- package/dist/esm/fusion-order/fees/fees.js +75 -19
- package/dist/esm/fusion-order/fees/index.js +3 -4
- package/dist/esm/fusion-order/fees/integrator-fee.js +44 -21
- package/dist/esm/fusion-order/fees/resolver-fee.js +40 -15
- package/dist/esm/fusion-order/fusion-extension.js +243 -149
- package/dist/esm/fusion-order/fusion-extension.spec.js +74 -0
- package/dist/esm/fusion-order/fusion-order.js +485 -192
- package/dist/esm/fusion-order/fusion-order.spec.js +294 -0
- package/dist/esm/fusion-order/index.js +7 -8
- package/dist/esm/fusion-order/source-track.js +4 -5
- package/dist/esm/fusion-order/surplus-params.js +63 -13
- package/dist/esm/fusion-order/whitelist/README.md +54 -0
- package/dist/esm/fusion-order/whitelist/index.js +2 -3
- package/dist/esm/fusion-order/whitelist/types.js +6 -2
- package/dist/esm/fusion-order/whitelist/whitelist.js +236 -102
- package/dist/esm/fusion-order/whitelist/whitelist.spec.js +64 -0
- package/dist/esm/index.js +12 -13
- package/dist/esm/package.json +1 -0
- package/dist/esm/sdk/README.md +264 -0
- package/dist/esm/sdk/encoders/cancel-order.encoder.js +5 -4
- package/dist/esm/sdk/encoders/index.js +1 -2
- package/dist/esm/sdk/index.js +4 -5
- package/dist/esm/sdk/sdk.js +476 -127
- package/dist/esm/sdk/sdk.spec.js +231 -0
- package/dist/esm/sdk/types.js +12 -2
- package/dist/esm/sdk/utils.js +4 -5
- package/dist/esm/utils/amounts.js +18 -6
- package/dist/esm/utils/time.js +0 -1
- package/dist/esm/utils/types.js +1 -2
- package/dist/esm/utils.js +0 -1
- package/dist/esm/validations.js +7 -6
- package/dist/esm/ws-api/README.md +627 -0
- package/dist/esm/ws-api/active-websocket-orders-api.js +105 -47
- package/dist/esm/ws-api/constants.js +1 -2
- package/dist/esm/ws-api/index.js +5 -6
- package/dist/esm/ws-api/rpc-websocket-api.js +102 -36
- package/dist/esm/ws-api/types.js +1 -2
- package/dist/esm/ws-api/url.js +0 -1
- package/dist/esm/ws-api/ws-api.js +154 -43
- package/dist/esm/ws-api/ws.spec.js +828 -0
- package/dist/types/src/amount-calculator/amount-calculator.d.ts +4 -5
- package/dist/types/src/amount-calculator/auction-calculator/auction-calculator.d.ts +1 -1
- package/dist/types/src/amount-calculator/auction-calculator/index.d.ts +1 -1
- package/dist/types/src/amount-calculator/index.d.ts +4 -3
- package/dist/types/src/api/fusion-api.d.ts +5 -5
- package/dist/types/src/api/index.d.ts +8 -8
- package/dist/types/src/api/orders/index.d.ts +3 -3
- package/dist/types/src/api/orders/orders.api.d.ts +4 -4
- package/dist/types/src/api/orders/orders.request.d.ts +2 -2
- package/dist/types/src/api/orders/types.d.ts +4 -4
- package/dist/types/src/api/params.d.ts +1 -1
- package/dist/types/src/api/quoter/index.d.ts +6 -6
- package/dist/types/src/api/quoter/preset.d.ts +2 -2
- package/dist/types/src/api/quoter/quote/index.d.ts +3 -3
- package/dist/types/src/api/quoter/quote/order-params.d.ts +2 -2
- package/dist/types/src/api/quoter/quote/quote.d.ts +5 -5
- package/dist/types/src/api/quoter/quote/types.d.ts +2 -2
- package/dist/types/src/api/quoter/quoter-custom-preset.request.d.ts +1 -1
- package/dist/types/src/api/quoter/quoter.api.d.ts +5 -5
- package/dist/types/src/api/quoter/quoter.request.d.ts +2 -2
- package/dist/types/src/api/quoter/types.d.ts +2 -2
- package/dist/types/src/api/relayer/index.d.ts +3 -3
- package/dist/types/src/api/relayer/relayer.api.d.ts +3 -3
- package/dist/types/src/api/relayer/relayer.request.d.ts +1 -1
- package/dist/types/src/api/relayer/types.d.ts +1 -1
- package/dist/types/src/api/types.d.ts +2 -2
- package/dist/types/src/api-ext.d.ts +1 -1
- package/dist/types/src/connector/blockchain/index.d.ts +3 -3
- package/dist/types/src/connector/blockchain/private-key-provider.connector.d.ts +2 -2
- package/dist/types/src/connector/blockchain/web3-provider-connector.d.ts +1 -1
- package/dist/types/src/connector/http/axios-provider.connector.d.ts +1 -1
- package/dist/types/src/connector/http/index.d.ts +2 -2
- package/dist/types/src/connector/index.d.ts +3 -3
- package/dist/types/src/connector/ws/index.d.ts +3 -3
- package/dist/types/src/connector/ws/websocket-client.connector.d.ts +2 -2
- package/dist/types/src/connector/ws/websocket-provider.connector.d.ts +1 -1
- package/dist/types/src/fusion-order/auction-details/auction-details.d.ts +1 -1
- package/dist/types/src/fusion-order/auction-details/index.d.ts +2 -2
- package/dist/types/src/fusion-order/fees/fees.d.ts +2 -2
- package/dist/types/src/fusion-order/fees/index.d.ts +3 -3
- package/dist/types/src/fusion-order/fusion-extension.d.ts +7 -6
- package/dist/types/src/fusion-order/fusion-order.d.ts +7 -7
- package/dist/types/src/fusion-order/index.d.ts +7 -7
- package/dist/types/src/fusion-order/whitelist/index.d.ts +2 -2
- package/dist/types/src/fusion-order/whitelist/whitelist.d.ts +1 -1
- package/dist/types/src/index.d.ts +13 -13
- package/dist/types/src/sdk/encoders/index.d.ts +1 -1
- package/dist/types/src/sdk/index.d.ts +4 -4
- package/dist/types/src/sdk/sdk.d.ts +4 -4
- package/dist/types/src/sdk/types.d.ts +4 -4
- package/dist/types/src/ws-api/active-websocket-orders-api.d.ts +2 -2
- package/dist/types/src/ws-api/constants.d.ts +1 -1
- package/dist/types/src/ws-api/index.d.ts +5 -5
- package/dist/types/src/ws-api/rpc-websocket-api.d.ts +3 -3
- package/dist/types/src/ws-api/types.d.ts +4 -4
- package/dist/types/src/ws-api/ws-api.d.ts +4 -4
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +6 -4
- package/dist/cjs/amount-calculator/amount-calculator.js.map +0 -1
- package/dist/cjs/amount-calculator/auction-calculator/auction-calculator.js.map +0 -1
- package/dist/cjs/amount-calculator/auction-calculator/index.js.map +0 -1
- package/dist/cjs/amount-calculator/index.js.map +0 -1
- package/dist/cjs/api/fusion-api.js.map +0 -1
- package/dist/cjs/api/index.js.map +0 -1
- package/dist/cjs/api/orders/index.js.map +0 -1
- package/dist/cjs/api/orders/orders.api.js.map +0 -1
- package/dist/cjs/api/orders/orders.request.js.map +0 -1
- package/dist/cjs/api/orders/types.js.map +0 -1
- package/dist/cjs/api/ordersVersion.js.map +0 -1
- package/dist/cjs/api/pagination.js.map +0 -1
- package/dist/cjs/api/params.js.map +0 -1
- package/dist/cjs/api/quoter/index.js.map +0 -1
- package/dist/cjs/api/quoter/preset.js.map +0 -1
- package/dist/cjs/api/quoter/quote/index.js.map +0 -1
- package/dist/cjs/api/quoter/quote/order-params.js.map +0 -1
- package/dist/cjs/api/quoter/quote/quote.js.map +0 -1
- package/dist/cjs/api/quoter/quote/types.js.map +0 -1
- package/dist/cjs/api/quoter/quoter-custom-preset.request.js.map +0 -1
- package/dist/cjs/api/quoter/quoter.api.js.map +0 -1
- package/dist/cjs/api/quoter/quoter.request.js.map +0 -1
- package/dist/cjs/api/quoter/types.js.map +0 -1
- package/dist/cjs/api/relayer/index.js.map +0 -1
- package/dist/cjs/api/relayer/relayer.api.js.map +0 -1
- package/dist/cjs/api/relayer/relayer.request.js.map +0 -1
- package/dist/cjs/api/relayer/types.js.map +0 -1
- package/dist/cjs/api/types.js.map +0 -1
- package/dist/cjs/api-ext.js.map +0 -1
- package/dist/cjs/connector/blockchain/blockchain-provider.connector.js.map +0 -1
- package/dist/cjs/connector/blockchain/index.js.map +0 -1
- package/dist/cjs/connector/blockchain/private-key-provider.connector.js.map +0 -1
- package/dist/cjs/connector/blockchain/web3-provider-connector.js.map +0 -1
- package/dist/cjs/connector/http/axios-provider.connector.js.map +0 -1
- package/dist/cjs/connector/http/http-provider.connector.js.map +0 -1
- package/dist/cjs/connector/http/index.js.map +0 -1
- package/dist/cjs/connector/index.js.map +0 -1
- package/dist/cjs/connector/ws/index.js.map +0 -1
- package/dist/cjs/connector/ws/types.js.map +0 -1
- package/dist/cjs/connector/ws/websocket-client.connector.js.map +0 -1
- package/dist/cjs/connector/ws/websocket-provider.connector.js.map +0 -1
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/errors.js.map +0 -1
- package/dist/cjs/fusion-order/auction-details/auction-details.js.map +0 -1
- package/dist/cjs/fusion-order/auction-details/index.js.map +0 -1
- package/dist/cjs/fusion-order/auction-details/types.js.map +0 -1
- package/dist/cjs/fusion-order/constants.js.map +0 -1
- package/dist/cjs/fusion-order/fees/fees.js.map +0 -1
- package/dist/cjs/fusion-order/fees/index.js.map +0 -1
- package/dist/cjs/fusion-order/fees/integrator-fee.js.map +0 -1
- package/dist/cjs/fusion-order/fees/resolver-fee.js.map +0 -1
- package/dist/cjs/fusion-order/fusion-extension.js.map +0 -1
- package/dist/cjs/fusion-order/fusion-order.js.map +0 -1
- package/dist/cjs/fusion-order/index.js.map +0 -1
- package/dist/cjs/fusion-order/source-track.js.map +0 -1
- package/dist/cjs/fusion-order/surplus-params.js.map +0 -1
- package/dist/cjs/fusion-order/whitelist/index.js.map +0 -1
- package/dist/cjs/fusion-order/whitelist/types.js.map +0 -1
- package/dist/cjs/fusion-order/whitelist/whitelist.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/sdk/encoders/cancel-order.encoder.js.map +0 -1
- package/dist/cjs/sdk/encoders/index.js.map +0 -1
- package/dist/cjs/sdk/index.js.map +0 -1
- package/dist/cjs/sdk/sdk.js.map +0 -1
- package/dist/cjs/sdk/types.js.map +0 -1
- package/dist/cjs/sdk/utils.js.map +0 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/cjs/utils/amounts.js.map +0 -1
- package/dist/cjs/utils/time.js.map +0 -1
- package/dist/cjs/utils/types.js.map +0 -1
- package/dist/cjs/utils.js.map +0 -1
- package/dist/cjs/validations.js.map +0 -1
- package/dist/cjs/ws-api/active-websocket-orders-api.js.map +0 -1
- package/dist/cjs/ws-api/constants.js.map +0 -1
- package/dist/cjs/ws-api/index.js.map +0 -1
- package/dist/cjs/ws-api/rpc-websocket-api.js.map +0 -1
- package/dist/cjs/ws-api/types.js.map +0 -1
- package/dist/cjs/ws-api/url.js.map +0 -1
- package/dist/cjs/ws-api/ws-api.js.map +0 -1
- package/dist/esm/amount-calculator/amount-calculator.js.map +0 -1
- package/dist/esm/amount-calculator/auction-calculator/auction-calculator.js.map +0 -1
- package/dist/esm/amount-calculator/auction-calculator/index.js.map +0 -1
- package/dist/esm/amount-calculator/index.js.map +0 -1
- package/dist/esm/api/fusion-api.js.map +0 -1
- package/dist/esm/api/index.js.map +0 -1
- package/dist/esm/api/orders/index.js.map +0 -1
- package/dist/esm/api/orders/orders.api.js.map +0 -1
- package/dist/esm/api/orders/orders.request.js.map +0 -1
- package/dist/esm/api/orders/types.js.map +0 -1
- package/dist/esm/api/ordersVersion.js.map +0 -1
- package/dist/esm/api/pagination.js.map +0 -1
- package/dist/esm/api/params.js.map +0 -1
- package/dist/esm/api/quoter/index.js.map +0 -1
- package/dist/esm/api/quoter/preset.js.map +0 -1
- package/dist/esm/api/quoter/quote/index.js.map +0 -1
- package/dist/esm/api/quoter/quote/order-params.js.map +0 -1
- package/dist/esm/api/quoter/quote/quote.js.map +0 -1
- package/dist/esm/api/quoter/quote/types.js.map +0 -1
- package/dist/esm/api/quoter/quoter-custom-preset.request.js.map +0 -1
- package/dist/esm/api/quoter/quoter.api.js.map +0 -1
- package/dist/esm/api/quoter/quoter.request.js.map +0 -1
- package/dist/esm/api/quoter/types.js.map +0 -1
- package/dist/esm/api/relayer/index.js.map +0 -1
- package/dist/esm/api/relayer/relayer.api.js.map +0 -1
- package/dist/esm/api/relayer/relayer.request.js.map +0 -1
- package/dist/esm/api/relayer/types.js.map +0 -1
- package/dist/esm/api/types.js.map +0 -1
- package/dist/esm/api-ext.js.map +0 -1
- package/dist/esm/connector/blockchain/blockchain-provider.connector.js.map +0 -1
- package/dist/esm/connector/blockchain/index.js.map +0 -1
- package/dist/esm/connector/blockchain/private-key-provider.connector.js.map +0 -1
- package/dist/esm/connector/blockchain/web3-provider-connector.js.map +0 -1
- package/dist/esm/connector/http/axios-provider.connector.js.map +0 -1
- package/dist/esm/connector/http/http-provider.connector.js.map +0 -1
- package/dist/esm/connector/http/index.js.map +0 -1
- package/dist/esm/connector/index.js.map +0 -1
- package/dist/esm/connector/ws/index.js.map +0 -1
- package/dist/esm/connector/ws/types.js.map +0 -1
- package/dist/esm/connector/ws/websocket-client.connector.js.map +0 -1
- package/dist/esm/connector/ws/websocket-provider.connector.js.map +0 -1
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/errors.js.map +0 -1
- package/dist/esm/fusion-order/auction-details/auction-details.js.map +0 -1
- package/dist/esm/fusion-order/auction-details/index.js.map +0 -1
- package/dist/esm/fusion-order/auction-details/types.js.map +0 -1
- package/dist/esm/fusion-order/constants.js.map +0 -1
- package/dist/esm/fusion-order/fees/fees.js.map +0 -1
- package/dist/esm/fusion-order/fees/index.js.map +0 -1
- package/dist/esm/fusion-order/fees/integrator-fee.js.map +0 -1
- package/dist/esm/fusion-order/fees/resolver-fee.js.map +0 -1
- package/dist/esm/fusion-order/fusion-extension.js.map +0 -1
- package/dist/esm/fusion-order/fusion-order.js.map +0 -1
- package/dist/esm/fusion-order/index.js.map +0 -1
- package/dist/esm/fusion-order/source-track.js.map +0 -1
- package/dist/esm/fusion-order/surplus-params.js.map +0 -1
- package/dist/esm/fusion-order/whitelist/index.js.map +0 -1
- package/dist/esm/fusion-order/whitelist/types.js.map +0 -1
- package/dist/esm/fusion-order/whitelist/whitelist.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/sdk/encoders/cancel-order.encoder.js.map +0 -1
- package/dist/esm/sdk/encoders/index.js.map +0 -1
- package/dist/esm/sdk/index.js.map +0 -1
- package/dist/esm/sdk/sdk.js.map +0 -1
- package/dist/esm/sdk/types.js.map +0 -1
- package/dist/esm/sdk/utils.js.map +0 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/esm/utils/amounts.js.map +0 -1
- package/dist/esm/utils/time.js.map +0 -1
- package/dist/esm/utils/types.js.map +0 -1
- package/dist/esm/utils.js.map +0 -1
- package/dist/esm/validations.js.map +0 -1
- package/dist/esm/ws-api/active-websocket-orders-api.js.map +0 -1
- package/dist/esm/ws-api/constants.js.map +0 -1
- package/dist/esm/ws-api/index.js.map +0 -1
- package/dist/esm/ws-api/rpc-websocket-api.js.map +0 -1
- package/dist/esm/ws-api/types.js.map +0 -1
- package/dist/esm/ws-api/url.js.map +0 -1
- package/dist/esm/ws-api/ws-api.js.map +0 -1
|
@@ -1,81 +1,271 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
+
|