UNPKG

@alchemy/aa-core

Version:

viem based SDK that enables interactions with ERC-4337 Smart Accounts. ABIs are based off the definitions generated in @account-abstraction/contracts

31 lines 1.47 kB
import { isBaseSmartAccountClient } from "../../client/isSmartAccountClient.js"; import { AccountNotFoundError } from "../../errors/account.js"; import { IncompatibleClientError } from "../../errors/client.js"; import { TransactionMissingToParamError } from "../../errors/transaction.js"; import { WaitForUserOperationError } from "../../errors/useroperation.js"; import { buildUserOperationFromTx } from "./buildUserOperationFromTx.js"; import { _sendUserOperation } from "./internal/sendUserOperation.js"; import { waitForUserOperationTransaction } from "./waitForUserOperationTransacation.js"; export async function sendTransaction(client, args, overrides, context) { const { account = client.account } = args; if (!account || typeof account === "string") { throw new AccountNotFoundError(); } if (!args.to) { throw new TransactionMissingToParamError(); } if (!isBaseSmartAccountClient(client)) { throw new IncompatibleClientError("BaseSmartAccountClient", "sendTransaction", client); } const uoStruct = await buildUserOperationFromTx(client, args, overrides, context); const { hash, request } = await _sendUserOperation(client, { account: account, uoStruct, context, overrides, }); return waitForUserOperationTransaction(client, { hash }).catch((e) => { throw new WaitForUserOperationError(request, e); }); } //# sourceMappingURL=sendTransaction.js.map