UNPKG

@abstract-foundation/agw-client

Version:
37 lines 1.41 kB
import { BaseError, encodeFunctionData, } from 'viem'; import { getContractError, parseAccount } from 'viem/utils'; import {} from 'viem/zksync'; 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