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

47 lines 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports._runMiddlewareStack = void 0; const account_js_1 = require("../../../errors/account.js"); const noopMiddleware_js_1 = require("../../../middleware/noopMiddleware.js"); const index_js_1 = require("../../../utils/index.js"); const asyncPipe = (...fns) => async (s, opts) => { let result = s; for (const fn of fns) { result = await fn(result, opts); } return result; }; async function _runMiddlewareStack(client, args) { const { uo, overrides, account = client.account, context } = args; if (!account) { throw new account_js_1.AccountNotFoundError(); } const { dummyPaymasterAndData, paymasterAndData, } = (0, index_js_1.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_js_1.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 (0, index_js_1.resolveProperties)(result); } exports._runMiddlewareStack = _runMiddlewareStack; //# sourceMappingURL=runMiddlewareStack.js.map