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/Transaction.ts
CHANGED
|
@@ -7,6 +7,7 @@ import * as Signature from 'ox/Signature'
|
|
|
7
7
|
import {
|
|
8
8
|
type AuthorizationTempo,
|
|
9
9
|
type KeyAuthorization,
|
|
10
|
+
type MultisigConfig,
|
|
10
11
|
type TransactionReceipt as ox_TransactionReceipt,
|
|
11
12
|
SignatureEnvelope,
|
|
12
13
|
type TempoAddress,
|
|
@@ -124,7 +125,9 @@ export type TransactionRequestTempo<
|
|
|
124
125
|
feePayer?: Account | true | undefined
|
|
125
126
|
feeToken?: TempoAddress.Address | bigint | undefined
|
|
126
127
|
keyAuthorization?: KeyAuthorization.Signed<quantity, index> | undefined
|
|
128
|
+
multisig?: MultisigConfig.Config<index> | undefined
|
|
127
129
|
nonceKey?: 'expiring' | quantity | undefined
|
|
130
|
+
signatures?: readonly SignatureEnvelope.Serialized[] | undefined
|
|
128
131
|
validBefore?: index | undefined
|
|
129
132
|
validAfter?: index | undefined
|
|
130
133
|
}
|
|
@@ -145,8 +148,10 @@ export type TransactionSerializableTempo<
|
|
|
145
148
|
feePayerSignature?: viem_Signature | null | undefined
|
|
146
149
|
from?: Address | undefined
|
|
147
150
|
keyAuthorization?: KeyAuthorization.Signed<quantity, index> | undefined
|
|
151
|
+
multisig?: MultisigConfig.Config<index> | undefined
|
|
148
152
|
nonceKey?: quantity | undefined
|
|
149
153
|
signature?: SignatureEnvelope.SignatureEnvelope<quantity, index> | undefined
|
|
154
|
+
signatures?: readonly SignatureEnvelope.Serialized[] | undefined
|
|
150
155
|
validBefore?: index | undefined
|
|
151
156
|
validAfter?: index | undefined
|
|
152
157
|
type?: 'tempo' | undefined
|
|
@@ -170,12 +175,16 @@ export function getType(
|
|
|
170
175
|
if (
|
|
171
176
|
(account?.keyType && account.keyType !== 'secp256k1') ||
|
|
172
177
|
account?.source === 'accessKey' ||
|
|
178
|
+
account?.source === 'multisig' ||
|
|
173
179
|
typeof transaction.calls !== 'undefined' ||
|
|
174
180
|
typeof transaction.feePayer !== 'undefined' ||
|
|
181
|
+
typeof transaction.feePayerSignature !== 'undefined' ||
|
|
175
182
|
typeof transaction.feeToken !== 'undefined' ||
|
|
176
183
|
typeof transaction.keyAuthorization !== 'undefined' ||
|
|
184
|
+
typeof transaction.multisig !== 'undefined' ||
|
|
177
185
|
typeof transaction.nonceKey !== 'undefined' ||
|
|
178
186
|
typeof transaction.signature !== 'undefined' ||
|
|
187
|
+
typeof transaction.signatures !== 'undefined' ||
|
|
179
188
|
typeof transaction.validBefore !== 'undefined' ||
|
|
180
189
|
typeof transaction.validAfter !== 'undefined'
|
|
181
190
|
)
|
|
@@ -337,6 +346,39 @@ async function serializeTempo(
|
|
|
337
346
|
// the fee payer.
|
|
338
347
|
if (shouldStripFeeTokenForSponsorship) delete transaction_ox.feeToken
|
|
339
348
|
|
|
349
|
+
// Native multisig (TIP-1061): combine the collected owner approvals into the
|
|
350
|
+
// multisig signature envelope and serialize the broadcast transaction. The
|
|
351
|
+
// approvals are recovered against the multisig owner digest and ordered into
|
|
352
|
+
// the strictly-ascending owner address order the node requires.
|
|
353
|
+
//
|
|
354
|
+
// Bootstrap (`init`) is auto-detected from the nonce: the protocol requires
|
|
355
|
+
// (and consumes) nonce `0` for the first transaction from a derived account,
|
|
356
|
+
// so `nonce == 0` uniquely identifies a bootstrap. This matches the serialized
|
|
357
|
+
// nonce above (a falsy `nonce` serializes as `0`). The owner approval digest
|
|
358
|
+
// doesn't commit to `init`, so attaching it here (rather than at owner-signing)
|
|
359
|
+
// is safe.
|
|
360
|
+
// NOTE: fee-payer + multisig is handled in a later phase.
|
|
361
|
+
if (transaction.multisig && transaction.signatures && !feePayer) {
|
|
362
|
+
const payload = TxTempo.getSignPayload(TxTempo.from(transaction_ox))
|
|
363
|
+
const signatures = transaction.signatures.map((approval) =>
|
|
364
|
+
SignatureEnvelope.from(approval),
|
|
365
|
+
)
|
|
366
|
+
const sorted = SignatureEnvelope.sortMultisigApprovals({
|
|
367
|
+
payload,
|
|
368
|
+
signatures,
|
|
369
|
+
genesisConfig: transaction.multisig,
|
|
370
|
+
})
|
|
371
|
+
const signature = SignatureEnvelope.from({
|
|
372
|
+
genesisConfig: transaction.multisig,
|
|
373
|
+
signatures: sorted,
|
|
374
|
+
...(nonce ? {} : { init: true }),
|
|
375
|
+
})
|
|
376
|
+
return TxTempo.serialize(transaction_ox, {
|
|
377
|
+
feePayerSignature: undefined,
|
|
378
|
+
signature,
|
|
379
|
+
})
|
|
380
|
+
}
|
|
381
|
+
|
|
340
382
|
if (signature && typeof transaction.feePayer === 'object') {
|
|
341
383
|
const tx = TxTempo.from(transaction_ox, {
|
|
342
384
|
signature,
|