UNPKG

viem

Version:

TypeScript Interface for Ethereum

47 lines 1.63 kB
import { getAction } from '../../utils/getAction.js'; import { sendCalls, } from './sendCalls.js'; import { waitForCallsStatus, } from './waitForCallsStatus.js'; /** * Requests the connected wallet to send a batch of calls, and waits for the calls to be included in a block. * * - Docs: https://viem.sh/docs/actions/wallet/sendCallsSync * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792) * * @param client - Client to use * @returns Calls status. {@link SendCallsSyncReturnType} * * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { sendCalls } from 'viem/actions' * * const client = createWalletClient({ * chain: mainnet, * transport: custom(window.ethereum), * }) * const status = await sendCallsSync(client, { * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', * calls: [ * { * data: '0xdeadbeef', * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', * }, * { * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', * value: 69420n, * }, * ], * }) */ export async function sendCallsSync(client, parameters) { const { chain = client.chain } = parameters; const timeout = parameters.timeout ?? Math.max((chain?.blockTime ?? 0) * 3, 5_000); const result = await getAction(client, sendCalls, 'sendCalls')(parameters); const status = await getAction(client, waitForCallsStatus, 'waitForCallsStatus')({ ...parameters, id: result.id, timeout, }); return status; } //# sourceMappingURL=sendCallsSync.js.map