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

33 lines 1.78 kB
import { isHex, } from "viem"; import { concatPaymasterAndData, parsePaymasterAndData, } from "../utils/userop.js"; import { defaultFeeEstimator } from "./defaults/feeEstimator.js"; import { defaultGasEstimator } from "./defaults/gasEstimator.js"; import { defaultPaymasterAndData } from "./defaults/paymasterAndData.js"; import { defaultUserOpSigner } from "./defaults/userOpSigner.js"; import { noopMiddleware } from "./noopMiddleware.js"; export const middlewareActions = (overrides) => (client) => ({ middleware: { customMiddleware: overrides.customMiddleware ?? noopMiddleware, dummyPaymasterAndData: overrides.paymasterAndData?.dummyPaymasterAndData ? async (struct, { account }) => { const data = overrides.paymasterAndData.dummyPaymasterAndData(); const paymasterOverrides = account.getEntryPoint().version === "0.7.0" ? isHex(data) ? parsePaymasterAndData(data) : data : { paymasterAndData: isHex(data) ? data : concatPaymasterAndData(data), }; return { ...struct, ...paymasterOverrides }; } : defaultPaymasterAndData, feeEstimator: overrides.feeEstimator ?? defaultFeeEstimator(client), gasEstimator: overrides.gasEstimator ?? defaultGasEstimator(client), paymasterAndData: overrides.paymasterAndData?.paymasterAndData ?? defaultPaymasterAndData, userOperationSimulator: overrides.userOperationSimulator ?? noopMiddleware, signUserOperation: overrides.signUserOperation ?? defaultUserOpSigner, }, }); //# sourceMappingURL=actions.js.map