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

62 lines 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildUserOperationFromTxs = void 0; const viem_1 = require("viem"); const isSmartAccountClient_js_1 = require("../../client/isSmartAccountClient.js"); const account_js_1 = require("../../errors/account.js"); const client_js_1 = require("../../errors/client.js"); const transaction_js_1 = require("../../errors/transaction.js"); const index_js_1 = require("../../utils/index.js"); const buildUserOperation_js_1 = require("./buildUserOperation.js"); async function buildUserOperationFromTxs(client, args) { const { account = client.account, requests, overrides, context } = args; if (!account) { throw new account_js_1.AccountNotFoundError(); } if (!(0, isSmartAccountClient_js_1.isBaseSmartAccountClient)(client)) { throw new client_js_1.IncompatibleClientError("BaseSmartAccountClient", "buildUserOperationFromTxs", client); } const batch = requests.map((request) => { if (!request.to) { throw new transaction_js_1.TransactionMissingToParamError(); } return { target: request.to, data: request.data ?? "0x", value: request.value ? (0, viem_1.fromHex)(request.value, "bigint") : 0n, }; }); const mfpgOverridesInTx = () => requests .filter((x) => x.maxFeePerGas != null) .map((x) => (0, viem_1.fromHex)(x.maxFeePerGas, "bigint")); const maxFeePerGas = overrides?.maxFeePerGas != null ? overrides?.maxFeePerGas : mfpgOverridesInTx().length > 0 ? (0, index_js_1.bigIntMax)(...mfpgOverridesInTx()) : undefined; const mpfpgOverridesInTx = () => requests .filter((x) => x.maxPriorityFeePerGas != null) .map((x) => (0, viem_1.fromHex)(x.maxPriorityFeePerGas, "bigint")); const maxPriorityFeePerGas = overrides?.maxPriorityFeePerGas != null ? overrides?.maxPriorityFeePerGas : mpfpgOverridesInTx().length > 0 ? (0, index_js_1.bigIntMax)(...mpfpgOverridesInTx()) : undefined; const _overrides = { maxFeePerGas, maxPriorityFeePerGas, }; const uoStruct = await (0, buildUserOperation_js_1.buildUserOperation)(client, { uo: batch, account, context, overrides: _overrides, }); return { uoStruct, batch, overrides: _overrides, }; } exports.buildUserOperationFromTxs = buildUserOperationFromTxs; //# sourceMappingURL=buildUserOperationFromTxs.js.map