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

43 lines 2.02 kB
import { AccountNotFoundError } from "../../../errors/account.js"; import { noopMiddleware } from "../../../middleware/noopMiddleware.js"; import { bypassPaymasterAndData, resolveProperties, } from "../../../utils/index.js"; const asyncPipe = (...fns) => async (s, opts) => { let result = s; for (const fn of fns) { result = await fn(result, opts); } return result; }; export async function _runMiddlewareStack(client, args) { const { uo, overrides, account = client.account, context } = args; if (!account) { throw new AccountNotFoundError(); } const { dummyPaymasterAndData, paymasterAndData, } = bypassPaymasterAndData(overrides) ? { dummyPaymasterAndData: async (uo, { overrides }) => { return { ...uo, ...("paymasterAndData" in overrides ? { paymasterAndData: overrides.paymasterAndData } : "paymasterData" in overrides && "paymaster" in overrides && overrides.paymasterData !== "0x" ? { paymasterData: overrides.paymasterData, paymaster: overrides.paymaster, } : undefined), }; }, paymasterAndData: noopMiddleware, } : { dummyPaymasterAndData: client.middleware.dummyPaymasterAndData, paymasterAndData: client.middleware.paymasterAndData, }; const result = await asyncPipe(dummyPaymasterAndData, client.middleware.feeEstimator, client.middleware.gasEstimator, client.middleware.customMiddleware, paymasterAndData, client.middleware.userOperationSimulator)(uo, { overrides, feeOptions: client.feeOptions, account, client, context }); return resolveProperties(result); } //# sourceMappingURL=runMiddlewareStack.js.map