viem 2.57.4 → 2.57.6
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/CHANGELOG.md +34 -0
- package/_cjs/actions/public/waitForTransactionReceipt.js +5 -2
- package/_cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
- package/_cjs/actions/wallet/waitForCallsStatus.js +25 -2
- package/_cjs/actions/wallet/waitForCallsStatus.js.map +1 -1
- package/_cjs/chains/definitions/arcTestnet.js +11 -8
- package/_cjs/chains/definitions/arcTestnet.js.map +1 -1
- package/_cjs/chains/definitions/qmsTestnet.js +30 -0
- package/_cjs/chains/definitions/qmsTestnet.js.map +1 -0
- package/_cjs/chains/definitions/tempo.js +1 -1
- package/_cjs/chains/definitions/tempoModerato.js +2 -2
- package/_cjs/chains/index.js +7 -5
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/clients/transports/ipc.js +19 -10
- package/_cjs/clients/transports/ipc.js.map +1 -1
- package/_cjs/clients/transports/webSocket.js +19 -10
- package/_cjs/clients/transports/webSocket.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/tempo/Abis.js +297 -1
- package/_cjs/tempo/Abis.js.map +1 -1
- package/_cjs/tempo/Account.js +40 -40
- package/_cjs/tempo/Account.js.map +1 -1
- package/_cjs/tempo/Addresses.js +2 -1
- package/_cjs/tempo/Addresses.js.map +1 -1
- package/_cjs/tempo/Decorator.js +9 -8
- package/_cjs/tempo/Decorator.js.map +1 -1
- package/_cjs/tempo/ExecutionError.js +95 -4
- package/_cjs/tempo/ExecutionError.js.map +1 -1
- package/_cjs/tempo/Formatters.js +8 -7
- package/_cjs/tempo/Formatters.js.map +1 -1
- package/_cjs/tempo/KeyAuthorizationManager.js +25 -16
- package/_cjs/tempo/KeyAuthorizationManager.js.map +1 -1
- package/_cjs/tempo/Relay.js +9 -4
- package/_cjs/tempo/Relay.js.map +1 -1
- package/_cjs/tempo/Transaction.js +9 -9
- package/_cjs/tempo/Transaction.js.map +1 -1
- package/_cjs/tempo/Transport.js +21 -11
- package/_cjs/tempo/Transport.js.map +1 -1
- package/_cjs/tempo/{multisig → accounts}/Config.js +8 -8
- package/_cjs/tempo/{multisig → accounts}/Config.js.map +1 -1
- package/_cjs/tempo/{multisig → accounts}/Operation.js +10 -10
- package/_cjs/tempo/{multisig → accounts}/Operation.js.map +1 -1
- package/_cjs/tempo/{multisig → accounts}/Signature.js +2 -2
- package/_cjs/tempo/accounts/Signature.js.map +1 -0
- package/_cjs/tempo/actions/accessKey.js +442 -47
- package/_cjs/tempo/actions/accessKey.js.map +1 -1
- package/_cjs/tempo/actions/{multisig.js → accounts.js} +16 -20
- package/_cjs/tempo/actions/accounts.js.map +1 -0
- package/_cjs/tempo/actions/amm.js +90 -4
- package/_cjs/tempo/actions/amm.js.map +1 -1
- package/_cjs/tempo/actions/channel.js +183 -7
- package/_cjs/tempo/actions/channel.js.map +1 -1
- package/_cjs/tempo/actions/dex.js +507 -14
- package/_cjs/tempo/actions/dex.js.map +1 -1
- package/_cjs/tempo/actions/earn/deployment.js +4 -3
- package/_cjs/tempo/actions/earn/deployment.js.map +1 -1
- package/_cjs/tempo/actions/earn.js +22 -21
- package/_cjs/tempo/actions/earn.js.map +1 -1
- package/_cjs/tempo/actions/fee.js +85 -5
- package/_cjs/tempo/actions/fee.js.map +1 -1
- package/_cjs/tempo/actions/index.js +2 -2
- package/_cjs/tempo/actions/index.js.map +1 -1
- package/_cjs/tempo/actions/nonce.js +54 -1
- package/_cjs/tempo/actions/nonce.js.map +1 -1
- package/_cjs/tempo/actions/policy.js +35 -6
- package/_cjs/tempo/actions/policy.js.map +1 -1
- package/_cjs/tempo/actions/propAmm.js +18 -8
- package/_cjs/tempo/actions/propAmm.js.map +1 -1
- package/_cjs/tempo/actions/receivePolicy.js +7 -6
- package/_cjs/tempo/actions/receivePolicy.js.map +1 -1
- package/_cjs/tempo/actions/reward.js +7 -6
- package/_cjs/tempo/actions/reward.js.map +1 -1
- package/_cjs/tempo/actions/token.js +433 -22
- package/_cjs/tempo/actions/token.js.map +1 -1
- package/_cjs/tempo/actions/validator.js +12 -11
- package/_cjs/tempo/actions/validator.js.map +1 -1
- package/_cjs/tempo/actions/virtualAddress.js +3 -2
- package/_cjs/tempo/actions/virtualAddress.js.map +1 -1
- package/_cjs/tempo/actions/zone.js +12 -11
- package/_cjs/tempo/actions/zone.js.map +1 -1
- package/_cjs/tempo/chainConfig.js +37 -37
- package/_cjs/tempo/chainConfig.js.map +1 -1
- package/_cjs/tempo/errors.js +57 -1
- package/_cjs/tempo/errors.js.map +1 -1
- package/_cjs/tempo/index.js +3 -3
- package/_cjs/tempo/index.js.map +1 -1
- package/_cjs/tempo/internal/errors.js +46 -0
- package/_cjs/tempo/internal/errors.js.map +1 -0
- package/_cjs/tempo/internal/relay/{multisig.js → accounts.js} +90 -93
- package/_cjs/tempo/internal/relay/accounts.js.map +1 -0
- package/_cjs/tempo/internal/relay/keyAuthorization.js +296 -0
- package/_cjs/tempo/internal/relay/keyAuthorization.js.map +1 -0
- package/_cjs/tempo/internal/relay/plugin.js +17 -7
- package/_cjs/tempo/internal/relay/plugin.js.map +1 -1
- package/_cjs/tempo/internal/resolveError.js +128 -0
- package/_cjs/tempo/internal/resolveError.js.map +1 -0
- package/_cjs/tempo/internal/utils.js +1 -0
- package/_cjs/tempo/internal/utils.js.map +1 -1
- package/_cjs/utils/hash/normalizeSignature.js +1 -1
- package/_cjs/utils/hash/normalizeSignature.js.map +1 -1
- package/_cjs/utils/rpc/http.js +66 -31
- package/_cjs/utils/rpc/http.js.map +1 -1
- package/_cjs/utils/rpc/socket.js +1 -1
- package/_cjs/utils/rpc/socket.js.map +1 -1
- package/_esm/actions/public/waitForTransactionReceipt.js +5 -2
- package/_esm/actions/public/waitForTransactionReceipt.js.map +1 -1
- package/_esm/actions/wallet/waitForCallsStatus.js +39 -2
- package/_esm/actions/wallet/waitForCallsStatus.js.map +1 -1
- package/_esm/chains/definitions/arcTestnet.js +11 -8
- package/_esm/chains/definitions/arcTestnet.js.map +1 -1
- package/_esm/chains/definitions/qmsTestnet.js +27 -0
- package/_esm/chains/definitions/qmsTestnet.js.map +1 -0
- package/_esm/chains/definitions/tempo.js +1 -1
- package/_esm/chains/definitions/tempoModerato.js +2 -2
- package/_esm/chains/index.js +1 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/clients/transports/ipc.js +21 -10
- package/_esm/clients/transports/ipc.js.map +1 -1
- package/_esm/clients/transports/webSocket.js +21 -10
- package/_esm/clients/transports/webSocket.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/tempo/Abis.js +297 -0
- package/_esm/tempo/Abis.js.map +1 -1
- package/_esm/tempo/Account.js +42 -42
- package/_esm/tempo/Account.js.map +1 -1
- package/_esm/tempo/Addresses.js +1 -0
- package/_esm/tempo/Addresses.js.map +1 -1
- package/_esm/tempo/Client.js +3 -3
- package/_esm/tempo/Decorator.js +9 -8
- package/_esm/tempo/Decorator.js.map +1 -1
- package/_esm/tempo/ExecutionError.js +96 -3
- package/_esm/tempo/ExecutionError.js.map +1 -1
- package/_esm/tempo/Formatters.js +11 -10
- package/_esm/tempo/Formatters.js.map +1 -1
- package/_esm/tempo/KeyAuthorizationManager.js +58 -16
- package/_esm/tempo/KeyAuthorizationManager.js.map +1 -1
- package/_esm/tempo/Relay.js +49 -8
- package/_esm/tempo/Relay.js.map +1 -1
- package/_esm/tempo/Transaction.js +11 -11
- package/_esm/tempo/Transaction.js.map +1 -1
- package/_esm/tempo/Transport.js +22 -12
- package/_esm/tempo/Transport.js.map +1 -1
- package/_esm/tempo/{multisig → accounts}/Config.js +14 -14
- package/_esm/tempo/{multisig → accounts}/Config.js.map +1 -1
- package/_esm/tempo/{multisig → accounts}/Operation.js +17 -17
- package/_esm/tempo/{multisig → accounts}/Operation.js.map +1 -1
- package/_esm/tempo/accounts/Signature.js +9 -0
- package/_esm/tempo/accounts/Signature.js.map +1 -0
- package/_esm/tempo/actions/accessKey.js +499 -48
- package/_esm/tempo/actions/accessKey.js.map +1 -1
- package/_esm/tempo/actions/{multisig.js → accounts.js} +34 -38
- package/_esm/tempo/actions/accounts.js.map +1 -0
- package/_esm/tempo/actions/amm.js +95 -4
- package/_esm/tempo/actions/amm.js.map +1 -1
- package/_esm/tempo/actions/channel.js +191 -7
- package/_esm/tempo/actions/channel.js.map +1 -1
- package/_esm/tempo/actions/dex.js +537 -14
- package/_esm/tempo/actions/dex.js.map +1 -1
- package/_esm/tempo/actions/earn/deployment.js +4 -3
- package/_esm/tempo/actions/earn/deployment.js.map +1 -1
- package/_esm/tempo/actions/earn.js +22 -21
- package/_esm/tempo/actions/earn.js.map +1 -1
- package/_esm/tempo/actions/fee.js +90 -6
- package/_esm/tempo/actions/fee.js.map +1 -1
- package/_esm/tempo/actions/index.js +1 -1
- package/_esm/tempo/actions/index.js.map +1 -1
- package/_esm/tempo/actions/nonce.js +57 -1
- package/_esm/tempo/actions/nonce.js.map +1 -1
- package/_esm/tempo/actions/policy.js +36 -6
- package/_esm/tempo/actions/policy.js.map +1 -1
- package/_esm/tempo/actions/propAmm.js +18 -8
- package/_esm/tempo/actions/propAmm.js.map +1 -1
- package/_esm/tempo/actions/receivePolicy.js +7 -6
- package/_esm/tempo/actions/receivePolicy.js.map +1 -1
- package/_esm/tempo/actions/reward.js +7 -6
- package/_esm/tempo/actions/reward.js.map +1 -1
- package/_esm/tempo/actions/token.js +461 -22
- package/_esm/tempo/actions/token.js.map +1 -1
- package/_esm/tempo/actions/validator.js +12 -11
- package/_esm/tempo/actions/validator.js.map +1 -1
- package/_esm/tempo/actions/virtualAddress.js +3 -2
- package/_esm/tempo/actions/virtualAddress.js.map +1 -1
- package/_esm/tempo/actions/zone.js +12 -11
- package/_esm/tempo/actions/zone.js.map +1 -1
- package/_esm/tempo/chainConfig.js +38 -38
- package/_esm/tempo/chainConfig.js.map +1 -1
- package/_esm/tempo/errors.js +63 -0
- package/_esm/tempo/errors.js.map +1 -1
- package/_esm/tempo/index.js +2 -1
- package/_esm/tempo/index.js.map +1 -1
- package/_esm/tempo/internal/errors.js +51 -0
- package/_esm/tempo/internal/errors.js.map +1 -0
- package/_esm/tempo/internal/relay/{multisig.js → accounts.js} +93 -98
- package/_esm/tempo/internal/relay/accounts.js.map +1 -0
- package/_esm/tempo/internal/relay/feePayer.js +1 -1
- package/_esm/tempo/internal/relay/feePayer.js.map +1 -1
- package/_esm/tempo/internal/relay/keyAuthorization.js +334 -0
- package/_esm/tempo/internal/relay/keyAuthorization.js.map +1 -0
- package/_esm/tempo/internal/relay/plugin.js +15 -6
- package/_esm/tempo/internal/relay/plugin.js.map +1 -1
- package/_esm/tempo/internal/resolveError.js +130 -0
- package/_esm/tempo/internal/resolveError.js.map +1 -0
- package/_esm/tempo/internal/utils.js +2 -0
- package/_esm/tempo/internal/utils.js.map +1 -1
- package/_esm/utils/hash/normalizeSignature.js +3 -2
- package/_esm/utils/hash/normalizeSignature.js.map +1 -1
- package/_esm/utils/rpc/http.js +74 -31
- package/_esm/utils/rpc/http.js.map +1 -1
- package/_esm/utils/rpc/socket.js +3 -1
- package/_esm/utils/rpc/socket.js.map +1 -1
- package/_types/actions/public/waitForTransactionReceipt.d.ts.map +1 -1
- package/_types/actions/wallet/waitForCallsStatus.d.ts.map +1 -1
- package/_types/chains/definitions/arcTestnet.d.ts +5 -5
- package/_types/chains/definitions/arcTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/qmsTestnet.d.ts +50 -0
- package/_types/chains/definitions/qmsTestnet.d.ts.map +1 -0
- package/_types/chains/definitions/tempo.d.ts +2 -2
- package/_types/chains/definitions/tempoModerato.d.ts +4 -4
- package/_types/chains/index.d.ts +1 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/clients/transports/ipc.d.ts.map +1 -1
- package/_types/clients/transports/webSocket.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/tempo/Abis.d.ts +807 -0
- package/_types/tempo/Abis.d.ts.map +1 -1
- package/_types/tempo/Account.d.ts +28 -28
- package/_types/tempo/Account.d.ts.map +1 -1
- package/_types/tempo/Addresses.d.ts +1 -0
- package/_types/tempo/Addresses.d.ts.map +1 -1
- package/_types/tempo/Client.d.ts +3 -3
- package/_types/tempo/Decorator.d.ts +64 -38
- package/_types/tempo/Decorator.d.ts.map +1 -1
- package/_types/tempo/ExecutionError.d.ts +3 -1
- package/_types/tempo/ExecutionError.d.ts.map +1 -1
- package/_types/tempo/Formatters.d.ts.map +1 -1
- package/_types/tempo/KeyAuthorizationManager.d.ts +45 -2
- package/_types/tempo/KeyAuthorizationManager.d.ts.map +1 -1
- package/_types/tempo/Relay.d.ts +62 -12
- package/_types/tempo/Relay.d.ts.map +1 -1
- package/_types/tempo/Transaction.d.ts +14 -11
- package/_types/tempo/Transaction.d.ts.map +1 -1
- package/_types/tempo/Transport.d.ts +20 -7
- package/_types/tempo/Transport.d.ts.map +1 -1
- package/_types/tempo/{multisig → accounts}/Config.d.ts +7 -7
- package/_types/tempo/accounts/Config.d.ts.map +1 -0
- package/_types/tempo/{multisig → accounts}/Operation.d.ts +7 -7
- package/_types/tempo/accounts/Operation.d.ts.map +1 -0
- package/_types/tempo/{multisig → accounts}/Signature.d.ts +1 -1
- package/_types/tempo/accounts/Signature.d.ts.map +1 -0
- package/_types/tempo/actions/accessKey.d.ts +214 -25
- package/_types/tempo/actions/accessKey.d.ts.map +1 -1
- package/_types/tempo/actions/{multisig.d.ts → accounts.d.ts} +31 -29
- package/_types/tempo/actions/accounts.d.ts.map +1 -0
- package/_types/tempo/actions/amm.d.ts +39 -0
- package/_types/tempo/actions/amm.d.ts.map +1 -1
- package/_types/tempo/actions/channel.d.ts +77 -7
- package/_types/tempo/actions/channel.d.ts.map +1 -1
- package/_types/tempo/actions/dex.d.ts +222 -16
- package/_types/tempo/actions/dex.d.ts.map +1 -1
- package/_types/tempo/actions/earn/deployment.d.ts +7 -6
- package/_types/tempo/actions/earn/deployment.d.ts.map +1 -1
- package/_types/tempo/actions/earn.d.ts +15 -14
- package/_types/tempo/actions/earn.d.ts.map +1 -1
- package/_types/tempo/actions/fee.d.ts +32 -6
- package/_types/tempo/actions/fee.d.ts.map +1 -1
- package/_types/tempo/actions/index.d.ts +1 -1
- package/_types/tempo/actions/index.d.ts.map +1 -1
- package/_types/tempo/actions/nonce.d.ts +35 -0
- package/_types/tempo/actions/nonce.d.ts.map +1 -1
- package/_types/tempo/actions/policy.d.ts +29 -8
- package/_types/tempo/actions/policy.d.ts.map +1 -1
- package/_types/tempo/actions/propAmm.d.ts +9 -1
- package/_types/tempo/actions/propAmm.d.ts.map +1 -1
- package/_types/tempo/actions/receivePolicy.d.ts +10 -6
- package/_types/tempo/actions/receivePolicy.d.ts.map +1 -1
- package/_types/tempo/actions/reward.d.ts +7 -3
- package/_types/tempo/actions/reward.d.ts.map +1 -1
- package/_types/tempo/actions/token.d.ts +200 -32
- package/_types/tempo/actions/token.d.ts.map +1 -1
- package/_types/tempo/actions/validator.d.ts +17 -5
- package/_types/tempo/actions/validator.d.ts.map +1 -1
- package/_types/tempo/actions/virtualAddress.d.ts +4 -3
- package/_types/tempo/actions/virtualAddress.d.ts.map +1 -1
- package/_types/tempo/actions/zone.d.ts +10 -9
- package/_types/tempo/actions/zone.d.ts.map +1 -1
- package/_types/tempo/errors.d.ts +63 -1
- package/_types/tempo/errors.d.ts.map +1 -1
- package/_types/tempo/index.d.ts +3 -2
- package/_types/tempo/index.d.ts.map +1 -1
- package/_types/tempo/internal/errors.d.ts +59 -0
- package/_types/tempo/internal/errors.d.ts.map +1 -0
- package/_types/tempo/internal/relay/accounts.d.ts +15 -0
- package/_types/tempo/internal/relay/accounts.d.ts.map +1 -0
- package/_types/tempo/internal/relay/keyAuthorization.d.ts +25 -0
- package/_types/tempo/internal/relay/keyAuthorization.d.ts.map +1 -0
- package/_types/tempo/internal/relay/plugin.d.ts +6 -3
- package/_types/tempo/internal/relay/plugin.d.ts.map +1 -1
- package/_types/tempo/internal/resolveError.d.ts +8 -0
- package/_types/tempo/internal/resolveError.d.ts.map +1 -0
- package/_types/tempo/internal/utils.d.ts.map +1 -1
- package/_types/utils/hash/normalizeSignature.d.ts.map +1 -1
- package/_types/utils/rpc/http.d.ts.map +1 -1
- package/_types/utils/rpc/socket.d.ts.map +1 -1
- package/actions/public/waitForTransactionReceipt.ts +8 -2
- package/actions/wallet/waitForCallsStatus.ts +41 -2
- package/chains/definitions/arcTestnet.ts +11 -8
- package/chains/definitions/qmsTestnet.ts +27 -0
- package/chains/definitions/tempo.ts +1 -1
- package/chains/definitions/tempoModerato.ts +2 -2
- package/chains/index.ts +1 -0
- package/clients/transports/ipc.ts +38 -29
- package/clients/transports/webSocket.ts +42 -33
- package/errors/version.ts +1 -1
- package/package.json +2 -2
- package/tempo/Abis.ts +298 -0
- package/tempo/Account.ts +95 -84
- package/tempo/Addresses.ts +1 -0
- package/tempo/Client.ts +3 -3
- package/tempo/Decorator.ts +91 -60
- package/tempo/ExecutionError.ts +102 -4
- package/tempo/Formatters.ts +14 -13
- package/tempo/KeyAuthorizationManager.ts +71 -19
- package/tempo/Relay.ts +70 -14
- package/tempo/Transaction.ts +31 -23
- package/tempo/Transport.ts +49 -21
- package/tempo/{multisig → accounts}/Config.ts +21 -21
- package/tempo/{multisig → accounts}/Operation.ts +26 -26
- package/tempo/{multisig → accounts}/Signature.ts +5 -3
- package/tempo/actions/accessKey.ts +675 -104
- package/tempo/actions/{multisig.ts → accounts.ts} +54 -59
- package/tempo/actions/amm.ts +126 -4
- package/tempo/actions/channel.ts +248 -14
- package/tempo/actions/dex.ts +599 -33
- package/tempo/actions/earn/deployment.ts +11 -9
- package/tempo/actions/earn.ts +40 -35
- package/tempo/actions/fee.ts +111 -9
- package/tempo/actions/index.ts +1 -1
- package/tempo/actions/nonce.ts +86 -1
- package/tempo/actions/policy.ts +66 -14
- package/tempo/actions/propAmm.ts +36 -9
- package/tempo/actions/receivePolicy.ts +26 -15
- package/tempo/actions/reward.ts +17 -9
- package/tempo/actions/token.ts +519 -54
- package/tempo/actions/validator.ts +40 -16
- package/tempo/actions/virtualAddress.ts +7 -5
- package/tempo/actions/zone.ts +25 -20
- package/tempo/chainConfig.ts +52 -52
- package/tempo/errors.ts +114 -1
- package/tempo/index.ts +5 -4
- package/tempo/internal/errors.ts +110 -0
- package/tempo/internal/relay/{multisig.ts → accounts.ts} +118 -118
- package/tempo/internal/relay/feePayer.ts +1 -1
- package/tempo/internal/relay/keyAuthorization.ts +415 -0
- package/tempo/internal/relay/plugin.ts +20 -7
- package/tempo/internal/resolveError.ts +169 -0
- package/tempo/internal/utils.ts +2 -0
- package/utils/hash/normalizeSignature.ts +3 -2
- package/utils/rpc/http.ts +76 -30
- package/utils/rpc/socket.ts +3 -1
- package/_cjs/tempo/actions/multisig.js.map +0 -1
- package/_cjs/tempo/internal/relay/multisig.js.map +0 -1
- package/_cjs/tempo/multisig/Signature.js.map +0 -1
- package/_esm/tempo/actions/multisig.js.map +0 -1
- package/_esm/tempo/internal/relay/multisig.js.map +0 -1
- package/_esm/tempo/multisig/Signature.js +0 -9
- package/_esm/tempo/multisig/Signature.js.map +0 -1
- package/_types/tempo/actions/multisig.d.ts.map +0 -1
- package/_types/tempo/internal/relay/multisig.d.ts +0 -4
- package/_types/tempo/internal/relay/multisig.d.ts.map +0 -1
- package/_types/tempo/multisig/Config.d.ts.map +0 -1
- package/_types/tempo/multisig/Operation.d.ts.map +0 -1
- package/_types/tempo/multisig/Signature.d.ts.map +0 -1
package/_esm/tempo/Formatters.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// TODO: Find opportunities to make this file less duplicated + more simplified with Viem v3.
|
|
2
2
|
import * as Hex from 'ox/Hex';
|
|
3
|
-
import {
|
|
3
|
+
import { AccountOperation, Transaction as ox_Transaction, TransactionRequest as ox_TransactionRequest, } from 'ox/tempo';
|
|
4
4
|
import { parseAccount } from '../accounts/utils/parseAccount.js';
|
|
5
5
|
import { formatTransaction as viem_formatTransaction } from '../utils/formatters/transaction.js';
|
|
6
6
|
import { formatTransactionReceipt as viem_formatTransactionReceipt } from '../utils/formatters/transactionReceipt.js';
|
|
@@ -13,7 +13,7 @@ export function formatTransaction(transaction) {
|
|
|
13
13
|
const blockTimestamp = transaction.blockTimestamp == null
|
|
14
14
|
? undefined
|
|
15
15
|
: BigInt(transaction.blockTimestamp);
|
|
16
|
-
const
|
|
16
|
+
const operation = transaction.operation;
|
|
17
17
|
const { feePayerSignature, gasPrice: _, nonce, ...tx } = ox_Transaction.fromRpc(transaction);
|
|
18
18
|
return {
|
|
19
19
|
...tx,
|
|
@@ -27,8 +27,8 @@ export function formatTransaction(transaction) {
|
|
|
27
27
|
yParity: feePayerSignature.yParity,
|
|
28
28
|
}
|
|
29
29
|
: undefined,
|
|
30
|
-
multisig: formatMultisig(multisig),
|
|
31
30
|
nonce: Number(nonce),
|
|
31
|
+
operation: formatOperation(operation),
|
|
32
32
|
typeHex: ox_Transaction.toRpcType[tx.type],
|
|
33
33
|
type: tx.type,
|
|
34
34
|
};
|
|
@@ -37,19 +37,19 @@ export function formatTransactionReceipt(receipt) {
|
|
|
37
37
|
const transactionReceipt = viem_formatTransactionReceipt(receipt);
|
|
38
38
|
return {
|
|
39
39
|
...transactionReceipt,
|
|
40
|
-
|
|
40
|
+
operation: formatOperation(receipt.operation),
|
|
41
41
|
...(receipt.status === 'pending'
|
|
42
42
|
? { status: 'pending', type: 'tempo' }
|
|
43
43
|
: {}),
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
/** Formats a transaction operation attached to an RPC result. */
|
|
47
|
-
function
|
|
47
|
+
function formatOperation(value) {
|
|
48
48
|
if (!value)
|
|
49
49
|
return undefined;
|
|
50
|
-
const operation =
|
|
50
|
+
const operation = AccountOperation.fromRpc(value);
|
|
51
51
|
if (operation.type !== 'transaction')
|
|
52
|
-
throw new Error('Expected
|
|
52
|
+
throw new Error('Expected an account transaction operation.');
|
|
53
53
|
return operation;
|
|
54
54
|
}
|
|
55
55
|
export function formatTransactionRequest(r, action) {
|
|
@@ -61,7 +61,7 @@ export function formatTransactionRequest(r, action) {
|
|
|
61
61
|
? parseAccount(request.owner)
|
|
62
62
|
: undefined;
|
|
63
63
|
if (owner?.type === 'json-rpc')
|
|
64
|
-
throw new Error('A local owner account is required to approve a
|
|
64
|
+
throw new Error('A local owner account is required to approve a configurable account transaction.');
|
|
65
65
|
// If the request is not a Tempo transaction, route to Viem formatter.
|
|
66
66
|
if (!isTempo(request))
|
|
67
67
|
return viem_formatTransactionRequest(r, action);
|
|
@@ -87,7 +87,7 @@ export function formatTransactionRequest(r, action) {
|
|
|
87
87
|
// the fee payer's signature and identify which token to charge.
|
|
88
88
|
if (request.feePayer === true && !request.feePayerSignature)
|
|
89
89
|
delete request.feeToken;
|
|
90
|
-
// Client-only TIP-
|
|
90
|
+
// Client-only TIP-1107 fields drive local signing and envelope assembly.
|
|
91
91
|
const { owner: _owner, signatures: _signatures, ...rpcRequest } = request;
|
|
92
92
|
const rpc = ox_TransactionRequest.toRpc({
|
|
93
93
|
...rpcRequest,
|
|
@@ -126,7 +126,8 @@ export function formatTransactionRequest(r, action) {
|
|
|
126
126
|
...(keyData ? { keyData } : {}),
|
|
127
127
|
...(keyId ? { keyId } : {}),
|
|
128
128
|
...(keyType ? { keyType } : {}),
|
|
129
|
-
// Keep
|
|
129
|
+
// Keep client-only keys visible to `extract`; undefined values never reach JSON-RPC.
|
|
130
|
+
...(request.accountSimulation ? { accountSimulation: undefined } : {}),
|
|
130
131
|
...(request.owner ? { owner: undefined } : {}),
|
|
131
132
|
...(typeof request.feePayer !== 'undefined'
|
|
132
133
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Formatters.js","sourceRoot":"","sources":["../../tempo/Formatters.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAG7F,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"Formatters.js","sourceRoot":"","sources":["../../tempo/Formatters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,66 @@
|
|
|
1
|
+
import { KeyAuthorization } from 'ox/tempo';
|
|
2
|
+
import * as Store from './Store.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a key authorization manager backed by a store.
|
|
5
|
+
*
|
|
6
|
+
* Entries use the same keys as the `Relay.keyAuthorization` plugin, so both can
|
|
7
|
+
* share one store.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { Account, KeyAuthorizationManager, Store } from 'viem/tempo'
|
|
12
|
+
*
|
|
13
|
+
* const accessKey = Account.fromP256(privateKey, {
|
|
14
|
+
* access: root,
|
|
15
|
+
* keyAuthorizationManager: KeyAuthorizationManager.from({
|
|
16
|
+
* store: Store.session(),
|
|
17
|
+
* }),
|
|
18
|
+
* })
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param options - Manager options.
|
|
22
|
+
* @returns A key authorization manager.
|
|
23
|
+
*/
|
|
1
24
|
export function from(options) {
|
|
2
|
-
|
|
25
|
+
const { store } = options;
|
|
26
|
+
return {
|
|
27
|
+
async get(key) {
|
|
28
|
+
const value = await store.getItem(getStoreKey(key));
|
|
29
|
+
if (!value)
|
|
30
|
+
return undefined;
|
|
31
|
+
try {
|
|
32
|
+
return KeyAuthorization.deserialize(value);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
async remove(key) {
|
|
39
|
+
await store.removeItem(getStoreKey(key));
|
|
40
|
+
},
|
|
41
|
+
async set(key, keyAuthorization) {
|
|
42
|
+
await store.setItem(getStoreKey(key), KeyAuthorization.serialize(keyAuthorization));
|
|
43
|
+
},
|
|
44
|
+
};
|
|
3
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Creates a key authorization manager backed by a process-local memory store.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* import { KeyAuthorizationManager } from 'viem/tempo'
|
|
52
|
+
*
|
|
53
|
+
* const keyAuthorizationManager = KeyAuthorizationManager.memory()
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @returns A key authorization manager.
|
|
57
|
+
*/
|
|
4
58
|
export function memory() {
|
|
5
|
-
|
|
6
|
-
return from({
|
|
7
|
-
source: {
|
|
8
|
-
get(key) {
|
|
9
|
-
return keyAuthorizations.get(serializeKey(key));
|
|
10
|
-
},
|
|
11
|
-
remove(key) {
|
|
12
|
-
keyAuthorizations.delete(serializeKey(key));
|
|
13
|
-
},
|
|
14
|
-
set(key, keyAuthorization) {
|
|
15
|
-
keyAuthorizations.set(serializeKey(key), keyAuthorization);
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
});
|
|
59
|
+
return from({ store: Store.memory() });
|
|
19
60
|
}
|
|
20
|
-
function
|
|
61
|
+
function getStoreKey(key) {
|
|
21
62
|
return [
|
|
63
|
+
'keyAuthorization',
|
|
22
64
|
key.chainId,
|
|
23
65
|
key.address.toLowerCase(),
|
|
24
66
|
key.accessKey.toLowerCase(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyAuthorizationManager.js","sourceRoot":"","sources":["../../tempo/KeyAuthorizationManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeyAuthorizationManager.js","sourceRoot":"","sources":["../../tempo/KeyAuthorizationManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAsBnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,IAAI,CAAC,OAAqB;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IACzB,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAG;YACX,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;YACnD,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAA;YAC5B,IAAI,CAAC;gBACH,OAAO,gBAAgB,CAAC,WAAW,CACjC,KAAsB,CACI,CAAA;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG;YACd,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB;YAC7B,MAAM,KAAK,CAAC,OAAO,CACjB,WAAW,CAAC,GAAG,CAAC,EAChB,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAC7C,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AASD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,GAAQ;IAC3B,OAAO;QACL,kBAAkB;QAClB,GAAG,CAAC,OAAO;QACX,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE;QACzB,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;KAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACb,CAAC"}
|
package/_esm/tempo/Relay.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as RpcResponse from 'ox/RpcResponse';
|
|
2
2
|
import { ChainNotConfiguredError } from '../clients/createClientResolver.js';
|
|
3
|
+
import * as Accounts from './internal/relay/accounts.js';
|
|
3
4
|
import * as Sponsorship from './internal/relay/feePayer.js';
|
|
4
5
|
import * as FeeToken from './internal/relay/feeToken.js';
|
|
5
|
-
import * as
|
|
6
|
+
import * as KeyAuthorization from './internal/relay/keyAuthorization.js';
|
|
6
7
|
import * as Request_ from './internal/relay/request.js';
|
|
7
8
|
import * as Simulate from './internal/relay/simulate.js';
|
|
8
9
|
import * as internal from './internal/relay.js';
|
|
@@ -100,10 +101,16 @@ export function handleRequest(next, options = {}) {
|
|
|
100
101
|
return Request_.compose(next, options);
|
|
101
102
|
}
|
|
102
103
|
/**
|
|
103
|
-
*
|
|
104
|
+
* Serves configurable accounts using shared atomic storage.
|
|
105
|
+
*
|
|
106
|
+
* The chain stores only a commitment to each account's config, so the plugin
|
|
107
|
+
* records every config it relays (including configs left by `updateConfig`
|
|
108
|
+
* calls) and serves them through `account_getConfig`. It also collects owner
|
|
109
|
+
* approvals until the account's threshold is met, then submits.
|
|
104
110
|
*
|
|
105
111
|
* Memory storage is process-local. Independent clients and multiple server
|
|
106
|
-
* instances must use the same persistent store to share pending
|
|
112
|
+
* instances must use the same persistent store to share configs and pending
|
|
113
|
+
* approvals.
|
|
107
114
|
*
|
|
108
115
|
* @example
|
|
109
116
|
* ```ts
|
|
@@ -111,20 +118,20 @@ export function handleRequest(next, options = {}) {
|
|
|
111
118
|
* import { Relay, Store, withRelay } from 'viem/tempo'
|
|
112
119
|
*
|
|
113
120
|
* const transport = withRelay(http(), {
|
|
114
|
-
* plugins: [Relay.
|
|
121
|
+
* plugins: [Relay.accounts({ store: Store.memory() })],
|
|
115
122
|
* })
|
|
116
123
|
* ```
|
|
117
124
|
*
|
|
118
125
|
* @param options - Shared atomic storage.
|
|
119
|
-
* @returns A plugin that
|
|
126
|
+
* @returns A plugin that handles configurable account requests and forwards other calls.
|
|
120
127
|
*/
|
|
121
|
-
export function
|
|
122
|
-
return
|
|
128
|
+
export function accounts(options) {
|
|
129
|
+
return Accounts.create(options);
|
|
123
130
|
}
|
|
124
131
|
/**
|
|
125
132
|
* Sponsors transactions with a local account or an external fee-payer relay.
|
|
126
133
|
*
|
|
127
|
-
* Place
|
|
134
|
+
* Place accounts before this plugin and fee-token selection after it.
|
|
128
135
|
*
|
|
129
136
|
* @example
|
|
130
137
|
* ```ts
|
|
@@ -151,6 +158,40 @@ export function feePayer(options = {}) {
|
|
|
151
158
|
export function feeToken() {
|
|
152
159
|
return FeeToken.create();
|
|
153
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Stores pending key authorizations and attaches them to the next fill that needs them.
|
|
163
|
+
*
|
|
164
|
+
* Signing a key authorization with `Actions.accessKey.signAuthorization` through a
|
|
165
|
+
* relay with this plugin saves it with `relay_saveKeyAuthorization`. Configurable
|
|
166
|
+
* account key authorizations are saved once they reach quorum. The next `eth_fillTransaction`
|
|
167
|
+
* from the access key includes the authorization until the key is active onchain.
|
|
168
|
+
* Remote `withRelay` transports opt in with `keyAuthorization: true`.
|
|
169
|
+
*
|
|
170
|
+
* Place this plugin before `Relay.accounts` so it can observe completed configurable
|
|
171
|
+
* account key authorizations, and before plugins that read the filled transaction.
|
|
172
|
+
*
|
|
173
|
+
* A saved authorization only replaces a pending authorization that expires earlier,
|
|
174
|
+
* so a replayed older authorization cannot replace a newer one.
|
|
175
|
+
*
|
|
176
|
+
* Memory storage is process-local. Multiple server instances must use the same
|
|
177
|
+
* persistent atomic store to share pending authorizations.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts
|
|
181
|
+
* import { http } from 'viem'
|
|
182
|
+
* import { Relay, Store, withRelay } from 'viem/tempo'
|
|
183
|
+
*
|
|
184
|
+
* const transport = withRelay(http(), {
|
|
185
|
+
* plugins: [Relay.keyAuthorization({ store: Store.memory() })],
|
|
186
|
+
* })
|
|
187
|
+
* ```
|
|
188
|
+
*
|
|
189
|
+
* @param options - Pending key authorization storage.
|
|
190
|
+
* @returns A plugin that stores and attaches pending key authorizations.
|
|
191
|
+
*/
|
|
192
|
+
export function keyAuthorization(options = {}) {
|
|
193
|
+
return KeyAuthorization.create(options);
|
|
194
|
+
}
|
|
154
195
|
/**
|
|
155
196
|
* Adds balance changes, estimated fees, and execution errors to fill capabilities.
|
|
156
197
|
*
|
package/_esm/tempo/Relay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relay.js","sourceRoot":"","sources":["../../tempo/Relay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAA;AAG7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAE5E,OAAO,KAAK,WAAW,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Relay.js","sourceRoot":"","sources":["../../tempo/Relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
// TODO: Find opportunities to make this file less duplicated + more simplified with Viem v3.
|
|
2
2
|
import * as Hex from 'ox/Hex';
|
|
3
3
|
import * as Signature from 'ox/Signature';
|
|
4
|
-
import {
|
|
4
|
+
import { AccountConfig, SignatureEnvelope, TxEnvelopeTempo as TxTempo, } from 'ox/tempo';
|
|
5
5
|
import { getTransactionType as viem_getTransactionType } from '../utils/transaction/getTransactionType.js';
|
|
6
6
|
import { parseTransaction as viem_parseTransaction, } from '../utils/transaction/parseTransaction.js';
|
|
7
7
|
import { serializeTransaction as viem_serializeTransaction } from '../utils/transaction/serializeTransaction.js';
|
|
8
|
-
import { parseApproval } from './
|
|
8
|
+
import { parseApproval } from './accounts/Signature.js';
|
|
9
9
|
export function getType(transaction) {
|
|
10
10
|
const account = transaction.account;
|
|
11
11
|
if ((account?.keyType && account.keyType !== 'secp256k1') ||
|
|
12
12
|
account?.source === 'accessKey' ||
|
|
13
|
-
account?.source === '
|
|
13
|
+
account?.source === 'configurable' ||
|
|
14
14
|
typeof transaction.calls !== 'undefined' ||
|
|
15
15
|
typeof transaction.feePayer !== 'undefined' ||
|
|
16
16
|
typeof transaction.feePayerSignature !== 'undefined' ||
|
|
17
17
|
typeof transaction.feeToken !== 'undefined' ||
|
|
18
18
|
typeof transaction.keyAuthorization !== 'undefined' ||
|
|
19
|
-
typeof transaction.
|
|
19
|
+
typeof transaction.accountSimulation !== 'undefined' ||
|
|
20
20
|
typeof transaction.nonceKey !== 'undefined' ||
|
|
21
21
|
typeof transaction.owner !== 'undefined' ||
|
|
22
22
|
typeof transaction.signature !== 'undefined' ||
|
|
@@ -84,7 +84,7 @@ function deserializeTempo(serializedTransaction) {
|
|
|
84
84
|
}
|
|
85
85
|
/** @internal */
|
|
86
86
|
async function serializeTempo(transaction, sig) {
|
|
87
|
-
// Track caller signatures separately from synthesized
|
|
87
|
+
// Track caller signatures separately from synthesized owner approvals.
|
|
88
88
|
const signature_provided = (() => {
|
|
89
89
|
if (transaction.signature)
|
|
90
90
|
return transaction.signature;
|
|
@@ -98,7 +98,7 @@ async function serializeTempo(transaction, sig) {
|
|
|
98
98
|
});
|
|
99
99
|
return undefined;
|
|
100
100
|
})();
|
|
101
|
-
const { chainId, feePayer,
|
|
101
|
+
const { chainId, feePayer, accountSimulation, nonce, owner: _owner, ...rest } = transaction;
|
|
102
102
|
const feePayerSignature = (() => {
|
|
103
103
|
const feePayerSignature = transaction.feePayerSignature;
|
|
104
104
|
if (feePayerSignature)
|
|
@@ -114,7 +114,7 @@ async function serializeTempo(transaction, sig) {
|
|
|
114
114
|
const hasPrefilledFeePayerSignature = typeof transaction.feePayerSignature !== 'undefined' &&
|
|
115
115
|
transaction.feePayerSignature !== null;
|
|
116
116
|
const hasSenderSignature = typeof signature_provided !== 'undefined' ||
|
|
117
|
-
Boolean(
|
|
117
|
+
Boolean(accountSimulation && transaction.signatures);
|
|
118
118
|
// Sponsorship sender signatures omit `feeToken`.
|
|
119
119
|
const shouldStripFeeTokenForSponsorship =
|
|
120
120
|
// Relay fills a partial sender envelope first.
|
|
@@ -153,15 +153,15 @@ async function serializeTempo(transaction, sig) {
|
|
|
153
153
|
const signature = (() => {
|
|
154
154
|
if (signature_provided)
|
|
155
155
|
return signature_provided;
|
|
156
|
-
if (!
|
|
156
|
+
if (!accountSimulation || !transaction.signatures)
|
|
157
157
|
return undefined;
|
|
158
158
|
const payload = TxTempo.getSignPayload(TxTempo.from(transaction_sender_ox));
|
|
159
159
|
const signatures = transaction.signatures.map((approval) => parseApproval(approval));
|
|
160
|
-
const config =
|
|
160
|
+
const config = AccountConfig.from(accountSimulation.config);
|
|
161
161
|
const account = transaction.from;
|
|
162
162
|
if (!account)
|
|
163
|
-
throw new Error('A
|
|
164
|
-
const sorted = SignatureEnvelope.
|
|
163
|
+
throw new Error('A configurable account sender is required for signing.');
|
|
164
|
+
const sorted = SignatureEnvelope.sortApprovals({
|
|
165
165
|
account,
|
|
166
166
|
config,
|
|
167
167
|
payload,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../tempo/Transaction.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAG7F,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,SAAS,MAAM,cAAc,CAAA;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../tempo/Transaction.ts"],"names":[],"mappings":"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"}
|
package/_esm/tempo/Transport.js
CHANGED
|
@@ -63,13 +63,16 @@ export function withRelay(defaultTransport, relayTransport, parameters) {
|
|
|
63
63
|
})),
|
|
64
64
|
value: {
|
|
65
65
|
...transport.value,
|
|
66
|
-
...(relayTransport.plugins?.some(Plugin_.
|
|
67
|
-
? {
|
|
66
|
+
...(relayTransport.plugins?.some(Plugin_.isAccounts)
|
|
67
|
+
? { accounts: true }
|
|
68
|
+
: {}),
|
|
69
|
+
...(relayTransport.plugins?.some(Plugin_.isKeyAuthorization)
|
|
70
|
+
? { keyAuthorization: true }
|
|
68
71
|
: {}),
|
|
69
72
|
},
|
|
70
73
|
};
|
|
71
74
|
};
|
|
72
|
-
const { policy = 'sign-only' } = parameters ?? {};
|
|
75
|
+
const { keyAuthorization, policy = 'sign-only' } = parameters ?? {};
|
|
73
76
|
return (config) => {
|
|
74
77
|
const transport_default = defaultTransport(config);
|
|
75
78
|
const transport_relay = relayTransport(config);
|
|
@@ -86,12 +89,12 @@ export function withRelay(defaultTransport, relayTransport, parameters) {
|
|
|
86
89
|
return result;
|
|
87
90
|
const operation = await (async () => {
|
|
88
91
|
try {
|
|
89
|
-
return await transport_relay.request({ method: '
|
|
92
|
+
return await transport_relay.request({ method: 'account_getOperation', params }, options);
|
|
90
93
|
}
|
|
91
94
|
catch (error) {
|
|
92
95
|
if (error instanceof MethodNotFoundRpcError ||
|
|
93
96
|
error instanceof MethodNotSupportedRpcError) {
|
|
94
|
-
// Relays
|
|
97
|
+
// Relays without the accounts plugin do not expose this method.
|
|
95
98
|
return null;
|
|
96
99
|
}
|
|
97
100
|
throw error;
|
|
@@ -104,17 +107,18 @@ export function withRelay(defaultTransport, relayTransport, parameters) {
|
|
|
104
107
|
return result;
|
|
105
108
|
return transport_relay.request({ method, params }, options);
|
|
106
109
|
}
|
|
107
|
-
if (method === '
|
|
108
|
-
method === '
|
|
109
|
-
method === '
|
|
110
|
-
method === '
|
|
111
|
-
method === '
|
|
110
|
+
if (method === 'account_approveKeyAuthorization' ||
|
|
111
|
+
method === 'account_approveRawTransaction' ||
|
|
112
|
+
method === 'account_approveRawTransactionSync' ||
|
|
113
|
+
method === 'account_getConfig' ||
|
|
114
|
+
method === 'account_getOperation' ||
|
|
115
|
+
method === 'relay_saveKeyAuthorization')
|
|
112
116
|
return transport_relay.request({ method, params }, options);
|
|
113
117
|
if (method === 'eth_sendRawTransactionSync' ||
|
|
114
118
|
method === 'eth_sendRawTransaction') {
|
|
115
119
|
const serialized = params[0];
|
|
116
120
|
const transaction = Transaction.deserialize(serialized);
|
|
117
|
-
if (transaction.signature?.type === '
|
|
121
|
+
if (transaction.signature?.type === 'configurable')
|
|
118
122
|
return transport_relay.request({ method, params }, options);
|
|
119
123
|
// Serialized Tempo envelopes encode `feePayer: true` as a missing fee payer
|
|
120
124
|
// signature until the relay co-signs the transaction.
|
|
@@ -138,7 +142,13 @@ export function withRelay(defaultTransport, relayTransport, parameters) {
|
|
|
138
142
|
},
|
|
139
143
|
type: withRelay.type,
|
|
140
144
|
});
|
|
141
|
-
return {
|
|
145
|
+
return {
|
|
146
|
+
...transport,
|
|
147
|
+
value: {
|
|
148
|
+
accounts: true,
|
|
149
|
+
...(keyAuthorization ? { keyAuthorization } : {}),
|
|
150
|
+
},
|
|
151
|
+
};
|
|
142
152
|
};
|
|
143
153
|
}
|
|
144
154
|
/** @deprecated Use `withRelay` instead. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../tempo/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAC/B,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAA;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EACL,eAAe,GAEhB,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAGL,IAAI,IAAI,KAAK,GACd,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAA;AAGvD,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAU/C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,IAAI,CAClB,GAAwB,EACxB,SAAqB,EAAE;IAEvB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAA;IAE7C,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,KAAK,CAAC,GAAG,EAAE;QACT,GAAG,IAAI;QACP,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI;YAChC,MAAM,IAAI,GAAG,CAAC,MAAM,cAAc,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAA;YAC5D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAEzC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAA;YAChC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,IAAI,IAAI,CAAA;gBACpE,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAA;YACxD,CAAC;YAED,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAA;QAC7B,CAAC;KACF,CAAC,CAAC,MAAM,CAAC,CAAA;AACd,CAAC;
|
|
1
|
+
{"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../tempo/Transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as Address from 'ox/Address';
|
|
2
2
|
import * as Hash from 'ox/Hash';
|
|
3
3
|
import * as Json from 'ox/Json';
|
|
4
|
-
import {
|
|
4
|
+
import { AccountConfig } from 'ox/tempo';
|
|
5
5
|
import { BaseError } from '../../errors/base.js';
|
|
6
6
|
import { nativeMultisigFactory } from '../Addresses.js';
|
|
7
7
|
/** A valid 48-owner config is much smaller; 64 KiB bounds hostile store parsing work. */
|
|
8
8
|
const maxStoredValueLength = 65_536;
|
|
9
9
|
/** Zero commitment used before an account is initialized. */
|
|
10
10
|
const zeroCommitment = `0x${'00'.repeat(32)}`;
|
|
11
|
-
/** Reads a cached
|
|
11
|
+
/** Reads a cached account config. */
|
|
12
12
|
export async function read(store, options) {
|
|
13
13
|
const { address, commitment } = options;
|
|
14
14
|
const value = await store.getItem(key({ address, commitment }));
|
|
@@ -18,16 +18,16 @@ export async function read(store, options) {
|
|
|
18
18
|
assertKey({ address, commitment, config });
|
|
19
19
|
return config;
|
|
20
20
|
}
|
|
21
|
-
/** Writes a validated
|
|
21
|
+
/** Writes a validated account config. */
|
|
22
22
|
export async function write(store, options) {
|
|
23
23
|
const { address, commitment } = options;
|
|
24
|
-
const config =
|
|
24
|
+
const config = AccountConfig.from(options.config);
|
|
25
25
|
assertKey({ address, commitment, config });
|
|
26
26
|
const value = serialize(config);
|
|
27
27
|
await store.setItem(key({ address, commitment }), value);
|
|
28
28
|
// Initialization commits the version-zero config without changing its version.
|
|
29
29
|
if (commitment.toLowerCase() === zeroCommitment)
|
|
30
|
-
await store.setItem(key({ address, commitment:
|
|
30
|
+
await store.setItem(key({ address, commitment: AccountConfig.getCommitment(config) }), value);
|
|
31
31
|
}
|
|
32
32
|
/** Verifies that a config matches its account-and-commitment key. */
|
|
33
33
|
function assertKey(options) {
|
|
@@ -35,21 +35,21 @@ function assertKey(options) {
|
|
|
35
35
|
if (!Address.validate(address) || !Hash.validate(commitment))
|
|
36
36
|
throw new InvalidStoreValueError();
|
|
37
37
|
if (config.version === 0n) {
|
|
38
|
-
if (!Address.isEqual(
|
|
38
|
+
if (!Address.isEqual(AccountConfig.getAddress(config, { factory: nativeMultisigFactory }), address))
|
|
39
39
|
throw new InvalidStoreValueError();
|
|
40
40
|
if (commitment.toLowerCase() === zeroCommitment)
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
if (
|
|
43
|
+
if (AccountConfig.getCommitment(config).toLowerCase() !==
|
|
44
44
|
commitment.toLowerCase())
|
|
45
45
|
throw new InvalidStoreValueError();
|
|
46
46
|
}
|
|
47
|
-
/** Deserializes
|
|
47
|
+
/** Deserializes an account config from storage. */
|
|
48
48
|
function deserialize(value) {
|
|
49
49
|
try {
|
|
50
50
|
if (value.length > maxStoredValueLength)
|
|
51
51
|
throw new InvalidStoreValueError();
|
|
52
|
-
return
|
|
52
|
+
return AccountConfig.fromRpc(Json.parse(value));
|
|
53
53
|
}
|
|
54
54
|
catch (cause) {
|
|
55
55
|
if (cause instanceof InvalidStoreValueError)
|
|
@@ -62,10 +62,10 @@ function key(options) {
|
|
|
62
62
|
const { address, commitment } = options;
|
|
63
63
|
return `multisig:config:${address.toLowerCase()}:${commitment.toLowerCase()}`;
|
|
64
64
|
}
|
|
65
|
-
/** Serializes
|
|
65
|
+
/** Serializes an account config for storage. */
|
|
66
66
|
function serialize(config) {
|
|
67
67
|
try {
|
|
68
|
-
const value = Json.stringify(
|
|
68
|
+
const value = Json.stringify(AccountConfig.toRpc(config));
|
|
69
69
|
if (value.length > maxStoredValueLength)
|
|
70
70
|
throw new InvalidStoreValueError();
|
|
71
71
|
return value;
|
|
@@ -76,14 +76,14 @@ function serialize(config) {
|
|
|
76
76
|
throw new InvalidStoreValueError({ cause });
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
/** Thrown when a stored
|
|
79
|
+
/** Thrown when a stored account config is malformed or mismatched. */
|
|
80
80
|
// biome-ignore lint/correctness/noUnusedVariables: declaration merge
|
|
81
81
|
class InvalidStoreValueError extends BaseError {
|
|
82
82
|
/** Creates an invalid store value error. */
|
|
83
83
|
constructor(options = {}) {
|
|
84
|
-
super('Stored
|
|
84
|
+
super('Stored account config is malformed or mismatched.', {
|
|
85
85
|
cause: options.cause,
|
|
86
|
-
name: '
|
|
86
|
+
name: 'Accounts.Config.InvalidStoreValueError',
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
}
|