@symmio/trading-core 2.0.0 → 3.0.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/README.md +2 -2
- package/dist/balance-history/get-balance-history/types.d.ts +1 -1
- package/dist/balance-history/get-balance-history/types.js.map +1 -1
- package/dist/core/chains/actions/get-chain-config.d.ts +1 -1
- package/dist/core/chains/actions/get-chain-config.js.map +1 -1
- package/dist/core/chains/actions/get-default-solver.d.ts +1 -1
- package/dist/core/chains/actions/get-default-solver.js.map +1 -1
- package/dist/core/chains/actions/list-supported-chains.js.map +1 -1
- package/dist/core/chains/registry.d.ts.map +1 -1
- package/dist/core/chains/registry.js +52 -50
- package/dist/core/chains/registry.js.map +1 -1
- package/dist/core/chains/supported-chains.d.ts +3 -3
- package/dist/core/chains/supported-chains.d.ts.map +1 -1
- package/dist/core/chains/supported-chains.js +1 -1
- package/dist/core/chains/supported-chains.js.map +1 -1
- package/dist/core/chains/types.d.ts +18 -4
- package/dist/core/chains/types.d.ts.map +1 -1
- package/dist/core/chains/types.js.map +1 -1
- package/dist/core/config/create-config.d.ts +7 -7
- package/dist/core/config/create-config.d.ts.map +1 -1
- package/dist/core/config/create-config.js +39 -38
- package/dist/core/config/create-config.js.map +1 -1
- package/dist/core/config/merge-chain-config.js +1 -0
- package/dist/core/config/merge-chain-config.js.map +1 -1
- package/dist/index.d.ts +18 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +318 -316
- package/dist/margin/calculate-margin-risk.d.ts +1 -1
- package/dist/margin/calculate-margin-risk.js.map +1 -1
- package/dist/notifications/types.d.ts +1 -1
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/quotes/close-planning/min-remaining-quantity.d.ts +1 -1
- package/dist/quotes/close-planning/min-remaining-quantity.js.map +1 -1
- package/dist/quotes/get-quote-history/query-document.d.ts +1 -1
- package/dist/quotes/get-quote-history/query-document.js.map +1 -1
- package/dist/quotes/get-quote-history/types.d.ts +2 -2
- package/dist/quotes/get-quote-history/types.js.map +1 -1
- package/dist/quotes/grouping/aggregate-metrics.d.ts +1 -1
- package/dist/quotes/grouping/aggregate-metrics.js.map +1 -1
- package/dist/quotes/open-price.d.ts +10 -10
- package/dist/quotes/open-price.d.ts.map +1 -1
- package/dist/quotes/open-price.js +1 -1
- package/dist/quotes/open-price.js.map +1 -1
- package/dist/quotes/upnl/calculate-quote-leverage.d.ts +8 -6
- package/dist/quotes/upnl/calculate-quote-leverage.d.ts.map +1 -1
- package/dist/quotes/upnl/calculate-quote-leverage.js.map +1 -1
- package/dist/shared/utils/query.d.ts +2 -2
- package/dist/shared/utils/query.js.map +1 -1
- package/dist/solvers/force-close/force-close-position.js +1 -1
- package/dist/solvers/force-close/force-close-position.js.map +1 -1
- package/dist/solvers/force-close/get-force-close-params.js +1 -1
- package/dist/solvers/force-close/get-force-close-params.js.map +1 -1
- package/dist/solvers/instant-close/shared/calldata.js +1 -1
- package/dist/solvers/instant-close/shared/calldata.js.map +1 -1
- package/dist/solvers/instant-open/get-instant-open-fees/get-instant-open-fees.d.ts +129 -0
- package/dist/solvers/instant-open/get-instant-open-fees/get-instant-open-fees.d.ts.map +1 -0
- package/dist/solvers/instant-open/get-instant-open-fees/get-instant-open-fees.js +115 -0
- package/dist/solvers/instant-open/get-instant-open-fees/get-instant-open-fees.js.map +1 -0
- package/dist/solvers/instant-open/get-instant-open-fees/index.d.ts +3 -0
- package/dist/solvers/instant-open/get-instant-open-fees/index.d.ts.map +1 -0
- package/dist/solvers/instant-open/get-instant-open-fees/query.d.ts +34 -0
- package/dist/solvers/instant-open/get-instant-open-fees/query.d.ts.map +1 -0
- package/dist/solvers/instant-open/get-instant-open-fees/query.js +33 -0
- package/dist/solvers/instant-open/get-instant-open-fees/query.js.map +1 -0
- package/dist/solvers/instant-open/index.d.ts +1 -0
- package/dist/solvers/instant-open/index.d.ts.map +1 -1
- package/dist/solvers/instant-open/instant-open/adapters/enigma-instant-open.d.ts.map +1 -1
- package/dist/solvers/instant-open/instant-open/adapters/enigma-instant-open.js +58 -55
- package/dist/solvers/instant-open/instant-open/adapters/enigma-instant-open.js.map +1 -1
- package/dist/solvers/instant-open/instant-open/types.d.ts +14 -4
- package/dist/solvers/instant-open/instant-open/types.d.ts.map +1 -1
- package/dist/solvers/instant-open/prepare-instant-open-params/prepare-instant-open-params.d.ts +45 -10
- package/dist/solvers/instant-open/prepare-instant-open-params/prepare-instant-open-params.d.ts.map +1 -1
- package/dist/solvers/instant-open/prepare-instant-open-params/prepare-instant-open-params.js +157 -72
- package/dist/solvers/instant-open/prepare-instant-open-params/prepare-instant-open-params.js.map +1 -1
- package/dist/solvers/instant-open/shared/calldata.d.ts +35 -7
- package/dist/solvers/instant-open/shared/calldata.d.ts.map +1 -1
- package/dist/solvers/instant-open/shared/calldata.js +56 -14
- package/dist/solvers/instant-open/shared/calldata.js.map +1 -1
- package/dist/solvers/instant-open/shared/index.d.ts +1 -0
- package/dist/solvers/instant-open/shared/index.d.ts.map +1 -1
- package/dist/solvers/instant-open/shared/open-estimate-guard.d.ts +89 -0
- package/dist/solvers/instant-open/shared/open-estimate-guard.d.ts.map +1 -0
- package/dist/solvers/instant-open/shared/open-estimate-guard.js +52 -0
- package/dist/solvers/instant-open/shared/open-estimate-guard.js.map +1 -0
- package/dist/solvers/instant-open/shared/selectors.d.ts +46 -7
- package/dist/solvers/instant-open/shared/selectors.d.ts.map +1 -1
- package/dist/solvers/instant-open/shared/selectors.js +12 -5
- package/dist/solvers/instant-open/shared/selectors.js.map +1 -1
- package/dist/solvers/instant-open/shared/trade-math.d.ts +112 -8
- package/dist/solvers/instant-open/shared/trade-math.d.ts.map +1 -1
- package/dist/solvers/instant-open/shared/trade-math.js +59 -25
- package/dist/solvers/instant-open/shared/trade-math.js.map +1 -1
- package/dist/solvers/instant-open/shared/types.d.ts +32 -0
- package/dist/solvers/instant-open/shared/types.d.ts.map +1 -1
- package/dist/solvers/instant-open/shared/types.js.map +1 -1
- package/dist/solvers/markets/adapters/enigma-markets.d.ts.map +1 -1
- package/dist/solvers/markets/adapters/enigma-markets.js +38 -32
- package/dist/solvers/markets/adapters/enigma-markets.js.map +1 -1
- package/dist/solvers/markets/types.d.ts +15 -0
- package/dist/solvers/markets/types.d.ts.map +1 -1
- package/dist/solvers/revenue/get-solver-revenue.d.ts +11 -11
- package/dist/solvers/revenue/get-solver-revenue.d.ts.map +1 -1
- package/dist/solvers/revenue/get-solver-revenue.js +12 -12
- package/dist/solvers/revenue/get-solver-revenue.js.map +1 -1
- package/dist/solvers/revenue/query.d.ts +2 -2
- package/dist/solvers/revenue/query.d.ts.map +1 -1
- package/dist/solvers/revenue/query.js +1 -1
- package/dist/solvers/revenue/query.js.map +1 -1
- package/dist/solvers/revenue/to-solver-revenue.d.ts +3 -2
- package/dist/solvers/revenue/to-solver-revenue.d.ts.map +1 -1
- package/dist/solvers/revenue/to-solver-revenue.js.map +1 -1
- package/dist/solvers/shared/index.d.ts +1 -0
- package/dist/solvers/shared/index.d.ts.map +1 -1
- package/dist/solvers/shared/resolvers/resolve-market.d.ts +36 -5
- package/dist/solvers/shared/resolvers/resolve-market.d.ts.map +1 -1
- package/dist/solvers/shared/resolvers/resolve-market.js +30 -8
- package/dist/solvers/shared/resolvers/resolve-market.js.map +1 -1
- package/dist/solvers/shared/resolvers/types.d.ts +14 -0
- package/dist/solvers/shared/resolvers/types.d.ts.map +1 -1
- package/dist/solvers/shared/solver-close-fee.d.ts +76 -0
- package/dist/solvers/shared/solver-close-fee.d.ts.map +1 -0
- package/dist/solvers/shared/solver-close-fee.js +26 -0
- package/dist/solvers/shared/solver-close-fee.js.map +1 -0
- package/dist/solvers/symbols/to-solver-symbol.d.ts.map +1 -1
- package/dist/solvers/symbols/to-solver-symbol.js +36 -30
- package/dist/solvers/symbols/to-solver-symbol.js.map +1 -1
- package/dist/solvers/symbols/types.d.ts +22 -1
- package/dist/solvers/symbols/types.d.ts.map +1 -1
- package/dist/solvers/types/generated/enigma-solver.d.ts +8 -99
- package/dist/solvers/types/generated/enigma-solver.d.ts.map +1 -1
- package/dist/solvers/types/generated/enigma-solver.js +5 -11
- package/dist/solvers/types/generated/enigma-solver.js.map +1 -1
- package/dist/solvers/types/generated/rasa-solver.js +2 -2
- package/dist/solvers/types/generated/rasa-solver.js.map +1 -1
- package/dist/symmio-contracts/abi/index.d.ts +4 -4
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/account-layer.d.ts +499 -132
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/account-layer.d.ts.map +1 -1
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/account-layer.js +591 -149
- package/dist/symmio-contracts/abi/v0.8.6/account-layer.js.map +1 -0
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/index.d.ts.map +1 -1
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/instant-layer.d.ts +24 -24
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/instant-layer.d.ts.map +1 -1
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/instant-layer.js +28 -28
- package/dist/symmio-contracts/abi/v0.8.6/instant-layer.js.map +1 -0
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/symmio.d.ts +4724 -1019
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/symmio.d.ts.map +1 -1
- package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/symmio.js +12750 -8308
- package/dist/symmio-contracts/abi/v0.8.6/symmio.js.map +1 -0
- package/dist/symmio-contracts/account-layer/actions/add-margin.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/add-margin.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/cancel-registration.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/cancel-registration.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/delete-sub-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/delete-sub-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/deposit-and-allocate-for-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/deposit-and-allocate-for-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/deposit-for-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/deposit-for-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/edit-account-name.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/edit-account-name.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/generate-account-manager-address.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/generate-account-manager-address.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-account-balance-info.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-account-balance-info.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-account-balance-of.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-account-balance-of.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-affiliate-state.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-affiliate-state.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-sub-account-virtual-nonce.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-sub-account-virtual-nonce.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-sub-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-sub-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-sub-accounts-count-of-user.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-sub-accounts-count-of-user.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-user-sub-accounts-addresses.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-user-sub-accounts-addresses.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-user-sub-accounts.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-user-sub-accounts.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-virtual-account.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-virtual-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-virtual-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-virtual-accounts-addresses-of-sub-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-virtual-accounts-addresses-of-sub-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/predict-next-virtual-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/predict-next-virtual-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/remove-margin.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/remove-margin.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/request-to-register-affiliate.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/request-to-register-affiliate.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-add-margin.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-add-margin.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-add-margin.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-cancel-registration.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-cancel-registration.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-cancel-registration.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-create-sub-accounts.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-create-sub-accounts.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-create-sub-accounts.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-delete-sub-account.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-delete-sub-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-delete-sub-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-deposit-and-allocate-for-account.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-deposit-and-allocate-for-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-deposit-and-allocate-for-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-deposit-for-account.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-deposit-for-account.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-deposit-for-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-edit-account-name.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-edit-account-name.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-edit-account-name.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-remove-margin.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-remove-margin.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-remove-margin.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-request-to-register-affiliate.d.ts +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-request-to-register-affiliate.js +1 -1
- package/dist/symmio-contracts/account-layer/actions/simulate-request-to-register-affiliate.js.map +1 -1
- package/dist/symmio-contracts/account-layer/types.d.ts +10 -10
- package/dist/symmio-contracts/account-layer/types.js.map +1 -1
- package/dist/symmio-contracts/instant-layer/actions/get-delegation-expiry.js +1 -1
- package/dist/symmio-contracts/instant-layer/actions/get-delegation-expiry.js.map +1 -1
- package/dist/symmio-contracts/instant-layer/actions/get-is-delegation-active.js +1 -1
- package/dist/symmio-contracts/instant-layer/actions/get-is-delegation-active.js.map +1 -1
- package/dist/symmio-contracts/instant-layer/actions/grant-delegation.js +1 -1
- package/dist/symmio-contracts/instant-layer/actions/grant-delegation.js.map +1 -1
- package/dist/symmio-contracts/instant-layer/actions/simulate-grant-delegation.d.ts +1 -1
- package/dist/symmio-contracts/instant-layer/actions/simulate-grant-delegation.js +1 -1
- package/dist/symmio-contracts/instant-layer/actions/simulate-grant-delegation.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/allocate.js +1 -1
- package/dist/symmio-contracts/symmio/actions/allocate.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.d.ts +1 -1
- package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.js +1 -1
- package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/deallocate.js +1 -1
- package/dist/symmio-contracts/symmio/actions/deallocate.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.js +1 -1
- package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.js +1 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-quote.js +1 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-quote.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-cool-downs-of-ma.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-cool-downs-of-ma.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-fee-for-user.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-fee-for-user.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-last-withdraw-request-id.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-last-withdraw-request-id.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-onchain-contract-markets.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-onchain-contract-markets.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-party-a-open-positions.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-party-a-open-positions.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-party-a-pending-quotes.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-party-a-pending-quotes.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-pending-quotes.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-pending-quotes.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-pending-withdraw-requests.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-pending-withdraw-requests.js +10 -9
- package/dist/symmio-contracts/symmio/actions/get-pending-withdraw-requests.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-quote.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-quote.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-withdraw-requests.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-withdraw-requests.js +9 -8
- package/dist/symmio-contracts/symmio/actions/get-withdraw-requests.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-withdrawable-time.js +1 -1
- package/dist/symmio-contracts/symmio/actions/get-withdrawable-time.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/initiate-withdraw.d.ts +1 -1
- package/dist/symmio-contracts/symmio/actions/initiate-withdraw.js +1 -1
- package/dist/symmio-contracts/symmio/actions/initiate-withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.js +1 -1
- package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-close-request.js +1 -1
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-close-request.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.js +1 -1
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-allocate.js +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-allocate.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-deallocate-and-initiate-withdraw.js +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-deallocate-and-initiate-withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-deallocate.js +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-deallocate.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-finalize-withdraw-request.d.ts +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-finalize-withdraw-request.js +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-finalize-withdraw-request.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-initiate-withdraw.js +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-initiate-withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-request-cancel-withdraw.js +1 -1
- package/dist/symmio-contracts/symmio/actions/simulate-request-cancel-withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/withdraw.d.ts +1 -1
- package/dist/symmio-contracts/symmio/actions/withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/internal/call-as-sub-account.js +1 -1
- package/dist/symmio-contracts/symmio/internal/call-as-sub-account.js.map +1 -1
- package/dist/symmio-contracts/symmio/internal/simulate-call-as-sub-account.d.ts +1 -1
- package/dist/symmio-contracts/symmio/internal/simulate-call-as-sub-account.js +1 -1
- package/dist/symmio-contracts/symmio/internal/simulate-call-as-sub-account.js.map +1 -1
- package/dist/symmio-contracts/symmio/internal/withdraw-requests-v0-8-5.d.ts +214 -0
- package/dist/symmio-contracts/symmio/internal/withdraw-requests-v0-8-5.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/internal/withdraw-requests-v0-8-5.js +248 -0
- package/dist/symmio-contracts/symmio/internal/withdraw-requests-v0-8-5.js.map +1 -0
- package/dist/symmio-contracts/symmio/parts.d.ts +1 -1
- package/dist/symmio-contracts/symmio/parts.js.map +1 -1
- package/dist/symmio-contracts/symmio/types.d.ts +29 -19
- package/dist/symmio-contracts/symmio/types.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/types.js.map +1 -1
- package/dist/tpsl/grouping/notional.js +6 -6
- package/dist/websocket/tpsl/parse-tpsl-frame.d.ts +1 -1
- package/dist/websocket/tpsl/parse-tpsl-frame.js.map +1 -1
- package/dist/websocket/tpsl/watch-tpsl-notifications.d.ts +1 -1
- package/dist/websocket/tpsl/watch-tpsl-notifications.js.map +1 -1
- package/package.json +1 -1
- package/dist/solvers/add-solver-whitelist/add-solver-whitelist.d.ts +0 -27
- package/dist/solvers/add-solver-whitelist/add-solver-whitelist.d.ts.map +0 -1
- package/dist/solvers/add-solver-whitelist/add-solver-whitelist.js +0 -25
- package/dist/solvers/add-solver-whitelist/add-solver-whitelist.js.map +0 -1
- package/dist/solvers/add-solver-whitelist/index.d.ts +0 -3
- package/dist/solvers/add-solver-whitelist/index.d.ts.map +0 -1
- package/dist/solvers/add-solver-whitelist/query.d.ts +0 -19
- package/dist/solvers/add-solver-whitelist/query.d.ts.map +0 -1
- package/dist/solvers/add-solver-whitelist/query.js +0 -12
- package/dist/solvers/add-solver-whitelist/query.js.map +0 -1
- package/dist/symmio-contracts/abi/v0.8.5/account-layer.js.map +0 -1
- package/dist/symmio-contracts/abi/v0.8.5/instant-layer.js.map +0 -1
- package/dist/symmio-contracts/abi/v0.8.5/symmio.js.map +0 -1
- /package/dist/symmio-contracts/abi/{v0.8.5 → v0.8.6}/index.d.ts +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { SymmError as e } from "../../../shared/errors/symm-error.js";
|
|
2
|
+
import { calculateExpectedSettlementLoss as t, calculateSolverFees as n, calculateTradeParams as r, computePlatformFeeLegs as i } from "../shared/trade-math.js";
|
|
3
|
+
import { assertValidSlippage as a, deriveAutoSlippage as o, fetchOpenEstimatePrice as s } from "../shared/open-estimate-guard.js";
|
|
4
|
+
import { resolveMarkPrice as c } from "../../shared/resolvers/resolve-mark-price.js";
|
|
5
|
+
import { resolveMarket as l } from "../../shared/resolvers/resolve-market.js";
|
|
6
|
+
import { resolveFeeRates as u } from "../prepare-instant-open-params/resolvers/resolve-fee-rates.js";
|
|
7
|
+
import { toDecimal as d } from "@symmio/utils/decimal";
|
|
8
|
+
//#region src/solvers/instant-open/get-instant-open-fees/get-instant-open-fees.ts
|
|
9
|
+
async function f(f, p) {
|
|
10
|
+
p.slippage !== void 0 && a(p.slippage);
|
|
11
|
+
let m = f.getSolver({
|
|
12
|
+
chainId: p.chainId,
|
|
13
|
+
solverId: p.solverId
|
|
14
|
+
}).id === "enigma";
|
|
15
|
+
if (p.slippage === void 0 && !m) throw new e("validation", "SLIPPAGE_REQUIRED", "getInstantOpenFees: slippage is required on this solver — auto-derived slippage is lowcap-only.");
|
|
16
|
+
let h = await l(f, {
|
|
17
|
+
chainId: p.chainId,
|
|
18
|
+
solverId: p.solverId,
|
|
19
|
+
marketId: p.market.id,
|
|
20
|
+
marketName: p.market.name,
|
|
21
|
+
pricePrecision: p.market.pricePrecision,
|
|
22
|
+
quantityPrecision: p.market.quantityPrecision,
|
|
23
|
+
hedgerFeeOpen: p.market.hedgerFeeOpen,
|
|
24
|
+
hedgerFeeClose: p.market.hedgerFeeClose,
|
|
25
|
+
hedgerFeeCloseEarlyRate: p.market.hedgerFeeCloseEarlyRate,
|
|
26
|
+
hedgerFeeCloseEarlyThreshold: p.market.hedgerFeeCloseEarlyThreshold,
|
|
27
|
+
hedgerFeeCloseStandardThreshold: p.market.hedgerFeeCloseStandardThreshold,
|
|
28
|
+
includeHedgerFees: m
|
|
29
|
+
}), [g, _] = await Promise.all([c(f, {
|
|
30
|
+
chainId: p.chainId,
|
|
31
|
+
solverId: p.solverId,
|
|
32
|
+
marketName: h.name,
|
|
33
|
+
markPrice: p.markPrice
|
|
34
|
+
}), u(f, {
|
|
35
|
+
chainId: p.chainId,
|
|
36
|
+
subAccountAddress: p.subAccountAddress,
|
|
37
|
+
marketId: p.market.id,
|
|
38
|
+
feeRates: p.feeRates
|
|
39
|
+
})]), v = {
|
|
40
|
+
markPrice: g,
|
|
41
|
+
positionType: p.positionType,
|
|
42
|
+
userInput: p.initialMargin,
|
|
43
|
+
inputField: "PRICE",
|
|
44
|
+
leverage: p.leverage,
|
|
45
|
+
pricePrecision: h.pricePrecision,
|
|
46
|
+
quantityPrecision: h.quantityPrecision
|
|
47
|
+
}, y = p.slippage, b = m ? p.estimatedOpenPrice : void 0;
|
|
48
|
+
if (y === void 0) {
|
|
49
|
+
let t = r({
|
|
50
|
+
...v,
|
|
51
|
+
slippage: 0
|
|
52
|
+
});
|
|
53
|
+
if (!t) throw new e("validation", "INVALID_TRADE_PARAMETERS", "Invalid trade parameters: markPrice or initialMargin is zero/NaN.");
|
|
54
|
+
m && b === void 0 && (b = await s(f, {
|
|
55
|
+
chainId: p.chainId,
|
|
56
|
+
solverId: p.solverId,
|
|
57
|
+
symbolId: p.market.id,
|
|
58
|
+
positionType: p.positionType,
|
|
59
|
+
quantity: t.quantity,
|
|
60
|
+
markPrice: g
|
|
61
|
+
})), y = o({
|
|
62
|
+
markPrice: g,
|
|
63
|
+
expectedFillPrice: b,
|
|
64
|
+
positionType: p.positionType
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
let x = r({
|
|
68
|
+
...v,
|
|
69
|
+
slippage: y
|
|
70
|
+
});
|
|
71
|
+
if (!x) throw new e("validation", "INVALID_TRADE_PARAMETERS", "Invalid trade parameters: markPrice or initialMargin is zero/NaN.");
|
|
72
|
+
m && b === void 0 && (b = await s(f, {
|
|
73
|
+
chainId: p.chainId,
|
|
74
|
+
solverId: p.solverId,
|
|
75
|
+
symbolId: p.market.id,
|
|
76
|
+
positionType: p.positionType,
|
|
77
|
+
quantity: x.quantity,
|
|
78
|
+
markPrice: g
|
|
79
|
+
}));
|
|
80
|
+
let { platformOpenFee: S, platformCloseFee: C } = i(_, x.notional, x.notional);
|
|
81
|
+
if (!m) return {
|
|
82
|
+
kind: "rasa",
|
|
83
|
+
platformOpenFee: S,
|
|
84
|
+
platformCloseFee: C,
|
|
85
|
+
notional: x.notional,
|
|
86
|
+
totalFee: d(S).plus(C).toString()
|
|
87
|
+
};
|
|
88
|
+
let { openSolverFee: w, closeSolverFee: T } = n({
|
|
89
|
+
notional: x.notional,
|
|
90
|
+
hedgerFeeOpen: h.hedgerFeeOpen,
|
|
91
|
+
hedgerFeeClose: h.hedgerFeeClose,
|
|
92
|
+
hedgerFeeCloseEarlyRate: h.hedgerFeeCloseEarlyRate,
|
|
93
|
+
hedgerFeeCloseEarlyThreshold: h.hedgerFeeCloseEarlyThreshold,
|
|
94
|
+
hedgerFeeCloseStandardThreshold: h.hedgerFeeCloseStandardThreshold
|
|
95
|
+
}), E = t({
|
|
96
|
+
positionType: p.positionType,
|
|
97
|
+
markPrice: g,
|
|
98
|
+
expectedFillPrice: b,
|
|
99
|
+
quantity: x.quantity
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
kind: "enigma",
|
|
103
|
+
platformOpenFee: S,
|
|
104
|
+
platformCloseFee: C,
|
|
105
|
+
notional: x.notional,
|
|
106
|
+
openSolverFee: w,
|
|
107
|
+
closeSolverFee: T,
|
|
108
|
+
expectedSettlementLoss: E,
|
|
109
|
+
totalFee: d(S).plus(C).plus(w).plus(T).plus(E).toString()
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
export { f as getInstantOpenFees };
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=get-instant-open-fees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-instant-open-fees.js","names":[],"sources":["../../../../src/solvers/instant-open/get-instant-open-fees/get-instant-open-fees.ts"],"sourcesContent":["import { toDecimal } from \"@symmio/utils/decimal\";\nimport type { Address } from \"viem\";\nimport type { Config } from \"../../../core/config\";\nimport { SymmError } from \"../../../shared/errors/symm-error\";\nimport type { Compute, ReadSolverParameter } from \"../../../shared/types/properties\";\nimport type { FeeForUser } from \"../../../symmio-contracts/symmio/actions/get-fee-for-user\";\nimport { resolveFeeRates, resolveMarket, resolveMarkPrice } from \"../prepare-instant-open-params/resolvers\";\nimport { assertValidSlippage, deriveAutoSlippage, fetchOpenEstimatePrice } from \"../shared/open-estimate-guard\";\nimport {\n calculateExpectedSettlementLoss,\n calculateSolverFees,\n calculateTradeParams,\n computePlatformFeeLegs,\n} from \"../shared/trade-math\";\nimport type { InstantOpenMarketData, PositionType } from \"../shared/types\";\n\n/**\n * Parameters for {@link getInstantOpenFees}. A subset of\n * `PrepareInstantOpenParameters` — the trade intent plus optional pre-fetched\n * data; every pre-filled optional field skips its network fetch.\n */\nexport type GetInstantOpenFeesParameters = Compute<\n ReadSolverParameter & {\n /** Sub-account / partyA address the platform fee rates are read for. */\n subAccountAddress: Address;\n /** Market identification + optional pre-fetched precision metadata. */\n market: InstantOpenMarketData;\n /** Trade side. */\n positionType: PositionType;\n /** Collateral (USD) the user enters as initial margin. Decimal string. */\n initialMargin: string;\n /** Position leverage (integer ≥ 1). */\n leverage: number;\n /**\n * Slippage tolerance percent (e.g. `5` for 5%). **Required on majors\n * (non-lowcap) solvers.** On a lowcap solver it may be omitted to\n * auto-derive from the dry-run estimate plus 4% headroom — the same rule\n * as `prepareInstantOpenParams`, so the preview prices what the open will\n * actually charge.\n */\n slippage?: number;\n /** Pre-fetched mark price as decimal string. When omitted, fetched via the price service. */\n markPrice?: string;\n /** Pre-fetched on-chain fee rates (matches `getFeeForUser` return). When omitted, fetched. */\n feeRates?: FeeForUser;\n /**\n * Pre-fetched solver estimated open (fill) price as decimal string —\n * **lowcap/Enigma only**; ignored on any other solver kind. When omitted\n * on a lowcap solver, fetched via `GET /estimated-price`.\n */\n estimatedOpenPrice?: string;\n }\n>;\n\n/**\n * Fee legs every solver kind charges on an instant open.\n */\nexport interface BaseInstantOpenFees {\n /** Platform open fee: `getFeeForUser.openFee × notional / 1e18` (decimal string). */\n platformOpenFee: string;\n /** Platform close fee, provisioned at open: `getFeeForUser.closeFee × notional / 1e18` (decimal string). */\n platformCloseFee: string;\n /** Leveraged notional the fee rates were applied to (decimal string). */\n notional: string;\n /** Sum of every fee leg on this quote (decimal string). */\n totalFee: string;\n}\n\n/**\n * Fee breakdown for a **lowcap (Enigma)** instant open. Extends the platform\n * legs with the solver fees and the settlement provision the solver charges\n * from the VA balance.\n */\nexport interface EnigmaInstantOpenFees extends BaseInstantOpenFees {\n /** Discriminant: these fees were priced for an Enigma (lowcap) solver. */\n kind: \"enigma\";\n /** Solver open fee: `hedgerFeeOpen × notional` (decimal string). */\n openSolverFee: string;\n /**\n * Solver close fee provisioned at open (decimal string). Because the holding\n * time is unknown at open and an early close costs more, this is the\n * worst-case `earlyRate × notional` from the market's close-fee schedule\n * (falling back to the flat `hedgerFeeClose × notional` when no schedule is\n * available).\n */\n closeSolverFee: string;\n /**\n * Expected settlement loss vs the dry-run estimate: side-aware\n * `max(0, adverse fill deviation × quantity)` (decimal string). `\"0\"` when\n * no usable estimate exists.\n */\n expectedSettlementLoss: string;\n}\n\n/**\n * Fee breakdown for a **majors (Rasa)** instant open — platform legs only.\n */\nexport interface RasaInstantOpenFees extends BaseInstantOpenFees {\n /** Discriminant: these fees were priced for a Rasa (majors) solver. */\n kind: \"rasa\";\n}\n\n/**\n * Return type of {@link getInstantOpenFees}. Narrow on `kind` to reach the\n * lowcap-only legs.\n */\nexport type GetInstantOpenFeesReturnType = EnigmaInstantOpenFees | RasaInstantOpenFees;\n\n/**\n * Preview every fee a new instant-open quote pays, separated by leg plus the\n * total — without signing or submitting anything.\n *\n * Mirrors the exact resolution and math `prepareInstantOpenParams` uses, so\n * the preview equals what the open charges for the same inputs:\n *\n * - **Both kinds**: `platformOpenFee` + `platformCloseFee`\n * (on-chain `getFeeForUser` rates × leveraged notional).\n * - **Lowcap (Enigma) only**: `openSolverFee` (`hedgerFeeOpen × notional`) +\n * `closeSolverFee` (the worst-case close rate × notional — see\n * {@link EnigmaInstantOpenFees.closeSolverFee}) and\n * `expectedSettlementLoss` (dry-run estimate vs mark) — the legs the solver\n * charges from the VA balance.\n *\n * `totalFee` sums every leg, including the settlement provision — it is the\n * amount the user must fund even though the settlement leg is a provision\n * rather than a fee the solver keeps.\n *\n * @throws {SymmError} `SLIPPAGE_REQUIRED` on majors without `slippage`;\n * `INVALID_SLIPPAGE` / `INVALID_TRADE_PARAMETERS` /\n * `RESOLVE_MARKET_NOT_FOUND` / `RESOLVE_MARK_PRICE_NOT_FOUND` for invalid or\n * unresolvable inputs.\n *\n * @example\n * ```ts\n * const fees = await getInstantOpenFees(config, {\n * subAccountAddress,\n * market: { id: 1 },\n * positionType: PositionType.LONG,\n * initialMargin: \"100\",\n * leverage: 5,\n * });\n * if (fees.kind === \"enigma\") console.log(fees.openSolverFee, fees.expectedSettlementLoss);\n * console.log(fees.totalFee);\n * ```\n */\nexport async function getInstantOpenFees(\n config: Config,\n parameters: GetInstantOpenFeesParameters,\n): Promise<GetInstantOpenFeesReturnType> {\n if (parameters.slippage !== undefined) assertValidSlippage(parameters.slippage);\n\n /** Estimate-driven legs exist only on lowcap (Enigma) solvers — a majors preview is platform legs only. */\n const isLowcap = config.getSolver({ chainId: parameters.chainId, solverId: parameters.solverId }).id === \"enigma\";\n if (parameters.slippage === undefined && !isLowcap) {\n throw new SymmError(\n \"validation\",\n \"SLIPPAGE_REQUIRED\",\n \"getInstantOpenFees: slippage is required on this solver — auto-derived slippage is lowcap-only.\",\n );\n }\n\n const market = await resolveMarket(config, {\n chainId: parameters.chainId,\n solverId: parameters.solverId,\n marketId: parameters.market.id,\n marketName: parameters.market.name,\n pricePrecision: parameters.market.pricePrecision,\n quantityPrecision: parameters.market.quantityPrecision,\n hedgerFeeOpen: parameters.market.hedgerFeeOpen,\n hedgerFeeClose: parameters.market.hedgerFeeClose,\n hedgerFeeCloseEarlyRate: parameters.market.hedgerFeeCloseEarlyRate,\n hedgerFeeCloseEarlyThreshold: parameters.market.hedgerFeeCloseEarlyThreshold,\n hedgerFeeCloseStandardThreshold: parameters.market.hedgerFeeCloseStandardThreshold,\n includeHedgerFees: isLowcap,\n });\n const [markPrice, feeRates] = await Promise.all([\n resolveMarkPrice(config, {\n chainId: parameters.chainId,\n solverId: parameters.solverId,\n marketName: market.name,\n markPrice: parameters.markPrice,\n }),\n resolveFeeRates(config, {\n chainId: parameters.chainId,\n subAccountAddress: parameters.subAccountAddress,\n marketId: parameters.market.id,\n feeRates: parameters.feeRates,\n }),\n ]);\n\n const calculationInput = {\n markPrice,\n positionType: parameters.positionType,\n userInput: parameters.initialMargin,\n inputField: \"PRICE\" as const,\n leverage: parameters.leverage,\n pricePrecision: market.pricePrecision,\n quantityPrecision: market.quantityPrecision,\n };\n\n let slippage = parameters.slippage;\n let expectedFillPrice = isLowcap ? parameters.estimatedOpenPrice : undefined;\n if (slippage === undefined) {\n const sized = calculateTradeParams({ ...calculationInput, slippage: 0 });\n if (!sized) {\n throw new SymmError(\n \"validation\",\n \"INVALID_TRADE_PARAMETERS\",\n \"Invalid trade parameters: markPrice or initialMargin is zero/NaN.\",\n );\n }\n if (isLowcap && expectedFillPrice === undefined) {\n expectedFillPrice = await fetchOpenEstimatePrice(config, {\n chainId: parameters.chainId,\n solverId: parameters.solverId,\n symbolId: parameters.market.id,\n positionType: parameters.positionType,\n quantity: sized.quantity,\n markPrice,\n });\n }\n slippage = deriveAutoSlippage({ markPrice, expectedFillPrice, positionType: parameters.positionType });\n }\n\n const tradeCalc = calculateTradeParams({ ...calculationInput, slippage });\n if (!tradeCalc) {\n throw new SymmError(\n \"validation\",\n \"INVALID_TRADE_PARAMETERS\",\n \"Invalid trade parameters: markPrice or initialMargin is zero/NaN.\",\n );\n }\n\n if (isLowcap && expectedFillPrice === undefined) {\n expectedFillPrice = await fetchOpenEstimatePrice(config, {\n chainId: parameters.chainId,\n solverId: parameters.solverId,\n symbolId: parameters.market.id,\n positionType: parameters.positionType,\n quantity: tradeCalc.quantity,\n markPrice,\n });\n }\n\n const { platformOpenFee, platformCloseFee } = computePlatformFeeLegs(\n feeRates,\n tradeCalc.notional,\n tradeCalc.notional,\n );\n\n if (!isLowcap) {\n return {\n kind: \"rasa\",\n platformOpenFee,\n platformCloseFee,\n notional: tradeCalc.notional,\n totalFee: toDecimal(platformOpenFee).plus(platformCloseFee).toString(),\n };\n }\n\n const { openSolverFee, closeSolverFee } = calculateSolverFees({\n notional: tradeCalc.notional,\n hedgerFeeOpen: market.hedgerFeeOpen,\n hedgerFeeClose: market.hedgerFeeClose,\n hedgerFeeCloseEarlyRate: market.hedgerFeeCloseEarlyRate,\n hedgerFeeCloseEarlyThreshold: market.hedgerFeeCloseEarlyThreshold,\n hedgerFeeCloseStandardThreshold: market.hedgerFeeCloseStandardThreshold,\n });\n const expectedSettlementLoss = calculateExpectedSettlementLoss({\n positionType: parameters.positionType,\n markPrice,\n expectedFillPrice,\n quantity: tradeCalc.quantity,\n });\n\n return {\n kind: \"enigma\",\n platformOpenFee,\n platformCloseFee,\n notional: tradeCalc.notional,\n openSolverFee,\n closeSolverFee,\n expectedSettlementLoss,\n totalFee: toDecimal(platformOpenFee)\n .plus(platformCloseFee)\n .plus(openSolverFee)\n .plus(closeSolverFee)\n .plus(expectedSettlementLoss)\n .toString(),\n };\n}\n"],"mappings":";;;;;;;;AAiJA,eAAsB,EACpB,GACA,GACuC;CACvC,AAAI,EAAW,aAAa,KAAA,KAAW,EAAoB,EAAW,QAAQ;CAG9E,IAAM,IAAW,EAAO,UAAU;EAAE,SAAS,EAAW;EAAS,UAAU,EAAW;CAAS,CAAC,EAAE,OAAO;CACzG,IAAI,EAAW,aAAa,KAAA,KAAa,CAAC,GACxC,MAAM,IAAI,EACR,cACA,qBACA,iGACF;CAGF,IAAM,IAAS,MAAM,EAAc,GAAQ;EACzC,SAAS,EAAW;EACpB,UAAU,EAAW;EACrB,UAAU,EAAW,OAAO;EAC5B,YAAY,EAAW,OAAO;EAC9B,gBAAgB,EAAW,OAAO;EAClC,mBAAmB,EAAW,OAAO;EACrC,eAAe,EAAW,OAAO;EACjC,gBAAgB,EAAW,OAAO;EAClC,yBAAyB,EAAW,OAAO;EAC3C,8BAA8B,EAAW,OAAO;EAChD,iCAAiC,EAAW,OAAO;EACnD,mBAAmB;CACrB,CAAC,GACK,CAAC,GAAW,KAAY,MAAM,QAAQ,IAAI,CAC9C,EAAiB,GAAQ;EACvB,SAAS,EAAW;EACpB,UAAU,EAAW;EACrB,YAAY,EAAO;EACnB,WAAW,EAAW;CACxB,CAAC,GACD,EAAgB,GAAQ;EACtB,SAAS,EAAW;EACpB,mBAAmB,EAAW;EAC9B,UAAU,EAAW,OAAO;EAC5B,UAAU,EAAW;CACvB,CAAC,CACH,CAAC,GAEK,IAAmB;EACvB;EACA,cAAc,EAAW;EACzB,WAAW,EAAW;EACtB,YAAY;EACZ,UAAU,EAAW;EACrB,gBAAgB,EAAO;EACvB,mBAAmB,EAAO;CAC5B,GAEI,IAAW,EAAW,UACtB,IAAoB,IAAW,EAAW,qBAAqB,KAAA;CACnE,IAAI,MAAa,KAAA,GAAW;EAC1B,IAAM,IAAQ,EAAqB;GAAE,GAAG;GAAkB,UAAU;EAAE,CAAC;EACvE,IAAI,CAAC,GACH,MAAM,IAAI,EACR,cACA,4BACA,mEACF;EAYF,AAVI,KAAY,MAAsB,KAAA,MACpC,IAAoB,MAAM,EAAuB,GAAQ;GACvD,SAAS,EAAW;GACpB,UAAU,EAAW;GACrB,UAAU,EAAW,OAAO;GAC5B,cAAc,EAAW;GACzB,UAAU,EAAM;GAChB;EACF,CAAC,IAEH,IAAW,EAAmB;GAAE;GAAW;GAAmB,cAAc,EAAW;EAAa,CAAC;CACvG;CAEA,IAAM,IAAY,EAAqB;EAAE,GAAG;EAAkB;CAAS,CAAC;CACxE,IAAI,CAAC,GACH,MAAM,IAAI,EACR,cACA,4BACA,mEACF;CAGF,AAAI,KAAY,MAAsB,KAAA,MACpC,IAAoB,MAAM,EAAuB,GAAQ;EACvD,SAAS,EAAW;EACpB,UAAU,EAAW;EACrB,UAAU,EAAW,OAAO;EAC5B,cAAc,EAAW;EACzB,UAAU,EAAU;EACpB;CACF,CAAC;CAGH,IAAM,EAAE,oBAAiB,wBAAqB,EAC5C,GACA,EAAU,UACV,EAAU,QACZ;CAEA,IAAI,CAAC,GACH,OAAO;EACL,MAAM;EACN;EACA;EACA,UAAU,EAAU;EACpB,UAAU,EAAU,CAAe,EAAE,KAAK,CAAgB,EAAE,SAAS;CACvE;CAGF,IAAM,EAAE,kBAAe,sBAAmB,EAAoB;EAC5D,UAAU,EAAU;EACpB,eAAe,EAAO;EACtB,gBAAgB,EAAO;EACvB,yBAAyB,EAAO;EAChC,8BAA8B,EAAO;EACrC,iCAAiC,EAAO;CAC1C,CAAC,GACK,IAAyB,EAAgC;EAC7D,cAAc,EAAW;EACzB;EACA;EACA,UAAU,EAAU;CACtB,CAAC;CAED,OAAO;EACL,MAAM;EACN;EACA;EACA,UAAU,EAAU;EACpB;EACA;EACA;EACA,UAAU,EAAU,CAAe,EAChC,KAAK,CAAgB,EACrB,KAAK,CAAa,EAClB,KAAK,CAAc,EACnB,KAAK,CAAsB,EAC3B,SAAS;CACd;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/solvers/instant-open/get-instant-open-fees/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Config } from '../../../core/config/index.js';
|
|
2
|
+
import { Compute, ConfigKeyParameter } from '../../../shared/types/properties.js';
|
|
3
|
+
import { QueryParameter, SymmioQueryOptions } from '../../../shared/types/query.js';
|
|
4
|
+
import { GetInstantOpenFeesParameters, GetInstantOpenFeesReturnType } from './get-instant-open-fees.js';
|
|
5
|
+
/** Data resolved by the {@link getInstantOpenFeesQueryOptions} query. */
|
|
6
|
+
export type GetInstantOpenFeesData = GetInstantOpenFeesReturnType;
|
|
7
|
+
/** Build the TanStack Query key for {@link getInstantOpenFeesQueryOptions}. */
|
|
8
|
+
export declare function getInstantOpenFeesQueryKey(options: Compute<GetInstantOpenFeesParameters & ConfigKeyParameter>): readonly ["getInstantOpenFees", Record<string, unknown>];
|
|
9
|
+
/** Query-key type produced by {@link getInstantOpenFeesQueryKey}. */
|
|
10
|
+
export type GetInstantOpenFeesQueryKey = ReturnType<typeof getInstantOpenFeesQueryKey>;
|
|
11
|
+
/** Options accepted by {@link getInstantOpenFeesQueryOptions}. */
|
|
12
|
+
export type GetInstantOpenFeesOptions = Compute<GetInstantOpenFeesParameters & QueryParameter<GetInstantOpenFeesData, Error, GetInstantOpenFeesData, GetInstantOpenFeesQueryKey>>;
|
|
13
|
+
/** TanStack Query options returned by {@link getInstantOpenFeesQueryOptions}. */
|
|
14
|
+
export type GetInstantOpenFeesQueryOptions = SymmioQueryOptions<GetInstantOpenFeesData, Error, GetInstantOpenFeesData, GetInstantOpenFeesQueryKey>;
|
|
15
|
+
/**
|
|
16
|
+
* Build TanStack Query options for {@link getInstantOpenFees}. Disabled until
|
|
17
|
+
* `initialMargin` is non-empty, so the fee preview does not fire on an empty
|
|
18
|
+
* amount input.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* useQuery(
|
|
23
|
+
* getInstantOpenFeesQueryOptions(config, {
|
|
24
|
+
* subAccountAddress,
|
|
25
|
+
* market: { id: 1 },
|
|
26
|
+
* positionType,
|
|
27
|
+
* initialMargin,
|
|
28
|
+
* leverage: 5,
|
|
29
|
+
* }),
|
|
30
|
+
* );
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function getInstantOpenFeesQueryOptions(config: Config, options: GetInstantOpenFeesOptions): GetInstantOpenFeesQueryOptions;
|
|
34
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/solvers/instant-open/get-instant-open-fees/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtF,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AAEjC,yEAAyE;AACzE,MAAM,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;AAElE,+EAA+E;AAC/E,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,4BAA4B,GAAG,kBAAkB,CAAC,4DAE7G;AAED,qEAAqE;AACrE,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEvF,kEAAkE;AAClE,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,4BAA4B,GAC1B,cAAc,CAAC,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,CAAC,CACpG,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,8BAA8B,GAAG,kBAAkB,CAC7D,sBAAsB,EACtB,KAAK,EACL,sBAAsB,EACtB,0BAA0B,CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,yBAAyB,GACjC,8BAA8B,CAuBhC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { filterQueryOptions as e } from "../../../shared/utils/query.js";
|
|
2
|
+
import { getInstantOpenFees as t } from "./get-instant-open-fees.js";
|
|
3
|
+
//#region src/solvers/instant-open/get-instant-open-fees/query.ts
|
|
4
|
+
function n(t) {
|
|
5
|
+
return ["getInstantOpenFees", e(t)];
|
|
6
|
+
}
|
|
7
|
+
function r(e, r) {
|
|
8
|
+
return {
|
|
9
|
+
...r.query,
|
|
10
|
+
queryKey: n({
|
|
11
|
+
...r,
|
|
12
|
+
configKey: e.getChainConfigKey(r.chainId)
|
|
13
|
+
}),
|
|
14
|
+
enabled: (r.query?.enabled ?? !0) && r.initialMargin.length > 0,
|
|
15
|
+
queryFn: () => t(e, {
|
|
16
|
+
chainId: r.chainId,
|
|
17
|
+
solverId: r.solverId,
|
|
18
|
+
subAccountAddress: r.subAccountAddress,
|
|
19
|
+
market: r.market,
|
|
20
|
+
positionType: r.positionType,
|
|
21
|
+
initialMargin: r.initialMargin,
|
|
22
|
+
leverage: r.leverage,
|
|
23
|
+
slippage: r.slippage,
|
|
24
|
+
markPrice: r.markPrice,
|
|
25
|
+
feeRates: r.feeRates,
|
|
26
|
+
estimatedOpenPrice: r.estimatedOpenPrice
|
|
27
|
+
})
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { n as getInstantOpenFeesQueryKey, r as getInstantOpenFeesQueryOptions };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","names":[],"sources":["../../../../src/solvers/instant-open/get-instant-open-fees/query.ts"],"sourcesContent":["import type { Config } from \"../../../core/config\";\nimport type { Compute, ConfigKeyParameter } from \"../../../shared/types/properties\";\nimport type { QueryParameter, SymmioQueryOptions } from \"../../../shared/types/query\";\nimport { filterQueryOptions } from \"../../../shared/utils/query\";\nimport {\n getInstantOpenFees,\n type GetInstantOpenFeesParameters,\n type GetInstantOpenFeesReturnType,\n} from \"./get-instant-open-fees\";\n\n/** Data resolved by the {@link getInstantOpenFeesQueryOptions} query. */\nexport type GetInstantOpenFeesData = GetInstantOpenFeesReturnType;\n\n/** Build the TanStack Query key for {@link getInstantOpenFeesQueryOptions}. */\nexport function getInstantOpenFeesQueryKey(options: Compute<GetInstantOpenFeesParameters & ConfigKeyParameter>) {\n return [\"getInstantOpenFees\", filterQueryOptions(options)] as const;\n}\n\n/** Query-key type produced by {@link getInstantOpenFeesQueryKey}. */\nexport type GetInstantOpenFeesQueryKey = ReturnType<typeof getInstantOpenFeesQueryKey>;\n\n/** Options accepted by {@link getInstantOpenFeesQueryOptions}. */\nexport type GetInstantOpenFeesOptions = Compute<\n GetInstantOpenFeesParameters &\n QueryParameter<GetInstantOpenFeesData, Error, GetInstantOpenFeesData, GetInstantOpenFeesQueryKey>\n>;\n\n/** TanStack Query options returned by {@link getInstantOpenFeesQueryOptions}. */\nexport type GetInstantOpenFeesQueryOptions = SymmioQueryOptions<\n GetInstantOpenFeesData,\n Error,\n GetInstantOpenFeesData,\n GetInstantOpenFeesQueryKey\n>;\n\n/**\n * Build TanStack Query options for {@link getInstantOpenFees}. Disabled until\n * `initialMargin` is non-empty, so the fee preview does not fire on an empty\n * amount input.\n *\n * @example\n * ```ts\n * useQuery(\n * getInstantOpenFeesQueryOptions(config, {\n * subAccountAddress,\n * market: { id: 1 },\n * positionType,\n * initialMargin,\n * leverage: 5,\n * }),\n * );\n * ```\n */\nexport function getInstantOpenFeesQueryOptions(\n config: Config,\n options: GetInstantOpenFeesOptions,\n): GetInstantOpenFeesQueryOptions {\n return {\n ...options.query,\n queryKey: getInstantOpenFeesQueryKey({\n ...options,\n configKey: config.getChainConfigKey(options.chainId),\n }),\n enabled: (options.query?.enabled ?? true) && options.initialMargin.length > 0,\n queryFn: () =>\n getInstantOpenFees(config, {\n chainId: options.chainId,\n solverId: options.solverId,\n subAccountAddress: options.subAccountAddress,\n market: options.market,\n positionType: options.positionType,\n initialMargin: options.initialMargin,\n leverage: options.leverage,\n slippage: options.slippage,\n markPrice: options.markPrice,\n feeRates: options.feeRates,\n estimatedOpenPrice: options.estimatedOpenPrice,\n }),\n };\n}\n"],"mappings":";;;AAcA,SAAgB,EAA2B,GAAqE;CAC9G,OAAO,CAAC,sBAAsB,EAAmB,CAAO,CAAC;AAC3D;AAqCA,SAAgB,EACd,GACA,GACgC;CAChC,OAAO;EACL,GAAG,EAAQ;EACX,UAAU,EAA2B;GACnC,GAAG;GACH,WAAW,EAAO,kBAAkB,EAAQ,OAAO;EACrD,CAAC;EACD,UAAU,EAAQ,OAAO,WAAW,OAAS,EAAQ,cAAc,SAAS;EAC5E,eACE,EAAmB,GAAQ;GACzB,SAAS,EAAQ;GACjB,UAAU,EAAQ;GAClB,mBAAmB,EAAQ;GAC3B,QAAQ,EAAQ;GAChB,cAAc,EAAQ;GACtB,eAAe,EAAQ;GACvB,UAAU,EAAQ;GAClB,UAAU,EAAQ;GAClB,WAAW,EAAQ;GACnB,UAAU,EAAQ;GAClB,oBAAoB,EAAQ;EAC9B,CAAC;CACL;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/solvers/instant-open/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/solvers/instant-open/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enigma-instant-open.d.ts","sourceRoot":"","sources":["../../../../../src/solvers/instant-open/instant-open/adapters/enigma-instant-open.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enigma-instant-open.d.ts","sourceRoot":"","sources":["../../../../../src/solvers/instant-open/instant-open/adapters/enigma-instant-open.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,yBAAyB,EAClC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAuFlC"}
|
|
@@ -1,73 +1,76 @@
|
|
|
1
1
|
import { SymmError as e } from "../../../../shared/errors/symm-error.js";
|
|
2
|
-
import { encodeAddMarginToNextVA as t,
|
|
3
|
-
import { sendInstantOpen as
|
|
4
|
-
import { buildSignedOperation as
|
|
5
|
-
import { isolationTypeForSide as
|
|
2
|
+
import { encodeAddMarginToNextVA as t, encodeSendQuote as n, encodeSendQuoteWithAffiliateAndData as r, getFakeSendQuoteMuonSignature as i, sendQuoteUpnlSigFlexRange as a } from "../../shared/calldata.js";
|
|
3
|
+
import { sendInstantOpen as o } from "../../shared/hedger-api.js";
|
|
4
|
+
import { buildSignedOperation as s, signAndFormatInstantOperation as c } from "../../shared/operations.js";
|
|
5
|
+
import { isolationTypeForSide as l } from "../../shared/types.js";
|
|
6
6
|
//#region src/solvers/instant-open/instant-open/adapters/enigma-instant-open.ts
|
|
7
|
-
async function
|
|
8
|
-
if (!
|
|
9
|
-
let { config:
|
|
10
|
-
subAccount:
|
|
11
|
-
isolationType:
|
|
12
|
-
symbolId:
|
|
13
|
-
amount:
|
|
14
|
-
}),
|
|
15
|
-
partyBsWhiteList: [
|
|
16
|
-
symbolId:
|
|
17
|
-
positionType:
|
|
7
|
+
async function u(u, d) {
|
|
8
|
+
if (!d.margin) throw new e("validation", "INSTANT_OPEN_MARGIN_REQUIRED", "instantOpen: the Enigma (lowcap) flow funds a new virtual account, so `margin.amount` is required.");
|
|
9
|
+
let { config: f, solver: p, chainConfig: m, walletClient: h, signerAddress: g, deadline: _, symbolId: v, metadata: y } = u, { accountLayerAddress: b, symmioAddress: x, affiliatesAddress: S } = m.addresses, C = t({
|
|
10
|
+
subAccount: d.subAccountAddress,
|
|
11
|
+
isolationType: l(d.positionType),
|
|
12
|
+
symbolId: v,
|
|
13
|
+
amount: d.margin.amount
|
|
14
|
+
}), w = {
|
|
15
|
+
partyBsWhiteList: [p.address],
|
|
16
|
+
symbolId: v,
|
|
17
|
+
positionType: d.positionType,
|
|
18
18
|
orderType: 1,
|
|
19
|
-
price:
|
|
20
|
-
quantity:
|
|
21
|
-
cva:
|
|
22
|
-
lf:
|
|
23
|
-
partyAmm:
|
|
24
|
-
partyBmm:
|
|
25
|
-
deadline:
|
|
26
|
-
affiliate:
|
|
27
|
-
data:
|
|
28
|
-
upnlSig:
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
deadline: g,
|
|
35
|
-
salt: u.addMarginSalt
|
|
36
|
-
}), T = o({
|
|
37
|
-
signer: h,
|
|
19
|
+
price: d.order.price,
|
|
20
|
+
quantity: d.order.quantity,
|
|
21
|
+
cva: d.lockedParam.cva,
|
|
22
|
+
lf: d.lockedParam.lf,
|
|
23
|
+
partyAmm: d.lockedParam.partyAmm,
|
|
24
|
+
partyBmm: d.lockedParam.partyBmm,
|
|
25
|
+
deadline: _,
|
|
26
|
+
affiliate: S,
|
|
27
|
+
data: y,
|
|
28
|
+
upnlSig: i(d.order.price)
|
|
29
|
+
}, T = m.contractsVersion === "0.8.5" ? r(w) : n({
|
|
30
|
+
...w,
|
|
31
|
+
solverFeeCaps: d.solverFeeCaps
|
|
32
|
+
}), E = s({
|
|
33
|
+
signer: g,
|
|
38
34
|
target: b,
|
|
39
35
|
callData: C,
|
|
40
|
-
signerAccount:
|
|
41
|
-
deadline:
|
|
42
|
-
salt:
|
|
36
|
+
signerAccount: d.subAccountAddress,
|
|
37
|
+
deadline: _,
|
|
38
|
+
salt: d.addMarginSalt
|
|
39
|
+
}), D = s({
|
|
40
|
+
signer: g,
|
|
41
|
+
target: x,
|
|
42
|
+
callData: T,
|
|
43
|
+
signerAccount: d.subAccountAddress,
|
|
44
|
+
deadline: _,
|
|
45
|
+
salt: d.sendQuoteSalt,
|
|
43
46
|
flexFields: [{
|
|
44
|
-
...
|
|
45
|
-
authorizedFlexFiller:
|
|
47
|
+
...a(T),
|
|
48
|
+
authorizedFlexFiller: p.address
|
|
46
49
|
}]
|
|
47
|
-
}), [
|
|
48
|
-
operation:
|
|
49
|
-
chainId:
|
|
50
|
-
walletClient:
|
|
51
|
-
}),
|
|
52
|
-
operation:
|
|
53
|
-
chainId:
|
|
54
|
-
walletClient:
|
|
55
|
-
})]),
|
|
56
|
-
chainId:
|
|
57
|
-
solverId:
|
|
50
|
+
}), [O, k] = await Promise.all([c(f, {
|
|
51
|
+
operation: E,
|
|
52
|
+
chainId: u.chainId,
|
|
53
|
+
walletClient: h
|
|
54
|
+
}), c(f, {
|
|
55
|
+
operation: D,
|
|
56
|
+
chainId: u.chainId,
|
|
57
|
+
walletClient: h
|
|
58
|
+
})]), A = await o(f, {
|
|
59
|
+
chainId: u.chainId,
|
|
60
|
+
solverId: p.id,
|
|
58
61
|
request: {
|
|
59
|
-
addMargin:
|
|
60
|
-
sendQuote:
|
|
62
|
+
addMargin: O,
|
|
63
|
+
sendQuote: k
|
|
61
64
|
}
|
|
62
65
|
});
|
|
63
66
|
return {
|
|
64
67
|
kind: "enigma",
|
|
65
68
|
success: !0,
|
|
66
|
-
tempQuoteId:
|
|
67
|
-
partyBmm:
|
|
69
|
+
tempQuoteId: A.temp_quote_id !== void 0 && A.temp_quote_id !== null ? String(A.temp_quote_id) : void 0,
|
|
70
|
+
partyBmm: A.partyBmm
|
|
68
71
|
};
|
|
69
72
|
}
|
|
70
73
|
//#endregion
|
|
71
|
-
export {
|
|
74
|
+
export { u as submitEnigmaInstantOpen };
|
|
72
75
|
|
|
73
76
|
//# sourceMappingURL=enigma-instant-open.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enigma-instant-open.js","names":[],"sources":["../../../../../src/solvers/instant-open/instant-open/adapters/enigma-instant-open.ts"],"sourcesContent":["import { SymmError } from \"../../../../shared/errors/symm-error\";\nimport {\n encodeAddMarginToNextVA,\n encodeSendQuoteWithAffiliateAndData,\n getFakeSendQuoteMuonSignature,\n sendQuoteUpnlSigFlexRange,\n} from \"../../shared/calldata\";\nimport { sendInstantOpen } from \"../../shared/hedger-api\";\nimport { buildSignedOperation, signAndFormatInstantOperation } from \"../../shared/operations\";\nimport { ORDER_TYPE_MARKET, isolationTypeForSide } from \"../../shared/types\";\nimport type { EnigmaInstantOpenResult, InstantOpenParameters } from \"../types\";\nimport type { InstantOpenAdapterContext } from \"./context\";\n\n/**\n * Submit an instant open to an **Enigma** (lowcap) hedger.\n *\n * Signs two operations — `addMarginToNextVA` on the AccountLayer and\n * `sendQuote` on the diamond — and posts both to `/instant_trade/instant_open`.\n *\n * The quote carries a **placeholder** Muon signature: lowcap bypasses Muon\n * verification, but the contract still reads `upnlSig.price`, and the encoded\n * signature region is delegated to the solver via a `FlexField` so it can write a\n * live attestation at execution time. Only the `sendQuote` operation carries the\n * delegation; `addMargin` stays fully fixed.\n *\n * @throws {SymmError} `INSTANT_OPEN_MARGIN_REQUIRED` when `margin` is absent —\n * reachable when the caller omitted `solverId` and the chain's default solver\n * turned out to be Enigma.\n * @throws {SymmApiError} when the hedger request fails.\n * @internal\n */\nexport async function submitEnigmaInstantOpen(\n context: InstantOpenAdapterContext,\n parameters: InstantOpenParameters,\n): Promise<EnigmaInstantOpenResult> {\n if (!parameters.margin) {\n throw new SymmError(\n \"validation\",\n \"INSTANT_OPEN_MARGIN_REQUIRED\",\n \"instantOpen: the Enigma (lowcap) flow funds a new virtual account, so `margin.amount` is required.\",\n );\n }\n\n const { config, solver, chainConfig, walletClient, signerAddress, deadline, symbolId, metadata } = context;\n const { accountLayerAddress, symmioAddress, affiliatesAddress } = chainConfig.addresses;\n\n const addMarginCallData = encodeAddMarginToNextVA({\n subAccount: parameters.subAccountAddress,\n isolationType: isolationTypeForSide(parameters.positionType),\n symbolId,\n amount: parameters.margin.amount,\n });\n\n const
|
|
1
|
+
{"version":3,"file":"enigma-instant-open.js","names":[],"sources":["../../../../../src/solvers/instant-open/instant-open/adapters/enigma-instant-open.ts"],"sourcesContent":["import { SymmError } from \"../../../../shared/errors/symm-error\";\nimport {\n encodeAddMarginToNextVA,\n encodeSendQuote,\n encodeSendQuoteWithAffiliateAndData,\n getFakeSendQuoteMuonSignature,\n sendQuoteUpnlSigFlexRange,\n} from \"../../shared/calldata\";\nimport { sendInstantOpen } from \"../../shared/hedger-api\";\nimport { buildSignedOperation, signAndFormatInstantOperation } from \"../../shared/operations\";\nimport { ORDER_TYPE_MARKET, isolationTypeForSide } from \"../../shared/types\";\nimport type { EnigmaInstantOpenResult, InstantOpenParameters } from \"../types\";\nimport type { InstantOpenAdapterContext } from \"./context\";\n\n/**\n * Submit an instant open to an **Enigma** (lowcap) hedger.\n *\n * Signs two operations — `addMarginToNextVA` on the AccountLayer and\n * `sendQuote` on the diamond — and posts both to `/instant_trade/instant_open`.\n *\n * The quote carries a **placeholder** Muon signature: lowcap bypasses Muon\n * verification, but the contract still reads `upnlSig.price`, and the encoded\n * signature region is delegated to the solver via a `FlexField` so it can write a\n * live attestation at execution time. Only the `sendQuote` operation carries the\n * delegation; `addMargin` stays fully fixed.\n *\n * @throws {SymmError} `INSTANT_OPEN_MARGIN_REQUIRED` when `margin` is absent —\n * reachable when the caller omitted `solverId` and the chain's default solver\n * turned out to be Enigma.\n * @throws {SymmApiError} when the hedger request fails.\n * @internal\n */\nexport async function submitEnigmaInstantOpen(\n context: InstantOpenAdapterContext,\n parameters: InstantOpenParameters,\n): Promise<EnigmaInstantOpenResult> {\n if (!parameters.margin) {\n throw new SymmError(\n \"validation\",\n \"INSTANT_OPEN_MARGIN_REQUIRED\",\n \"instantOpen: the Enigma (lowcap) flow funds a new virtual account, so `margin.amount` is required.\",\n );\n }\n\n const { config, solver, chainConfig, walletClient, signerAddress, deadline, symbolId, metadata } = context;\n const { accountLayerAddress, symmioAddress, affiliatesAddress } = chainConfig.addresses;\n\n const addMarginCallData = encodeAddMarginToNextVA({\n subAccount: parameters.subAccountAddress,\n isolationType: isolationTypeForSide(parameters.positionType),\n symbolId,\n amount: parameters.margin.amount,\n });\n\n const quoteArgs = {\n partyBsWhiteList: [solver.address],\n symbolId,\n positionType: parameters.positionType,\n orderType: ORDER_TYPE_MARKET,\n price: parameters.order.price,\n quantity: parameters.order.quantity,\n cva: parameters.lockedParam.cva,\n lf: parameters.lockedParam.lf,\n partyAmm: parameters.lockedParam.partyAmm,\n partyBmm: parameters.lockedParam.partyBmm,\n deadline,\n affiliate: affiliatesAddress,\n data: metadata,\n upnlSig: getFakeSendQuoteMuonSignature(parameters.order.price),\n };\n\n /**\n * Which quote-send call to sign is a chain-generation fact: a v0.8.5 diamond\n * has no capped `sendQuote` selector (the calldata would revert), and a\n * v0.8.6 solver rejects the legacy call's zero fee caps.\n */\n const sendQuoteCallData =\n chainConfig.contractsVersion === \"0.8.5\"\n ? encodeSendQuoteWithAffiliateAndData(quoteArgs)\n : encodeSendQuote({ ...quoteArgs, solverFeeCaps: parameters.solverFeeCaps });\n\n const addMarginOp = buildSignedOperation({\n signer: signerAddress,\n target: accountLayerAddress,\n callData: addMarginCallData,\n signerAccount: parameters.subAccountAddress,\n deadline,\n salt: parameters.addMarginSalt,\n });\n\n const sendQuoteOp = buildSignedOperation({\n signer: signerAddress,\n target: symmioAddress,\n callData: sendQuoteCallData,\n signerAccount: parameters.subAccountAddress,\n deadline,\n salt: parameters.sendQuoteSalt,\n flexFields: [{ ...sendQuoteUpnlSigFlexRange(sendQuoteCallData), authorizedFlexFiller: solver.address }],\n });\n\n const [addMargin, sendQuote] = await Promise.all([\n signAndFormatInstantOperation(config, { operation: addMarginOp, chainId: context.chainId, walletClient }),\n signAndFormatInstantOperation(config, { operation: sendQuoteOp, chainId: context.chainId, walletClient }),\n ]);\n\n const response = await sendInstantOpen(config, {\n chainId: context.chainId,\n // The resolved solver's own id — never a hardcoded kind, so a differently-id'd\n // solver of the same kind can never be re-resolved onto the wrong endpoint.\n solverId: solver.id,\n request: { addMargin, sendQuote },\n });\n\n return {\n kind: \"enigma\",\n success: true,\n tempQuoteId:\n response.temp_quote_id !== undefined && response.temp_quote_id !== null\n ? String(response.temp_quote_id)\n : undefined,\n partyBmm: response.partyBmm,\n };\n}\n"],"mappings":";;;;;;AAgCA,eAAsB,EACpB,GACA,GACkC;CAClC,IAAI,CAAC,EAAW,QACd,MAAM,IAAI,EACR,cACA,gCACA,oGACF;CAGF,IAAM,EAAE,WAAQ,WAAQ,gBAAa,iBAAc,kBAAe,aAAU,aAAU,gBAAa,GAC7F,EAAE,wBAAqB,kBAAe,yBAAsB,EAAY,WAExE,IAAoB,EAAwB;EAChD,YAAY,EAAW;EACvB,eAAe,EAAqB,EAAW,YAAY;EAC3D;EACA,QAAQ,EAAW,OAAO;CAC5B,CAAC,GAEK,IAAY;EAChB,kBAAkB,CAAC,EAAO,OAAO;EACjC;EACA,cAAc,EAAW;EACzB,WAAA;EACA,OAAO,EAAW,MAAM;EACxB,UAAU,EAAW,MAAM;EAC3B,KAAK,EAAW,YAAY;EAC5B,IAAI,EAAW,YAAY;EAC3B,UAAU,EAAW,YAAY;EACjC,UAAU,EAAW,YAAY;EACjC;EACA,WAAW;EACX,MAAM;EACN,SAAS,EAA8B,EAAW,MAAM,KAAK;CAC/D,GAOM,IACJ,EAAY,qBAAqB,UAC7B,EAAoC,CAAS,IAC7C,EAAgB;EAAE,GAAG;EAAW,eAAe,EAAW;CAAc,CAAC,GAEzE,IAAc,EAAqB;EACvC,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,eAAe,EAAW;EAC1B;EACA,MAAM,EAAW;CACnB,CAAC,GAEK,IAAc,EAAqB;EACvC,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,eAAe,EAAW;EAC1B;EACA,MAAM,EAAW;EACjB,YAAY,CAAC;GAAE,GAAG,EAA0B,CAAiB;GAAG,sBAAsB,EAAO;EAAQ,CAAC;CACxG,CAAC,GAEK,CAAC,GAAW,KAAa,MAAM,QAAQ,IAAI,CAC/C,EAA8B,GAAQ;EAAE,WAAW;EAAa,SAAS,EAAQ;EAAS;CAAa,CAAC,GACxG,EAA8B,GAAQ;EAAE,WAAW;EAAa,SAAS,EAAQ;EAAS;CAAa,CAAC,CAC1G,CAAC,GAEK,IAAW,MAAM,EAAgB,GAAQ;EAC7C,SAAS,EAAQ;EAGjB,UAAU,EAAO;EACjB,SAAS;GAAE;GAAW;EAAU;CAClC,CAAC;CAED,OAAO;EACL,MAAM;EACN,SAAS;EACT,aACE,EAAS,kBAAkB,KAAA,KAAa,EAAS,kBAAkB,OAC/D,OAAO,EAAS,aAAa,IAC7B,KAAA;EACN,UAAU,EAAS;CACrB;AACF"}
|
|
@@ -3,13 +3,13 @@ import { SymmioSolverKind } from '../../../core/chains/types.js';
|
|
|
3
3
|
import { ChainIdParameter, Compute, FromParameter } from '../../../shared/types/properties.js';
|
|
4
4
|
import { PositionType } from '../../../symmio-contracts/symmio/types.js';
|
|
5
5
|
import { RasaInstantOpen } from '../get-instant-opens/types.js';
|
|
6
|
-
import { InstantOpenLockedParams, InstantOpenMargin, InstantOpenOrder, SolverOrderType } from '../shared/types.js';
|
|
6
|
+
import { InstantOpenLockedParams, InstantOpenMargin, InstantOpenOrder, SolverFeeCaps, SolverOrderType } from '../shared/types.js';
|
|
7
7
|
/**
|
|
8
8
|
* Parameters for {@link instantOpen}, generic over the target solver kind `K`.
|
|
9
9
|
*
|
|
10
|
-
* Every domain value is the **final** 18-decimal-wei `bigint` ready to feed
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Every domain value is the **final** 18-decimal-wei `bigint` ready to feed the
|
|
11
|
+
* quote-send call. The caller (or the `prepareInstantOpenParams` wizard) owns
|
|
12
|
+
* trade math, platform-fee calc, and margin calc.
|
|
13
13
|
*
|
|
14
14
|
* Passing a literal `solverId` binds `K`, which narrows the **return** type to
|
|
15
15
|
* that solver's result variant.
|
|
@@ -42,6 +42,16 @@ export type InstantOpenParameters<K extends SymmioSolverKind = SymmioSolverKind>
|
|
|
42
42
|
* cross-margin and has no `addMargin` step.
|
|
43
43
|
*/
|
|
44
44
|
margin?: InstantOpenMargin;
|
|
45
|
+
/**
|
|
46
|
+
* Solver-fee rate caps authorized on the quote — 18-decimal ratios of
|
|
47
|
+
* notional (perps-core v0.8.6 solver fees). Applied by the Enigma flow on
|
|
48
|
+
* a `contractsVersion: "0.8.6"` chain, where it signs `sendQuote`;
|
|
49
|
+
* defaults to zero caps there, which a fee-charging solver may reject —
|
|
50
|
+
* `prepareInstantOpenParams` fills the market's `minOpenSolverFeeCap` /
|
|
51
|
+
* `minCloseSolverFeeCap`. Ignored on `"0.8.5"` chains and by the Rasa
|
|
52
|
+
* flow, which sign the legacy `sendQuoteWithAffiliateAndData`.
|
|
53
|
+
*/
|
|
54
|
+
solverFeeCaps?: SolverFeeCaps;
|
|
45
55
|
/** Override the metadata UUID. Defaults to `globalThis.crypto.randomUUID()`. */
|
|
46
56
|
uuid?: string;
|
|
47
57
|
/** Override the addMargin salt. Enigma-only. Defaults to a random 32-byte salt. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/solvers/instant-open/instant-open/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/solvers/instant-open/instant-open/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI,OAAO,CACxF,gBAAgB,GACd,aAAa,GAAG;IACd,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,wFAAwF;IACxF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,8EAA8E;IAC9E,KAAK,EAAE,gBAAgB,CAAC;IACxB,mGAAmG;IACnG,WAAW,EAAE,uBAAuB,CAAC;IACrC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CACJ,CAAC;AAEF,sEAAsE;AACtE,UAAU,qBAAqB;IAC7B,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,mEAAmE;AACnE,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,mDAAmD;IACnD,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,gEAAgE;AAChE,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,GAAG,EAAE,eAAe,CAAC;CACtB;AAED,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,uBAAuB,CAAC;IAChC,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/solvers/instant-open/prepare-instant-open-params/prepare-instant-open-params.d.ts
CHANGED
|
@@ -23,10 +23,24 @@ export type PrepareInstantOpenParameters = Compute<WriteSolverParameter & {
|
|
|
23
23
|
initialMargin: string;
|
|
24
24
|
/** Position leverage (integer ≥ 1). */
|
|
25
25
|
leverage: number;
|
|
26
|
-
/**
|
|
27
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Slippage tolerance percent (e.g. `5` for 5%). **Required on majors
|
|
28
|
+
* (non-lowcap) solvers.** On a lowcap solver it may be omitted to
|
|
29
|
+
* auto-derive: the SDK dry-runs the sized order and sets the price bound
|
|
30
|
+
* to the estimated fill price plus 4% headroom (falling back to a flat 4%
|
|
31
|
+
* off mark when the estimate is unavailable).
|
|
32
|
+
*/
|
|
33
|
+
slippage?: number;
|
|
28
34
|
/** Pre-fetched mark price as decimal string. When omitted, fetched via Enigma price service. */
|
|
29
35
|
markPrice?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Pre-fetched solver estimated open (fill) price as decimal string —
|
|
38
|
+
* **lowcap/Enigma only**; ignored on any other solver kind. When omitted
|
|
39
|
+
* on a lowcap solver, fetched via `GET /estimated-price`. Feeds the
|
|
40
|
+
* settlement-loss provision, the slippage gate, and (when `slippage` is
|
|
41
|
+
* omitted) the auto-slippage derivation.
|
|
42
|
+
*/
|
|
43
|
+
estimatedOpenPrice?: string;
|
|
30
44
|
/**
|
|
31
45
|
* Pre-fetched solver locked params (matches `getLockedParams` return —
|
|
32
46
|
* `ApiLockedParamsBySymbolIdResponse`). When supplied with all four
|
|
@@ -51,19 +65,40 @@ export type PrepareInstantOpenParameters = Compute<WriteSolverParameter & {
|
|
|
51
65
|
* Resolve every input the {@link InstantOpenParameters} primitive needs from a
|
|
52
66
|
* minimal parameter set.
|
|
53
67
|
*
|
|
68
|
+
* The estimate-driven steps (auto slippage, dry-run gate, solver fees,
|
|
69
|
+
* settlement provision) are **lowcap-only** — a majors (non-lowcap) prepare is
|
|
70
|
+
* unchanged: `slippage` required, no estimate fetch, margin = locks +
|
|
71
|
+
* platform fee.
|
|
72
|
+
*
|
|
54
73
|
* Steps:
|
|
55
|
-
* 1.
|
|
74
|
+
* 1. Validate the user's `slippage` ({@link assertValidSlippage}). On a
|
|
75
|
+
* lowcap solver it may be omitted and is auto-derived: dry-run the
|
|
76
|
+
* mark-sized order and set the price bound to the estimated fill plus 4%
|
|
77
|
+
* headroom ({@link deriveAutoSlippage}). On majors an omitted slippage
|
|
78
|
+
* throws `SLIPPAGE_REQUIRED`.
|
|
79
|
+
* 2. Resolve market metadata, mark price, locked params, and fee rates —
|
|
56
80
|
* concurrent fetches with caller-supplied fields short-circuiting.
|
|
57
|
-
*
|
|
81
|
+
* 3. Run {@link calculateTradeParams} to derive `requestedOpenPrice`,
|
|
58
82
|
* `quantity`, `cva`, `lf`, `partyAmm`, `partyBmm`, `notional`.
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
83
|
+
* 4. Dry-run the sized order and reject when the expected fill deviates from
|
|
84
|
+
* mark beyond the slippage tolerance
|
|
85
|
+
* ({@link assertOpenEstimateWithinSlippage}; skipped when the estimate is
|
|
86
|
+
* unavailable, reusing the caller-supplied `estimatedOpenPrice` or the
|
|
87
|
+
* auto-slippage estimate when one exists).
|
|
88
|
+
* 5. Run {@link computePlatformFee}, {@link calculateSolverFees}, and
|
|
89
|
+
* {@link calculateExpectedSettlementLoss}, then {@link calculateMargin} to
|
|
90
|
+
* derive the `addMargin` amount — the solver charges its fees and the
|
|
91
|
+
* open-price settlement from the VA, so the transfer funds
|
|
92
|
+
* `locks + platformFee + openSolverFee + closeSolverFee +
|
|
93
|
+
* expectedSettlementLoss`.
|
|
94
|
+
* 6. Convert all final values to 18-decimal-wei `bigint`.
|
|
62
95
|
*
|
|
63
|
-
* @throws {SymmError} `
|
|
96
|
+
* @throws {SymmError} `INVALID_SLIPPAGE` / `SLIPPAGE_REQUIRED` /
|
|
97
|
+
* `SLIPPAGE_EXCEEDED` /
|
|
98
|
+
* `RESOLVE_MARKET_NOT_FOUND` /
|
|
64
99
|
* `RESOLVE_MARKET_METADATA_INCOMPLETE` /
|
|
65
|
-
* `RESOLVE_MARK_PRICE_NOT_FOUND` / `INVALID_TRADE_PARAMETERS`
|
|
66
|
-
*
|
|
100
|
+
* `RESOLVE_MARK_PRICE_NOT_FOUND` / `INVALID_TRADE_PARAMETERS` /
|
|
101
|
+
* `INVALID_SOLVER_FEE_CAP` for invalid inputs or an out-of-tolerance fill.
|
|
67
102
|
*/
|
|
68
103
|
export declare function prepareInstantOpenParams(config: Config, parameters: PrepareInstantOpenParameters): Promise<InstantOpenParameters>;
|
|
69
104
|
//# sourceMappingURL=prepare-instant-open-params.d.ts.map
|
package/dist/solvers/instant-open/prepare-instant-open-params/prepare-instant-open-params.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-instant-open-params.d.ts","sourceRoot":"","sources":["../../../../src/solvers/instant-open/prepare-instant-open-params/prepare-instant-open-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare-instant-open-params.d.ts","sourceRoot":"","sources":["../../../../src/solvers/instant-open/prepare-instant-open-params/prepare-instant-open-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAC5F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAC7F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAgBnE,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA+BhF;;;;;;GAMG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,oBAAoB,GAAG;IACrB,oCAAoC;IACpC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,kBAAkB;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,kDAAkD;IAClD,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,4BAA4B,GACvC,OAAO,CAAC,qBAAqB,CAAC,CAiOhC"}
|