@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,36 @@
|
|
|
1
|
+
import { Hex } from 'viem';
|
|
2
|
+
import { Config, SymmioWalletClient } from '../../core/config/index.js';
|
|
3
|
+
import { SignedOperation } from '../../solvers/instant-open/shared/types.js';
|
|
4
|
+
import { ResolvedGaslessBatchEntry } from '../batch/resolve-gasless-batch.js';
|
|
5
|
+
/** Input of {@link signGaslessBatchOperations}. @internal */
|
|
6
|
+
export interface SignGaslessBatchOperationsParameters {
|
|
7
|
+
/** The chain the batch relays on. */
|
|
8
|
+
chainId: number;
|
|
9
|
+
/** The wallet client that signs every operation. */
|
|
10
|
+
walletClient: SymmioWalletClient;
|
|
11
|
+
/** The resolved entries, in relay order — they decide each operation's signing domain. */
|
|
12
|
+
entries: readonly ResolvedGaslessBatchEntry[];
|
|
13
|
+
/** The operations to sign, aligned with `entries`. */
|
|
14
|
+
operations: readonly SignedOperation[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Sign every operation of a batch, one EIP-712 prompt each, in relay order.
|
|
18
|
+
*
|
|
19
|
+
* The protocol has no batch signature: the InstantLayer verifies each
|
|
20
|
+
* operation's signature against that operation alone. Two domains are in play:
|
|
21
|
+
*
|
|
22
|
+
* - a relayable write signs the InstantLayer's seven-field `SignedOperation`
|
|
23
|
+
* under the `SymmioInstantLayer` domain;
|
|
24
|
+
* - a GaslessWallet entry signs the **five-field** gateway struct (no
|
|
25
|
+
* `flexFields`, no `maxUses`) under the `GaslessGateway` domain, whose
|
|
26
|
+
* verifying contract is the GaslessLayer.
|
|
27
|
+
*
|
|
28
|
+
* The prompts run one after the other, so a rejected prompt stops the batch
|
|
29
|
+
* before anything is submitted.
|
|
30
|
+
*
|
|
31
|
+
* @returns One signature per operation, aligned with `operations`.
|
|
32
|
+
*
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export declare function signGaslessBatchOperations(config: Config, parameters: SignGaslessBatchOperationsParameters): Promise<Hex[]>;
|
|
36
|
+
//# sourceMappingURL=sign-gasless-batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign-gasless-batch.d.ts","sourceRoot":"","sources":["../../../src/gasless/relay-gasless-batch/sign-gasless-batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAmB,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAGhF,6DAA6D;AAC7D,MAAM,WAAW,oCAAoC;IACnD,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,YAAY,EAAE,kBAAkB,CAAC;IACjC,0FAA0F;IAC1F,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC9C,sDAAsD;IACtD,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,oCAAoC,GAC/C,OAAO,CAAC,GAAG,EAAE,CAAC,CA8BhB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { getInstantLayerEip712Domain as e, signSignedOperation as t } from "../../solvers/instant-open/shared/eip712.js";
|
|
2
|
+
import { GASLESS_WALLET_OPERATION_TYPES as n, getGaslessGatewayEip712Domain as r } from "../eip712.js";
|
|
3
|
+
//#region src/gasless/relay-gasless-batch/sign-gasless-batch.ts
|
|
4
|
+
async function i(i, a) {
|
|
5
|
+
let { chainId: o, walletClient: s, entries: c, operations: l } = a, u, d, f = [];
|
|
6
|
+
for (let [a, p] of l.entries()) c[a]?.type === "wallet" ? (d ??= r(i, { chainId: o }), f.push(await s.signTypedData({
|
|
7
|
+
account: s.account,
|
|
8
|
+
domain: d,
|
|
9
|
+
types: n,
|
|
10
|
+
primaryType: "SignedOperation",
|
|
11
|
+
message: {
|
|
12
|
+
signer: p.signer,
|
|
13
|
+
target: p.target,
|
|
14
|
+
callData: p.callData,
|
|
15
|
+
signerAccount: p.signerAccount,
|
|
16
|
+
replayAttackHeader: p.replayAttackHeader
|
|
17
|
+
}
|
|
18
|
+
}))) : (u ??= e(i, { chainId: o }), f.push(await t(p, u, s)));
|
|
19
|
+
return f;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { i as signGaslessBatchOperations };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=sign-gasless-batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign-gasless-batch.js","names":[],"sources":["../../../src/gasless/relay-gasless-batch/sign-gasless-batch.ts"],"sourcesContent":["import type { Hex, TypedDataDomain } from \"viem\";\nimport type { Config, SymmioWalletClient } from \"../../core/config\";\nimport { getInstantLayerEip712Domain, signSignedOperation } from \"../../solvers/instant-open/shared/eip712\";\nimport type { SignedOperation } from \"../../solvers/instant-open/shared/types\";\nimport type { ResolvedGaslessBatchEntry } from \"../batch/resolve-gasless-batch\";\nimport { GASLESS_WALLET_OPERATION_TYPES, getGaslessGatewayEip712Domain } from \"../eip712\";\n\n/** Input of {@link signGaslessBatchOperations}. @internal */\nexport interface SignGaslessBatchOperationsParameters {\n /** The chain the batch relays on. */\n chainId: number;\n /** The wallet client that signs every operation. */\n walletClient: SymmioWalletClient;\n /** The resolved entries, in relay order — they decide each operation's signing domain. */\n entries: readonly ResolvedGaslessBatchEntry[];\n /** The operations to sign, aligned with `entries`. */\n operations: readonly SignedOperation[];\n}\n\n/**\n * Sign every operation of a batch, one EIP-712 prompt each, in relay order.\n *\n * The protocol has no batch signature: the InstantLayer verifies each\n * operation's signature against that operation alone. Two domains are in play:\n *\n * - a relayable write signs the InstantLayer's seven-field `SignedOperation`\n * under the `SymmioInstantLayer` domain;\n * - a GaslessWallet entry signs the **five-field** gateway struct (no\n * `flexFields`, no `maxUses`) under the `GaslessGateway` domain, whose\n * verifying contract is the GaslessLayer.\n *\n * The prompts run one after the other, so a rejected prompt stops the batch\n * before anything is submitted.\n *\n * @returns One signature per operation, aligned with `operations`.\n *\n * @internal\n */\nexport async function signGaslessBatchOperations(\n config: Config,\n parameters: SignGaslessBatchOperationsParameters,\n): Promise<Hex[]> {\n const { chainId, walletClient, entries, operations } = parameters;\n let instantDomain: TypedDataDomain | undefined;\n let gatewayDomain: TypedDataDomain | undefined;\n\n const signatures: Hex[] = [];\n for (const [index, operation] of operations.entries()) {\n if (entries[index]?.type === \"wallet\") {\n gatewayDomain ??= getGaslessGatewayEip712Domain(config, { chainId });\n signatures.push(\n await walletClient.signTypedData({\n account: walletClient.account,\n domain: gatewayDomain,\n types: GASLESS_WALLET_OPERATION_TYPES,\n primaryType: \"SignedOperation\",\n message: {\n signer: operation.signer,\n target: operation.target,\n callData: operation.callData,\n signerAccount: operation.signerAccount,\n replayAttackHeader: operation.replayAttackHeader,\n },\n }),\n );\n } else {\n instantDomain ??= getInstantLayerEip712Domain(config, { chainId });\n signatures.push(await signSignedOperation(operation, instantDomain, walletClient));\n }\n }\n return signatures;\n}\n"],"mappings":";;;AAsCA,eAAsB,EACpB,GACA,GACgB;CAChB,IAAM,EAAE,YAAS,iBAAc,YAAS,kBAAe,GACnD,GACA,GAEE,IAAoB,CAAC;CAC3B,KAAK,IAAM,CAAC,GAAO,MAAc,EAAW,QAAQ,GAClD,AAAI,EAAQ,IAAQ,SAAS,YAC3B,MAAkB,EAA8B,GAAQ,EAAE,WAAQ,CAAC,GACnE,EAAW,KACT,MAAM,EAAa,cAAc;EAC/B,SAAS,EAAa;EACtB,QAAQ;EACR,OAAO;EACP,aAAa;EACb,SAAS;GACP,QAAQ,EAAU;GAClB,QAAQ,EAAU;GAClB,UAAU,EAAU;GACpB,eAAe,EAAU;GACzB,oBAAoB,EAAU;EAChC;CACF,CAAC,CACH,MAEA,MAAkB,EAA4B,GAAQ,EAAE,WAAQ,CAAC,GACjE,EAAW,KAAK,MAAM,EAAoB,GAAW,GAAe,CAAY,CAAC;CAGrF,OAAO;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gasless/relay-grant-delegation/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Config } from '../../core/config/index.js';
|
|
2
|
+
import { RelayGrantDelegationParameters, RelayGrantDelegationReturnType } from './relay-grant-delegation.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build TanStack Mutation options for {@link relayGrantDelegation}.
|
|
5
|
+
*
|
|
6
|
+
* @param config - The SDK config.
|
|
7
|
+
* @returns Options to pass to `useMutation`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* useMutation(relayGrantDelegationMutationOptions(config));
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function relayGrantDelegationMutationOptions(config: Config): {
|
|
15
|
+
mutationKey: readonly ["relayGrantDelegation"];
|
|
16
|
+
mutationFn: (variables: RelayGrantDelegationParameters) => Promise<RelayGrantDelegationReturnType>;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/gasless/relay-grant-delegation/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACpC,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;GAUG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM;;4BAGtC,8BAA8B,KAAG,OAAO,CAAC,8BAA8B,CAAC;EAGnG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { relayGrantDelegation as e } from "./relay-grant-delegation.js";
|
|
2
|
+
//#region src/gasless/relay-grant-delegation/query.ts
|
|
3
|
+
function t(t) {
|
|
4
|
+
return {
|
|
5
|
+
mutationKey: ["relayGrantDelegation"],
|
|
6
|
+
mutationFn: (n) => e(t, n)
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { t as relayGrantDelegationMutationOptions };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","names":[],"sources":["../../../src/gasless/relay-grant-delegation/query.ts"],"sourcesContent":["import type { Config } from \"../../core/config\";\nimport {\n relayGrantDelegation,\n type RelayGrantDelegationParameters,\n type RelayGrantDelegationReturnType,\n} from \"./relay-grant-delegation\";\n\n/**\n * Build TanStack Mutation options for {@link relayGrantDelegation}.\n *\n * @param config - The SDK config.\n * @returns Options to pass to `useMutation`.\n *\n * @example\n * ```ts\n * useMutation(relayGrantDelegationMutationOptions(config));\n * ```\n */\nexport function relayGrantDelegationMutationOptions(config: Config) {\n return {\n mutationKey: [\"relayGrantDelegation\"] as const,\n mutationFn: (variables: RelayGrantDelegationParameters): Promise<RelayGrantDelegationReturnType> =>\n relayGrantDelegation(config, variables),\n };\n}\n"],"mappings":";;AAkBA,SAAgB,EAAoC,GAAgB;CAClE,OAAO;EACL,aAAa,CAAC,sBAAsB;EACpC,aAAa,MACX,EAAqB,GAAQ,CAAS;CAC1C;AACF"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Address, Hex } from 'viem';
|
|
2
|
+
import { Config } from '../../core/config/index.js';
|
|
3
|
+
import { ChainIdParameter, Compute, FromParameter } from '../../shared/types/properties.js';
|
|
4
|
+
import { GaslessSubmitReceipt } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Parameters for {@link relayGrantDelegation}.
|
|
7
|
+
*/
|
|
8
|
+
export type RelayGrantDelegationParameters = Compute<ChainIdParameter & FromParameter & {
|
|
9
|
+
/**
|
|
10
|
+
* The sub-account granting the delegation. The account **owner's** wallet
|
|
11
|
+
* signs the operation — a delegation grant is always owner-signed.
|
|
12
|
+
*/
|
|
13
|
+
account: Address;
|
|
14
|
+
/** The signer being delegated to (e.g. a session key address). */
|
|
15
|
+
delegatedSigner: Address;
|
|
16
|
+
/** Function selectors the delegate may sign for. */
|
|
17
|
+
selectors: readonly Hex[];
|
|
18
|
+
/** Unix timestamp (seconds) when the delegation expires. */
|
|
19
|
+
expiryTimestamp: bigint;
|
|
20
|
+
}>;
|
|
21
|
+
/** Return type of {@link relayGrantDelegation}. */
|
|
22
|
+
export type RelayGrantDelegationReturnType = GaslessSubmitReceipt;
|
|
23
|
+
/**
|
|
24
|
+
* Grant an Instant Layer delegation **through the gasless relayer** — no
|
|
25
|
+
* native gas needed.
|
|
26
|
+
*
|
|
27
|
+
* **Prefer `grantDelegation` with `gasless: true`.** A grant is a relayable
|
|
28
|
+
* write, so the ordinary action relays it and returns a transaction hash, with
|
|
29
|
+
* no separate code path and no separate result shape. This stays as the
|
|
30
|
+
* low-level escape hatch, for when you want the `requestId` and the fee figures
|
|
31
|
+
* off the acceptance receipt — the same relationship `relayInstantOperations`
|
|
32
|
+
* has with the transparent path.
|
|
33
|
+
*
|
|
34
|
+
* A delegation grant is an ordinary owner-signed InstantLayer operation:
|
|
35
|
+
* `grantDelegation(DelegationInfo)` calldata targeting the InstantLayer,
|
|
36
|
+
* signed under the InstantLayer EIP-712 domain with a fresh sequential nonce,
|
|
37
|
+
* submitted through `relay-instant`. (The old standalone delegation-relay
|
|
38
|
+
* endpoint and `SignedDelegation` payload no longer exist.) Combine with
|
|
39
|
+
* `GASLESS_SESSION_KEY_SELECTORS` to onboard a session key that can then sign
|
|
40
|
+
* gasless account management without further wallet prompts.
|
|
41
|
+
*
|
|
42
|
+
* Fire-and-forget like every relay: persist the returned `requestId` and poll
|
|
43
|
+
* `getGaslessRequest` (or `waitForGaslessRequest`) to a terminal status. The
|
|
44
|
+
* wallet-paid alternative is the plain `grantDelegation` write.
|
|
45
|
+
*
|
|
46
|
+
* The idempotency key is minted per call and is not a parameter: every call
|
|
47
|
+
* signs a fresh operation, so one key can only ever describe one signature.
|
|
48
|
+
* Replaying a submit whose response was lost is `resubmitGaslessRequest`'s job.
|
|
49
|
+
*
|
|
50
|
+
* @param config - The SDK config (must have a `getWalletClient` resolver).
|
|
51
|
+
* @param parameters - Delegation fields, optional chain id / signer override.
|
|
52
|
+
* @returns The acceptance receipt; persist `requestId` immediately.
|
|
53
|
+
* @throws {SymmError} `GASLESS_NOT_CONFIGURED` / `GASLESS_UNSUPPORTED_CONTRACTS_VERSION`.
|
|
54
|
+
* @throws {SymmApiError} `GASLESS_RELAY_SUBMIT_FAILED` on HTTP failure.
|
|
55
|
+
* @throws {SymmApiError} `GASLESS_SUBMIT_UNCONFIRMED` when the outcome could not be
|
|
56
|
+
* established; replay it with `resubmitGaslessRequest` rather than signing a new grant.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* const receipt = await relayGrantDelegation(config, {
|
|
61
|
+
* account: subAccount,
|
|
62
|
+
* delegatedSigner: sessionKeyAddress,
|
|
63
|
+
* selectors: GASLESS_SESSION_KEY_SELECTORS,
|
|
64
|
+
* expiryTimestamp: BigInt(Math.floor(Date.now() / 1000) + 30 * 24 * 3600),
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function relayGrantDelegation(config: Config, parameters: RelayGrantDelegationParameters): Promise<RelayGrantDelegationReturnType>;
|
|
69
|
+
//# sourceMappingURL=relay-grant-delegation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-grant-delegation.d.ts","sourceRoot":"","sources":["../../../src/gasless/relay-grant-delegation/relay-grant-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAa9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAClD,gBAAgB,GACd,aAAa,GAAG;IACd;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,eAAe,EAAE,OAAO,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC;IAC1B,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;CACzB,CACJ,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,8BAA8B,GAAG,oBAAoB,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,8BAA8B,GACzC,OAAO,CAAC,8BAA8B,CAAC,CAqDzC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { instantLayerAbi as e } from "../../symmio-contracts/abi/v0.8.6/instant-layer.js";
|
|
2
|
+
import { getInstantLayerEip712Domain as t, signSignedOperation as n } from "../../solvers/instant-open/shared/eip712.js";
|
|
3
|
+
import { buildSignedOperation as r } from "../../solvers/instant-open/shared/operations.js";
|
|
4
|
+
import { getInstantLayerNonce as i } from "../../symmio-contracts/instant-layer/actions/get-instant-layer-nonce.js";
|
|
5
|
+
import { blocksGaslessNonceStream as a, gaslessInstantNonceStreamKey as o, readGaslessStreamNonce as s, submitOnGaslessNonceStream as c, withGaslessNonceLock as l } from "../nonce-lock.js";
|
|
6
|
+
import { relayInstantOperations as u } from "../relay-instant-operations/relay-instant-operations.js";
|
|
7
|
+
import { encodeFunctionData as d } from "viem";
|
|
8
|
+
//#region src/gasless/relay-grant-delegation/relay-grant-delegation.ts
|
|
9
|
+
async function f(f, p) {
|
|
10
|
+
let { chainId: m, account: h, delegatedSigner: g, selectors: _, expiryTimestamp: v, from: y } = p, b = f.getChainConfig(m), x = await f.getWalletClient({
|
|
11
|
+
chainId: m,
|
|
12
|
+
from: y
|
|
13
|
+
}), S = t(f, { chainId: m }), C = d({
|
|
14
|
+
abi: e,
|
|
15
|
+
functionName: "grantDelegation",
|
|
16
|
+
args: [{
|
|
17
|
+
account: {
|
|
18
|
+
addr: h,
|
|
19
|
+
isPartyB: !1
|
|
20
|
+
},
|
|
21
|
+
delegatedSigner: g,
|
|
22
|
+
selectors: [..._],
|
|
23
|
+
expiryTimestamp: v
|
|
24
|
+
}]
|
|
25
|
+
}), w = o(b.chainId, h);
|
|
26
|
+
return l(f, w, async () => {
|
|
27
|
+
let e = await s(f, w, () => i(f, {
|
|
28
|
+
chainId: m,
|
|
29
|
+
account: h
|
|
30
|
+
})), t = BigInt(Math.floor(Date.now() / 1e3) + 1200), o = r({
|
|
31
|
+
signer: x.account.address,
|
|
32
|
+
target: b.addresses.instantLayerAddress,
|
|
33
|
+
callData: C,
|
|
34
|
+
signerAccount: h,
|
|
35
|
+
deadline: t,
|
|
36
|
+
nonce: e + 1n
|
|
37
|
+
}), l = await n(o, S, x);
|
|
38
|
+
return c(f, w, {
|
|
39
|
+
signedNonce: e + 1n,
|
|
40
|
+
service: "operations",
|
|
41
|
+
chainId: b.chainId,
|
|
42
|
+
deadline: t
|
|
43
|
+
}, () => u(f, {
|
|
44
|
+
chainId: m,
|
|
45
|
+
userAddress: x.account.address,
|
|
46
|
+
operationType: "grantDelegation",
|
|
47
|
+
operations: [{
|
|
48
|
+
operation: o,
|
|
49
|
+
signature: l
|
|
50
|
+
}]
|
|
51
|
+
}), a);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { f as relayGrantDelegation };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=relay-grant-delegation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-grant-delegation.js","names":[],"sources":["../../../src/gasless/relay-grant-delegation/relay-grant-delegation.ts"],"sourcesContent":["import { encodeFunctionData, type Address, type Hex } from \"viem\";\nimport type { Config } from \"../../core/config\";\nimport type { ChainIdParameter, Compute, FromParameter } from \"../../shared/types/properties\";\nimport { getInstantLayerEip712Domain, signSignedOperation } from \"../../solvers/instant-open/shared/eip712\";\nimport { buildSignedOperation } from \"../../solvers/instant-open/shared/operations\";\nimport { instantLayerAbi } from \"../../symmio-contracts/abi/v0.8.6/instant-layer\";\nimport { getInstantLayerNonce } from \"../../symmio-contracts/instant-layer/actions/get-instant-layer-nonce\";\nimport {\n blocksGaslessNonceStream,\n gaslessInstantNonceStreamKey,\n readGaslessStreamNonce,\n submitOnGaslessNonceStream,\n withGaslessNonceLock,\n} from \"../nonce-lock\";\nimport { relayInstantOperations } from \"../relay-instant-operations/relay-instant-operations\";\nimport type { GaslessSubmitReceipt } from \"../types\";\n\n/**\n * Parameters for {@link relayGrantDelegation}.\n */\nexport type RelayGrantDelegationParameters = Compute<\n ChainIdParameter &\n FromParameter & {\n /**\n * The sub-account granting the delegation. The account **owner's** wallet\n * signs the operation — a delegation grant is always owner-signed.\n */\n account: Address;\n /** The signer being delegated to (e.g. a session key address). */\n delegatedSigner: Address;\n /** Function selectors the delegate may sign for. */\n selectors: readonly Hex[];\n /** Unix timestamp (seconds) when the delegation expires. */\n expiryTimestamp: bigint;\n }\n>;\n\n/** Return type of {@link relayGrantDelegation}. */\nexport type RelayGrantDelegationReturnType = GaslessSubmitReceipt;\n\n/**\n * Grant an Instant Layer delegation **through the gasless relayer** — no\n * native gas needed.\n *\n * **Prefer `grantDelegation` with `gasless: true`.** A grant is a relayable\n * write, so the ordinary action relays it and returns a transaction hash, with\n * no separate code path and no separate result shape. This stays as the\n * low-level escape hatch, for when you want the `requestId` and the fee figures\n * off the acceptance receipt — the same relationship `relayInstantOperations`\n * has with the transparent path.\n *\n * A delegation grant is an ordinary owner-signed InstantLayer operation:\n * `grantDelegation(DelegationInfo)` calldata targeting the InstantLayer,\n * signed under the InstantLayer EIP-712 domain with a fresh sequential nonce,\n * submitted through `relay-instant`. (The old standalone delegation-relay\n * endpoint and `SignedDelegation` payload no longer exist.) Combine with\n * `GASLESS_SESSION_KEY_SELECTORS` to onboard a session key that can then sign\n * gasless account management without further wallet prompts.\n *\n * Fire-and-forget like every relay: persist the returned `requestId` and poll\n * `getGaslessRequest` (or `waitForGaslessRequest`) to a terminal status. The\n * wallet-paid alternative is the plain `grantDelegation` write.\n *\n * The idempotency key is minted per call and is not a parameter: every call\n * signs a fresh operation, so one key can only ever describe one signature.\n * Replaying a submit whose response was lost is `resubmitGaslessRequest`'s job.\n *\n * @param config - The SDK config (must have a `getWalletClient` resolver).\n * @param parameters - Delegation fields, optional chain id / signer override.\n * @returns The acceptance receipt; persist `requestId` immediately.\n * @throws {SymmError} `GASLESS_NOT_CONFIGURED` / `GASLESS_UNSUPPORTED_CONTRACTS_VERSION`.\n * @throws {SymmApiError} `GASLESS_RELAY_SUBMIT_FAILED` on HTTP failure.\n * @throws {SymmApiError} `GASLESS_SUBMIT_UNCONFIRMED` when the outcome could not be\n * established; replay it with `resubmitGaslessRequest` rather than signing a new grant.\n *\n * @example\n * ```ts\n * const receipt = await relayGrantDelegation(config, {\n * account: subAccount,\n * delegatedSigner: sessionKeyAddress,\n * selectors: GASLESS_SESSION_KEY_SELECTORS,\n * expiryTimestamp: BigInt(Math.floor(Date.now() / 1000) + 30 * 24 * 3600),\n * });\n * ```\n */\nexport async function relayGrantDelegation(\n config: Config,\n parameters: RelayGrantDelegationParameters,\n): Promise<RelayGrantDelegationReturnType> {\n const { chainId, account, delegatedSigner, selectors, expiryTimestamp, from } = parameters;\n\n const chain = config.getChainConfig(chainId);\n const walletClient = await config.getWalletClient({ chainId, from });\n const domain = getInstantLayerEip712Domain(config, { chainId });\n\n const callData = encodeFunctionData({\n abi: instantLayerAbi,\n functionName: \"grantDelegation\",\n args: [\n {\n account: { addr: account, isPartyB: false },\n delegatedSigner,\n selectors: [...selectors],\n expiryTimestamp,\n },\n ],\n });\n\n const streamKey = gaslessInstantNonceStreamKey(chain.chainId, account);\n\n return withGaslessNonceLock(config, streamKey, async () => {\n const currentNonce = await readGaslessStreamNonce(config, streamKey, () =>\n getInstantLayerNonce(config, { chainId, account }),\n );\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 20 * 60);\n\n const operation = buildSignedOperation({\n signer: walletClient.account.address,\n target: chain.addresses.instantLayerAddress,\n callData,\n signerAccount: account,\n deadline,\n nonce: currentNonce + 1n,\n });\n const signature = await signSignedOperation(operation, domain, walletClient);\n\n return submitOnGaslessNonceStream(\n config,\n streamKey,\n { signedNonce: currentNonce + 1n, service: \"operations\", chainId: chain.chainId, deadline },\n () =>\n relayInstantOperations(config, {\n chainId,\n userAddress: walletClient.account.address,\n operationType: \"grantDelegation\",\n /** A delegation grant is an ordinary InstantLayer operation: wallet 0. */\n operations: [{ operation, signature }],\n }),\n blocksGaslessNonceStream,\n );\n });\n}\n"],"mappings":";;;;;;;;AAqFA,eAAsB,EACpB,GACA,GACyC;CACzC,IAAM,EAAE,YAAS,YAAS,oBAAiB,cAAW,oBAAiB,YAAS,GAE1E,IAAQ,EAAO,eAAe,CAAO,GACrC,IAAe,MAAM,EAAO,gBAAgB;EAAE;EAAS;CAAK,CAAC,GAC7D,IAAS,EAA4B,GAAQ,EAAE,WAAQ,CAAC,GAExD,IAAW,EAAmB;EAClC,KAAK;EACL,cAAc;EACd,MAAM,CACJ;GACE,SAAS;IAAE,MAAM;IAAS,UAAU;GAAM;GAC1C;GACA,WAAW,CAAC,GAAG,CAAS;GACxB;EACF,CACF;CACF,CAAC,GAEK,IAAY,EAA6B,EAAM,SAAS,CAAO;CAErE,OAAO,EAAqB,GAAQ,GAAW,YAAY;EACzD,IAAM,IAAe,MAAM,EAAuB,GAAQ,SACxD,EAAqB,GAAQ;GAAE;GAAS;EAAQ,CAAC,CACnD,GACM,IAAW,OAAO,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI,IAAI,IAAO,GAEzD,IAAY,EAAqB;GACrC,QAAQ,EAAa,QAAQ;GAC7B,QAAQ,EAAM,UAAU;GACxB;GACA,eAAe;GACf;GACA,OAAO,IAAe;EACxB,CAAC,GACK,IAAY,MAAM,EAAoB,GAAW,GAAQ,CAAY;EAE3E,OAAO,EACL,GACA,GACA;GAAE,aAAa,IAAe;GAAI,SAAS;GAAc,SAAS,EAAM;GAAS;EAAS,SAExF,EAAuB,GAAQ;GAC7B;GACA,aAAa,EAAa,QAAQ;GAClC,eAAe;GAEf,YAAY,CAAC;IAAE;IAAW;GAAU,CAAC;EACvC,CAAC,GACH,CACF;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gasless/relay-instant-operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Config } from '../../core/config/index.js';
|
|
2
|
+
import { RelayInstantOperationsParameters, RelayInstantOperationsReturnType } from './relay-instant-operations.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build TanStack Mutation options for {@link relayInstantOperations}.
|
|
5
|
+
*
|
|
6
|
+
* @param config - The SDK config.
|
|
7
|
+
* @returns Options to pass to `useMutation` / `queryClient.getMutationCache`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* useMutation(relayInstantOperationsMutationOptions(config));
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function relayInstantOperationsMutationOptions(config: Config): {
|
|
15
|
+
mutationKey: readonly ["relayInstantOperations"];
|
|
16
|
+
mutationFn: (variables: RelayInstantOperationsParameters) => Promise<RelayInstantOperationsReturnType>;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/gasless/relay-instant-operations/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;;;;;;;;;;GAUG;AACH,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,MAAM;;4BAGxC,gCAAgC,KAAG,OAAO,CAAC,gCAAgC,CAAC;EAGvG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { relayInstantOperations as e } from "./relay-instant-operations.js";
|
|
2
|
+
//#region src/gasless/relay-instant-operations/query.ts
|
|
3
|
+
function t(t) {
|
|
4
|
+
return {
|
|
5
|
+
mutationKey: ["relayInstantOperations"],
|
|
6
|
+
mutationFn: (n) => e(t, n)
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { t as relayInstantOperationsMutationOptions };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","names":[],"sources":["../../../src/gasless/relay-instant-operations/query.ts"],"sourcesContent":["import type { Config } from \"../../core/config\";\nimport {\n relayInstantOperations,\n type RelayInstantOperationsParameters,\n type RelayInstantOperationsReturnType,\n} from \"./relay-instant-operations\";\n\n/**\n * Build TanStack Mutation options for {@link relayInstantOperations}.\n *\n * @param config - The SDK config.\n * @returns Options to pass to `useMutation` / `queryClient.getMutationCache`.\n *\n * @example\n * ```ts\n * useMutation(relayInstantOperationsMutationOptions(config));\n * ```\n */\nexport function relayInstantOperationsMutationOptions(config: Config) {\n return {\n mutationKey: [\"relayInstantOperations\"] as const,\n mutationFn: (variables: RelayInstantOperationsParameters): Promise<RelayInstantOperationsReturnType> =>\n relayInstantOperations(config, variables),\n };\n}\n"],"mappings":";;AAkBA,SAAgB,EAAsC,GAAgB;CACpE,OAAO;EACL,aAAa,CAAC,wBAAwB;EACtC,aAAa,MACX,EAAuB,GAAQ,CAAS;CAC5C;AACF"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Address, Hex } from 'viem';
|
|
2
|
+
import { Config } from '../../core/config/index.js';
|
|
3
|
+
import { ChainIdParameter, Compute } from '../../shared/types/properties.js';
|
|
4
|
+
import { SignedOperation } from '../../solvers/instant-open/shared/types.js';
|
|
5
|
+
import { GaslessSubmitReceipt } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* One pre-signed InstantLayer operation for a relay batch: the struct exactly
|
|
8
|
+
* as it was EIP-712 signed, plus the 65-byte signature. Optional flex fills
|
|
9
|
+
* and their filler signatures ride alongside when a flex-field flow uses them.
|
|
10
|
+
*/
|
|
11
|
+
export interface GaslessSignedOperationInput {
|
|
12
|
+
/** The operation struct exactly as signed. */
|
|
13
|
+
operation: SignedOperation;
|
|
14
|
+
/** 65-byte EIP-712 signature over the operation. */
|
|
15
|
+
signature: Hex;
|
|
16
|
+
/** Flex fill payloads for this operation (rare; defaults to none). */
|
|
17
|
+
fills?: readonly Hex[];
|
|
18
|
+
/** Signatures authorizing the flex fills (parallel to `fills`). */
|
|
19
|
+
flexFillerSignatures?: readonly Hex[];
|
|
20
|
+
/**
|
|
21
|
+
* Which of the owner's GaslessWallets this operation executes from. Defaults
|
|
22
|
+
* to `0n`, which is what every ordinary InstantLayer operation and every
|
|
23
|
+
* delegation grant uses.
|
|
24
|
+
*
|
|
25
|
+
* Only a **gasless-wallet `execute`** operation names a positive id, and the
|
|
26
|
+
* id must match the wallet the operation was signed against: the signed
|
|
27
|
+
* `target` is that wallet's address, so changing the id without re-signing
|
|
28
|
+
* relays the signature against the wrong wallet and the batch reverts.
|
|
29
|
+
*/
|
|
30
|
+
walletId?: bigint;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parameters for {@link relayInstantOperations}.
|
|
34
|
+
*/
|
|
35
|
+
export type RelayInstantOperationsParameters = Compute<ChainIdParameter & {
|
|
36
|
+
/**
|
|
37
|
+
* The signed operations, in execution order. The batch is **atomic** — one
|
|
38
|
+
* revert rolls back every operation and every fee — so only bundle
|
|
39
|
+
* operations that must share fate. Replay nonces must be strictly
|
|
40
|
+
* sequential in this order (`current + 1`, `current + 2`, …).
|
|
41
|
+
*/
|
|
42
|
+
operations: readonly GaslessSignedOperationInput[];
|
|
43
|
+
/**
|
|
44
|
+
* Workflow label stored with the request (display, metrics, idempotency).
|
|
45
|
+
* Free-form, 1–128 chars; fees are derived on-chain from calldata
|
|
46
|
+
* selectors, never from this. Keep it stable per action.
|
|
47
|
+
*/
|
|
48
|
+
operationType: string;
|
|
49
|
+
/** Wallet the workflow is tracked under (not necessarily the raw signer). */
|
|
50
|
+
userAddress: Address;
|
|
51
|
+
/** Optional client accounting id stored with the request. */
|
|
52
|
+
accountId?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Registered result-chained template id; omit for independent batches.
|
|
55
|
+
*
|
|
56
|
+
* The contract's `relayInstantTemplate` takes no wallet ids, so a template
|
|
57
|
+
* batch must leave every operation on wallet `0`.
|
|
58
|
+
*/
|
|
59
|
+
templateId?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Stable retry key (max 128 chars). Defaults to a random UUID.
|
|
62
|
+
*
|
|
63
|
+
* **One key per signature.** The signed operations are built by the caller
|
|
64
|
+
* here, so the key is a parameter: pass the same one to replay a submit
|
|
65
|
+
* whose response was lost, and the service returns the existing record
|
|
66
|
+
* instead of duplicating work. Change anything in the batch — re-sign, add
|
|
67
|
+
* an operation, move a wallet id — and the key must change too, or the
|
|
68
|
+
* service answers `409 IDEMPOTENCY_KEY_CONFLICT`
|
|
69
|
+
* (`isGaslessIdempotencyConflictError`).
|
|
70
|
+
*/
|
|
71
|
+
idempotencyKey?: string;
|
|
72
|
+
/** Non-secret client correlation data stored with the request. */
|
|
73
|
+
metadata?: Record<string, unknown>;
|
|
74
|
+
}>;
|
|
75
|
+
/** Return type of {@link relayInstantOperations}. */
|
|
76
|
+
export type RelayInstantOperationsReturnType = GaslessSubmitReceipt;
|
|
77
|
+
/**
|
|
78
|
+
* Submit signed InstantLayer operations to the GaslessQ relayer.
|
|
79
|
+
*
|
|
80
|
+
* Fire-and-forget: the service validates and simulates the batch, returns
|
|
81
|
+
* `202` with a `request_id`, and broadcasts asynchronously — poll
|
|
82
|
+
* `getGaslessRequest` (or await `waitForGaslessRequest`) to a terminal status.
|
|
83
|
+
*
|
|
84
|
+
* Transport failures are dispositioned before they reach you: a `429` or a
|
|
85
|
+
* gateway-`503` is resent under the same key (it never reached the service),
|
|
86
|
+
* an ambiguous failure is resent once and then thrown as
|
|
87
|
+
* `GASLESS_SUBMIT_UNCONFIRMED` with the exact bytes to replay
|
|
88
|
+
* (`getGaslessUnconfirmedSubmit` → `resubmitGaslessRequest`), and a definitive
|
|
89
|
+
* 4xx is thrown as-is — inspect it with `parseGaslessErrorDetail` or
|
|
90
|
+
* `classifyGaslessFailure`, and treat only `isConfirmedGaslessFeeLimitError` /
|
|
91
|
+
* `isConfirmedGaslessUnavailableError` as safe grounds for a wallet-paid retry.
|
|
92
|
+
*
|
|
93
|
+
* **A 202 is the point of no return**: the workflow exists server-side and the
|
|
94
|
+
* transaction may execute even if polling later fails — never re-submit the
|
|
95
|
+
* same intent through the wallet afterwards.
|
|
96
|
+
*
|
|
97
|
+
* The batch always carries an explicit `walletIds` array, one decimal id per
|
|
98
|
+
* operation, taken from each entry's `walletId` (default `0n`). Persist the
|
|
99
|
+
* receipt's `owner`, `walletIds` and `idempotencyKey` with its `requestId`: a
|
|
100
|
+
* bare request id is not enough context to reconcile a workflow after a reload.
|
|
101
|
+
*
|
|
102
|
+
* @param config - The SDK config.
|
|
103
|
+
* @param parameters - Signed operations, workflow labels, retry key.
|
|
104
|
+
* @returns The acceptance receipt; persist `requestId` immediately.
|
|
105
|
+
* @throws {SymmError} `GASLESS_NOT_CONFIGURED` / `GASLESS_UNSUPPORTED_CONTRACTS_VERSION`.
|
|
106
|
+
* @throws {SymmError} `GASLESS_EMPTY_BATCH` for an empty `operations` array.
|
|
107
|
+
* @throws {SymmError} `GASLESS_TEMPLATE_ID_INVALID` for a `templateId` that is not a non-negative safe integer.
|
|
108
|
+
* @throws {SymmError} `GASLESS_TEMPLATE_WALLET_ID_UNSUPPORTED` when a template batch names a non-zero wallet id.
|
|
109
|
+
* @throws {SymmError} `GASLESS_WALLET_ID_INVALID` for a wallet id outside the `uint256` range.
|
|
110
|
+
* @throws {SymmApiError} `GASLESS_RELAY_SUBMIT_FAILED` on HTTP failure.
|
|
111
|
+
* @throws {SymmApiError} `GASLESS_SUBMIT_UNCONFIRMED` when the outcome could not be
|
|
112
|
+
* established; `responseData` is the replayable submit.
|
|
113
|
+
* @throws {SymmApiError} `GASLESS_INSTANCE_MISMATCH` when a `2xx` came from another
|
|
114
|
+
* protocol instance; the accepted body (its `request_id`) stays in `responseData`.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* const receipt = await relayInstantOperations(config, {
|
|
119
|
+
* userAddress: owner,
|
|
120
|
+
* operationType: "initiateWithdraw",
|
|
121
|
+
* operations: [{ operation, signature }],
|
|
122
|
+
* });
|
|
123
|
+
* const record = await waitForGaslessRequest(config, { requestId: receipt.requestId });
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export declare function relayInstantOperations(config: Config, parameters: RelayInstantOperationsParameters): Promise<RelayInstantOperationsReturnType>;
|
|
127
|
+
//# sourceMappingURL=relay-instant-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-instant-operations.d.ts","sourceRoot":"","sources":["../../../src/gasless/relay-instant-operations/relay-instant-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAI/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAIrD;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,8CAA8C;IAC9C,SAAS,EAAE,eAAe,CAAC;IAC3B,oDAAoD;IACpD,SAAS,EAAE,GAAG,CAAC;IACf,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IACvB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IACtC;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG,OAAO,CACpD,gBAAgB,GAAG;IACjB;;;;;OAKG;IACH,UAAU,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACnD;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,WAAW,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CACF,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,gCAAgC,GAAG,oBAAoB,CAAC;AA4BpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,gCAAgC,GAC3C,OAAO,CAAC,gCAAgC,CAAC,CAgD3C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { SymmError as e } from "../../shared/errors/symm-error.js";
|
|
2
|
+
import { generateGaslessIdempotencyKey as t, postGaslessSubmit as n, resolveGaslessHttp as r } from "../http.js";
|
|
3
|
+
import { assertGaslessWalletId as i, toGaslessWalletIdWire as a } from "../wallet-id.js";
|
|
4
|
+
import { toGaslessSubmitReceipt as o } from "../to-gasless-submit-receipt.js";
|
|
5
|
+
import { formatGaslessOperation as s } from "../format-gasless-operation.js";
|
|
6
|
+
//#region src/gasless/relay-instant-operations/relay-instant-operations.ts
|
|
7
|
+
function c(t, n) {
|
|
8
|
+
let r = t.map((e, t) => i(e.walletId ?? 0n, `operations[${t}].walletId`));
|
|
9
|
+
if (n !== void 0 && r.some((e) => e !== 0n)) throw new e("validation", "GASLESS_TEMPLATE_WALLET_ID_UNSUPPORTED", `Gasless: templateId ${n} relays through relayInstantTemplate, which takes no wallet ids — every operation in a template batch must use wallet 0. Relay gasless-wallet operations as an ordinary batch instead.`);
|
|
10
|
+
return r;
|
|
11
|
+
}
|
|
12
|
+
async function l(i, l) {
|
|
13
|
+
let { chainId: u, operations: d, operationType: f, userAddress: p, accountId: m, templateId: h, metadata: g } = l;
|
|
14
|
+
if (d.length === 0) throw new e("validation", "GASLESS_EMPTY_BATCH", "Gasless: relayInstantOperations needs at least one signed operation — the service rejects an empty batch.");
|
|
15
|
+
if (h !== void 0 && (!Number.isSafeInteger(h) || h < 0)) throw new e("validation", "GASLESS_TEMPLATE_ID_INVALID", `Gasless: templateId ${h} is not a non-negative safe integer. An unguarded value serializes to JSON \`null\`, which the service reads as "no template" and relays as a plain batch.`);
|
|
16
|
+
let _ = c(d, h), v = r(i, {
|
|
17
|
+
chainId: u,
|
|
18
|
+
service: "operations"
|
|
19
|
+
}), y = l.idempotencyKey ?? t();
|
|
20
|
+
return o(await n(v, "/gateway/relay-instant", {
|
|
21
|
+
idempotencyKey: y,
|
|
22
|
+
userAddress: p,
|
|
23
|
+
...m === void 0 ? {} : { accountId: m },
|
|
24
|
+
operationType: f,
|
|
25
|
+
...h === void 0 ? {} : { templateId: h },
|
|
26
|
+
signedOps: d.map((e) => s(e.operation)),
|
|
27
|
+
signatures: d.map((e) => e.signature),
|
|
28
|
+
walletIds: _.map(a),
|
|
29
|
+
fills: d.map((e) => [...e.fills ?? []]),
|
|
30
|
+
flexFillerSignatures: d.map((e) => [...e.flexFillerSignatures ?? []]),
|
|
31
|
+
...g === void 0 ? {} : { metadata: g }
|
|
32
|
+
}, y), {
|
|
33
|
+
owner: p,
|
|
34
|
+
walletIds: _,
|
|
35
|
+
idempotencyKey: y,
|
|
36
|
+
protocolInstance: v.protocolInstance
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { l as relayInstantOperations };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=relay-instant-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-instant-operations.js","names":[],"sources":["../../../src/gasless/relay-instant-operations/relay-instant-operations.ts"],"sourcesContent":["import type { Address, Hex } from \"viem\";\nimport type { Config } from \"../../core/config\";\nimport { SymmError } from \"../../shared/errors/symm-error\";\nimport type { ChainIdParameter, Compute } from \"../../shared/types/properties\";\nimport type { SignedOperation } from \"../../solvers/instant-open/shared/types\";\nimport { formatGaslessOperation } from \"../format-gasless-operation\";\nimport { generateGaslessIdempotencyKey, postGaslessSubmit, resolveGaslessHttp } from \"../http\";\nimport { toGaslessSubmitReceipt } from \"../to-gasless-submit-receipt\";\nimport type { GaslessSubmitReceipt } from \"../types\";\nimport { assertGaslessWalletId, toGaslessWalletIdWire } from \"../wallet-id\";\nimport type { GaslessWireOperationAccepted, GaslessWireRelayInstantRequest } from \"../wire-types\";\n\n/**\n * One pre-signed InstantLayer operation for a relay batch: the struct exactly\n * as it was EIP-712 signed, plus the 65-byte signature. Optional flex fills\n * and their filler signatures ride alongside when a flex-field flow uses them.\n */\nexport interface GaslessSignedOperationInput {\n /** The operation struct exactly as signed. */\n operation: SignedOperation;\n /** 65-byte EIP-712 signature over the operation. */\n signature: Hex;\n /** Flex fill payloads for this operation (rare; defaults to none). */\n fills?: readonly Hex[];\n /** Signatures authorizing the flex fills (parallel to `fills`). */\n flexFillerSignatures?: readonly Hex[];\n /**\n * Which of the owner's GaslessWallets this operation executes from. Defaults\n * to `0n`, which is what every ordinary InstantLayer operation and every\n * delegation grant uses.\n *\n * Only a **gasless-wallet `execute`** operation names a positive id, and the\n * id must match the wallet the operation was signed against: the signed\n * `target` is that wallet's address, so changing the id without re-signing\n * relays the signature against the wrong wallet and the batch reverts.\n */\n walletId?: bigint;\n}\n\n/**\n * Parameters for {@link relayInstantOperations}.\n */\nexport type RelayInstantOperationsParameters = Compute<\n ChainIdParameter & {\n /**\n * The signed operations, in execution order. The batch is **atomic** — one\n * revert rolls back every operation and every fee — so only bundle\n * operations that must share fate. Replay nonces must be strictly\n * sequential in this order (`current + 1`, `current + 2`, …).\n */\n operations: readonly GaslessSignedOperationInput[];\n /**\n * Workflow label stored with the request (display, metrics, idempotency).\n * Free-form, 1–128 chars; fees are derived on-chain from calldata\n * selectors, never from this. Keep it stable per action.\n */\n operationType: string;\n /** Wallet the workflow is tracked under (not necessarily the raw signer). */\n userAddress: Address;\n /** Optional client accounting id stored with the request. */\n accountId?: string;\n /**\n * Registered result-chained template id; omit for independent batches.\n *\n * The contract's `relayInstantTemplate` takes no wallet ids, so a template\n * batch must leave every operation on wallet `0`.\n */\n templateId?: number;\n /**\n * Stable retry key (max 128 chars). Defaults to a random UUID.\n *\n * **One key per signature.** The signed operations are built by the caller\n * here, so the key is a parameter: pass the same one to replay a submit\n * whose response was lost, and the service returns the existing record\n * instead of duplicating work. Change anything in the batch — re-sign, add\n * an operation, move a wallet id — and the key must change too, or the\n * service answers `409 IDEMPOTENCY_KEY_CONFLICT`\n * (`isGaslessIdempotencyConflictError`).\n */\n idempotencyKey?: string;\n /** Non-secret client correlation data stored with the request. */\n metadata?: Record<string, unknown>;\n }\n>;\n\n/** Return type of {@link relayInstantOperations}. */\nexport type RelayInstantOperationsReturnType = GaslessSubmitReceipt;\n\n/**\n * The wallet ids a batch relays under, one per operation, validated.\n *\n * Always sent explicitly, never left to the service's zero-filling default:\n * an omitted array is a legacy-client affordance, and relying on it would make\n * a dropped or reordered id indistinguishable from \"no wallets selected\".\n *\n * @internal\n */\nfunction toGaslessBatchWalletIds(\n operations: readonly GaslessSignedOperationInput[],\n templateId: number | undefined,\n): bigint[] {\n const walletIds = operations.map((entry, index) =>\n assertGaslessWalletId(entry.walletId ?? 0n, `operations[${index}].walletId`),\n );\n if (templateId !== undefined && walletIds.some((walletId) => walletId !== 0n)) {\n throw new SymmError(\n \"validation\",\n \"GASLESS_TEMPLATE_WALLET_ID_UNSUPPORTED\",\n `Gasless: templateId ${templateId} relays through relayInstantTemplate, which takes no wallet ids — every operation in a template batch must use wallet 0. Relay gasless-wallet operations as an ordinary batch instead.`,\n );\n }\n return walletIds;\n}\n\n/**\n * Submit signed InstantLayer operations to the GaslessQ relayer.\n *\n * Fire-and-forget: the service validates and simulates the batch, returns\n * `202` with a `request_id`, and broadcasts asynchronously — poll\n * `getGaslessRequest` (or await `waitForGaslessRequest`) to a terminal status.\n *\n * Transport failures are dispositioned before they reach you: a `429` or a\n * gateway-`503` is resent under the same key (it never reached the service),\n * an ambiguous failure is resent once and then thrown as\n * `GASLESS_SUBMIT_UNCONFIRMED` with the exact bytes to replay\n * (`getGaslessUnconfirmedSubmit` → `resubmitGaslessRequest`), and a definitive\n * 4xx is thrown as-is — inspect it with `parseGaslessErrorDetail` or\n * `classifyGaslessFailure`, and treat only `isConfirmedGaslessFeeLimitError` /\n * `isConfirmedGaslessUnavailableError` as safe grounds for a wallet-paid retry.\n *\n * **A 202 is the point of no return**: the workflow exists server-side and the\n * transaction may execute even if polling later fails — never re-submit the\n * same intent through the wallet afterwards.\n *\n * The batch always carries an explicit `walletIds` array, one decimal id per\n * operation, taken from each entry's `walletId` (default `0n`). Persist the\n * receipt's `owner`, `walletIds` and `idempotencyKey` with its `requestId`: a\n * bare request id is not enough context to reconcile a workflow after a reload.\n *\n * @param config - The SDK config.\n * @param parameters - Signed operations, workflow labels, retry key.\n * @returns The acceptance receipt; persist `requestId` immediately.\n * @throws {SymmError} `GASLESS_NOT_CONFIGURED` / `GASLESS_UNSUPPORTED_CONTRACTS_VERSION`.\n * @throws {SymmError} `GASLESS_EMPTY_BATCH` for an empty `operations` array.\n * @throws {SymmError} `GASLESS_TEMPLATE_ID_INVALID` for a `templateId` that is not a non-negative safe integer.\n * @throws {SymmError} `GASLESS_TEMPLATE_WALLET_ID_UNSUPPORTED` when a template batch names a non-zero wallet id.\n * @throws {SymmError} `GASLESS_WALLET_ID_INVALID` for a wallet id outside the `uint256` range.\n * @throws {SymmApiError} `GASLESS_RELAY_SUBMIT_FAILED` on HTTP failure.\n * @throws {SymmApiError} `GASLESS_SUBMIT_UNCONFIRMED` when the outcome could not be\n * established; `responseData` is the replayable submit.\n * @throws {SymmApiError} `GASLESS_INSTANCE_MISMATCH` when a `2xx` came from another\n * protocol instance; the accepted body (its `request_id`) stays in `responseData`.\n *\n * @example\n * ```ts\n * const receipt = await relayInstantOperations(config, {\n * userAddress: owner,\n * operationType: \"initiateWithdraw\",\n * operations: [{ operation, signature }],\n * });\n * const record = await waitForGaslessRequest(config, { requestId: receipt.requestId });\n * ```\n */\nexport async function relayInstantOperations(\n config: Config,\n parameters: RelayInstantOperationsParameters,\n): Promise<RelayInstantOperationsReturnType> {\n const { chainId, operations, operationType, userAddress, accountId, templateId, metadata } = parameters;\n if (operations.length === 0) {\n throw new SymmError(\n \"validation\",\n \"GASLESS_EMPTY_BATCH\",\n \"Gasless: relayInstantOperations needs at least one signed operation — the service rejects an empty batch.\",\n );\n }\n if (templateId !== undefined && (!Number.isSafeInteger(templateId) || templateId < 0)) {\n throw new SymmError(\n \"validation\",\n \"GASLESS_TEMPLATE_ID_INVALID\",\n `Gasless: templateId ${templateId} is not a non-negative safe integer. An unguarded value serializes to JSON \\`null\\`, which the service reads as \"no template\" and relays as a plain batch.`,\n );\n }\n const walletIds = toGaslessBatchWalletIds(operations, templateId);\n\n const context = resolveGaslessHttp(config, { chainId, service: \"operations\" });\n const idempotencyKey = parameters.idempotencyKey ?? generateGaslessIdempotencyKey();\n\n const body: GaslessWireRelayInstantRequest = {\n idempotencyKey,\n userAddress,\n ...(accountId !== undefined ? { accountId } : {}),\n operationType,\n ...(templateId !== undefined ? { templateId } : {}),\n signedOps: operations.map((entry) => formatGaslessOperation(entry.operation)),\n signatures: operations.map((entry) => entry.signature),\n walletIds: walletIds.map(toGaslessWalletIdWire),\n fills: operations.map((entry) => [...(entry.fills ?? [])]),\n flexFillerSignatures: operations.map((entry) => [...(entry.flexFillerSignatures ?? [])]),\n ...(metadata !== undefined ? { metadata } : {}),\n };\n\n const raw = await postGaslessSubmit<GaslessWireOperationAccepted>(\n context,\n \"/gateway/relay-instant\",\n body,\n idempotencyKey,\n );\n\n return toGaslessSubmitReceipt(raw, {\n owner: userAddress,\n walletIds,\n idempotencyKey,\n protocolInstance: context.protocolInstance,\n });\n}\n"],"mappings":";;;;;;AAiGA,SAAS,EACP,GACA,GACU;CACV,IAAM,IAAY,EAAW,KAAK,GAAO,MACvC,EAAsB,EAAM,YAAY,IAAI,cAAc,EAAM,WAAW,CAC7E;CACA,IAAI,MAAe,KAAA,KAAa,EAAU,MAAM,MAAa,MAAa,EAAE,GAC1E,MAAM,IAAI,EACR,cACA,0CACA,uBAAuB,EAAW,uLACpC;CAEF,OAAO;AACT;AAmDA,eAAsB,EACpB,GACA,GAC2C;CAC3C,IAAM,EAAE,YAAS,eAAY,kBAAe,gBAAa,cAAW,eAAY,gBAAa;CAC7F,IAAI,EAAW,WAAW,GACxB,MAAM,IAAI,EACR,cACA,uBACA,2GACF;CAEF,IAAI,MAAe,KAAA,MAAc,CAAC,OAAO,cAAc,CAAU,KAAK,IAAa,IACjF,MAAM,IAAI,EACR,cACA,+BACA,uBAAuB,EAAW,2JACpC;CAEF,IAAM,IAAY,EAAwB,GAAY,CAAU,GAE1D,IAAU,EAAmB,GAAQ;EAAE;EAAS,SAAS;CAAa,CAAC,GACvE,IAAiB,EAAW,kBAAkB,EAA8B;CAuBlF,OAAO,EAAuB,MAPZ,EAChB,GACA,0BACA;EAhBA;EACA;EACA,GAAI,MAAc,KAAA,IAA4B,CAAC,IAAjB,EAAE,aAAU;EAC1C;EACA,GAAI,MAAe,KAAA,IAA6B,CAAC,IAAlB,EAAE,cAAW;EAC5C,WAAW,EAAW,KAAK,MAAU,EAAuB,EAAM,SAAS,CAAC;EAC5E,YAAY,EAAW,KAAK,MAAU,EAAM,SAAS;EACrD,WAAW,EAAU,IAAI,CAAqB;EAC9C,OAAO,EAAW,KAAK,MAAU,CAAC,GAAI,EAAM,SAAS,CAAC,CAAE,CAAC;EACzD,sBAAsB,EAAW,KAAK,MAAU,CAAC,GAAI,EAAM,wBAAwB,CAAC,CAAE,CAAC;EACvF,GAAI,MAAa,KAAA,IAA2B,CAAC,IAAhB,EAAE,YAAS;CAMxC,GACA,CACF,GAEmC;EACjC,OAAO;EACP;EACA;EACA,kBAAkB,EAAQ;CAC5B,CAAC;AACH"}
|