UNPKG

@abstract-foundation/agw-client

Version:
36 lines 1.37 kB
import { encodeFunctionData, } from "viem"; import { getContractError, parseAccount } from "viem/utils"; import { AccountNotFoundError } from "../errors/account.js"; import { sendTransactionForSession } from "./sendTransactionForSession.js"; export async function writeContractForSession(client, signerClient, publicClient, parameters, session, customPaymasterHandler = undefined) { const { abi, account: account_ = client.account, address, args, dataSuffix, functionName, ...request } = parameters; if (!account_) throw new AccountNotFoundError({ docsPath: "/docs/contract/writeContract", }); const account = parseAccount(account_); const data = encodeFunctionData({ abi, args, functionName, }); try { return await sendTransactionForSession(client, signerClient, publicClient, { data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`, to: address, account, ...request, }, session, customPaymasterHandler); } catch (error) { throw getContractError(error, { abi, address, args, docsPath: "/docs/contract/writeContract", functionName, sender: account.address, }); } } //# sourceMappingURL=writeContractForSession.js.map