@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,163 @@
|
|
|
1
|
+
import { AbiFunction, Hex } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Which contract a relayable write targets.
|
|
4
|
+
*
|
|
5
|
+
* The transparent dispatcher does not read it — the seam that builds the call
|
|
6
|
+
* supplies the concrete address — but a gasless batch resolves each call's
|
|
7
|
+
* target from it (`relayGaslessBatch`), which is why it must name the contract
|
|
8
|
+
* that actually declares the function.
|
|
9
|
+
*/
|
|
10
|
+
export type GaslessRelayableTarget = "symmio" | "accountLayer" | "instantLayer";
|
|
11
|
+
/** One relayable write: its target contract and the workflow label to relay under. */
|
|
12
|
+
export interface GaslessRelayableWrite {
|
|
13
|
+
/** Contract the InstantLayer calls with this calldata. */
|
|
14
|
+
target: GaslessRelayableTarget;
|
|
15
|
+
/** Stable `operationType` label stored with relayed requests of this kind. */
|
|
16
|
+
operationType: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The selector → relayable-write map behind the transparent gasless mode.
|
|
20
|
+
* Selectors are derived from the shipped v0.8.6 ABIs at module load (never
|
|
21
|
+
* hardcoded), so an ABI change fails loudly here. Gasless is a perps-core-only
|
|
22
|
+
* facility, which makes the shipped ABIs exactly the deployment it targets.
|
|
23
|
+
*
|
|
24
|
+
* The map gates only what the SDK *attempts* — whether the vendor's fee policy
|
|
25
|
+
* accepts a selector is enforced server-side and surfaces as a submit error,
|
|
26
|
+
* so vendor policy never needs to be mirrored here.
|
|
27
|
+
*
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export declare const GASLESS_RELAYABLE_WRITES: ReadonlyMap<Hex, GaslessRelayableWrite>;
|
|
31
|
+
/**
|
|
32
|
+
* Every relayable write's ABI item, keyed by function name — the names a
|
|
33
|
+
* gasless batch call may use without passing an ABI
|
|
34
|
+
* (`{ functionName: "allocate", args }`), and each one's exact inputs.
|
|
35
|
+
*
|
|
36
|
+
* Derived from the same shipped ABIs as {@link GASLESS_RELAYABLE_SELECTORS}, so
|
|
37
|
+
* it holds exactly the relayable functions and can never name one the relayer
|
|
38
|
+
* would refuse. Use it to list the writes a batch can carry, or to show a
|
|
39
|
+
* call's signature.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* import { formatAbiItem } from "viem/utils";
|
|
44
|
+
*
|
|
45
|
+
* for (const item of GASLESS_RELAYABLE_FUNCTIONS.values()) console.log(formatAbiItem(item, { includeName: true }));
|
|
46
|
+
* // "allocate(uint256 amount)", …
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare const GASLESS_RELAYABLE_FUNCTIONS: ReadonlyMap<string, AbiFunction>;
|
|
50
|
+
/**
|
|
51
|
+
* Every selector the transparent gasless mode can relay.
|
|
52
|
+
*
|
|
53
|
+
* **Not a delegation set.** This list includes `grantDelegation`, because the
|
|
54
|
+
* relayer carries it like any other write — but delegating that selector buys a
|
|
55
|
+
* session key nothing. The InstantLayer routes an operation whose target is the
|
|
56
|
+
* InstantLayer itself to `_verifyGrantOperation`, which reverts unless the
|
|
57
|
+
* signer is the account owner, and `grantDelegation` is `onlyOwner` on top of
|
|
58
|
+
* that: a delegate-signed grant is rejected by the contract outright. Handing a
|
|
59
|
+
* key the selector would only turn a clear "the owner must sign this" into an
|
|
60
|
+
* opaque relay rejection, so no delegation set carries it. To onboard a key,
|
|
61
|
+
* use `getSessionKeySelectors`.
|
|
62
|
+
*/
|
|
63
|
+
export declare const GASLESS_RELAYABLE_SELECTORS: readonly Hex[];
|
|
64
|
+
/**
|
|
65
|
+
* The selectors safe to delegate to a session key for gasless account
|
|
66
|
+
* management — everything a key needs to run an account unattended **except**
|
|
67
|
+
* moving collateral out of it (see {@link GASLESS_SESSION_KEY_WITHDRAW_SELECTORS}).
|
|
68
|
+
*
|
|
69
|
+
* **Enumerated deliberately — never derived from {@link GASLESS_RELAYABLE_WRITES}.**
|
|
70
|
+
* Relayability and delegability are different questions. The first asks whether
|
|
71
|
+
* the relayer will carry a write at all; the second asks whether a browser-held
|
|
72
|
+
* key may sign it with no wallet prompt. Deriving this list from the map would
|
|
73
|
+
* widen a session key's authority every time a write becomes relayable, so each
|
|
74
|
+
* selector is listed here on its own merits.
|
|
75
|
+
*
|
|
76
|
+
* Deliberately absent, though relayable:
|
|
77
|
+
*
|
|
78
|
+
* - `initiateWithdraw` — the one write that picks a destination for the
|
|
79
|
+
* sub-account's collateral. It lives in
|
|
80
|
+
* {@link GASLESS_SESSION_KEY_WITHDRAW_SELECTORS}, granted only on an explicit
|
|
81
|
+
* opt-in.
|
|
82
|
+
* - `createSubAccounts` — the one relayable AccountLayer write with **no**
|
|
83
|
+
* `onlyAccountOwner` guard, so the InstantLayer's per-account delegation scope
|
|
84
|
+
* never confines it: a key granted this selector is not bounded to the account
|
|
85
|
+
* that granted it. It stays owner-signed for that reason, not because creating
|
|
86
|
+
* an account is sensitive.
|
|
87
|
+
* - `deleteSubAccount` — destroys the account the delegation is scoped to, which
|
|
88
|
+
* is not a step a key should take unattended.
|
|
89
|
+
* - `depositForAccount` and `depositAndAllocateForAccount` — `CoreFacet` funds
|
|
90
|
+
* these straight from the signer's own token balance, so they reach collateral
|
|
91
|
+
* that has not entered the sub-account yet.
|
|
92
|
+
* - `grantDelegation` — the contract rejects a delegate-signed grant (see
|
|
93
|
+
* {@link GASLESS_RELAYABLE_SELECTORS}), so it would relay only to revert.
|
|
94
|
+
*
|
|
95
|
+
* `editAccountName` and `forceClosePosition` **are** in the set: the first is
|
|
96
|
+
* scope-confined by `onlyAccountOwner` and writes nothing but a bounded display
|
|
97
|
+
* string, and the second is guarded identically to the two force-cancels beside
|
|
98
|
+
* it and can only finish a close the owner already initiated.
|
|
99
|
+
*
|
|
100
|
+
* Pair it with `grantDelegation` (itself relayable, so the onboarding grant
|
|
101
|
+
* needs no gas either) to give a key promptless account management. In an app
|
|
102
|
+
* that also trades, prefer `getSessionKeySelectors`, which unions this set with
|
|
103
|
+
* the trade lifecycle and resolves the chain's contracts generation for you.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```ts
|
|
107
|
+
* await grantDelegation(config, {
|
|
108
|
+
* account: { addr: subAccount, isPartyB: false },
|
|
109
|
+
* delegatedSigner: sessionKey,
|
|
110
|
+
* selectors: GASLESS_SESSION_KEY_SELECTORS,
|
|
111
|
+
* expiryTimestamp,
|
|
112
|
+
* gasless: true,
|
|
113
|
+
* });
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
export declare const GASLESS_SESSION_KEY_SELECTORS: readonly Hex[];
|
|
117
|
+
/**
|
|
118
|
+
* The withdrawal authority a session key only gets on an explicit opt-in:
|
|
119
|
+
* `initiateWithdraw`, and nothing else.
|
|
120
|
+
*
|
|
121
|
+
* It is split out of {@link GASLESS_SESSION_KEY_SELECTORS} because it is the one
|
|
122
|
+
* delegable write that names a destination.
|
|
123
|
+
* `initiateWithdraw(WithdrawPart[] parts, bool speedUp, bytes data)` carries a
|
|
124
|
+
* caller-supplied `receiver` in every part, so a key holding this selector can
|
|
125
|
+
* send the sub-account's collateral to an address of its own choosing — that is
|
|
126
|
+
* authority over the funds, not merely over the account's bookkeeping.
|
|
127
|
+
*
|
|
128
|
+
* The other two withdrawal writes stay in the base set precisely because they
|
|
129
|
+
* cannot do that: `finalizeWithdrawRequest(address user, uint256 requestId)` and
|
|
130
|
+
* `requestCancelWithdraw(uint256 requestId)` take no receiver at all. They can
|
|
131
|
+
* only settle or cancel a request whose destination an owner-signed
|
|
132
|
+
* `initiateWithdraw` already fixed, so the worst a key can do with them is
|
|
133
|
+
* complete or unwind a transfer the owner authorized.
|
|
134
|
+
*
|
|
135
|
+
* Grant it when a key must run withdrawals end to end unattended, and treat the
|
|
136
|
+
* grant as what it is: the key can drain the sub-account until the delegation
|
|
137
|
+
* expires or is revoked.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* await grantDelegation(config, {
|
|
142
|
+
* account: { addr: subAccount, isPartyB: false },
|
|
143
|
+
* delegatedSigner: sessionKey,
|
|
144
|
+
* selectors: [...GASLESS_SESSION_KEY_SELECTORS, ...GASLESS_SESSION_KEY_WITHDRAW_SELECTORS],
|
|
145
|
+
* expiryTimestamp,
|
|
146
|
+
* gasless: true,
|
|
147
|
+
* });
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
export declare const GASLESS_SESSION_KEY_WITHDRAW_SELECTORS: readonly Hex[];
|
|
151
|
+
/**
|
|
152
|
+
* Whether a calldata selector is relayable by the transparent gasless mode.
|
|
153
|
+
*
|
|
154
|
+
* @param selector - A `0x`-prefixed 4-byte selector (calldata's first 4 bytes).
|
|
155
|
+
* @returns `true` when the gasless dispatcher would attempt to relay it.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* isGaslessRelayableSelector(calldata.slice(0, 10) as Hex);
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
export declare function isGaslessRelayableSelector(selector: Hex): boolean;
|
|
163
|
+
//# sourceMappingURL=relayable-writes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayable-writes.d.ts","sourceRoot":"","sources":["../../src/gasless/relayable-writes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAahF;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC;AAEhF,sFAAsF;AACtF,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,8EAA8E;IAC9E,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,GAAG,EAAE,qBAAqB,CAgE3E,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CASxE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,GAAG,EAAyC,CAAC;AAEhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,GAAG,EAcvD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,sCAAsC,EAAE,SAAS,GAAG,EAEhE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAEjE"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { accountLayerAbi as e } from "../symmio-contracts/abi/v0.8.6/account-layer.js";
|
|
2
|
+
import { instantLayerAbi as t } from "../symmio-contracts/abi/v0.8.6/instant-layer.js";
|
|
3
|
+
import { symmioAbi as n } from "../symmio-contracts/abi/v0.8.6/symmio.js";
|
|
4
|
+
import { toFunctionSelector as r } from "viem";
|
|
5
|
+
//#region src/gasless/relayable-writes.ts
|
|
6
|
+
function i(e, t) {
|
|
7
|
+
let n = e.find((e) => e.type === "function" && e.name === t);
|
|
8
|
+
if (!n) throw Error(`relayable-writes: ABI is missing function "${t}" — the shipped ABI changed shape.`);
|
|
9
|
+
return r(n);
|
|
10
|
+
}
|
|
11
|
+
var a = new Map([
|
|
12
|
+
[i(n, "allocate"), {
|
|
13
|
+
target: "symmio",
|
|
14
|
+
operationType: "allocate"
|
|
15
|
+
}],
|
|
16
|
+
[i(n, "deallocate"), {
|
|
17
|
+
target: "symmio",
|
|
18
|
+
operationType: "deallocate"
|
|
19
|
+
}],
|
|
20
|
+
[i(n, "initiateWithdraw"), {
|
|
21
|
+
target: "symmio",
|
|
22
|
+
operationType: "initiateWithdraw"
|
|
23
|
+
}],
|
|
24
|
+
[i(n, "requestCancelWithdraw"), {
|
|
25
|
+
target: "symmio",
|
|
26
|
+
operationType: "requestCancelWithdraw"
|
|
27
|
+
}],
|
|
28
|
+
[i(n, "finalizeWithdrawRequest"), {
|
|
29
|
+
target: "symmio",
|
|
30
|
+
operationType: "finalizeWithdrawRequest"
|
|
31
|
+
}],
|
|
32
|
+
[i(n, "requestToCancelQuote"), {
|
|
33
|
+
target: "symmio",
|
|
34
|
+
operationType: "requestToCancelQuote"
|
|
35
|
+
}],
|
|
36
|
+
[i(n, "requestToCancelCloseRequest"), {
|
|
37
|
+
target: "symmio",
|
|
38
|
+
operationType: "requestToCancelCloseRequest"
|
|
39
|
+
}],
|
|
40
|
+
[i(n, "forceCancelQuote"), {
|
|
41
|
+
target: "symmio",
|
|
42
|
+
operationType: "forceCancelQuote"
|
|
43
|
+
}],
|
|
44
|
+
[i(n, "forceCancelCloseRequest"), {
|
|
45
|
+
target: "symmio",
|
|
46
|
+
operationType: "forceCancelCloseRequest"
|
|
47
|
+
}],
|
|
48
|
+
[i(n, "forceClosePosition"), {
|
|
49
|
+
target: "symmio",
|
|
50
|
+
operationType: "forceClosePosition"
|
|
51
|
+
}],
|
|
52
|
+
[i(n, "approveOperationalFeeWithMultiplier"), {
|
|
53
|
+
target: "symmio",
|
|
54
|
+
operationType: "approveOperationalFee"
|
|
55
|
+
}],
|
|
56
|
+
[i(e, "addMargin"), {
|
|
57
|
+
target: "accountLayer",
|
|
58
|
+
operationType: "addMargin"
|
|
59
|
+
}],
|
|
60
|
+
[i(e, "removeMargin"), {
|
|
61
|
+
target: "accountLayer",
|
|
62
|
+
operationType: "removeMargin"
|
|
63
|
+
}],
|
|
64
|
+
[i(e, "createSubAccounts"), {
|
|
65
|
+
target: "accountLayer",
|
|
66
|
+
operationType: "createSubAccounts"
|
|
67
|
+
}],
|
|
68
|
+
[i(e, "deleteSubAccount"), {
|
|
69
|
+
target: "accountLayer",
|
|
70
|
+
operationType: "deleteSubAccount"
|
|
71
|
+
}],
|
|
72
|
+
[i(e, "editAccountName"), {
|
|
73
|
+
target: "accountLayer",
|
|
74
|
+
operationType: "editAccountName"
|
|
75
|
+
}],
|
|
76
|
+
[i(e, "depositForAccount"), {
|
|
77
|
+
target: "accountLayer",
|
|
78
|
+
operationType: "depositForAccount"
|
|
79
|
+
}],
|
|
80
|
+
[i(e, "depositAndAllocateForAccount"), {
|
|
81
|
+
target: "accountLayer",
|
|
82
|
+
operationType: "depositAndAllocateForAccount"
|
|
83
|
+
}],
|
|
84
|
+
[i(t, "grantDelegation"), {
|
|
85
|
+
target: "instantLayer",
|
|
86
|
+
operationType: "grantDelegation"
|
|
87
|
+
}]
|
|
88
|
+
]), o = new Map([
|
|
89
|
+
n,
|
|
90
|
+
e,
|
|
91
|
+
t
|
|
92
|
+
].flatMap((e) => e.filter((e) => e.type === "function" && a.has(r(e))).map((e) => [e.name, e]))), s = [...a.keys()], c = [
|
|
93
|
+
i(n, "allocate"),
|
|
94
|
+
i(n, "deallocate"),
|
|
95
|
+
i(n, "requestCancelWithdraw"),
|
|
96
|
+
i(n, "finalizeWithdrawRequest"),
|
|
97
|
+
i(n, "requestToCancelQuote"),
|
|
98
|
+
i(n, "requestToCancelCloseRequest"),
|
|
99
|
+
i(n, "forceCancelQuote"),
|
|
100
|
+
i(n, "forceCancelCloseRequest"),
|
|
101
|
+
i(n, "forceClosePosition"),
|
|
102
|
+
i(n, "approveOperationalFeeWithMultiplier"),
|
|
103
|
+
i(e, "addMargin"),
|
|
104
|
+
i(e, "removeMargin"),
|
|
105
|
+
i(e, "editAccountName")
|
|
106
|
+
], l = [i(n, "initiateWithdraw")];
|
|
107
|
+
function u(e) {
|
|
108
|
+
return a.has(e.toLowerCase());
|
|
109
|
+
}
|
|
110
|
+
//#endregion
|
|
111
|
+
export { o as GASLESS_RELAYABLE_FUNCTIONS, s as GASLESS_RELAYABLE_SELECTORS, a as GASLESS_RELAYABLE_WRITES, c as GASLESS_SESSION_KEY_SELECTORS, l as GASLESS_SESSION_KEY_WITHDRAW_SELECTORS, u as isGaslessRelayableSelector };
|
|
112
|
+
|
|
113
|
+
//# sourceMappingURL=relayable-writes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayable-writes.js","names":[],"sources":["../../src/gasless/relayable-writes.ts"],"sourcesContent":["import { toFunctionSelector, type Abi, type AbiFunction, type Hex } from \"viem\";\nimport { accountLayerAbi } from \"../symmio-contracts/abi/v0.8.6/account-layer\";\nimport { instantLayerAbi } from \"../symmio-contracts/abi/v0.8.6/instant-layer\";\nimport { symmioAbi } from \"../symmio-contracts/abi/v0.8.6/symmio\";\n\nfunction selectorFromAbi(abi: Abi, name: string): Hex {\n const fragment = abi.find((item) => item.type === \"function\" && item.name === name) as AbiFunction | undefined;\n if (!fragment) {\n throw new Error(`relayable-writes: ABI is missing function \"${name}\" — the shipped ABI changed shape.`);\n }\n return toFunctionSelector(fragment);\n}\n\n/**\n * Which contract a relayable write targets.\n *\n * The transparent dispatcher does not read it — the seam that builds the call\n * supplies the concrete address — but a gasless batch resolves each call's\n * target from it (`relayGaslessBatch`), which is why it must name the contract\n * that actually declares the function.\n */\nexport type GaslessRelayableTarget = \"symmio\" | \"accountLayer\" | \"instantLayer\";\n\n/** One relayable write: its target contract and the workflow label to relay under. */\nexport interface GaslessRelayableWrite {\n /** Contract the InstantLayer calls with this calldata. */\n target: GaslessRelayableTarget;\n /** Stable `operationType` label stored with relayed requests of this kind. */\n operationType: string;\n}\n\n/**\n * The selector → relayable-write map behind the transparent gasless mode.\n * Selectors are derived from the shipped v0.8.6 ABIs at module load (never\n * hardcoded), so an ABI change fails loudly here. Gasless is a perps-core-only\n * facility, which makes the shipped ABIs exactly the deployment it targets.\n *\n * The map gates only what the SDK *attempts* — whether the vendor's fee policy\n * accepts a selector is enforced server-side and surfaces as a submit error,\n * so vendor policy never needs to be mirrored here.\n *\n * @internal\n */\nexport const GASLESS_RELAYABLE_WRITES: ReadonlyMap<Hex, GaslessRelayableWrite> = new Map<Hex, GaslessRelayableWrite>([\n /** AccountLayer._call-proxied core-diamond writes (signerAccount = the sub-account). */\n [selectorFromAbi(symmioAbi as Abi, \"allocate\"), { target: \"symmio\", operationType: \"allocate\" }],\n [selectorFromAbi(symmioAbi as Abi, \"deallocate\"), { target: \"symmio\", operationType: \"deallocate\" }],\n [selectorFromAbi(symmioAbi as Abi, \"initiateWithdraw\"), { target: \"symmio\", operationType: \"initiateWithdraw\" }],\n [\n selectorFromAbi(symmioAbi as Abi, \"requestCancelWithdraw\"),\n { target: \"symmio\", operationType: \"requestCancelWithdraw\" },\n ],\n [\n selectorFromAbi(symmioAbi as Abi, \"finalizeWithdrawRequest\"),\n { target: \"symmio\", operationType: \"finalizeWithdrawRequest\" },\n ],\n [\n selectorFromAbi(symmioAbi as Abi, \"requestToCancelQuote\"),\n { target: \"symmio\", operationType: \"requestToCancelQuote\" },\n ],\n [\n selectorFromAbi(symmioAbi as Abi, \"requestToCancelCloseRequest\"),\n { target: \"symmio\", operationType: \"requestToCancelCloseRequest\" },\n ],\n [selectorFromAbi(symmioAbi as Abi, \"forceCancelQuote\"), { target: \"symmio\", operationType: \"forceCancelQuote\" }],\n [\n selectorFromAbi(symmioAbi as Abi, \"forceCancelCloseRequest\"),\n { target: \"symmio\", operationType: \"forceCancelCloseRequest\" },\n ],\n [selectorFromAbi(symmioAbi as Abi, \"forceClosePosition\"), { target: \"symmio\", operationType: \"forceClosePosition\" }],\n [\n selectorFromAbi(symmioAbi as Abi, \"approveOperationalFeeWithMultiplier\"),\n { target: \"symmio\", operationType: \"approveOperationalFee\" },\n ],\n /**\n * Direct AccountLayer writes. The billing `signerAccount` differs per write:\n * the VA's parent sub-account for margin, the named sub-account for the rest,\n * and `gasless.account` (required) for `createSubAccounts`, whose accounts do\n * not exist yet.\n */\n [selectorFromAbi(accountLayerAbi as Abi, \"addMargin\"), { target: \"accountLayer\", operationType: \"addMargin\" }],\n [selectorFromAbi(accountLayerAbi as Abi, \"removeMargin\"), { target: \"accountLayer\", operationType: \"removeMargin\" }],\n [\n selectorFromAbi(accountLayerAbi as Abi, \"createSubAccounts\"),\n { target: \"accountLayer\", operationType: \"createSubAccounts\" },\n ],\n [\n selectorFromAbi(accountLayerAbi as Abi, \"deleteSubAccount\"),\n { target: \"accountLayer\", operationType: \"deleteSubAccount\" },\n ],\n [\n selectorFromAbi(accountLayerAbi as Abi, \"editAccountName\"),\n { target: \"accountLayer\", operationType: \"editAccountName\" },\n ],\n [\n selectorFromAbi(accountLayerAbi as Abi, \"depositForAccount\"),\n { target: \"accountLayer\", operationType: \"depositForAccount\" },\n ],\n [\n selectorFromAbi(accountLayerAbi as Abi, \"depositAndAllocateForAccount\"),\n { target: \"accountLayer\", operationType: \"depositAndAllocateForAccount\" },\n ],\n /** Direct InstantLayer write (signerAccount = the granting sub-account itself). */\n [\n selectorFromAbi(instantLayerAbi as Abi, \"grantDelegation\"),\n { target: \"instantLayer\", operationType: \"grantDelegation\" },\n ],\n]);\n\n/**\n * Every relayable write's ABI item, keyed by function name — the names a\n * gasless batch call may use without passing an ABI\n * (`{ functionName: \"allocate\", args }`), and each one's exact inputs.\n *\n * Derived from the same shipped ABIs as {@link GASLESS_RELAYABLE_SELECTORS}, so\n * it holds exactly the relayable functions and can never name one the relayer\n * would refuse. Use it to list the writes a batch can carry, or to show a\n * call's signature.\n *\n * @example\n * ```ts\n * import { formatAbiItem } from \"viem/utils\";\n *\n * for (const item of GASLESS_RELAYABLE_FUNCTIONS.values()) console.log(formatAbiItem(item, { includeName: true }));\n * // \"allocate(uint256 amount)\", …\n * ```\n */\nexport const GASLESS_RELAYABLE_FUNCTIONS: ReadonlyMap<string, AbiFunction> = new Map(\n [symmioAbi, accountLayerAbi, instantLayerAbi].flatMap((abi) =>\n (abi as Abi)\n .filter(\n (item): item is AbiFunction =>\n item.type === \"function\" && GASLESS_RELAYABLE_WRITES.has(toFunctionSelector(item)),\n )\n .map((item) => [item.name, item] as const),\n ),\n);\n\n/**\n * Every selector the transparent gasless mode can relay.\n *\n * **Not a delegation set.** This list includes `grantDelegation`, because the\n * relayer carries it like any other write — but delegating that selector buys a\n * session key nothing. The InstantLayer routes an operation whose target is the\n * InstantLayer itself to `_verifyGrantOperation`, which reverts unless the\n * signer is the account owner, and `grantDelegation` is `onlyOwner` on top of\n * that: a delegate-signed grant is rejected by the contract outright. Handing a\n * key the selector would only turn a clear \"the owner must sign this\" into an\n * opaque relay rejection, so no delegation set carries it. To onboard a key,\n * use `getSessionKeySelectors`.\n */\nexport const GASLESS_RELAYABLE_SELECTORS: readonly Hex[] = [...GASLESS_RELAYABLE_WRITES.keys()];\n\n/**\n * The selectors safe to delegate to a session key for gasless account\n * management — everything a key needs to run an account unattended **except**\n * moving collateral out of it (see {@link GASLESS_SESSION_KEY_WITHDRAW_SELECTORS}).\n *\n * **Enumerated deliberately — never derived from {@link GASLESS_RELAYABLE_WRITES}.**\n * Relayability and delegability are different questions. The first asks whether\n * the relayer will carry a write at all; the second asks whether a browser-held\n * key may sign it with no wallet prompt. Deriving this list from the map would\n * widen a session key's authority every time a write becomes relayable, so each\n * selector is listed here on its own merits.\n *\n * Deliberately absent, though relayable:\n *\n * - `initiateWithdraw` — the one write that picks a destination for the\n * sub-account's collateral. It lives in\n * {@link GASLESS_SESSION_KEY_WITHDRAW_SELECTORS}, granted only on an explicit\n * opt-in.\n * - `createSubAccounts` — the one relayable AccountLayer write with **no**\n * `onlyAccountOwner` guard, so the InstantLayer's per-account delegation scope\n * never confines it: a key granted this selector is not bounded to the account\n * that granted it. It stays owner-signed for that reason, not because creating\n * an account is sensitive.\n * - `deleteSubAccount` — destroys the account the delegation is scoped to, which\n * is not a step a key should take unattended.\n * - `depositForAccount` and `depositAndAllocateForAccount` — `CoreFacet` funds\n * these straight from the signer's own token balance, so they reach collateral\n * that has not entered the sub-account yet.\n * - `grantDelegation` — the contract rejects a delegate-signed grant (see\n * {@link GASLESS_RELAYABLE_SELECTORS}), so it would relay only to revert.\n *\n * `editAccountName` and `forceClosePosition` **are** in the set: the first is\n * scope-confined by `onlyAccountOwner` and writes nothing but a bounded display\n * string, and the second is guarded identically to the two force-cancels beside\n * it and can only finish a close the owner already initiated.\n *\n * Pair it with `grantDelegation` (itself relayable, so the onboarding grant\n * needs no gas either) to give a key promptless account management. In an app\n * that also trades, prefer `getSessionKeySelectors`, which unions this set with\n * the trade lifecycle and resolves the chain's contracts generation for you.\n *\n * @example\n * ```ts\n * await grantDelegation(config, {\n * account: { addr: subAccount, isPartyB: false },\n * delegatedSigner: sessionKey,\n * selectors: GASLESS_SESSION_KEY_SELECTORS,\n * expiryTimestamp,\n * gasless: true,\n * });\n * ```\n */\nexport const GASLESS_SESSION_KEY_SELECTORS: readonly Hex[] = [\n selectorFromAbi(symmioAbi as Abi, \"allocate\"),\n selectorFromAbi(symmioAbi as Abi, \"deallocate\"),\n selectorFromAbi(symmioAbi as Abi, \"requestCancelWithdraw\"),\n selectorFromAbi(symmioAbi as Abi, \"finalizeWithdrawRequest\"),\n selectorFromAbi(symmioAbi as Abi, \"requestToCancelQuote\"),\n selectorFromAbi(symmioAbi as Abi, \"requestToCancelCloseRequest\"),\n selectorFromAbi(symmioAbi as Abi, \"forceCancelQuote\"),\n selectorFromAbi(symmioAbi as Abi, \"forceCancelCloseRequest\"),\n selectorFromAbi(symmioAbi as Abi, \"forceClosePosition\"),\n selectorFromAbi(symmioAbi as Abi, \"approveOperationalFeeWithMultiplier\"),\n selectorFromAbi(accountLayerAbi as Abi, \"addMargin\"),\n selectorFromAbi(accountLayerAbi as Abi, \"removeMargin\"),\n selectorFromAbi(accountLayerAbi as Abi, \"editAccountName\"),\n];\n\n/**\n * The withdrawal authority a session key only gets on an explicit opt-in:\n * `initiateWithdraw`, and nothing else.\n *\n * It is split out of {@link GASLESS_SESSION_KEY_SELECTORS} because it is the one\n * delegable write that names a destination.\n * `initiateWithdraw(WithdrawPart[] parts, bool speedUp, bytes data)` carries a\n * caller-supplied `receiver` in every part, so a key holding this selector can\n * send the sub-account's collateral to an address of its own choosing — that is\n * authority over the funds, not merely over the account's bookkeeping.\n *\n * The other two withdrawal writes stay in the base set precisely because they\n * cannot do that: `finalizeWithdrawRequest(address user, uint256 requestId)` and\n * `requestCancelWithdraw(uint256 requestId)` take no receiver at all. They can\n * only settle or cancel a request whose destination an owner-signed\n * `initiateWithdraw` already fixed, so the worst a key can do with them is\n * complete or unwind a transfer the owner authorized.\n *\n * Grant it when a key must run withdrawals end to end unattended, and treat the\n * grant as what it is: the key can drain the sub-account until the delegation\n * expires or is revoked.\n *\n * @example\n * ```ts\n * await grantDelegation(config, {\n * account: { addr: subAccount, isPartyB: false },\n * delegatedSigner: sessionKey,\n * selectors: [...GASLESS_SESSION_KEY_SELECTORS, ...GASLESS_SESSION_KEY_WITHDRAW_SELECTORS],\n * expiryTimestamp,\n * gasless: true,\n * });\n * ```\n */\nexport const GASLESS_SESSION_KEY_WITHDRAW_SELECTORS: readonly Hex[] = [\n selectorFromAbi(symmioAbi as Abi, \"initiateWithdraw\"),\n];\n\n/**\n * Whether a calldata selector is relayable by the transparent gasless mode.\n *\n * @param selector - A `0x`-prefixed 4-byte selector (calldata's first 4 bytes).\n * @returns `true` when the gasless dispatcher would attempt to relay it.\n *\n * @example\n * ```ts\n * isGaslessRelayableSelector(calldata.slice(0, 10) as Hex);\n * ```\n */\nexport function isGaslessRelayableSelector(selector: Hex): boolean {\n return GASLESS_RELAYABLE_WRITES.has(selector.toLowerCase() as Hex);\n}\n"],"mappings":";;;;;AAKA,SAAS,EAAgB,GAAU,GAAmB;CACpD,IAAM,IAAW,EAAI,MAAM,MAAS,EAAK,SAAS,cAAc,EAAK,SAAS,CAAI;CAClF,IAAI,CAAC,GACH,MAAU,MAAM,8CAA8C,EAAK,mCAAmC;CAExG,OAAO,EAAmB,CAAQ;AACpC;AAgCA,IAAa,IAAoE,IAAI,IAAgC;CAEnH,CAAC,EAAgB,GAAkB,UAAU,GAAG;EAAE,QAAQ;EAAU,eAAe;CAAW,CAAC;CAC/F,CAAC,EAAgB,GAAkB,YAAY,GAAG;EAAE,QAAQ;EAAU,eAAe;CAAa,CAAC;CACnG,CAAC,EAAgB,GAAkB,kBAAkB,GAAG;EAAE,QAAQ;EAAU,eAAe;CAAmB,CAAC;CAC/G,CACE,EAAgB,GAAkB,uBAAuB,GACzD;EAAE,QAAQ;EAAU,eAAe;CAAwB,CAC7D;CACA,CACE,EAAgB,GAAkB,yBAAyB,GAC3D;EAAE,QAAQ;EAAU,eAAe;CAA0B,CAC/D;CACA,CACE,EAAgB,GAAkB,sBAAsB,GACxD;EAAE,QAAQ;EAAU,eAAe;CAAuB,CAC5D;CACA,CACE,EAAgB,GAAkB,6BAA6B,GAC/D;EAAE,QAAQ;EAAU,eAAe;CAA8B,CACnE;CACA,CAAC,EAAgB,GAAkB,kBAAkB,GAAG;EAAE,QAAQ;EAAU,eAAe;CAAmB,CAAC;CAC/G,CACE,EAAgB,GAAkB,yBAAyB,GAC3D;EAAE,QAAQ;EAAU,eAAe;CAA0B,CAC/D;CACA,CAAC,EAAgB,GAAkB,oBAAoB,GAAG;EAAE,QAAQ;EAAU,eAAe;CAAqB,CAAC;CACnH,CACE,EAAgB,GAAkB,qCAAqC,GACvE;EAAE,QAAQ;EAAU,eAAe;CAAwB,CAC7D;CAOA,CAAC,EAAgB,GAAwB,WAAW,GAAG;EAAE,QAAQ;EAAgB,eAAe;CAAY,CAAC;CAC7G,CAAC,EAAgB,GAAwB,cAAc,GAAG;EAAE,QAAQ;EAAgB,eAAe;CAAe,CAAC;CACnH,CACE,EAAgB,GAAwB,mBAAmB,GAC3D;EAAE,QAAQ;EAAgB,eAAe;CAAoB,CAC/D;CACA,CACE,EAAgB,GAAwB,kBAAkB,GAC1D;EAAE,QAAQ;EAAgB,eAAe;CAAmB,CAC9D;CACA,CACE,EAAgB,GAAwB,iBAAiB,GACzD;EAAE,QAAQ;EAAgB,eAAe;CAAkB,CAC7D;CACA,CACE,EAAgB,GAAwB,mBAAmB,GAC3D;EAAE,QAAQ;EAAgB,eAAe;CAAoB,CAC/D;CACA,CACE,EAAgB,GAAwB,8BAA8B,GACtE;EAAE,QAAQ;EAAgB,eAAe;CAA+B,CAC1E;CAEA,CACE,EAAgB,GAAwB,iBAAiB,GACzD;EAAE,QAAQ;EAAgB,eAAe;CAAkB,CAC7D;AACF,CAAC,GAoBY,IAAgE,IAAI,IAC/E;CAAC;CAAW;CAAiB;AAAe,EAAE,SAAS,MACpD,EACE,QACE,MACC,EAAK,SAAS,cAAc,EAAyB,IAAI,EAAmB,CAAI,CAAC,CACrF,EACC,KAAK,MAAS,CAAC,EAAK,MAAM,CAAI,CAAU,CAC7C,CACF,GAea,IAA8C,CAAC,GAAG,EAAyB,KAAK,CAAC,GAsDjF,IAAgD;CAC3D,EAAgB,GAAkB,UAAU;CAC5C,EAAgB,GAAkB,YAAY;CAC9C,EAAgB,GAAkB,uBAAuB;CACzD,EAAgB,GAAkB,yBAAyB;CAC3D,EAAgB,GAAkB,sBAAsB;CACxD,EAAgB,GAAkB,6BAA6B;CAC/D,EAAgB,GAAkB,kBAAkB;CACpD,EAAgB,GAAkB,yBAAyB;CAC3D,EAAgB,GAAkB,oBAAoB;CACtD,EAAgB,GAAkB,qCAAqC;CACvE,EAAgB,GAAwB,WAAW;CACnD,EAAgB,GAAwB,cAAc;CACtD,EAAgB,GAAwB,iBAAiB;AAC3D,GAmCa,IAAyD,CACpE,EAAgB,GAAkB,kBAAkB,CACtD;AAaA,SAAgB,EAA2B,GAAwB;CACjE,OAAO,EAAyB,IAAI,EAAS,YAAY,CAAQ;AACnE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { SymmioGaslessConfig } from '../core/chains/types.js';
|
|
2
|
+
import { Config } from '../core/config/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parameters for {@link resolveGaslessService} / {@link supportsGaslessService}.
|
|
5
|
+
*/
|
|
6
|
+
export interface ResolveGaslessServiceParameters {
|
|
7
|
+
/** Target chain id. Defaults to the config's `defaultChainId`. */
|
|
8
|
+
chainId?: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the GaslessQ relayer service for a chain.
|
|
12
|
+
*
|
|
13
|
+
* Gasless is **chain-level**: a chain either carries a `gasless` block
|
|
14
|
+
* ({@link SymmioGaslessConfig}) or it does not — no solver is involved. The
|
|
15
|
+
* service additionally requires the perps-core contracts generation: the
|
|
16
|
+
* relayer verifies operations against the GaslessLayer/InstantLayer pair that
|
|
17
|
+
* only exists on `"0.8.6"` deployments, and backward compatibility with older
|
|
18
|
+
* contracts is intentionally unsupported. Both conditions fail fast here with
|
|
19
|
+
* a typed error, so a gasless action never signs a payload the gateway would
|
|
20
|
+
* reject.
|
|
21
|
+
*
|
|
22
|
+
* @param config - The SDK config.
|
|
23
|
+
* @param parameters - Optional chain override.
|
|
24
|
+
* @returns The chain's {@link SymmioGaslessConfig}.
|
|
25
|
+
* @throws {SymmError} `GASLESS_NOT_CONFIGURED` when the chain has no gasless block.
|
|
26
|
+
* @throws {SymmError} `GASLESS_UNSUPPORTED_CONTRACTS_VERSION` when the chain's
|
|
27
|
+
* `contractsVersion` is not `"0.8.6"`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* const { url, gaslessLayerAddress } = resolveGaslessService(config, { chainId });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveGaslessService(config: Config, parameters?: ResolveGaslessServiceParameters): SymmioGaslessConfig;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the chain has a usable GaslessQ relayer service — the boolean twin of
|
|
37
|
+
* {@link resolveGaslessService}. Non-throwing: returns `false` for a chain
|
|
38
|
+
* without a gasless block, a non-perps-core chain, or an unknown chain. Use it
|
|
39
|
+
* for `enabled` gates and UI so gasless features hide instead of erroring where
|
|
40
|
+
* the relayer is unavailable.
|
|
41
|
+
*
|
|
42
|
+
* @param config - The SDK config.
|
|
43
|
+
* @param parameters - Optional chain override.
|
|
44
|
+
* @returns `true` when the chain has a usable gasless relayer configured.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* if (supportsGaslessService(config, { chainId })) showGaslessToggle();
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function supportsGaslessService(config: Config, parameters?: ResolveGaslessServiceParameters): boolean;
|
|
52
|
+
//# sourceMappingURL=resolve-gasless.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-gasless.d.ts","sourceRoot":"","sources":["../../src/gasless/resolve-gasless.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,+BAAoC,GAC/C,mBAAmB,CAiBrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,+BAAoC,GAAG,OAAO,CAOhH"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SymmError as e } from "../shared/errors/symm-error.js";
|
|
2
|
+
//#region src/gasless/resolve-gasless.ts
|
|
3
|
+
function t(t, n = {}) {
|
|
4
|
+
let r = t.getChainConfig(n.chainId);
|
|
5
|
+
if (!r.gasless) throw new e("config", "GASLESS_NOT_CONFIGURED", `Gasless: chain ${r.chainId} has no gasless relayer service configured.`);
|
|
6
|
+
if (r.contractsVersion !== "0.8.6") throw new e("config", "GASLESS_UNSUPPORTED_CONTRACTS_VERSION", `Gasless: chain ${r.chainId} runs contracts ${r.contractsVersion}, but the gasless relayer supports only perps-core ("0.8.6") deployments.`);
|
|
7
|
+
return r.gasless;
|
|
8
|
+
}
|
|
9
|
+
function n(e, n = {}) {
|
|
10
|
+
try {
|
|
11
|
+
return t(e, n), !0;
|
|
12
|
+
} catch {
|
|
13
|
+
return !1;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { t as resolveGaslessService, n as supportsGaslessService };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=resolve-gasless.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-gasless.js","names":[],"sources":["../../src/gasless/resolve-gasless.ts"],"sourcesContent":["import type { SymmioGaslessConfig } from \"../core/chains/types\";\nimport type { Config } from \"../core/config\";\nimport { SymmError } from \"../shared/errors/symm-error\";\n\n/**\n * Parameters for {@link resolveGaslessService} / {@link supportsGaslessService}.\n */\nexport interface ResolveGaslessServiceParameters {\n /** Target chain id. Defaults to the config's `defaultChainId`. */\n chainId?: number;\n}\n\n/**\n * Resolve the GaslessQ relayer service for a chain.\n *\n * Gasless is **chain-level**: a chain either carries a `gasless` block\n * ({@link SymmioGaslessConfig}) or it does not — no solver is involved. The\n * service additionally requires the perps-core contracts generation: the\n * relayer verifies operations against the GaslessLayer/InstantLayer pair that\n * only exists on `\"0.8.6\"` deployments, and backward compatibility with older\n * contracts is intentionally unsupported. Both conditions fail fast here with\n * a typed error, so a gasless action never signs a payload the gateway would\n * reject.\n *\n * @param config - The SDK config.\n * @param parameters - Optional chain override.\n * @returns The chain's {@link SymmioGaslessConfig}.\n * @throws {SymmError} `GASLESS_NOT_CONFIGURED` when the chain has no gasless block.\n * @throws {SymmError} `GASLESS_UNSUPPORTED_CONTRACTS_VERSION` when the chain's\n * `contractsVersion` is not `\"0.8.6\"`.\n *\n * @example\n * ```ts\n * const { url, gaslessLayerAddress } = resolveGaslessService(config, { chainId });\n * ```\n */\nexport function resolveGaslessService(\n config: Config,\n parameters: ResolveGaslessServiceParameters = {},\n): SymmioGaslessConfig {\n const chain = config.getChainConfig(parameters.chainId);\n if (!chain.gasless) {\n throw new SymmError(\n \"config\",\n \"GASLESS_NOT_CONFIGURED\",\n `Gasless: chain ${chain.chainId} has no gasless relayer service configured.`,\n );\n }\n if (chain.contractsVersion !== \"0.8.6\") {\n throw new SymmError(\n \"config\",\n \"GASLESS_UNSUPPORTED_CONTRACTS_VERSION\",\n `Gasless: chain ${chain.chainId} runs contracts ${chain.contractsVersion}, but the gasless relayer supports only perps-core (\"0.8.6\") deployments.`,\n );\n }\n return chain.gasless;\n}\n\n/**\n * Whether the chain has a usable GaslessQ relayer service — the boolean twin of\n * {@link resolveGaslessService}. Non-throwing: returns `false` for a chain\n * without a gasless block, a non-perps-core chain, or an unknown chain. Use it\n * for `enabled` gates and UI so gasless features hide instead of erroring where\n * the relayer is unavailable.\n *\n * @param config - The SDK config.\n * @param parameters - Optional chain override.\n * @returns `true` when the chain has a usable gasless relayer configured.\n *\n * @example\n * ```ts\n * if (supportsGaslessService(config, { chainId })) showGaslessToggle();\n * ```\n */\nexport function supportsGaslessService(config: Config, parameters: ResolveGaslessServiceParameters = {}): boolean {\n try {\n resolveGaslessService(config, parameters);\n return true;\n } catch {\n return false;\n }\n}\n"],"mappings":";;AAoCA,SAAgB,EACd,GACA,IAA8C,CAAC,GAC1B;CACrB,IAAM,IAAQ,EAAO,eAAe,EAAW,OAAO;CACtD,IAAI,CAAC,EAAM,SACT,MAAM,IAAI,EACR,UACA,0BACA,kBAAkB,EAAM,QAAQ,4CAClC;CAEF,IAAI,EAAM,qBAAqB,SAC7B,MAAM,IAAI,EACR,UACA,yCACA,kBAAkB,EAAM,QAAQ,kBAAkB,EAAM,iBAAiB,0EAC3E;CAEF,OAAO,EAAM;AACf;AAkBA,SAAgB,EAAuB,GAAgB,IAA8C,CAAC,GAAY;CAChH,IAAI;EAEF,OADA,EAAsB,GAAQ,CAAU,GACjC;CACT,QAAQ;EACN,OAAO;CACT;AACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Address } from 'viem';
|
|
2
|
+
import { Config } from '../core/config/index.js';
|
|
3
|
+
/** The identities the GaslessLayer derives from a wallet operation's signer account. @internal */
|
|
4
|
+
export interface GaslessWalletIdentities {
|
|
5
|
+
/** The account delegations are checked on: a live virtual account's parent, otherwise the account itself. */
|
|
6
|
+
canonicalAccount: Address;
|
|
7
|
+
/** The owner the wallet belongs to — `ownerOf(canonicalAccount)`, or the account itself when it has none. */
|
|
8
|
+
ownerWallet: Address;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The identities the GaslessLayer derives from a wallet operation, mirroring
|
|
12
|
+
* `GaslessWalletExecutionLib._walletOwnerForOperation`.
|
|
13
|
+
*
|
|
14
|
+
* A **live** virtual account rolls up to its parent (a deleted one stays
|
|
15
|
+
* itself, so a historical VA cannot widen authority); the wallet then belongs
|
|
16
|
+
* to `ownerOf(canonicalAccount)`, falling back to the account itself when the
|
|
17
|
+
* AccountLayer knows no owner — which is exactly what makes a bare EOA resolve
|
|
18
|
+
* to its own wallet.
|
|
19
|
+
*
|
|
20
|
+
* @param config - The SDK config.
|
|
21
|
+
* @param parameters - The chain and the operation's `signerAccount.addr`.
|
|
22
|
+
* @returns The canonical account and the wallet owner.
|
|
23
|
+
*
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveGaslessWalletIdentities(config: Config, parameters: {
|
|
27
|
+
chainId?: number;
|
|
28
|
+
account: Address;
|
|
29
|
+
}): Promise<GaslessWalletIdentities>;
|
|
30
|
+
//# sourceMappingURL=resolve-wallet-identities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-wallet-identities.d.ts","sourceRoot":"","sources":["../../src/gasless/resolve-wallet-identities.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,kGAAkG;AAClG,MAAM,WAAW,uBAAuB;IACtC,6GAA6G;IAC7G,gBAAgB,EAAE,OAAO,CAAC;IAC1B,6GAA6G;IAC7G,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAAC,uBAAuB,CAAC,CAUlC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getVirtualAccount as e } from "../symmio-contracts/account-layer/actions/get-virtual-account.js";
|
|
2
|
+
import { getSubAccount as t } from "../symmio-contracts/account-layer/actions/get-sub-account.js";
|
|
3
|
+
import { isAddressEqual as n, zeroAddress as r } from "viem";
|
|
4
|
+
//#region src/gasless/resolve-wallet-identities.ts
|
|
5
|
+
async function i(i, a) {
|
|
6
|
+
let { chainId: o, account: s } = a, c = await e(i, {
|
|
7
|
+
chainId: o,
|
|
8
|
+
account: s
|
|
9
|
+
}), l = c.isExists ? c.parentAccount : s, u = await t(i, {
|
|
10
|
+
chainId: o,
|
|
11
|
+
account: l
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
canonicalAccount: l,
|
|
15
|
+
ownerWallet: u.isExists && !n(u.owner, r) ? u.owner : l
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { i as resolveGaslessWalletIdentities };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=resolve-wallet-identities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-wallet-identities.js","names":[],"sources":["../../src/gasless/resolve-wallet-identities.ts"],"sourcesContent":["import { isAddressEqual, zeroAddress, type Address } from \"viem\";\nimport type { Config } from \"../core/config\";\nimport { getSubAccount } from \"../symmio-contracts/account-layer/actions/get-sub-account\";\nimport { getVirtualAccount } from \"../symmio-contracts/account-layer/actions/get-virtual-account\";\n\n/** The identities the GaslessLayer derives from a wallet operation's signer account. @internal */\nexport interface GaslessWalletIdentities {\n /** The account delegations are checked on: a live virtual account's parent, otherwise the account itself. */\n canonicalAccount: Address;\n /** The owner the wallet belongs to — `ownerOf(canonicalAccount)`, or the account itself when it has none. */\n ownerWallet: Address;\n}\n\n/**\n * The identities the GaslessLayer derives from a wallet operation, mirroring\n * `GaslessWalletExecutionLib._walletOwnerForOperation`.\n *\n * A **live** virtual account rolls up to its parent (a deleted one stays\n * itself, so a historical VA cannot widen authority); the wallet then belongs\n * to `ownerOf(canonicalAccount)`, falling back to the account itself when the\n * AccountLayer knows no owner — which is exactly what makes a bare EOA resolve\n * to its own wallet.\n *\n * @param config - The SDK config.\n * @param parameters - The chain and the operation's `signerAccount.addr`.\n * @returns The canonical account and the wallet owner.\n *\n * @internal\n */\nexport async function resolveGaslessWalletIdentities(\n config: Config,\n parameters: { chainId?: number; account: Address },\n): Promise<GaslessWalletIdentities> {\n const { chainId, account } = parameters;\n\n const virtualAccount = await getVirtualAccount(config, { chainId, account });\n const canonicalAccount = virtualAccount.isExists ? virtualAccount.parentAccount : account;\n\n const detail = await getSubAccount(config, { chainId, account: canonicalAccount });\n const ownerWallet = detail.isExists && !isAddressEqual(detail.owner, zeroAddress) ? detail.owner : canonicalAccount;\n\n return { canonicalAccount, ownerWallet };\n}\n"],"mappings":";;;;AA6BA,eAAsB,EACpB,GACA,GACkC;CAClC,IAAM,EAAE,YAAS,eAAY,GAEvB,IAAiB,MAAM,EAAkB,GAAQ;EAAE;EAAS;CAAQ,CAAC,GACrE,IAAmB,EAAe,WAAW,EAAe,gBAAgB,GAE5E,IAAS,MAAM,EAAc,GAAQ;EAAE;EAAS,SAAS;CAAiB,CAAC;CAGjF,OAAO;EAAE;EAAkB,aAFP,EAAO,YAAY,CAAC,EAAe,EAAO,OAAO,CAAW,IAAI,EAAO,QAAQ;CAE5D;AACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gasless/resubmit-gasless-request/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Config } from '../../core/config/index.js';
|
|
2
|
+
import { ResubmitGaslessRequestParameters, ResubmitGaslessRequestReturnType } from './resubmit-gasless-request.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build TanStack Mutation options for {@link resubmitGaslessRequest}.
|
|
5
|
+
*
|
|
6
|
+
* @param config - The SDK config.
|
|
7
|
+
* @returns Options to pass to `useMutation`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const resubmit = useMutation(resubmitGaslessRequestMutationOptions(config));
|
|
12
|
+
* resubmit.mutate(pendingSubmit);
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function resubmitGaslessRequestMutationOptions(config: Config): {
|
|
16
|
+
mutationKey: readonly ["resubmitGaslessRequest"];
|
|
17
|
+
mutationFn: (variables: ResubmitGaslessRequestParameters) => Promise<ResubmitGaslessRequestReturnType>;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/gasless/resubmit-gasless-request/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACtC,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,MAAM;;4BAGxC,gCAAgC,KAAG,OAAO,CAAC,gCAAgC,CAAC;EAGvG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { resubmitGaslessRequest as e } from "./resubmit-gasless-request.js";
|
|
2
|
+
//#region src/gasless/resubmit-gasless-request/query.ts
|
|
3
|
+
function t(t) {
|
|
4
|
+
return {
|
|
5
|
+
mutationKey: ["resubmitGaslessRequest"],
|
|
6
|
+
mutationFn: (n) => e(t, n)
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { t as resubmitGaslessRequestMutationOptions };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","names":[],"sources":["../../../src/gasless/resubmit-gasless-request/query.ts"],"sourcesContent":["import type { Config } from \"../../core/config\";\nimport {\n resubmitGaslessRequest,\n type ResubmitGaslessRequestParameters,\n type ResubmitGaslessRequestReturnType,\n} from \"./resubmit-gasless-request\";\n\n/**\n * Build TanStack Mutation options for {@link resubmitGaslessRequest}.\n *\n * @param config - The SDK config.\n * @returns Options to pass to `useMutation`.\n *\n * @example\n * ```ts\n * const resubmit = useMutation(resubmitGaslessRequestMutationOptions(config));\n * resubmit.mutate(pendingSubmit);\n * ```\n */\nexport function resubmitGaslessRequestMutationOptions(config: Config) {\n return {\n mutationKey: [\"resubmitGaslessRequest\"] as const,\n mutationFn: (variables: ResubmitGaslessRequestParameters): Promise<ResubmitGaslessRequestReturnType> =>\n resubmitGaslessRequest(config, variables),\n };\n}\n"],"mappings":";;AAmBA,SAAgB,EAAsC,GAAgB;CACpE,OAAO;EACL,aAAa,CAAC,wBAAwB;EACtC,aAAa,MACX,EAAuB,GAAQ,CAAS;CAC5C;AACF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Config } from '../../core/config/index.js';
|
|
2
|
+
import { GaslessDepositSubmitReceipt, GaslessSubmitReceipt } from '../types.js';
|
|
3
|
+
import { GaslessUnconfirmedSubmit } from '../unconfirmed-submit.js';
|
|
4
|
+
/** Parameters for {@link resubmitGaslessRequest}: the recorded submit, unchanged. */
|
|
5
|
+
export type ResubmitGaslessRequestParameters = GaslessUnconfirmedSubmit;
|
|
6
|
+
/** Return type of {@link resubmitGaslessRequest}. */
|
|
7
|
+
export type ResubmitGaslessRequestReturnType = GaslessSubmitReceipt | GaslessDepositSubmitReceipt;
|
|
8
|
+
/**
|
|
9
|
+
* Resend an **unconfirmed** gasless submit, byte for byte, under its original
|
|
10
|
+
* idempotency key.
|
|
11
|
+
*
|
|
12
|
+
* This is the vendor's prescribed recovery for a lost response: the same key
|
|
13
|
+
* with the same payload either lands the request or returns the record the
|
|
14
|
+
* service already created, so it can never execute the intent twice. It is the
|
|
15
|
+
* *only* safe response to `GASLESS_SUBMIT_UNCONFIRMED` — re-running the intent
|
|
16
|
+
* through the wallet would double-execute whatever the relayer accepted.
|
|
17
|
+
*
|
|
18
|
+
* The body is sent exactly as recorded, never rebuilt: the signatures inside it
|
|
19
|
+
* cover specific nonces and deadlines, and a regenerated payload would be a
|
|
20
|
+
* different request under a key the service has already bound.
|
|
21
|
+
*
|
|
22
|
+
* A deposit settlement is re-verified the same way the original submit was —
|
|
23
|
+
* the wallet's deterministic address is read before the POST and checked
|
|
24
|
+
* against the acceptance — so a replay can never sweep a wallet you did not
|
|
25
|
+
* fund.
|
|
26
|
+
*
|
|
27
|
+
* @param config - The SDK config.
|
|
28
|
+
* @param submit - The record from `getGaslessUnconfirmedSubmit(err)`, unmodified.
|
|
29
|
+
* @returns The acceptance receipt: an operation receipt for `/gateway/relay-instant`,
|
|
30
|
+
* a deposit receipt for either settlement path.
|
|
31
|
+
* @throws {SymmError} `GASLESS_NOT_CONFIGURED` / `GASLESS_UNSUPPORTED_CONTRACTS_VERSION` for the recorded chain.
|
|
32
|
+
* @throws {SymmError} `GASLESS_RESUBMIT_BODY_INVALID` when the record is not a submit this SDK produced.
|
|
33
|
+
* @throws {SymmApiError} `GASLESS_SUBMIT_UNCONFIRMED` again when the replay is itself
|
|
34
|
+
* inconclusive — keep the record and try again later.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* try {
|
|
39
|
+
* await relayInstantOperations(config, parameters);
|
|
40
|
+
* } catch (err) {
|
|
41
|
+
* const pending = getGaslessUnconfirmedSubmit(err);
|
|
42
|
+
* if (!pending) throw err;
|
|
43
|
+
* await store.save(pending);
|
|
44
|
+
* const receipt = await resubmitGaslessRequest(config, pending);
|
|
45
|
+
* await store.clear(pending.idempotencyKey);
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function resubmitGaslessRequest(config: Config, submit: ResubmitGaslessRequestParameters): Promise<ResubmitGaslessRequestReturnType>;
|
|
50
|
+
//# sourceMappingURL=resubmit-gasless-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resubmit-gasless-request.d.ts","sourceRoot":"","sources":["../../../src/gasless/resubmit-gasless-request/resubmit-gasless-request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhD,OAAO,KAAK,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAItE,qFAAqF;AACrF,MAAM,MAAM,gCAAgC,GAAG,wBAAwB,CAAC;AAExE,qDAAqD;AACrD,MAAM,MAAM,gCAAgC,GAAG,oBAAoB,GAAG,2BAA2B,CAAC;AA0BlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gCAAgC,GACvC,OAAO,CAAC,gCAAgC,CAAC,CAmC3C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { SymmError as e } from "../../shared/errors/symm-error.js";
|
|
2
|
+
import { postGaslessSubmit as t, resolveGaslessHttp as n } from "../http.js";
|
|
3
|
+
import { parseGaslessWalletId as r } from "../wallet-id.js";
|
|
4
|
+
import { toGaslessSubmitReceipt as i } from "../to-gasless-submit-receipt.js";
|
|
5
|
+
import { getGaslessWalletAddress as a } from "../get-gasless-wallet-address/get-gasless-wallet-address.js";
|
|
6
|
+
import { assertGaslessDepositWallet as o, toGaslessDepositReceipt as s } from "../to-gasless-deposit-receipt.js";
|
|
7
|
+
import { isAddress as c } from "viem";
|
|
8
|
+
//#region src/gasless/resubmit-gasless-request/resubmit-gasless-request.ts
|
|
9
|
+
function l(t) {
|
|
10
|
+
if (typeof t != "object" || !t || Array.isArray(t)) throw new e("validation", "GASLESS_RESUBMIT_BODY_INVALID", "Gasless: the recorded submit has no JSON object body, so there is nothing to resend. Only a GaslessUnconfirmedSubmit taken from getGaslessUnconfirmedSubmit can be resubmitted.");
|
|
11
|
+
return t;
|
|
12
|
+
}
|
|
13
|
+
function u(t, n) {
|
|
14
|
+
let r = t[n];
|
|
15
|
+
if (typeof r != "string" || !c(r)) throw new e("validation", "GASLESS_RESUBMIT_BODY_INVALID", `Gasless: the recorded submit body has no valid "${n}" address, so the acceptance could not be attributed to an owner. Resubmit only a GaslessUnconfirmedSubmit taken from getGaslessUnconfirmedSubmit.`);
|
|
16
|
+
return r;
|
|
17
|
+
}
|
|
18
|
+
async function d(e, c) {
|
|
19
|
+
let { chainId: d, path: f, body: p, idempotencyKey: m } = c, h = n(e, {
|
|
20
|
+
chainId: d,
|
|
21
|
+
service: c.service
|
|
22
|
+
}), g = l(p);
|
|
23
|
+
if (f === "/gateway/relay-instant") {
|
|
24
|
+
let e = u(g, "userAddress"), n = Array.isArray(g.walletIds) ? g.walletIds.map((e, t) => r(e, `walletIds[${t}]`)) : [];
|
|
25
|
+
return i(await t(h, f, p, m), {
|
|
26
|
+
owner: e,
|
|
27
|
+
walletIds: n,
|
|
28
|
+
idempotencyKey: m,
|
|
29
|
+
protocolInstance: h.protocolInstance
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
let _ = u(g, "owner"), v = g.walletId === void 0 || g.walletId === null ? 0n : r(g.walletId), y = await a(e, {
|
|
33
|
+
chainId: d,
|
|
34
|
+
owner: _,
|
|
35
|
+
walletId: v
|
|
36
|
+
}), b = s(await t(h, f, p, m), {
|
|
37
|
+
owner: _,
|
|
38
|
+
walletId: v,
|
|
39
|
+
idempotencyKey: m,
|
|
40
|
+
protocolInstance: h.protocolInstance
|
|
41
|
+
});
|
|
42
|
+
return o(b, {
|
|
43
|
+
walletId: v,
|
|
44
|
+
depositAddress: y,
|
|
45
|
+
url: h.baseURL,
|
|
46
|
+
path: f
|
|
47
|
+
}), b;
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { d as resubmitGaslessRequest };
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=resubmit-gasless-request.js.map
|