multisig.approveTransactionSync
Prepares a multisig transaction, signs one owner approval, and stores the approval. Below quorum, the action returns a pending operation immediately. When the approval reaches quorum, the action waits for synchronous submission and returns a successful operation.
Usage
import { Account } from 'viem/tempo'
import { client } from './multisig.config'
const owner_1 = Account.fromSecp256k1(
'0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80'
)
const owner_2 = Account.fromSecp256k1(
'0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d'
)
const multisig = Account.fromMultisig({
owners: [owner_1.address, owner_2.address],
threshold: 2,
})
const pending = await client.multisig.approveTransactionSync({
account: owner_1,
calls: [
{ to: '0xcafebabecafebabecafebabecafebabecafebabe', value: 1n },
],
multisig,
})
{ status: 'pending', id: '0x...', weight: 1, threshold: 2, request: { ... } }
const success = await client.multisig.approveTransactionSync({
...pending.request,
account: owner_2,
})
{ status: 'success', transactionHash: '0x...', weight: 2, threshold: 2, request: { ... } }import { createClient } from 'viem/tempo'
export const client = createClient({
experimental_multisig: true,
})The synchronous behavior applies only when this approval reaches quorum and broadcasts the final transaction. Both approval actions return the same pending operation below quorum.
Return Type
type ReturnType = Multisig.Operation.Transaction & {
request: MultisigTransactionRequest
}Parameters
Accepts the same parameters as
multisig.approveTransaction.