@zerodev/sdk
Version:
A utility library for working with ERC-4337
42 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sendTransaction = void 0;
const account_abstraction_1 = require("viem/account-abstraction");
const utils_1 = require("viem/utils");
const index_js_1 = require("../../errors/index.js");
async function sendTransaction(client, args) {
let userOpHash;
if ("to" in args) {
const { account: account_ = client.account, data, maxFeePerGas, maxPriorityFeePerGas, to, value, nonce } = args;
if (!account_) {
throw new index_js_1.AccountNotFoundError({
docsPath: "/docs/actions/wallet/sendTransaction"
});
}
const account = (0, utils_1.parseAccount)(account_);
if (!to)
throw new Error("Missing to address");
userOpHash = await (0, utils_1.getAction)(client, account_abstraction_1.sendUserOperation, "sendUserOperation")({
calls: [
{
to,
value: value || BigInt(0),
data: data || "0x"
}
],
account,
maxFeePerGas,
maxPriorityFeePerGas,
nonce: nonce ? BigInt(nonce) : undefined
});
}
else {
userOpHash = await (0, utils_1.getAction)(client, account_abstraction_1.sendUserOperation, "sendUserOperation")({ ...args });
}
const userOperationReceipt = await (0, utils_1.getAction)(client, account_abstraction_1.waitForUserOperationReceipt, "waitForUserOperationReceipt")({
hash: userOpHash
});
return userOperationReceipt?.receipt.transactionHash;
}
exports.sendTransaction = sendTransaction;
//# sourceMappingURL=sendTransaction.js.map