viem 2.51.3 → 2.52.2
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 +32 -0
- package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_cjs/chains/definitions/citrate.js +17 -0
- package/_cjs/chains/definitions/citrate.js.map +1 -0
- package/_cjs/chains/definitions/grav.js +24 -0
- package/_cjs/chains/definitions/grav.js.map +1 -0
- package/_cjs/chains/definitions/ladyChain.js +22 -0
- package/_cjs/chains/definitions/ladyChain.js.map +1 -0
- package/_cjs/chains/definitions/tempoModerato.js +1 -0
- package/_cjs/chains/definitions/tempoModerato.js.map +1 -1
- package/_cjs/chains/definitions/valygoNft.js +37 -0
- package/_cjs/chains/definitions/valygoNft.js.map +1 -0
- package/_cjs/chains/definitions/valygoSmartchain.js +37 -0
- package/_cjs/chains/definitions/valygoSmartchain.js.map +1 -0
- package/_cjs/chains/index.js +23 -13
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/tempo/Abis.js +189 -1
- package/_cjs/tempo/Abis.js.map +1 -1
- package/_cjs/tempo/Account.js +62 -23
- package/_cjs/tempo/Account.js.map +1 -1
- package/_cjs/tempo/Addresses.js +3 -1
- package/_cjs/tempo/Addresses.js.map +1 -1
- package/_cjs/tempo/Decorator.js +23 -0
- package/_cjs/tempo/Decorator.js.map +1 -1
- package/_cjs/tempo/Formatters.js +2 -1
- package/_cjs/tempo/Formatters.js.map +1 -1
- package/_cjs/tempo/Hardfork.js +3 -0
- package/_cjs/tempo/Hardfork.js.map +1 -1
- package/_cjs/tempo/Transaction.js +22 -0
- package/_cjs/tempo/Transaction.js.map +1 -1
- package/_cjs/tempo/actions/accessKey.js +238 -72
- package/_cjs/tempo/actions/accessKey.js.map +1 -1
- package/_cjs/tempo/actions/index.js +2 -1
- package/_cjs/tempo/actions/index.js.map +1 -1
- package/_cjs/tempo/actions/receivePolicy.js +363 -0
- package/_cjs/tempo/actions/receivePolicy.js.map +1 -0
- package/_cjs/tempo/chainConfig.js +10 -0
- package/_cjs/tempo/chainConfig.js.map +1 -1
- package/_cjs/tempo/index.js +3 -1
- package/_cjs/tempo/index.js.map +1 -1
- package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_esm/chains/definitions/citrate.js +14 -0
- package/_esm/chains/definitions/citrate.js.map +1 -0
- package/_esm/chains/definitions/grav.js +21 -0
- package/_esm/chains/definitions/grav.js.map +1 -0
- package/_esm/chains/definitions/ladyChain.js +19 -0
- package/_esm/chains/definitions/ladyChain.js.map +1 -0
- package/_esm/chains/definitions/tempoModerato.js +1 -0
- package/_esm/chains/definitions/tempoModerato.js.map +1 -1
- package/_esm/chains/definitions/valygoNft.js +34 -0
- package/_esm/chains/definitions/valygoNft.js.map +1 -0
- package/_esm/chains/definitions/valygoSmartchain.js +34 -0
- package/_esm/chains/definitions/valygoSmartchain.js.map +1 -0
- package/_esm/chains/index.js +5 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/tempo/Abis.js +188 -0
- package/_esm/tempo/Abis.js.map +1 -1
- package/_esm/tempo/Account.js +116 -24
- package/_esm/tempo/Account.js.map +1 -1
- package/_esm/tempo/Addresses.js +2 -0
- package/_esm/tempo/Addresses.js.map +1 -1
- package/_esm/tempo/Decorator.js +23 -0
- package/_esm/tempo/Decorator.js.map +1 -1
- package/_esm/tempo/Formatters.js +5 -1
- package/_esm/tempo/Formatters.js.map +1 -1
- package/_esm/tempo/Hardfork.js +3 -0
- package/_esm/tempo/Hardfork.js.map +1 -1
- package/_esm/tempo/Transaction.js +34 -0
- package/_esm/tempo/Transaction.js.map +1 -1
- package/_esm/tempo/actions/accessKey.js +562 -128
- package/_esm/tempo/actions/accessKey.js.map +1 -1
- package/_esm/tempo/actions/index.js +1 -0
- package/_esm/tempo/actions/index.js.map +1 -1
- package/_esm/tempo/actions/receivePolicy.js +753 -0
- package/_esm/tempo/actions/receivePolicy.js.map +1 -0
- package/_esm/tempo/chainConfig.js +24 -1
- package/_esm/tempo/chainConfig.js.map +1 -1
- package/_esm/tempo/index.js +1 -1
- package/_esm/tempo/index.js.map +1 -1
- package/_types/actions/wallet/prepareTransactionRequest.d.ts +12 -1
- package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
- package/_types/chains/definitions/citrate.d.ts +57 -0
- package/_types/chains/definitions/citrate.d.ts.map +1 -0
- package/_types/chains/definitions/grav.d.ts +43 -0
- package/_types/chains/definitions/grav.d.ts.map +1 -0
- package/_types/chains/definitions/ladyChain.d.ts +50 -0
- package/_types/chains/definitions/ladyChain.d.ts.map +1 -0
- package/_types/chains/definitions/tempo.d.ts +36 -0
- package/_types/chains/definitions/tempo.d.ts.map +1 -1
- package/_types/chains/definitions/tempoDevnet.d.ts +36 -0
- package/_types/chains/definitions/tempoDevnet.d.ts.map +1 -1
- package/_types/chains/definitions/tempoLocalnet.d.ts +36 -0
- package/_types/chains/definitions/tempoLocalnet.d.ts.map +1 -1
- package/_types/chains/definitions/tempoModerato.d.ts +38 -0
- package/_types/chains/definitions/tempoModerato.d.ts.map +1 -1
- package/_types/chains/definitions/valygoNft.d.ts +48 -0
- package/_types/chains/definitions/valygoNft.d.ts.map +1 -0
- package/_types/chains/definitions/valygoSmartchain.d.ts +48 -0
- package/_types/chains/definitions/valygoSmartchain.d.ts.map +1 -0
- package/_types/chains/index.d.ts +5 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/tempo/Abis.d.ts +671 -4
- package/_types/tempo/Abis.d.ts.map +1 -1
- package/_types/tempo/Account.d.ts +61 -3
- package/_types/tempo/Account.d.ts.map +1 -1
- package/_types/tempo/Addresses.d.ts +2 -0
- package/_types/tempo/Addresses.d.ts.map +1 -1
- package/_types/tempo/Decorator.d.ts +501 -0
- package/_types/tempo/Decorator.d.ts.map +1 -1
- package/_types/tempo/Formatters.d.ts.map +1 -1
- package/_types/tempo/Hardfork.d.ts +1 -1
- package/_types/tempo/Hardfork.d.ts.map +1 -1
- package/_types/tempo/Transaction.d.ts +5 -1
- package/_types/tempo/Transaction.d.ts.map +1 -1
- package/_types/tempo/actions/accessKey.d.ts +1520 -304
- package/_types/tempo/actions/accessKey.d.ts.map +1 -1
- package/_types/tempo/actions/dex.d.ts +75 -0
- package/_types/tempo/actions/dex.d.ts.map +1 -1
- package/_types/tempo/actions/index.d.ts +1 -0
- package/_types/tempo/actions/index.d.ts.map +1 -1
- package/_types/tempo/actions/policy.d.ts +352 -0
- package/_types/tempo/actions/policy.d.ts.map +1 -1
- package/_types/tempo/actions/receivePolicy.d.ts +1511 -0
- package/_types/tempo/actions/receivePolicy.d.ts.map +1 -0
- package/_types/tempo/chainConfig.d.ts +34 -15
- package/_types/tempo/chainConfig.d.ts.map +1 -1
- package/_types/tempo/index.d.ts +1 -1
- package/_types/tempo/index.d.ts.map +1 -1
- package/_types/tempo/zones/zone.d.ts +108 -0
- package/_types/tempo/zones/zone.d.ts.map +1 -1
- package/actions/wallet/prepareTransactionRequest.ts +40 -5
- package/chains/definitions/citrate.ts +14 -0
- package/chains/definitions/grav.ts +21 -0
- package/chains/definitions/ladyChain.ts +19 -0
- package/chains/definitions/tempoModerato.ts +1 -0
- package/chains/definitions/valygoNft.ts +34 -0
- package/chains/definitions/valygoSmartchain.ts +34 -0
- package/chains/index.ts +5 -0
- package/errors/version.ts +1 -1
- package/package.json +3 -4
- package/tempo/Abis.ts +189 -0
- package/tempo/Account.ts +153 -31
- package/tempo/Addresses.ts +2 -0
- package/tempo/Decorator.ts +578 -0
- package/tempo/Formatters.ts +12 -1
- package/tempo/Hardfork.ts +3 -0
- package/tempo/Transaction.ts +42 -0
- package/tempo/actions/accessKey.ts +1002 -279
- package/tempo/actions/index.ts +1 -0
- package/tempo/actions/receivePolicy.ts +1266 -0
- package/tempo/chainConfig.ts +32 -3
- package/tempo/index.ts +2 -0
package/tempo/chainConfig.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { Address } from 'abitype'
|
|
1
2
|
import * as Hex from 'ox/Hex'
|
|
2
|
-
import { SignatureEnvelope, type TokenId } from 'ox/tempo'
|
|
3
|
+
import { MultisigConfig, SignatureEnvelope, type TokenId } from 'ox/tempo'
|
|
3
4
|
import { getCode } from '../actions/public/getCode.js'
|
|
4
5
|
import { verifyHash } from '../actions/public/verifyHash.js'
|
|
5
6
|
import { maxUint256 } from '../constants/number.js'
|
|
@@ -12,7 +13,7 @@ import { defineTransactionRequest } from '../utils/formatters/transactionRequest
|
|
|
12
13
|
import { getAction } from '../utils/getAction.js'
|
|
13
14
|
import { keccak256 } from '../utils/hash/keccak256.js'
|
|
14
15
|
import type { SerializeTransactionFn } from '../utils/transaction/serializeTransaction.js'
|
|
15
|
-
import type { Account } from './Account.js'
|
|
16
|
+
import type { Account, MultisigAccount } from './Account.js'
|
|
16
17
|
import { getMetadata } from './actions/accessKey.js'
|
|
17
18
|
import * as Formatters from './Formatters.js'
|
|
18
19
|
import type { Hardfork } from './Hardfork.js'
|
|
@@ -42,13 +43,16 @@ export const chainConfig = {
|
|
|
42
43
|
prepareTransactionRequest: [
|
|
43
44
|
async (r, { client, phase }) => {
|
|
44
45
|
const request = r as Transaction.TransactionRequest & {
|
|
45
|
-
account?: Account | undefined
|
|
46
|
+
account?: Account | MultisigAccount | undefined
|
|
46
47
|
chainId?: number | undefined
|
|
47
48
|
chain?:
|
|
48
49
|
| (Chain & {
|
|
49
50
|
feeToken?: TokenId.TokenIdOrAddress | undefined
|
|
50
51
|
})
|
|
51
52
|
| undefined
|
|
53
|
+
from?: Address | undefined
|
|
54
|
+
multisig?: MultisigConfig.Config | undefined
|
|
55
|
+
signatures?: readonly unknown[] | undefined
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
// FIXME: node estimates gas with secp256k1 dummy sig + null feePayerSignature.
|
|
@@ -60,9 +64,34 @@ export const chainConfig = {
|
|
|
60
64
|
else if (request.account?.source === 'accessKey')
|
|
61
65
|
request.gas = (request.gas ?? 0n) + 10_000n
|
|
62
66
|
}
|
|
67
|
+
|
|
63
68
|
return request as unknown as typeof r
|
|
64
69
|
}
|
|
65
70
|
|
|
71
|
+
// Native multisig (TIP-1061). The transaction sender is the derived
|
|
72
|
+
// multisig account, not a signing account (owner accounts only contribute
|
|
73
|
+
// approvals later via `signTransaction`). Derive the sender from the
|
|
74
|
+
// config; core fills nonce/gas/fees for it via `request.from`, and the
|
|
75
|
+
// serializer auto-detects bootstrap (`init`) from `nonce == 0`.
|
|
76
|
+
//
|
|
77
|
+
// The config is taken from an explicit `multisig` field, or inferred from
|
|
78
|
+
// a multisig account (so callers can just pass `account` to
|
|
79
|
+
// `prepareTransactionRequest` without also passing `multisig`).
|
|
80
|
+
const multisig =
|
|
81
|
+
request.multisig ??
|
|
82
|
+
(request.account?.source === 'multisig'
|
|
83
|
+
? (request.account as MultisigAccount).config
|
|
84
|
+
: undefined)
|
|
85
|
+
if (multisig) {
|
|
86
|
+
request.multisig = multisig
|
|
87
|
+
request.from = MultisigConfig.getAddress(multisig)
|
|
88
|
+
// A non-multisig `account` (e.g. the client's default) isn't the sender,
|
|
89
|
+
// so drop it: core then fills nonce/gas/fees for the multisig sender via
|
|
90
|
+
// `request.from`. A multisig account *is* the sender — keep it so the
|
|
91
|
+
// prepared request can be sent without re-passing `account`.
|
|
92
|
+
if (request.account?.source !== 'multisig') delete request.account
|
|
93
|
+
}
|
|
94
|
+
|
|
66
95
|
if (
|
|
67
96
|
!request.keyAuthorization &&
|
|
68
97
|
request.account?.source === 'accessKey'
|