@symmio/trading-core 3.0.0 → 3.1.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/core/chains/types.d.ts +197 -0
- package/dist/core/chains/types.d.ts.map +1 -1
- package/dist/core/chains/types.js.map +1 -1
- package/dist/core/config/merge-chain-config.d.ts.map +1 -1
- package/dist/core/config/merge-chain-config.js +49 -19
- package/dist/core/config/merge-chain-config.js.map +1 -1
- package/dist/gasless/abortable-sleep.d.ts +17 -0
- package/dist/gasless/abortable-sleep.d.ts.map +1 -0
- package/dist/gasless/abortable-sleep.js +21 -0
- package/dist/gasless/abortable-sleep.js.map +1 -0
- package/dist/gasless/assert-gateway-coherence.d.ts +20 -0
- package/dist/gasless/assert-gateway-coherence.d.ts.map +1 -0
- package/dist/gasless/assert-gateway-coherence.js +26 -0
- package/dist/gasless/assert-gateway-coherence.js.map +1 -0
- package/dist/gasless/batch/calls.d.ts +121 -0
- package/dist/gasless/batch/calls.d.ts.map +1 -0
- package/dist/gasless/batch/calls.js +36 -0
- package/dist/gasless/batch/calls.js.map +1 -0
- package/dist/gasless/batch/index.d.ts +2 -0
- package/dist/gasless/batch/index.d.ts.map +1 -0
- package/dist/gasless/batch/resolve-gasless-batch.d.ts +118 -0
- package/dist/gasless/batch/resolve-gasless-batch.d.ts.map +1 -0
- package/dist/gasless/batch/resolve-gasless-batch.js +89 -0
- package/dist/gasless/batch/resolve-gasless-batch.js.map +1 -0
- package/dist/gasless/classify-gasless-failure.d.ts +99 -0
- package/dist/gasless/classify-gasless-failure.d.ts.map +1 -0
- package/dist/gasless/classify-gasless-failure.js +60 -0
- package/dist/gasless/classify-gasless-failure.js.map +1 -0
- package/dist/gasless/confirm-gasless-request/confirm-gasless-request.d.ts +121 -0
- package/dist/gasless/confirm-gasless-request/confirm-gasless-request.d.ts.map +1 -0
- package/dist/gasless/confirm-gasless-request/confirm-gasless-request.js +73 -0
- package/dist/gasless/confirm-gasless-request/confirm-gasless-request.js.map +1 -0
- package/dist/gasless/confirm-gasless-request/index.d.ts +2 -0
- package/dist/gasless/confirm-gasless-request/index.d.ts.map +1 -0
- package/dist/gasless/constants.d.ts +24 -0
- package/dist/gasless/constants.d.ts.map +1 -0
- package/dist/gasless/constants.js +6 -0
- package/dist/gasless/constants.js.map +1 -0
- package/dist/gasless/delegation-preflight.d.ts +39 -0
- package/dist/gasless/delegation-preflight.d.ts.map +1 -0
- package/dist/gasless/delegation-preflight.js +33 -0
- package/dist/gasless/delegation-preflight.js.map +1 -0
- package/dist/gasless/dispatch/maybe-relay-as-gasless.d.ts +73 -0
- package/dist/gasless/dispatch/maybe-relay-as-gasless.d.ts.map +1 -0
- package/dist/gasless/dispatch/maybe-relay-as-gasless.js +189 -0
- package/dist/gasless/dispatch/maybe-relay-as-gasless.js.map +1 -0
- package/dist/gasless/eip712.d.ts +79 -0
- package/dist/gasless/eip712.d.ts.map +1 -0
- package/dist/gasless/eip712.js +60 -0
- package/dist/gasless/eip712.js.map +1 -0
- package/dist/gasless/errors.d.ts +132 -0
- package/dist/gasless/errors.d.ts.map +1 -0
- package/dist/gasless/errors.js +110 -0
- package/dist/gasless/errors.js.map +1 -0
- package/dist/gasless/events.d.ts +37 -0
- package/dist/gasless/events.d.ts.map +1 -0
- package/dist/gasless/events.js +34 -0
- package/dist/gasless/events.js.map +1 -0
- package/dist/gasless/fallback.d.ts +58 -0
- package/dist/gasless/fallback.d.ts.map +1 -0
- package/dist/gasless/fallback.js +34 -0
- package/dist/gasless/fallback.js.map +1 -0
- package/dist/gasless/format-gasless-operation.d.ts +37 -0
- package/dist/gasless/format-gasless-operation.d.ts.map +1 -0
- package/dist/gasless/format-gasless-operation.js +33 -0
- package/dist/gasless/format-gasless-operation.js.map +1 -0
- package/dist/gasless/gasless-url.d.ts +82 -0
- package/dist/gasless/gasless-url.d.ts.map +1 -0
- package/dist/gasless/gasless-url.js +70 -0
- package/dist/gasless/gasless-url.js.map +1 -0
- package/dist/gasless/gasless-wallet-execute/calls.d.ts +73 -0
- package/dist/gasless/gasless-wallet-execute/calls.d.ts.map +1 -0
- package/dist/gasless/gasless-wallet-execute/calls.js +24 -0
- package/dist/gasless/gasless-wallet-execute/calls.js.map +1 -0
- package/dist/gasless/gasless-wallet-execute/gasless-wallet-execute.d.ts +148 -0
- package/dist/gasless/gasless-wallet-execute/gasless-wallet-execute.d.ts.map +1 -0
- package/dist/gasless/gasless-wallet-execute/gasless-wallet-execute.js +120 -0
- package/dist/gasless/gasless-wallet-execute/gasless-wallet-execute.js.map +1 -0
- package/dist/gasless/gasless-wallet-execute/index.d.ts +5 -0
- package/dist/gasless/gasless-wallet-execute/index.d.ts.map +1 -0
- package/dist/gasless/gasless-wallet-execute/query.d.ts +18 -0
- package/dist/gasless/gasless-wallet-execute/query.d.ts.map +1 -0
- package/dist/gasless/gasless-wallet-execute/query.js +12 -0
- package/dist/gasless/gasless-wallet-execute/query.js.map +1 -0
- package/dist/gasless/gasless-wallet-execute/selectors.d.ts +38 -0
- package/dist/gasless/gasless-wallet-execute/selectors.d.ts.map +1 -0
- package/dist/gasless/gasless-wallet-execute/selectors.js +15 -0
- package/dist/gasless/gasless-wallet-execute/selectors.js.map +1 -0
- package/dist/gasless/get-gasless-batch-fee-quote/get-gasless-batch-fee-quote.d.ts +72 -0
- package/dist/gasless/get-gasless-batch-fee-quote/get-gasless-batch-fee-quote.d.ts.map +1 -0
- package/dist/gasless/get-gasless-batch-fee-quote/get-gasless-batch-fee-quote.js +42 -0
- package/dist/gasless/get-gasless-batch-fee-quote/get-gasless-batch-fee-quote.js.map +1 -0
- package/dist/gasless/get-gasless-batch-fee-quote/index.d.ts +3 -0
- package/dist/gasless/get-gasless-batch-fee-quote/index.d.ts.map +1 -0
- package/dist/gasless/get-gasless-batch-fee-quote/query.d.ts +47 -0
- package/dist/gasless/get-gasless-batch-fee-quote/query.d.ts.map +1 -0
- package/dist/gasless/get-gasless-batch-fee-quote/query.js +50 -0
- package/dist/gasless/get-gasless-batch-fee-quote/query.js.map +1 -0
- package/dist/gasless/get-gasless-deposit-policy/get-gasless-deposit-policy.d.ts +80 -0
- package/dist/gasless/get-gasless-deposit-policy/get-gasless-deposit-policy.d.ts.map +1 -0
- package/dist/gasless/get-gasless-deposit-policy/get-gasless-deposit-policy.js +61 -0
- package/dist/gasless/get-gasless-deposit-policy/get-gasless-deposit-policy.js.map +1 -0
- package/dist/gasless/get-gasless-deposit-policy/index.d.ts +3 -0
- package/dist/gasless/get-gasless-deposit-policy/index.d.ts.map +1 -0
- package/dist/gasless/get-gasless-deposit-policy/query.d.ts +51 -0
- package/dist/gasless/get-gasless-deposit-policy/query.d.ts.map +1 -0
- package/dist/gasless/get-gasless-deposit-policy/query.js +25 -0
- package/dist/gasless/get-gasless-deposit-policy/query.js.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/encode-relay-batch-call-data.d.ts +27 -0
- package/dist/gasless/get-gasless-fee-quote/encode-relay-batch-call-data.d.ts.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/encode-relay-batch-call-data.js +22 -0
- package/dist/gasless/get-gasless-fee-quote/encode-relay-batch-call-data.js.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/fee-quote-errors.d.ts +61 -0
- package/dist/gasless/get-gasless-fee-quote/fee-quote-errors.d.ts.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/fee-quote-errors.js +59 -0
- package/dist/gasless/get-gasless-fee-quote/fee-quote-errors.js.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/get-gasless-fee-quote.d.ts +79 -0
- package/dist/gasless/get-gasless-fee-quote/get-gasless-fee-quote.d.ts.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/get-gasless-fee-quote.js +53 -0
- package/dist/gasless/get-gasless-fee-quote/get-gasless-fee-quote.js.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/index.d.ts +4 -0
- package/dist/gasless/get-gasless-fee-quote/index.d.ts.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/query.d.ts +41 -0
- package/dist/gasless/get-gasless-fee-quote/query.d.ts.map +1 -0
- package/dist/gasless/get-gasless-fee-quote/query.js +31 -0
- package/dist/gasless/get-gasless-fee-quote/query.js.map +1 -0
- package/dist/gasless/get-gasless-request/get-gasless-request.d.ts +51 -0
- package/dist/gasless/get-gasless-request/get-gasless-request.d.ts.map +1 -0
- package/dist/gasless/get-gasless-request/get-gasless-request.js +15 -0
- package/dist/gasless/get-gasless-request/get-gasless-request.js.map +1 -0
- package/dist/gasless/get-gasless-request/index.d.ts +4 -0
- package/dist/gasless/get-gasless-request/index.d.ts.map +1 -0
- package/dist/gasless/get-gasless-request/query.d.ts +64 -0
- package/dist/gasless/get-gasless-request/query.d.ts.map +1 -0
- package/dist/gasless/get-gasless-request/query.js +42 -0
- package/dist/gasless/get-gasless-request/query.js.map +1 -0
- package/dist/gasless/get-gasless-request/to-gasless-request.d.ts +26 -0
- package/dist/gasless/get-gasless-request/to-gasless-request.d.ts.map +1 -0
- package/dist/gasless/get-gasless-request/to-gasless-request.js +62 -0
- package/dist/gasless/get-gasless-request/to-gasless-request.js.map +1 -0
- package/dist/gasless/get-gasless-request-transactions/get-gasless-request-transactions.d.ts +40 -0
- package/dist/gasless/get-gasless-request-transactions/get-gasless-request-transactions.d.ts.map +1 -0
- package/dist/gasless/get-gasless-request-transactions/get-gasless-request-transactions.js +15 -0
- package/dist/gasless/get-gasless-request-transactions/get-gasless-request-transactions.js.map +1 -0
- package/dist/gasless/get-gasless-request-transactions/index.d.ts +4 -0
- package/dist/gasless/get-gasless-request-transactions/index.d.ts.map +1 -0
- package/dist/gasless/get-gasless-request-transactions/query.d.ts +75 -0
- package/dist/gasless/get-gasless-request-transactions/query.d.ts.map +1 -0
- package/dist/gasless/get-gasless-request-transactions/query.js +37 -0
- package/dist/gasless/get-gasless-request-transactions/query.js.map +1 -0
- package/dist/gasless/get-gasless-request-transactions/to-gasless-request-transaction.d.ts +21 -0
- package/dist/gasless/get-gasless-request-transactions/to-gasless-request-transaction.d.ts.map +1 -0
- package/dist/gasless/get-gasless-request-transactions/to-gasless-request-transaction.js +27 -0
- package/dist/gasless/get-gasless-request-transactions/to-gasless-request-transaction.js.map +1 -0
- package/dist/gasless/get-gasless-wallet-address/get-gasless-wallet-address.d.ts +48 -0
- package/dist/gasless/get-gasless-wallet-address/get-gasless-wallet-address.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-address/get-gasless-wallet-address.js +20 -0
- package/dist/gasless/get-gasless-wallet-address/get-gasless-wallet-address.js.map +1 -0
- package/dist/gasless/get-gasless-wallet-address/index.d.ts +3 -0
- package/dist/gasless/get-gasless-wallet-address/index.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-address/query.d.ts +46 -0
- package/dist/gasless/get-gasless-wallet-address/query.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-address/query.js +25 -0
- package/dist/gasless/get-gasless-wallet-address/query.js.map +1 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/get-gasless-wallet-creation-fee.d.ts +57 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/get-gasless-wallet-creation-fee.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/get-gasless-wallet-creation-fee.js +17 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/get-gasless-wallet-creation-fee.js.map +1 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/index.d.ts +3 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/index.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/query.d.ts +51 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/query.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/query.js +25 -0
- package/dist/gasless/get-gasless-wallet-creation-fee/query.js.map +1 -0
- package/dist/gasless/get-gasless-wallet-nonce/get-gasless-wallet-nonce.d.ts +51 -0
- package/dist/gasless/get-gasless-wallet-nonce/get-gasless-wallet-nonce.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-nonce/get-gasless-wallet-nonce.js +21 -0
- package/dist/gasless/get-gasless-wallet-nonce/get-gasless-wallet-nonce.js.map +1 -0
- package/dist/gasless/get-gasless-wallet-nonce/index.d.ts +3 -0
- package/dist/gasless/get-gasless-wallet-nonce/index.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-nonce/query.d.ts +47 -0
- package/dist/gasless/get-gasless-wallet-nonce/query.d.ts.map +1 -0
- package/dist/gasless/get-gasless-wallet-nonce/query.js +25 -0
- package/dist/gasless/get-gasless-wallet-nonce/query.js.map +1 -0
- package/dist/gasless/get-session-key-selectors.d.ts +83 -0
- package/dist/gasless/get-session-key-selectors.d.ts.map +1 -0
- package/dist/gasless/get-session-key-selectors.js +25 -0
- package/dist/gasless/get-session-key-selectors.js.map +1 -0
- package/dist/gasless/http.d.ts +229 -0
- package/dist/gasless/http.d.ts.map +1 -0
- package/dist/gasless/http.js +165 -0
- package/dist/gasless/http.js.map +1 -0
- package/dist/gasless/index.d.ts +34 -0
- package/dist/gasless/index.d.ts.map +1 -0
- package/dist/gasless/is-newer-gasless-request.d.ts +32 -0
- package/dist/gasless/is-newer-gasless-request.d.ts.map +1 -0
- package/dist/gasless/is-newer-gasless-request.js +21 -0
- package/dist/gasless/is-newer-gasless-request.js.map +1 -0
- package/dist/gasless/nonce-lock.d.ts +180 -0
- package/dist/gasless/nonce-lock.d.ts.map +1 -0
- package/dist/gasless/nonce-lock.js +102 -0
- package/dist/gasless/nonce-lock.js.map +1 -0
- package/dist/gasless/observe-gasless-request.d.ts +65 -0
- package/dist/gasless/observe-gasless-request.d.ts.map +1 -0
- package/dist/gasless/observe-gasless-request.js +56 -0
- package/dist/gasless/observe-gasless-request.js.map +1 -0
- package/dist/gasless/query-poll-delay.d.ts +39 -0
- package/dist/gasless/query-poll-delay.d.ts.map +1 -0
- package/dist/gasless/query-poll-delay.js +14 -0
- package/dist/gasless/query-poll-delay.js.map +1 -0
- package/dist/gasless/relay-gasless-batch/index.d.ts +3 -0
- package/dist/gasless/relay-gasless-batch/index.d.ts.map +1 -0
- package/dist/gasless/relay-gasless-batch/query.d.ts +18 -0
- package/dist/gasless/relay-gasless-batch/query.d.ts.map +1 -0
- package/dist/gasless/relay-gasless-batch/query.js +12 -0
- package/dist/gasless/relay-gasless-batch/query.js.map +1 -0
- package/dist/gasless/relay-gasless-batch/relay-gasless-batch.d.ts +106 -0
- package/dist/gasless/relay-gasless-batch/relay-gasless-batch.d.ts.map +1 -0
- package/dist/gasless/relay-gasless-batch/relay-gasless-batch.js +145 -0
- package/dist/gasless/relay-gasless-batch/relay-gasless-batch.js.map +1 -0
- package/dist/gasless/relay-gasless-batch/sign-gasless-batch.d.ts +36 -0
- package/dist/gasless/relay-gasless-batch/sign-gasless-batch.d.ts.map +1 -0
- package/dist/gasless/relay-gasless-batch/sign-gasless-batch.js +24 -0
- package/dist/gasless/relay-gasless-batch/sign-gasless-batch.js.map +1 -0
- package/dist/gasless/relay-grant-delegation/index.d.ts +3 -0
- package/dist/gasless/relay-grant-delegation/index.d.ts.map +1 -0
- package/dist/gasless/relay-grant-delegation/query.d.ts +18 -0
- package/dist/gasless/relay-grant-delegation/query.d.ts.map +1 -0
- package/dist/gasless/relay-grant-delegation/query.js +12 -0
- package/dist/gasless/relay-grant-delegation/query.js.map +1 -0
- package/dist/gasless/relay-grant-delegation/relay-grant-delegation.d.ts +69 -0
- package/dist/gasless/relay-grant-delegation/relay-grant-delegation.d.ts.map +1 -0
- package/dist/gasless/relay-grant-delegation/relay-grant-delegation.js +57 -0
- package/dist/gasless/relay-grant-delegation/relay-grant-delegation.js.map +1 -0
- package/dist/gasless/relay-instant-operations/index.d.ts +3 -0
- package/dist/gasless/relay-instant-operations/index.d.ts.map +1 -0
- package/dist/gasless/relay-instant-operations/query.d.ts +18 -0
- package/dist/gasless/relay-instant-operations/query.d.ts.map +1 -0
- package/dist/gasless/relay-instant-operations/query.js +12 -0
- package/dist/gasless/relay-instant-operations/query.js.map +1 -0
- package/dist/gasless/relay-instant-operations/relay-instant-operations.d.ts +127 -0
- package/dist/gasless/relay-instant-operations/relay-instant-operations.d.ts.map +1 -0
- package/dist/gasless/relay-instant-operations/relay-instant-operations.js +42 -0
- package/dist/gasless/relay-instant-operations/relay-instant-operations.js.map +1 -0
- package/dist/gasless/relayable-writes.d.ts +163 -0
- package/dist/gasless/relayable-writes.d.ts.map +1 -0
- package/dist/gasless/relayable-writes.js +113 -0
- package/dist/gasless/relayable-writes.js.map +1 -0
- package/dist/gasless/resolve-gasless.d.ts +52 -0
- package/dist/gasless/resolve-gasless.d.ts.map +1 -0
- package/dist/gasless/resolve-gasless.js +19 -0
- package/dist/gasless/resolve-gasless.js.map +1 -0
- package/dist/gasless/resolve-wallet-identities.d.ts +30 -0
- package/dist/gasless/resolve-wallet-identities.d.ts.map +1 -0
- package/dist/gasless/resolve-wallet-identities.js +21 -0
- package/dist/gasless/resolve-wallet-identities.js.map +1 -0
- package/dist/gasless/resubmit-gasless-request/index.d.ts +3 -0
- package/dist/gasless/resubmit-gasless-request/index.d.ts.map +1 -0
- package/dist/gasless/resubmit-gasless-request/query.d.ts +19 -0
- package/dist/gasless/resubmit-gasless-request/query.d.ts.map +1 -0
- package/dist/gasless/resubmit-gasless-request/query.js +12 -0
- package/dist/gasless/resubmit-gasless-request/query.js.map +1 -0
- package/dist/gasless/resubmit-gasless-request/resubmit-gasless-request.d.ts +50 -0
- package/dist/gasless/resubmit-gasless-request/resubmit-gasless-request.d.ts.map +1 -0
- package/dist/gasless/resubmit-gasless-request/resubmit-gasless-request.js +52 -0
- package/dist/gasless/resubmit-gasless-request/resubmit-gasless-request.js.map +1 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/index.d.ts +3 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/index.d.ts.map +1 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/query.d.ts +18 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/query.d.ts.map +1 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/query.js +12 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/query.js.map +1 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/settle-gasless-deposit-existing-account.d.ts +66 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/settle-gasless-deposit-existing-account.d.ts.map +1 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/settle-gasless-deposit-existing-account.js +36 -0
- package/dist/gasless/settle-gasless-deposit-existing-account/settle-gasless-deposit-existing-account.js.map +1 -0
- package/dist/gasless/settle-gasless-deposit-new-account/index.d.ts +3 -0
- package/dist/gasless/settle-gasless-deposit-new-account/index.d.ts.map +1 -0
- package/dist/gasless/settle-gasless-deposit-new-account/query.d.ts +18 -0
- package/dist/gasless/settle-gasless-deposit-new-account/query.d.ts.map +1 -0
- package/dist/gasless/settle-gasless-deposit-new-account/query.js +12 -0
- package/dist/gasless/settle-gasless-deposit-new-account/query.js.map +1 -0
- package/dist/gasless/settle-gasless-deposit-new-account/settle-gasless-deposit-new-account.d.ts +106 -0
- package/dist/gasless/settle-gasless-deposit-new-account/settle-gasless-deposit-new-account.d.ts.map +1 -0
- package/dist/gasless/settle-gasless-deposit-new-account/settle-gasless-deposit-new-account.js +43 -0
- package/dist/gasless/settle-gasless-deposit-new-account/settle-gasless-deposit-new-account.js.map +1 -0
- package/dist/gasless/status-read-limiter.d.ts +44 -0
- package/dist/gasless/status-read-limiter.d.ts.map +1 -0
- package/dist/gasless/status-read-limiter.js +28 -0
- package/dist/gasless/status-read-limiter.js.map +1 -0
- package/dist/gasless/to-gasless-deposit-receipt.d.ts +61 -0
- package/dist/gasless/to-gasless-deposit-receipt.d.ts.map +1 -0
- package/dist/gasless/to-gasless-deposit-receipt.js +36 -0
- package/dist/gasless/to-gasless-deposit-receipt.js.map +1 -0
- package/dist/gasless/to-gasless-submit-receipt.d.ts +60 -0
- package/dist/gasless/to-gasless-submit-receipt.d.ts.map +1 -0
- package/dist/gasless/to-gasless-submit-receipt.js +26 -0
- package/dist/gasless/to-gasless-submit-receipt.js.map +1 -0
- package/dist/gasless/transient-read.d.ts +32 -0
- package/dist/gasless/transient-read.d.ts.map +1 -0
- package/dist/gasless/transient-read.js +28 -0
- package/dist/gasless/transient-read.js.map +1 -0
- package/dist/gasless/types/generated/gasless-deposits.d.ts +170 -0
- package/dist/gasless/types/generated/gasless-deposits.d.ts.map +1 -0
- package/dist/gasless/types/generated/gasless-operations.d.ts +260 -0
- package/dist/gasless/types/generated/gasless-operations.d.ts.map +1 -0
- package/dist/gasless/types.d.ts +493 -0
- package/dist/gasless/types.d.ts.map +1 -0
- package/dist/gasless/types.js +33 -0
- package/dist/gasless/types.js.map +1 -0
- package/dist/gasless/unconfirmed-submit.d.ts +132 -0
- package/dist/gasless/unconfirmed-submit.d.ts.map +1 -0
- package/dist/gasless/unconfirmed-submit.js +49 -0
- package/dist/gasless/unconfirmed-submit.js.map +1 -0
- package/dist/gasless/wait-for-gasless-request/index.d.ts +2 -0
- package/dist/gasless/wait-for-gasless-request/index.d.ts.map +1 -0
- package/dist/gasless/wait-for-gasless-request/wait-for-gasless-request.d.ts +114 -0
- package/dist/gasless/wait-for-gasless-request/wait-for-gasless-request.d.ts.map +1 -0
- package/dist/gasless/wait-for-gasless-request/wait-for-gasless-request.js +77 -0
- package/dist/gasless/wait-for-gasless-request/wait-for-gasless-request.js.map +1 -0
- package/dist/gasless/wallet-id.d.ts +42 -0
- package/dist/gasless/wallet-id.d.ts.map +1 -0
- package/dist/gasless/wallet-id.js +25 -0
- package/dist/gasless/wallet-id.js.map +1 -0
- package/dist/gasless/wire-parse.d.ts +33 -0
- package/dist/gasless/wire-parse.d.ts.map +1 -0
- package/dist/gasless/wire-parse.js +14 -0
- package/dist/gasless/wire-parse.js.map +1 -0
- package/dist/gasless/wire-types.d.ts +73 -0
- package/dist/gasless/wire-types.d.ts.map +1 -0
- package/dist/gasless/write-request-registry.d.ts +56 -0
- package/dist/gasless/write-request-registry.d.ts.map +1 -0
- package/dist/gasless/write-request-registry.js +22 -0
- package/dist/gasless/write-request-registry.js.map +1 -0
- package/dist/index.d.ts +82 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +568 -497
- package/dist/pools/listing-config/to-listing-config.js +2 -2
- package/dist/pools/listing-config/to-listing-config.js.map +1 -1
- package/dist/pools/market-detail/to-listing-market-detail.d.ts.map +1 -1
- package/dist/pools/market-detail/to-listing-market-detail.js +46 -40
- package/dist/pools/market-detail/to-listing-market-detail.js.map +1 -1
- package/dist/pools/markets/to-listing-market.d.ts.map +1 -1
- package/dist/pools/markets/to-listing-market.js +2 -1
- package/dist/pools/markets/to-listing-market.js.map +1 -1
- package/dist/pools/types/generated/listing-backend.d.ts +163 -16
- package/dist/pools/types/generated/listing-backend.d.ts.map +1 -1
- package/dist/pools/types/generated/listing-backend.js.map +1 -1
- package/dist/pools/types.d.ts +52 -2
- package/dist/pools/types.d.ts.map +1 -1
- package/dist/pools/types.js +6 -4
- package/dist/pools/types.js.map +1 -1
- package/dist/quotes/get-quote-funding/get-quote-funding.d.ts +3 -2
- package/dist/quotes/get-quote-funding/get-quote-funding.d.ts.map +1 -1
- package/dist/quotes/get-quote-funding/get-quote-funding.js.map +1 -1
- package/dist/quotes/get-quote-funding/types.d.ts +4 -2
- package/dist/quotes/get-quote-funding/types.d.ts.map +1 -1
- package/dist/quotes/get-quote-pending-funding/get-quote-pending-funding.d.ts +68 -0
- package/dist/quotes/get-quote-pending-funding/get-quote-pending-funding.d.ts.map +1 -0
- package/dist/quotes/get-quote-pending-funding/get-quote-pending-funding.js +34 -0
- package/dist/quotes/get-quote-pending-funding/get-quote-pending-funding.js.map +1 -0
- package/dist/quotes/get-quote-pending-funding/index.d.ts +4 -0
- package/dist/quotes/get-quote-pending-funding/index.d.ts.map +1 -0
- package/dist/quotes/get-quote-pending-funding/query.d.ts +58 -0
- package/dist/quotes/get-quote-pending-funding/query.d.ts.map +1 -0
- package/dist/quotes/get-quote-pending-funding/query.js +27 -0
- package/dist/quotes/get-quote-pending-funding/query.js.map +1 -0
- package/dist/quotes/get-quote-pending-funding/types.d.ts +19 -0
- package/dist/quotes/get-quote-pending-funding/types.d.ts.map +1 -0
- package/dist/quotes/get-quotes-events-by-type/get-quotes-events-by-type.d.ts +2 -1
- package/dist/quotes/get-quotes-events-by-type/get-quotes-events-by-type.d.ts.map +1 -1
- package/dist/quotes/get-quotes-events-by-type/get-quotes-events-by-type.js.map +1 -1
- package/dist/quotes/grouping/aggregate-group-funding.d.ts +9 -8
- package/dist/quotes/grouping/aggregate-group-funding.d.ts.map +1 -1
- package/dist/quotes/grouping/aggregate-group-funding.js.map +1 -1
- package/dist/quotes/grouping/partition-quotes.d.ts +30 -0
- package/dist/quotes/grouping/partition-quotes.d.ts.map +1 -1
- package/dist/quotes/grouping/partition-quotes.js +9 -6
- package/dist/quotes/grouping/partition-quotes.js.map +1 -1
- package/dist/quotes/index.d.ts +1 -0
- package/dist/quotes/index.d.ts.map +1 -1
- package/dist/quotes/unified-quote.d.ts +6 -6
- package/dist/quotes/unified-quote.js.map +1 -1
- package/dist/shared/errors/redact-url.d.ts +15 -0
- package/dist/shared/errors/redact-url.d.ts.map +1 -0
- package/dist/shared/errors/redact-url.js +9 -0
- package/dist/shared/errors/redact-url.js.map +1 -0
- package/dist/shared/errors/retry-after.d.ts +17 -0
- package/dist/shared/errors/retry-after.d.ts.map +1 -0
- package/dist/shared/errors/retry-after.js +16 -0
- package/dist/shared/errors/retry-after.js.map +1 -0
- package/dist/shared/errors/sanitized-api-error.d.ts +32 -0
- package/dist/shared/errors/sanitized-api-error.d.ts.map +1 -0
- package/dist/shared/errors/sanitized-api-error.js +41 -0
- package/dist/shared/errors/sanitized-api-error.js.map +1 -0
- package/dist/shared/errors/symm-error.d.ts +39 -4
- package/dist/shared/errors/symm-error.d.ts.map +1 -1
- package/dist/shared/errors/symm-error.js +29 -15
- package/dist/shared/errors/symm-error.js.map +1 -1
- package/dist/shared/types/properties.d.ts +53 -5
- package/dist/shared/types/properties.d.ts.map +1 -1
- package/dist/shared/utils/core-units.d.ts +82 -0
- package/dist/shared/utils/core-units.d.ts.map +1 -0
- package/dist/shared/utils/core-units.js +21 -0
- package/dist/shared/utils/core-units.js.map +1 -0
- package/dist/shared/utils/http-header.d.ts +16 -0
- package/dist/shared/utils/http-header.d.ts.map +1 -0
- package/dist/shared/utils/http-header.js +14 -0
- package/dist/shared/utils/http-header.js.map +1 -0
- package/dist/shared/utils/query.js +2 -1
- package/dist/shared/utils/query.js.map +1 -1
- package/dist/solvers/force-close/force-close-auto.d.ts +6 -2
- package/dist/solvers/force-close/force-close-auto.d.ts.map +1 -1
- package/dist/solvers/force-close/force-close-auto.js +2 -1
- package/dist/solvers/force-close/force-close-auto.js.map +1 -1
- package/dist/solvers/force-close/force-close-position.d.ts +9 -3
- package/dist/solvers/force-close/force-close-position.d.ts.map +1 -1
- package/dist/solvers/force-close/force-close-position.js +2 -1
- package/dist/solvers/force-close/force-close-position.js.map +1 -1
- package/dist/solvers/instant-open/instant-open/adapters/enigma-instant-open.js +12 -12
- package/dist/solvers/instant-open/instant-open/adapters/rasa-instant-open.js +7 -7
- package/dist/symmio-contracts/abi/index.d.ts +2 -0
- package/dist/symmio-contracts/abi/index.d.ts.map +1 -1
- package/dist/symmio-contracts/abi/v0.8.6/gasless-layer.d.ts +2323 -0
- package/dist/symmio-contracts/abi/v0.8.6/gasless-layer.d.ts.map +1 -0
- package/dist/symmio-contracts/abi/v0.8.6/gasless-layer.js +2706 -0
- package/dist/symmio-contracts/abi/v0.8.6/gasless-layer.js.map +1 -0
- package/dist/symmio-contracts/abi/v0.8.6/gasless-wallet.d.ts +137 -0
- package/dist/symmio-contracts/abi/v0.8.6/gasless-wallet.d.ts.map +1 -0
- package/dist/symmio-contracts/abi/v0.8.6/gasless-wallet.js +145 -0
- package/dist/symmio-contracts/abi/v0.8.6/gasless-wallet.js.map +1 -0
- package/dist/symmio-contracts/abi/v0.8.6/index.d.ts +2 -0
- package/dist/symmio-contracts/abi/v0.8.6/index.d.ts.map +1 -1
- package/dist/symmio-contracts/abi/v0.8.6/instant-layer.d.ts +1879 -37
- package/dist/symmio-contracts/abi/v0.8.6/instant-layer.d.ts.map +1 -1
- package/dist/symmio-contracts/abi/v0.8.6/instant-layer.js +2180 -50
- package/dist/symmio-contracts/abi/v0.8.6/instant-layer.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/add-margin.d.ts +2 -2
- package/dist/symmio-contracts/account-layer/actions/add-margin.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/add-margin.js +34 -17
- package/dist/symmio-contracts/account-layer/actions/add-margin.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.d.ts +11 -2
- package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.js +33 -17
- package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/delete-sub-account.d.ts +9 -2
- package/dist/symmio-contracts/account-layer/actions/delete-sub-account.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/delete-sub-account.js +33 -16
- 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.d.ts +8 -2
- package/dist/symmio-contracts/account-layer/actions/deposit-and-allocate-for-account.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/deposit-and-allocate-for-account.js +34 -17
- 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.d.ts +8 -2
- package/dist/symmio-contracts/account-layer/actions/deposit-for-account.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/deposit-for-account.js +34 -17
- package/dist/symmio-contracts/account-layer/actions/deposit-for-account.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/edit-account-name.d.ts +7 -2
- package/dist/symmio-contracts/account-layer/actions/edit-account-name.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/edit-account-name.js +34 -17
- package/dist/symmio-contracts/account-layer/actions/edit-account-name.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-account-balance-info.d.ts +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.d.ts +9 -3
- package/dist/symmio-contracts/account-layer/actions/get-account-balance-of.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/get-account-balance-of.js.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/remove-margin.d.ts +2 -2
- package/dist/symmio-contracts/account-layer/actions/remove-margin.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/actions/remove-margin.js +41 -20
- package/dist/symmio-contracts/account-layer/actions/remove-margin.js.map +1 -1
- package/dist/symmio-contracts/account-layer/types.d.ts +3 -1
- package/dist/symmio-contracts/account-layer/types.d.ts.map +1 -1
- package/dist/symmio-contracts/account-layer/types.js.map +1 -1
- package/dist/symmio-contracts/instant-layer/actions/finalize-revoke-delegation.d.ts +60 -0
- package/dist/symmio-contracts/instant-layer/actions/finalize-revoke-delegation.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/finalize-revoke-delegation.js +35 -0
- package/dist/symmio-contracts/instant-layer/actions/finalize-revoke-delegation.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/get-active-delegations.d.ts +91 -0
- package/dist/symmio-contracts/instant-layer/actions/get-active-delegations.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/get-active-delegations.js +19 -0
- package/dist/symmio-contracts/instant-layer/actions/get-active-delegations.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/get-instant-layer-nonce.d.ts +36 -0
- package/dist/symmio-contracts/instant-layer/actions/get-instant-layer-nonce.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/get-instant-layer-nonce.js +15 -0
- package/dist/symmio-contracts/instant-layer/actions/get-instant-layer-nonce.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/get-pending-revocation-etas.d.ts +79 -0
- package/dist/symmio-contracts/instant-layer/actions/get-pending-revocation-etas.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/get-pending-revocation-etas.js +32 -0
- package/dist/symmio-contracts/instant-layer/actions/get-pending-revocation-etas.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/get-revocation-cooldown.d.ts +43 -0
- package/dist/symmio-contracts/instant-layer/actions/get-revocation-cooldown.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/get-revocation-cooldown.js +14 -0
- package/dist/symmio-contracts/instant-layer/actions/get-revocation-cooldown.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/grant-delegation.d.ts +24 -3
- package/dist/symmio-contracts/instant-layer/actions/grant-delegation.d.ts.map +1 -1
- package/dist/symmio-contracts/instant-layer/actions/grant-delegation.js +48 -22
- package/dist/symmio-contracts/instant-layer/actions/grant-delegation.js.map +1 -1
- package/dist/symmio-contracts/instant-layer/actions/initiate-revoke-delegation.d.ts +62 -0
- package/dist/symmio-contracts/instant-layer/actions/initiate-revoke-delegation.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/actions/initiate-revoke-delegation.js +35 -0
- package/dist/symmio-contracts/instant-layer/actions/initiate-revoke-delegation.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/index.d.ts +12 -0
- package/dist/symmio-contracts/instant-layer/index.d.ts.map +1 -1
- package/dist/symmio-contracts/instant-layer/query/finalize-revoke-delegation.d.ts +22 -0
- package/dist/symmio-contracts/instant-layer/query/finalize-revoke-delegation.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/finalize-revoke-delegation.js +12 -0
- package/dist/symmio-contracts/instant-layer/query/finalize-revoke-delegation.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/get-active-delegations.d.ts +36 -0
- package/dist/symmio-contracts/instant-layer/query/get-active-delegations.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/get-active-delegations.js +29 -0
- package/dist/symmio-contracts/instant-layer/query/get-active-delegations.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/get-instant-layer-nonce.d.ts +39 -0
- package/dist/symmio-contracts/instant-layer/query/get-instant-layer-nonce.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/get-instant-layer-nonce.js +27 -0
- package/dist/symmio-contracts/instant-layer/query/get-instant-layer-nonce.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/get-is-delegation-active.js +7 -7
- package/dist/symmio-contracts/instant-layer/query/get-pending-revocation-etas.d.ts +42 -0
- package/dist/symmio-contracts/instant-layer/query/get-pending-revocation-etas.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/get-pending-revocation-etas.js +30 -0
- package/dist/symmio-contracts/instant-layer/query/get-pending-revocation-etas.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/get-revocation-cooldown.d.ts +36 -0
- package/dist/symmio-contracts/instant-layer/query/get-revocation-cooldown.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/get-revocation-cooldown.js +21 -0
- package/dist/symmio-contracts/instant-layer/query/get-revocation-cooldown.js.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/initiate-revoke-delegation.d.ts +22 -0
- package/dist/symmio-contracts/instant-layer/query/initiate-revoke-delegation.d.ts.map +1 -0
- package/dist/symmio-contracts/instant-layer/query/initiate-revoke-delegation.js +12 -0
- package/dist/symmio-contracts/instant-layer/query/initiate-revoke-delegation.js.map +1 -0
- package/dist/symmio-contracts/symmio/actions/allocate.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/allocate.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/allocate.js +2 -1
- package/dist/symmio-contracts/symmio/actions/allocate.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/approve-operational-fee.d.ts +87 -0
- package/dist/symmio-contracts/symmio/actions/approve-operational-fee.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/actions/approve-operational-fee.js +38 -0
- package/dist/symmio-contracts/symmio/actions/approve-operational-fee.js.map +1 -0
- package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.js +2 -1
- package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/deallocate.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/deallocate.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/deallocate.js +2 -1
- package/dist/symmio-contracts/symmio/actions/deallocate.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.d.ts +15 -3
- package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.js +34 -17
- package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.js +2 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-quote.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/force-cancel-quote.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-quote.js +2 -1
- package/dist/symmio-contracts/symmio/actions/force-cancel-quote.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/get-operational-fee-allowance.d.ts +85 -0
- package/dist/symmio-contracts/symmio/actions/get-operational-fee-allowance.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/actions/get-operational-fee-allowance.js +29 -0
- package/dist/symmio-contracts/symmio/actions/get-operational-fee-allowance.js.map +1 -0
- package/dist/symmio-contracts/symmio/actions/initiate-withdraw.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/initiate-withdraw.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/initiate-withdraw.js +2 -1
- package/dist/symmio-contracts/symmio/actions/initiate-withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.js +2 -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.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-close-request.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-close-request.js +2 -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.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.js +2 -1
- package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/withdraw-auto.d.ts +9 -7
- package/dist/symmio-contracts/symmio/actions/withdraw-auto.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/withdraw-auto.js +24 -22
- package/dist/symmio-contracts/symmio/actions/withdraw-auto.js.map +1 -1
- package/dist/symmio-contracts/symmio/actions/withdraw.d.ts +2 -2
- package/dist/symmio-contracts/symmio/actions/withdraw.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/actions/withdraw.js +4 -2
- package/dist/symmio-contracts/symmio/actions/withdraw.js.map +1 -1
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/get-funding-fees-of-party-b.d.ts +43 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/get-funding-fees-of-party-b.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/get-funding-fees-of-party-b.js +15 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/get-funding-fees-of-party-b.js.map +1 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/index.d.ts +4 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/index.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/query.d.ts +43 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/query.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/query.js +25 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/query.js.map +1 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/types.d.ts +85 -0
- package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/types.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/index.d.ts +5 -0
- package/dist/symmio-contracts/symmio/index.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/internal/call-as-sub-account.d.ts +2 -1
- package/dist/symmio-contracts/symmio/internal/call-as-sub-account.d.ts.map +1 -1
- package/dist/symmio-contracts/symmio/internal/call-as-sub-account.js +46 -17
- package/dist/symmio-contracts/symmio/internal/call-as-sub-account.js.map +1 -1
- package/dist/symmio-contracts/symmio/query/approve-operational-fee.d.ts +18 -0
- package/dist/symmio-contracts/symmio/query/approve-operational-fee.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/query/approve-operational-fee.js +12 -0
- package/dist/symmio-contracts/symmio/query/approve-operational-fee.js.map +1 -0
- package/dist/symmio-contracts/symmio/query/get-operational-fee-allowance.d.ts +35 -0
- package/dist/symmio-contracts/symmio/query/get-operational-fee-allowance.d.ts.map +1 -0
- package/dist/symmio-contracts/symmio/query/get-operational-fee-allowance.js +28 -0
- package/dist/symmio-contracts/symmio/query/get-operational-fee-allowance.js.map +1 -0
- package/dist/symmio-contracts/symmio/types.d.ts +6 -6
- package/dist/symmio-contracts/symmio/types.js.map +1 -1
- package/dist/symmio-subgraph/executeSubgraphRequest.d.ts +2 -1
- package/dist/symmio-subgraph/executeSubgraphRequest.d.ts.map +1 -1
- package/dist/symmio-subgraph/executeSubgraphRequest.js +24 -21
- package/dist/symmio-subgraph/executeSubgraphRequest.js.map +1 -1
- package/dist/websocket/gasless/close-code-policy.d.ts +51 -0
- package/dist/websocket/gasless/close-code-policy.d.ts.map +1 -0
- package/dist/websocket/gasless/close-code-policy.js +75 -0
- package/dist/websocket/gasless/close-code-policy.js.map +1 -0
- package/dist/websocket/gasless/gasless-stream-hub.d.ts +61 -0
- package/dist/websocket/gasless/gasless-stream-hub.d.ts.map +1 -0
- package/dist/websocket/gasless/gasless-stream-hub.js +311 -0
- package/dist/websocket/gasless/gasless-stream-hub.js.map +1 -0
- package/dist/websocket/gasless/index.d.ts +7 -0
- package/dist/websocket/gasless/index.d.ts.map +1 -0
- package/dist/websocket/gasless/parse-gasless-stream-message.d.ts +82 -0
- package/dist/websocket/gasless/parse-gasless-stream-message.d.ts.map +1 -0
- package/dist/websocket/gasless/parse-gasless-stream-message.js +136 -0
- package/dist/websocket/gasless/parse-gasless-stream-message.js.map +1 -0
- package/dist/websocket/gasless/resolve-gasless-stream-url.d.ts +58 -0
- package/dist/websocket/gasless/resolve-gasless-stream-url.d.ts.map +1 -0
- package/dist/websocket/gasless/resolve-gasless-stream-url.js +59 -0
- package/dist/websocket/gasless/resolve-gasless-stream-url.js.map +1 -0
- package/dist/websocket/gasless/types.d.ts +48 -0
- package/dist/websocket/gasless/types.d.ts.map +1 -0
- package/dist/websocket/gasless/watch-gasless-request.d.ts +72 -0
- package/dist/websocket/gasless/watch-gasless-request.d.ts.map +1 -0
- package/dist/websocket/gasless/watch-gasless-request.js +35 -0
- package/dist/websocket/gasless/watch-gasless-request.js.map +1 -0
- package/dist/websocket/index.d.ts +1 -0
- package/dist/websocket/index.d.ts.map +1 -1
- package/dist/websocket/socket/create-reconnecting-socket.d.ts +39 -6
- package/dist/websocket/socket/create-reconnecting-socket.d.ts.map +1 -1
- package/dist/websocket/socket/create-reconnecting-socket.js +92 -53
- package/dist/websocket/socket/create-reconnecting-socket.js.map +1 -1
- package/dist/websocket/socket/socket-status.d.ts +7 -2
- package/dist/websocket/socket/socket-status.d.ts.map +1 -1
- package/dist/websocket/socket/socket-status.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SymmioGaslessConfig } from '../../core/chains/types.js';
|
|
2
|
+
import { GaslessService } from '../../gasless/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* A resolved status-stream endpoint: the `ws(s)://` URL to dial and the
|
|
5
|
+
* protocol instance every message from it must name.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export interface GaslessStreamEndpoint {
|
|
10
|
+
/** Full stream URL, `…/v1/instances/{instance}/{service}/ws`. */
|
|
11
|
+
url: string;
|
|
12
|
+
/** The instance the endpoint pins; the `ready` frame is checked against it. */
|
|
13
|
+
protocolInstance: string;
|
|
14
|
+
/** The service the stream carries. */
|
|
15
|
+
service: GaslessService;
|
|
16
|
+
/** The chain the endpoint was resolved for (for error messages and hub keys). */
|
|
17
|
+
chainId: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolve the status-stream endpoint for one `(chain, service)`.
|
|
21
|
+
*
|
|
22
|
+
* The stream shares the gateway's URL forms with HTTP, so both start from
|
|
23
|
+
* {@link parseGaslessUrl}:
|
|
24
|
+
*
|
|
25
|
+
* - **origin** → `wss://host/v1/instances/{instance}/{service}/ws`
|
|
26
|
+
* - **instance root** → the same, with the configured path
|
|
27
|
+
* - **service base** → `{url}/ws`, for that service only
|
|
28
|
+
* - **proxy root** → only from `statusStream.origin`, because a proxy that
|
|
29
|
+
* forwards HTTP cannot be assumed to forward a WebSocket upgrade, and a
|
|
30
|
+
* relative proxy path has no host core could turn into `ws(s)` without a
|
|
31
|
+
* browser global
|
|
32
|
+
*
|
|
33
|
+
* The stream is anonymous: a browser `WebSocket` cannot send an `Authorization`
|
|
34
|
+
* header, so `apiKey` never reaches it. A partner key raises HTTP limits only.
|
|
35
|
+
*
|
|
36
|
+
* @param chainId - The chain the config belongs to.
|
|
37
|
+
* @param gasless - The chain's gasless config.
|
|
38
|
+
* @param service - Which service's stream to resolve.
|
|
39
|
+
* @returns The endpoint to dial.
|
|
40
|
+
* @throws {SymmError} `GASLESS_STREAM_NOT_CONFIGURED` when `statusStream` is absent or disabled.
|
|
41
|
+
* @throws {SymmError} `GASLESS_STREAM_ORIGIN_REQUIRED` for a proxy root with no `statusStream.origin`.
|
|
42
|
+
* @throws {SymmError} `GASLESS_STREAM_ORIGIN_CONFLICT` when `origin` is set on a gateway url form.
|
|
43
|
+
* @throws {SymmError} `GASLESS_PROTOCOL_INSTANCE_REQUIRED` when a proxy root declares no `protocolInstance`.
|
|
44
|
+
* @throws {SymmError} Every {@link parseGaslessUrl} config error, plus `GASLESS_URL_SERVICE_MISMATCH`.
|
|
45
|
+
*
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveGaslessStreamUrl(chainId: number, gasless: SymmioGaslessConfig, service: GaslessService): GaslessStreamEndpoint;
|
|
49
|
+
/**
|
|
50
|
+
* Whether `(chain, service)` has a status stream the SDK can dial.
|
|
51
|
+
*
|
|
52
|
+
* Non-throwing companion to {@link resolveGaslessStreamUrl}: a consumer can ask
|
|
53
|
+
* before subscribing, and fall back to HTTP polling when the answer is `false`.
|
|
54
|
+
*
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
export declare function canResolveGaslessStreamUrl(chainId: number, gasless: SymmioGaslessConfig, service: GaslessService): boolean;
|
|
58
|
+
//# sourceMappingURL=resolve-gasless-stream-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-gasless-stream-url.d.ts","sourceRoot":"","sources":["../../../src/websocket/gasless/resolve-gasless-stream-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,gBAAgB,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,cAAc,GACtB,qBAAqB,CA4DvB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,cAAc,GACtB,OAAO,CAOT"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { SymmError as e } from "../../shared/errors/symm-error.js";
|
|
2
|
+
import { assertGaslessUrlServes as t, parseGaslessUrl as n } from "../../gasless/gasless-url.js";
|
|
3
|
+
//#region src/websocket/gasless/resolve-gasless-stream-url.ts
|
|
4
|
+
function r(e) {
|
|
5
|
+
return e.replace(/^http:/i, "ws:").replace(/^https:/i, "wss:");
|
|
6
|
+
}
|
|
7
|
+
function i(t, n) {
|
|
8
|
+
return new e("config", t, n);
|
|
9
|
+
}
|
|
10
|
+
function a(e, a, o) {
|
|
11
|
+
if (!a.statusStream?.enabled) throw i("GASLESS_STREAM_NOT_CONFIGURED", `Gasless: chain ${e} does not enable the status stream. Set \`gasless.statusStream.enabled\` once operators confirm the WebSocket for this deployment; until then status reads poll over HTTP.`);
|
|
12
|
+
let s = n(e, a);
|
|
13
|
+
t(e, s, o);
|
|
14
|
+
let c = a.statusStream.origin?.trim().replace(/\/+$/, "");
|
|
15
|
+
if (s.form === "proxy-root") {
|
|
16
|
+
if (!c) throw i("GASLESS_STREAM_ORIGIN_REQUIRED", `Gasless: chain ${e} routes HTTP through a proxy, so the status stream needs \`gasless.statusStream.origin\` — the gateway's own origin. A proxy that forwards HTTP does not necessarily forward a WebSocket upgrade, and the stream is anonymous either way.`);
|
|
17
|
+
if (!s.protocolInstance) throw i("GASLESS_PROTOCOL_INSTANCE_REQUIRED", `Gasless: chain ${e} streams from \`statusStream.origin\` but declares no \`protocolInstance\`. The instance key selects the deployment and is checked on every stream message.`);
|
|
18
|
+
let t = n(e, {
|
|
19
|
+
url: c,
|
|
20
|
+
protocolInstance: s.protocolInstance
|
|
21
|
+
});
|
|
22
|
+
if (t.form !== "origin") throw i("GASLESS_STREAM_ORIGIN_REQUIRED", `Gasless: chain ${e} sets \`gasless.statusStream.origin\` to a url with a path. It must be the gateway's bare origin; the SDK appends the instance and service path itself.`);
|
|
23
|
+
return {
|
|
24
|
+
url: `${r(t.url)}/v1/instances/${encodeURIComponent(t.protocolInstance)}/${o}/ws`,
|
|
25
|
+
protocolInstance: t.protocolInstance,
|
|
26
|
+
service: o,
|
|
27
|
+
chainId: e
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
if (c) throw i("GASLESS_STREAM_ORIGIN_CONFLICT", `Gasless: chain ${e} sets \`gasless.statusStream.origin\` while its \`url\` already names the gateway. Remove the origin — the stream derives from \`url\` — or point \`url\` at your proxy.`);
|
|
31
|
+
let l = r(s.url);
|
|
32
|
+
return s.form === "origin" ? {
|
|
33
|
+
url: `${l}/v1/instances/${encodeURIComponent(s.protocolInstance)}/${o}/ws`,
|
|
34
|
+
protocolInstance: s.protocolInstance,
|
|
35
|
+
service: o,
|
|
36
|
+
chainId: e
|
|
37
|
+
} : s.form === "instance-root" ? {
|
|
38
|
+
url: `${l}/${o}/ws`,
|
|
39
|
+
protocolInstance: s.protocolInstance,
|
|
40
|
+
service: o,
|
|
41
|
+
chainId: e
|
|
42
|
+
} : {
|
|
43
|
+
url: `${l}/ws`,
|
|
44
|
+
protocolInstance: s.protocolInstance,
|
|
45
|
+
service: o,
|
|
46
|
+
chainId: e
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function o(e, t, n) {
|
|
50
|
+
try {
|
|
51
|
+
return a(e, t, n), !0;
|
|
52
|
+
} catch {
|
|
53
|
+
return !1;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { o as canResolveGaslessStreamUrl, a as resolveGaslessStreamUrl };
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=resolve-gasless-stream-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-gasless-stream-url.js","names":[],"sources":["../../../src/websocket/gasless/resolve-gasless-stream-url.ts"],"sourcesContent":["import type { SymmioGaslessConfig } from \"../../core/chains/types\";\nimport { assertGaslessUrlServes, parseGaslessUrl } from \"../../gasless/gasless-url\";\nimport type { GaslessService } from \"../../gasless/types\";\nimport { SymmError } from \"../../shared/errors/symm-error\";\n\n/**\n * A resolved status-stream endpoint: the `ws(s)://` URL to dial and the\n * protocol instance every message from it must name.\n *\n * @internal\n */\nexport interface GaslessStreamEndpoint {\n /** Full stream URL, `…/v1/instances/{instance}/{service}/ws`. */\n url: string;\n /** The instance the endpoint pins; the `ready` frame is checked against it. */\n protocolInstance: string;\n /** The service the stream carries. */\n service: GaslessService;\n /** The chain the endpoint was resolved for (for error messages and hub keys). */\n chainId: number;\n}\n\n/** Swap an `http(s)` scheme for its WebSocket counterpart. */\nfunction toWebSocketScheme(url: string): string {\n return url.replace(/^http:/i, \"ws:\").replace(/^https:/i, \"wss:\");\n}\n\nfunction streamError(code: string, message: string): SymmError {\n return new SymmError(\"config\", code, message);\n}\n\n/**\n * Resolve the status-stream endpoint for one `(chain, service)`.\n *\n * The stream shares the gateway's URL forms with HTTP, so both start from\n * {@link parseGaslessUrl}:\n *\n * - **origin** → `wss://host/v1/instances/{instance}/{service}/ws`\n * - **instance root** → the same, with the configured path\n * - **service base** → `{url}/ws`, for that service only\n * - **proxy root** → only from `statusStream.origin`, because a proxy that\n * forwards HTTP cannot be assumed to forward a WebSocket upgrade, and a\n * relative proxy path has no host core could turn into `ws(s)` without a\n * browser global\n *\n * The stream is anonymous: a browser `WebSocket` cannot send an `Authorization`\n * header, so `apiKey` never reaches it. A partner key raises HTTP limits only.\n *\n * @param chainId - The chain the config belongs to.\n * @param gasless - The chain's gasless config.\n * @param service - Which service's stream to resolve.\n * @returns The endpoint to dial.\n * @throws {SymmError} `GASLESS_STREAM_NOT_CONFIGURED` when `statusStream` is absent or disabled.\n * @throws {SymmError} `GASLESS_STREAM_ORIGIN_REQUIRED` for a proxy root with no `statusStream.origin`.\n * @throws {SymmError} `GASLESS_STREAM_ORIGIN_CONFLICT` when `origin` is set on a gateway url form.\n * @throws {SymmError} `GASLESS_PROTOCOL_INSTANCE_REQUIRED` when a proxy root declares no `protocolInstance`.\n * @throws {SymmError} Every {@link parseGaslessUrl} config error, plus `GASLESS_URL_SERVICE_MISMATCH`.\n *\n * @internal\n */\nexport function resolveGaslessStreamUrl(\n chainId: number,\n gasless: SymmioGaslessConfig,\n service: GaslessService,\n): GaslessStreamEndpoint {\n if (!gasless.statusStream?.enabled) {\n throw streamError(\n \"GASLESS_STREAM_NOT_CONFIGURED\",\n `Gasless: chain ${chainId} does not enable the status stream. Set \\`gasless.statusStream.enabled\\` once operators confirm the WebSocket for this deployment; until then status reads poll over HTTP.`,\n );\n }\n\n const parsed = parseGaslessUrl(chainId, gasless);\n assertGaslessUrlServes(chainId, parsed, service);\n const origin = gasless.statusStream.origin?.trim().replace(/\\/+$/, \"\");\n\n if (parsed.form === \"proxy-root\") {\n if (!origin) {\n throw streamError(\n \"GASLESS_STREAM_ORIGIN_REQUIRED\",\n `Gasless: chain ${chainId} routes HTTP through a proxy, so the status stream needs \\`gasless.statusStream.origin\\` — the gateway's own origin. A proxy that forwards HTTP does not necessarily forward a WebSocket upgrade, and the stream is anonymous either way.`,\n );\n }\n if (!parsed.protocolInstance) {\n throw streamError(\n \"GASLESS_PROTOCOL_INSTANCE_REQUIRED\",\n `Gasless: chain ${chainId} streams from \\`statusStream.origin\\` but declares no \\`protocolInstance\\`. The instance key selects the deployment and is checked on every stream message.`,\n );\n }\n const base = parseGaslessUrl(chainId, { url: origin, protocolInstance: parsed.protocolInstance });\n if (base.form !== \"origin\") {\n throw streamError(\n \"GASLESS_STREAM_ORIGIN_REQUIRED\",\n `Gasless: chain ${chainId} sets \\`gasless.statusStream.origin\\` to a url with a path. It must be the gateway's bare origin; the SDK appends the instance and service path itself.`,\n );\n }\n return {\n url: `${toWebSocketScheme(base.url)}/v1/instances/${encodeURIComponent(base.protocolInstance)}/${service}/ws`,\n protocolInstance: base.protocolInstance,\n service,\n chainId,\n };\n }\n\n if (origin) {\n throw streamError(\n \"GASLESS_STREAM_ORIGIN_CONFLICT\",\n `Gasless: chain ${chainId} sets \\`gasless.statusStream.origin\\` while its \\`url\\` already names the gateway. Remove the origin — the stream derives from \\`url\\` — or point \\`url\\` at your proxy.`,\n );\n }\n\n const base = toWebSocketScheme(parsed.url);\n if (parsed.form === \"origin\") {\n return {\n url: `${base}/v1/instances/${encodeURIComponent(parsed.protocolInstance)}/${service}/ws`,\n protocolInstance: parsed.protocolInstance,\n service,\n chainId,\n };\n }\n if (parsed.form === \"instance-root\") {\n return { url: `${base}/${service}/ws`, protocolInstance: parsed.protocolInstance, service, chainId };\n }\n return { url: `${base}/ws`, protocolInstance: parsed.protocolInstance, service, chainId };\n}\n\n/**\n * Whether `(chain, service)` has a status stream the SDK can dial.\n *\n * Non-throwing companion to {@link resolveGaslessStreamUrl}: a consumer can ask\n * before subscribing, and fall back to HTTP polling when the answer is `false`.\n *\n * @internal\n */\nexport function canResolveGaslessStreamUrl(\n chainId: number,\n gasless: SymmioGaslessConfig,\n service: GaslessService,\n): boolean {\n try {\n resolveGaslessStreamUrl(chainId, gasless, service);\n return true;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;AAuBA,SAAS,EAAkB,GAAqB;CAC9C,OAAO,EAAI,QAAQ,WAAW,KAAK,EAAE,QAAQ,YAAY,MAAM;AACjE;AAEA,SAAS,EAAY,GAAc,GAA4B;CAC7D,OAAO,IAAI,EAAU,UAAU,GAAM,CAAO;AAC9C;AA+BA,SAAgB,EACd,GACA,GACA,GACuB;CACvB,IAAI,CAAC,EAAQ,cAAc,SACzB,MAAM,EACJ,iCACA,kBAAkB,EAAQ,2KAC5B;CAGF,IAAM,IAAS,EAAgB,GAAS,CAAO;CAC/C,EAAuB,GAAS,GAAQ,CAAO;CAC/C,IAAM,IAAS,EAAQ,aAAa,QAAQ,KAAK,EAAE,QAAQ,QAAQ,EAAE;CAErE,IAAI,EAAO,SAAS,cAAc;EAChC,IAAI,CAAC,GACH,MAAM,EACJ,kCACA,kBAAkB,EAAQ,0OAC5B;EAEF,IAAI,CAAC,EAAO,kBACV,MAAM,EACJ,sCACA,kBAAkB,EAAQ,4JAC5B;EAEF,IAAM,IAAO,EAAgB,GAAS;GAAE,KAAK;GAAQ,kBAAkB,EAAO;EAAiB,CAAC;EAChG,IAAI,EAAK,SAAS,UAChB,MAAM,EACJ,kCACA,kBAAkB,EAAQ,wJAC5B;EAEF,OAAO;GACL,KAAK,GAAG,EAAkB,EAAK,GAAG,EAAE,gBAAgB,mBAAmB,EAAK,gBAAgB,EAAE,GAAG,EAAQ;GACzG,kBAAkB,EAAK;GACvB;GACA;EACF;CACF;CAEA,IAAI,GACF,MAAM,EACJ,kCACA,kBAAkB,EAAQ,yKAC5B;CAGF,IAAM,IAAO,EAAkB,EAAO,GAAG;CAYzC,OAXI,EAAO,SAAS,WACX;EACL,KAAK,GAAG,EAAK,gBAAgB,mBAAmB,EAAO,gBAAgB,EAAE,GAAG,EAAQ;EACpF,kBAAkB,EAAO;EACzB;EACA;CACF,IAEE,EAAO,SAAS,kBACX;EAAE,KAAK,GAAG,EAAK,GAAG,EAAQ;EAAM,kBAAkB,EAAO;EAAkB;EAAS;CAAQ,IAE9F;EAAE,KAAK,GAAG,EAAK;EAAM,kBAAkB,EAAO;EAAkB;EAAS;CAAQ;AAC1F;AAUA,SAAgB,EACd,GACA,GACA,GACS;CACT,IAAI;EAEF,OADA,EAAwB,GAAS,GAAS,CAAO,GAC1C;CACT,QAAQ;EACN,OAAO;CACT;AACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { GaslessRequest, GaslessRequestTransaction } from '../../gasless/types.js';
|
|
2
|
+
import { GaslessCloseReason } from './close-code-policy.js';
|
|
3
|
+
/**
|
|
4
|
+
* Health of a gasless status stream, as reported to watchers.
|
|
5
|
+
*
|
|
6
|
+
* `live` is the only state where HTTP polling can stand down: a selector is
|
|
7
|
+
* subscribed and the gateway has sent its snapshot. Every other state means the
|
|
8
|
+
* caller should keep (or resume) polling.
|
|
9
|
+
*/
|
|
10
|
+
export type GaslessStreamStatus =
|
|
11
|
+
/** No socket yet — nothing subscribed, or the first dial has not started. */
|
|
12
|
+
"idle"
|
|
13
|
+
/** Dialing, or waiting for the `ready` handshake and this selector's snapshot. */
|
|
14
|
+
| "connecting"
|
|
15
|
+
/** Subscribed and delivering; poll fallback can pause. */
|
|
16
|
+
| "live"
|
|
17
|
+
/** Temporarily not delivering (reconnecting, throttled, or over the subscription cap); poll meanwhile. */
|
|
18
|
+
| "degraded"
|
|
19
|
+
/** Permanently off for this config — streams disabled, unauthorized, misrouted, or a client bug. */
|
|
20
|
+
| "disabled";
|
|
21
|
+
/**
|
|
22
|
+
* Why a stream is in its current state, when that is not obvious from the
|
|
23
|
+
* status alone.
|
|
24
|
+
*/
|
|
25
|
+
export interface GaslessStreamStatusDetail {
|
|
26
|
+
/** The cause, from the close-code policy or the gateway's own command error. */
|
|
27
|
+
reason: GaslessCloseReason | "not-configured" | "not-found" | "subscription-limit" | "instance-mismatch" | "terminal";
|
|
28
|
+
/** WebSocket close code, when a close produced this state. */
|
|
29
|
+
closeCode?: number;
|
|
30
|
+
/** One sentence naming what would change it. */
|
|
31
|
+
detail: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* One delivery from a subscribed status stream.
|
|
35
|
+
*
|
|
36
|
+
* `snapshot` is the full current state, sent right after a subscribe (including
|
|
37
|
+
* after a reconnect); `update` follows every stored change. Both carry complete
|
|
38
|
+
* data, never a patch, so a consumer replaces its state from each one.
|
|
39
|
+
*/
|
|
40
|
+
export interface GaslessRequestStreamUpdate {
|
|
41
|
+
/** Whether this frame is the subscribe snapshot or a later change. */
|
|
42
|
+
kind: "snapshot" | "update";
|
|
43
|
+
/** The workflow record, or `null` when the gateway sent one the SDK could not normalize. */
|
|
44
|
+
request: GaslessRequest | null;
|
|
45
|
+
/** Every stored transaction attempt for the workflow, in the gateway's order. */
|
|
46
|
+
transactions: readonly GaslessRequestTransaction[];
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/websocket/gasless/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB;AAC7B,6EAA6E;AAC3E,MAAM;AACR,kFAAkF;GAChF,YAAY;AACd,0DAA0D;GACxD,MAAM;AACR,0GAA0G;GACxG,UAAU;AACZ,oGAAoG;GAClG,UAAU,CAAC;AAEf;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,gFAAgF;IAChF,MAAM,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,WAAW,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,UAAU,CAAC;IACtH,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,sEAAsE;IACtE,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,4FAA4F;IAC5F,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,iFAAiF;IACjF,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACpD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Config } from '../../core/config/index.js';
|
|
2
|
+
import { GaslessService } from '../../gasless/types.js';
|
|
3
|
+
import { SymmError } from '../../shared/errors/symm-error.js';
|
|
4
|
+
import { ChainIdParameter, Compute } from '../../shared/types/properties.js';
|
|
5
|
+
import { GaslessRequestStreamUpdate, GaslessStreamStatus, GaslessStreamStatusDetail } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parameters for {@link watchGaslessRequest}.
|
|
8
|
+
*/
|
|
9
|
+
export type WatchGaslessRequestParameters = Compute<ChainIdParameter & {
|
|
10
|
+
/** Stable service id returned by a gasless submit. */
|
|
11
|
+
requestId: string;
|
|
12
|
+
/** Which service stores the workflow. Defaults to `"operations"`. */
|
|
13
|
+
service?: GaslessService;
|
|
14
|
+
/** Called with the subscribe snapshot and every later change; both carry complete state. */
|
|
15
|
+
onUpdate: (update: GaslessRequestStreamUpdate) => void;
|
|
16
|
+
/** Called whenever the stream's health changes, so a caller can poll while it is not `live`. */
|
|
17
|
+
onStatusChange?: (status: GaslessStreamStatus, detail: GaslessStreamStatusDetail | null) => void;
|
|
18
|
+
/** Called on a stream-level error; the subscription stays and the caller keeps polling. */
|
|
19
|
+
onError?: (error: SymmError) => void;
|
|
20
|
+
}>;
|
|
21
|
+
/** Releases a {@link watchGaslessRequest} subscription. */
|
|
22
|
+
export type UnwatchGaslessRequest = () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Subscribe to one relayer workflow's live status.
|
|
25
|
+
*
|
|
26
|
+
* **Opens a socket and nothing else — it never issues HTTP.** The gateway's
|
|
27
|
+
* status stream is optional and off unless a deployment declares
|
|
28
|
+
* `gasless.statusStream.enabled`, so a caller pairs this with
|
|
29
|
+
* `getGaslessRequestQueryOptions` (or `useGaslessRequest`, which does it for
|
|
30
|
+
* you) and polls while `onStatusChange` reports anything but `"live"`. A
|
|
31
|
+
* `watch*` that silently became an HTTP poller would break its own contract:
|
|
32
|
+
* `Unwatch` would tear down two unlike resources and `onStatusChange` would
|
|
33
|
+
* describe a transport the data no longer came from.
|
|
34
|
+
*
|
|
35
|
+
* One socket per `(config, service, instance)` is shared by every watcher, its
|
|
36
|
+
* subscriptions are replayed after each reconnect, and a terminal workflow
|
|
37
|
+
* status unsubscribes itself.
|
|
38
|
+
*
|
|
39
|
+
* @param config - The SDK config.
|
|
40
|
+
* @param parameters - Request id, optional chain/service override, handlers.
|
|
41
|
+
* @returns An unwatch function that releases this subscription.
|
|
42
|
+
* @throws {SymmError} synchronously when the chain has no gasless block, the
|
|
43
|
+
* stream is not enabled, or the endpoint cannot be derived
|
|
44
|
+
* (`GASLESS_STREAM_NOT_CONFIGURED`, `GASLESS_STREAM_ORIGIN_REQUIRED`,
|
|
45
|
+
* `GASLESS_STREAM_ORIGIN_CONFLICT`, plus the url/config errors).
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const unwatch = watchGaslessRequest(config, {
|
|
50
|
+
* requestId,
|
|
51
|
+
* onUpdate: ({ request }) => render(request),
|
|
52
|
+
* onStatusChange: (status) => setPolling(status !== "live"),
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function watchGaslessRequest(config: Config, parameters: WatchGaslessRequestParameters): UnwatchGaslessRequest;
|
|
57
|
+
/**
|
|
58
|
+
* Whether `(chain, service)` can be streamed at all.
|
|
59
|
+
*
|
|
60
|
+
* Non-throwing: a consumer asks before subscribing and falls back to polling
|
|
61
|
+
* when the answer is `false` — an un-upgraded deployment, a proxy without a
|
|
62
|
+
* declared gateway origin, or simply a deployment whose operators have not
|
|
63
|
+
* enabled status WebSockets yet.
|
|
64
|
+
*
|
|
65
|
+
* @param config - The SDK config.
|
|
66
|
+
* @param parameters - Optional chain and service override.
|
|
67
|
+
* @returns `true` when {@link watchGaslessRequest} would resolve an endpoint.
|
|
68
|
+
*/
|
|
69
|
+
export declare function supportsGaslessStatusStream(config: Config, parameters?: Compute<ChainIdParameter & {
|
|
70
|
+
service?: GaslessService;
|
|
71
|
+
}>): boolean;
|
|
72
|
+
//# sourceMappingURL=watch-gasless-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-gasless-request.d.ts","sourceRoot":"","sources":["../../../src/websocket/gasless/watch-gasless-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAG/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE1G;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,OAAO,CACjD,gBAAgB,GAAG;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,4FAA4F;IAC5F,QAAQ,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACvD,gGAAgG;IAChG,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,yBAAyB,GAAG,IAAI,KAAK,IAAI,CAAC;IACjG,2FAA2F;IAC3F,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC,CACF,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,6BAA6B,GAAG,qBAAqB,CAsBpH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,OAAO,CAAC,gBAAgB,GAAG;IAAE,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,CAAM,GACxE,OAAO,CAST"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { resolveGaslessService as e } from "../../gasless/resolve-gasless.js";
|
|
2
|
+
import { isGaslessRequestTerminal as t } from "../../gasless/types.js";
|
|
3
|
+
import { acquireGaslessStreamSelector as n, releaseGaslessStreamSelector as r } from "./gasless-stream-hub.js";
|
|
4
|
+
import { canResolveGaslessStreamUrl as i, resolveGaslessStreamUrl as a } from "./resolve-gasless-stream-url.js";
|
|
5
|
+
//#region src/websocket/gasless/watch-gasless-request.ts
|
|
6
|
+
function o(i, o) {
|
|
7
|
+
let { chainId: s, requestId: c, service: l = "operations", onUpdate: u, onStatusChange: d, onError: f } = o, p = i.getChainConfig(s), m = e(i, { chainId: s }), h = a(p.chainId, m, l), g = {
|
|
8
|
+
kind: "request",
|
|
9
|
+
requestId: c
|
|
10
|
+
};
|
|
11
|
+
return n(i, {
|
|
12
|
+
endpoint: h,
|
|
13
|
+
selector: g,
|
|
14
|
+
listener: {
|
|
15
|
+
onUpdate: (e) => {
|
|
16
|
+
e.request && t(e.request.status) && r(i, h.url, g), u(e);
|
|
17
|
+
},
|
|
18
|
+
onStatusChange: d,
|
|
19
|
+
onError: f
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function s(t, n = {}) {
|
|
24
|
+
let { chainId: r, service: a = "operations" } = n;
|
|
25
|
+
try {
|
|
26
|
+
let n = t.getChainConfig(r), o = e(t, { chainId: r });
|
|
27
|
+
return i(n.chainId, o, a);
|
|
28
|
+
} catch {
|
|
29
|
+
return !1;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { s as supportsGaslessStatusStream, o as watchGaslessRequest };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=watch-gasless-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-gasless-request.js","names":[],"sources":["../../../src/websocket/gasless/watch-gasless-request.ts"],"sourcesContent":["import type { Config } from \"../../core/config\";\nimport { resolveGaslessService } from \"../../gasless/resolve-gasless\";\nimport { isGaslessRequestTerminal, type GaslessService } from \"../../gasless/types\";\nimport type { SymmError } from \"../../shared/errors/symm-error\";\nimport type { ChainIdParameter, Compute } from \"../../shared/types/properties\";\nimport { acquireGaslessStreamSelector, releaseGaslessStreamSelector } from \"./gasless-stream-hub\";\nimport { canResolveGaslessStreamUrl, resolveGaslessStreamUrl } from \"./resolve-gasless-stream-url\";\nimport type { GaslessRequestStreamUpdate, GaslessStreamStatus, GaslessStreamStatusDetail } from \"./types\";\n\n/**\n * Parameters for {@link watchGaslessRequest}.\n */\nexport type WatchGaslessRequestParameters = Compute<\n ChainIdParameter & {\n /** Stable service id returned by a gasless submit. */\n requestId: string;\n /** Which service stores the workflow. Defaults to `\"operations\"`. */\n service?: GaslessService;\n /** Called with the subscribe snapshot and every later change; both carry complete state. */\n onUpdate: (update: GaslessRequestStreamUpdate) => void;\n /** Called whenever the stream's health changes, so a caller can poll while it is not `live`. */\n onStatusChange?: (status: GaslessStreamStatus, detail: GaslessStreamStatusDetail | null) => void;\n /** Called on a stream-level error; the subscription stays and the caller keeps polling. */\n onError?: (error: SymmError) => void;\n }\n>;\n\n/** Releases a {@link watchGaslessRequest} subscription. */\nexport type UnwatchGaslessRequest = () => void;\n\n/**\n * Subscribe to one relayer workflow's live status.\n *\n * **Opens a socket and nothing else — it never issues HTTP.** The gateway's\n * status stream is optional and off unless a deployment declares\n * `gasless.statusStream.enabled`, so a caller pairs this with\n * `getGaslessRequestQueryOptions` (or `useGaslessRequest`, which does it for\n * you) and polls while `onStatusChange` reports anything but `\"live\"`. A\n * `watch*` that silently became an HTTP poller would break its own contract:\n * `Unwatch` would tear down two unlike resources and `onStatusChange` would\n * describe a transport the data no longer came from.\n *\n * One socket per `(config, service, instance)` is shared by every watcher, its\n * subscriptions are replayed after each reconnect, and a terminal workflow\n * status unsubscribes itself.\n *\n * @param config - The SDK config.\n * @param parameters - Request id, optional chain/service override, handlers.\n * @returns An unwatch function that releases this subscription.\n * @throws {SymmError} synchronously when the chain has no gasless block, the\n * stream is not enabled, or the endpoint cannot be derived\n * (`GASLESS_STREAM_NOT_CONFIGURED`, `GASLESS_STREAM_ORIGIN_REQUIRED`,\n * `GASLESS_STREAM_ORIGIN_CONFLICT`, plus the url/config errors).\n *\n * @example\n * ```ts\n * const unwatch = watchGaslessRequest(config, {\n * requestId,\n * onUpdate: ({ request }) => render(request),\n * onStatusChange: (status) => setPolling(status !== \"live\"),\n * });\n * ```\n */\nexport function watchGaslessRequest(config: Config, parameters: WatchGaslessRequestParameters): UnwatchGaslessRequest {\n const { chainId, requestId, service = \"operations\", onUpdate, onStatusChange, onError } = parameters;\n const chain = config.getChainConfig(chainId);\n const gasless = resolveGaslessService(config, { chainId });\n const endpoint = resolveGaslessStreamUrl(chain.chainId, gasless, service);\n const selector = { kind: \"request\", requestId } as const;\n\n return acquireGaslessStreamSelector(config, {\n endpoint,\n selector,\n listener: {\n onUpdate: (update) => {\n /** A terminal record ends the subscription: the gateway sends nothing more. */\n if (update.request && isGaslessRequestTerminal(update.request.status)) {\n releaseGaslessStreamSelector(config, endpoint.url, selector);\n }\n onUpdate(update);\n },\n onStatusChange,\n onError,\n },\n });\n}\n\n/**\n * Whether `(chain, service)` can be streamed at all.\n *\n * Non-throwing: a consumer asks before subscribing and falls back to polling\n * when the answer is `false` — an un-upgraded deployment, a proxy without a\n * declared gateway origin, or simply a deployment whose operators have not\n * enabled status WebSockets yet.\n *\n * @param config - The SDK config.\n * @param parameters - Optional chain and service override.\n * @returns `true` when {@link watchGaslessRequest} would resolve an endpoint.\n */\nexport function supportsGaslessStatusStream(\n config: Config,\n parameters: Compute<ChainIdParameter & { service?: GaslessService }> = {},\n): boolean {\n const { chainId, service = \"operations\" } = parameters;\n try {\n const chain = config.getChainConfig(chainId);\n const gasless = resolveGaslessService(config, { chainId });\n return canResolveGaslessStreamUrl(chain.chainId, gasless, service);\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;AA+DA,SAAgB,EAAoB,GAAgB,GAAkE;CACpH,IAAM,EAAE,YAAS,cAAW,aAAU,cAAc,aAAU,mBAAgB,eAAY,GACpF,IAAQ,EAAO,eAAe,CAAO,GACrC,IAAU,EAAsB,GAAQ,EAAE,WAAQ,CAAC,GACnD,IAAW,EAAwB,EAAM,SAAS,GAAS,CAAO,GAClE,IAAW;EAAE,MAAM;EAAW;CAAU;CAE9C,OAAO,EAA6B,GAAQ;EAC1C;EACA;EACA,UAAU;GACR,WAAW,MAAW;IAKpB,AAHI,EAAO,WAAW,EAAyB,EAAO,QAAQ,MAAM,KAClE,EAA6B,GAAQ,EAAS,KAAK,CAAQ,GAE7D,EAAS,CAAM;GACjB;GACA;GACA;EACF;CACF,CAAC;AACH;AAcA,SAAgB,EACd,GACA,IAAuE,CAAC,GAC/D;CACT,IAAM,EAAE,YAAS,aAAU,iBAAiB;CAC5C,IAAI;EACF,IAAM,IAAQ,EAAO,eAAe,CAAO,GACrC,IAAU,EAAsB,GAAQ,EAAE,WAAQ,CAAC;EACzD,OAAO,EAA2B,EAAM,SAAS,GAAS,CAAO;CACnE,QAAQ;EACN,OAAO;CACT;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
@@ -6,7 +6,10 @@ import { SocketStatus } from './socket-status.js';
|
|
|
6
6
|
* 10s exponential backoff with jitter).
|
|
7
7
|
*/
|
|
8
8
|
export interface ReconnectingSocketReconnectOptions {
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Redial when the connection closes, or a dial throws, without `close()`
|
|
11
|
+
* having been called. The close code is not inspected. Default `true`.
|
|
12
|
+
*/
|
|
10
13
|
enabled?: boolean;
|
|
11
14
|
/** Max consecutive retries before giving up. Default `Infinity`. */
|
|
12
15
|
maxAttempts?: number;
|
|
@@ -37,7 +40,13 @@ export interface SocketCloseInfo {
|
|
|
37
40
|
code?: number;
|
|
38
41
|
/** WebSocket close reason, if any. */
|
|
39
42
|
reason?: string;
|
|
40
|
-
/** Whether the
|
|
43
|
+
/** Whether the connection closed cleanly (the closing handshake completed), if the implementation reported it. */
|
|
44
|
+
wasClean?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether the socket will attempt to reconnect after this close. Calling
|
|
47
|
+
* {@link ReconnectingSocket.close} from inside `onClose` cancels a reconnect
|
|
48
|
+
* reported here as `true`.
|
|
49
|
+
*/
|
|
41
50
|
willReconnect: boolean;
|
|
42
51
|
}
|
|
43
52
|
/**
|
|
@@ -62,11 +71,20 @@ export interface ReconnectingSocketOptions {
|
|
|
62
71
|
heartbeat?: ReconnectingSocketHeartbeatOptions;
|
|
63
72
|
/** Called each time the socket transitions to `open`. */
|
|
64
73
|
onOpen?: () => void;
|
|
65
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* Called each time the underlying connection closes (transient or terminal).
|
|
76
|
+
* A dial that throws is reported to `onError` instead, and `close()` while no
|
|
77
|
+
* connection exists (for example during a backoff wait) settles the status
|
|
78
|
+
* without calling this.
|
|
79
|
+
*/
|
|
66
80
|
onClose?: (info: SocketCloseInfo) => void;
|
|
67
81
|
/** Called on a transport-level error; receives the raw error event. */
|
|
68
82
|
onError?: (event: unknown) => void;
|
|
69
|
-
/**
|
|
83
|
+
/**
|
|
84
|
+
* Called for each inbound frame; `data` is the raw `event.data` (usually a
|
|
85
|
+
* JSON string). Not called after `close()`, even for a frame the
|
|
86
|
+
* implementation still delivers while the connection finishes closing.
|
|
87
|
+
*/
|
|
70
88
|
onMessage?: (data: unknown) => void;
|
|
71
89
|
/** Called whenever {@link SocketStatus} changes. */
|
|
72
90
|
onStatusChange?: (status: SocketStatus) => void;
|
|
@@ -79,8 +97,23 @@ export interface ReconnectingSocketOptions {
|
|
|
79
97
|
export interface ReconnectingSocket {
|
|
80
98
|
/** Send a text frame now if open, otherwise buffer it until the next open. */
|
|
81
99
|
send(data: string): void;
|
|
82
|
-
/**
|
|
83
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Close permanently: cancel any pending reconnect, stop the heartbeat, drop
|
|
102
|
+
* buffered sends, and close the current connection. From this call on no
|
|
103
|
+
* frame reaches `onMessage`, even while the connection is still closing. Safe
|
|
104
|
+
* to call from any callback, including `onClose` and `onStatusChange`.
|
|
105
|
+
* Idempotent — only the first call acts, so a later call's `code` and
|
|
106
|
+
* `reason` are ignored.
|
|
107
|
+
*
|
|
108
|
+
* `code` and `reason` are checked before the connection is touched, the same
|
|
109
|
+
* way for every implementation and whether or not a connection is open. When
|
|
110
|
+
* either breaks the limits below, a `RangeError` goes to `onError` and the
|
|
111
|
+
* connection closes without them.
|
|
112
|
+
*
|
|
113
|
+
* @param code - Close code to send: `1000`, or an integer from `3000` to `4999` — the codes the WebSocket standard lets a client send. Any other code is rejected, even one the implementation would send (the `ws` package accepts `1001`).
|
|
114
|
+
* @param reason - Close reason to send, at most 123 UTF-8 bytes.
|
|
115
|
+
*/
|
|
116
|
+
close(code?: number, reason?: string): void;
|
|
84
117
|
/** Current connection status. */
|
|
85
118
|
getStatus(): SocketStatus;
|
|
86
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-reconnecting-socket.d.ts","sourceRoot":"","sources":["../../../src/websocket/socket/create-reconnecting-socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAiB,MAAM,8BAA8B,CAAC;AAExF,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAExE;;;;GAIG;AACH,MAAM,WAAW,kCAAkC;IACjD
|
|
1
|
+
{"version":3,"file":"create-reconnecting-socket.d.ts","sourceRoot":"","sources":["../../../src/websocket/socket/create-reconnecting-socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAiB,MAAM,8BAA8B,CAAC;AAExF,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAExE;;;;GAIG;AACH,MAAM,WAAW,kCAAkC;IACjD;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kHAAkH;IAClH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,+FAA+F;IAC/F,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IACjC,wBAAwB;IACxB,SAAS,CAAC,EAAE,kCAAkC,CAAC;IAC/C,wBAAwB;IACxB,SAAS,CAAC,EAAE,kCAAkC,CAAC;IAC/C,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,iCAAiC;IACjC,SAAS,IAAI,YAAY,CAAC;CAC3B;AA0BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAiO/F"}
|
|
@@ -1,101 +1,140 @@
|
|
|
1
1
|
import { computeBackoffDelay as e } from "./backoff.js";
|
|
2
2
|
import { SOCKET_READY_STATE as t } from "./socket-status.js";
|
|
3
3
|
//#region src/websocket/socket/create-reconnecting-socket.ts
|
|
4
|
-
|
|
4
|
+
var n = 123;
|
|
5
|
+
function r(e) {
|
|
6
|
+
return e === 1e3 || Number.isInteger(e) && e >= 3e3 && e <= 4999;
|
|
7
|
+
}
|
|
8
|
+
function i(e, t) {
|
|
9
|
+
if (e !== void 0 && !r(e)) return /* @__PURE__ */ RangeError(`WebSocket close code ${e} is not allowed; use 1000 or an integer from 3000 to 4999.`);
|
|
10
|
+
if (t === void 0) return;
|
|
11
|
+
let i = new TextEncoder().encode(t).length;
|
|
12
|
+
if (!(i <= n)) return /* @__PURE__ */ RangeError(`WebSocket close reason is ${i} UTF-8 bytes; the limit is ${n}.`);
|
|
13
|
+
}
|
|
14
|
+
function a(n) {
|
|
5
15
|
let r = {
|
|
6
16
|
enabled: n.reconnect?.enabled ?? !0,
|
|
7
17
|
maxAttempts: n.reconnect?.maxAttempts ?? Infinity,
|
|
8
18
|
baseDelayMs: n.reconnect?.baseDelayMs ?? 500,
|
|
9
19
|
maxDelayMs: n.reconnect?.maxDelayMs ?? 1e4,
|
|
10
20
|
jitter: n.reconnect?.jitter ?? !0
|
|
11
|
-
},
|
|
21
|
+
}, a = {
|
|
12
22
|
enabled: n.heartbeat?.enabled ?? !1,
|
|
13
23
|
intervalMs: n.heartbeat?.intervalMs ?? 3e4,
|
|
14
24
|
message: n.heartbeat?.message ?? "ping"
|
|
15
|
-
},
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
function p() {
|
|
20
|
-
u !== null && (clearTimeout(u), u = null);
|
|
25
|
+
}, o = null, s = "connecting", c = 0, l = !1, u = [], d = null, f = null;
|
|
26
|
+
function p(e) {
|
|
27
|
+
s !== e && (s = e, n.onStatusChange?.(e));
|
|
21
28
|
}
|
|
22
29
|
function m() {
|
|
23
|
-
d !== null && (
|
|
30
|
+
d !== null && (clearTimeout(d), d = null);
|
|
31
|
+
}
|
|
32
|
+
function h() {
|
|
33
|
+
f !== null && (clearInterval(f), f = null);
|
|
34
|
+
}
|
|
35
|
+
function g(e) {
|
|
36
|
+
return !l && o === e;
|
|
37
|
+
}
|
|
38
|
+
function _() {
|
|
39
|
+
return !l && r.enabled && c < r.maxAttempts;
|
|
24
40
|
}
|
|
25
|
-
function
|
|
41
|
+
function v(e, r) {
|
|
26
42
|
try {
|
|
27
43
|
e.readyState === t.OPEN && e.send(r);
|
|
28
44
|
} catch (e) {
|
|
29
45
|
n.onError?.(e);
|
|
30
46
|
}
|
|
31
47
|
}
|
|
32
|
-
function
|
|
33
|
-
|
|
48
|
+
function y(e) {
|
|
49
|
+
!a.enabled || !g(e) || (h(), f = setInterval(() => v(e, a.message), a.intervalMs));
|
|
34
50
|
}
|
|
35
|
-
function
|
|
36
|
-
|
|
51
|
+
function b() {
|
|
52
|
+
if (m(), l || (p("connecting"), l)) return;
|
|
37
53
|
let e;
|
|
38
54
|
try {
|
|
39
55
|
e = new n.webSocketConstructor(n.url, n.protocols);
|
|
40
56
|
} catch (e) {
|
|
41
|
-
n.onError?.(e),
|
|
57
|
+
n.onError?.(e), _() ? x() : p("closed");
|
|
42
58
|
return;
|
|
43
59
|
}
|
|
44
|
-
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
for (let n of t) h(e, n);
|
|
60
|
+
o = e, e.onopen = () => {
|
|
61
|
+
if (g(e) && (c = 0, p("open"), g(e) && (n.onOpen?.(), g(e)))) {
|
|
62
|
+
for (let t of n.getOpenMessages?.() ?? []) v(e, t);
|
|
63
|
+
if (u.length > 0) {
|
|
64
|
+
let t = u;
|
|
65
|
+
u = [];
|
|
66
|
+
for (let n of t) v(e, n);
|
|
52
67
|
}
|
|
53
|
-
|
|
68
|
+
y(e);
|
|
54
69
|
}
|
|
55
70
|
}, e.onmessage = (t) => {
|
|
56
|
-
|
|
71
|
+
g(e) && n.onMessage?.(t.data);
|
|
57
72
|
}, e.onerror = (t) => {
|
|
58
|
-
|
|
73
|
+
o === e && n.onError?.(t);
|
|
59
74
|
}, e.onclose = (t) => {
|
|
60
|
-
if (
|
|
61
|
-
|
|
62
|
-
let
|
|
75
|
+
if (o !== e) return;
|
|
76
|
+
h(), o = null;
|
|
77
|
+
let r = _();
|
|
63
78
|
if (n.onClose?.({
|
|
64
79
|
code: t?.code,
|
|
65
80
|
reason: t?.reason,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
81
|
+
wasClean: t?.wasClean,
|
|
82
|
+
willReconnect: r
|
|
83
|
+
}), r && !l) {
|
|
84
|
+
x();
|
|
69
85
|
return;
|
|
70
86
|
}
|
|
71
|
-
|
|
87
|
+
p("closed");
|
|
72
88
|
};
|
|
73
89
|
}
|
|
74
|
-
function
|
|
75
|
-
|
|
76
|
-
let t = e(
|
|
77
|
-
|
|
90
|
+
function x() {
|
|
91
|
+
if (l || (p("reconnecting"), l)) return;
|
|
92
|
+
let t = e(c, r, n.random);
|
|
93
|
+
c += 1, d = setTimeout(b, t);
|
|
78
94
|
}
|
|
79
|
-
function
|
|
80
|
-
|
|
95
|
+
function S(e) {
|
|
96
|
+
o && o.readyState === t.OPEN ? v(o, e) : u.push(e);
|
|
81
97
|
}
|
|
82
|
-
function
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
98
|
+
function C(e, t) {
|
|
99
|
+
try {
|
|
100
|
+
e.close();
|
|
101
|
+
} finally {
|
|
102
|
+
n.onError?.(t);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function w(e, t, n) {
|
|
106
|
+
if (t === void 0 && n === void 0) {
|
|
107
|
+
e.close();
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
e.close(t, n);
|
|
112
|
+
} catch (t) {
|
|
113
|
+
C(e, t);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function T(e, t) {
|
|
117
|
+
if (l) return;
|
|
118
|
+
l = !0, m(), h(), u = [];
|
|
119
|
+
let r = i(e, t), a = o;
|
|
120
|
+
if (!a) {
|
|
121
|
+
p("closed"), r && n.onError?.(r);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
p("closing");
|
|
125
|
+
try {
|
|
126
|
+
r ? C(a, r) : w(a, e, t);
|
|
127
|
+
} catch {
|
|
128
|
+
p("closed");
|
|
129
|
+
}
|
|
91
130
|
}
|
|
92
|
-
return
|
|
93
|
-
send:
|
|
94
|
-
close:
|
|
95
|
-
getStatus: () =>
|
|
131
|
+
return b(), {
|
|
132
|
+
send: S,
|
|
133
|
+
close: T,
|
|
134
|
+
getStatus: () => s
|
|
96
135
|
};
|
|
97
136
|
}
|
|
98
137
|
//#endregion
|
|
99
|
-
export {
|
|
138
|
+
export { a as createReconnectingSocket };
|
|
100
139
|
|
|
101
140
|
//# sourceMappingURL=create-reconnecting-socket.js.map
|