UNPKG

@owlprotocol/contracts-account-abstraction

Version:

ERC4337 Account Abstraction support for deploying relevant smart contracts and interacting with UserOps.

38 lines (37 loc) 1.3 kB
import { concatHex } from "viem"; import { encodeAbiParameters, getAction } from "viem/utils"; import { dummySignature } from "../../models/UserOperation.js"; import { getSupportedEntryPoints } from "../bundler/getSupportedEntryPoints.js"; async function getPaymasterStubData(client, parameters) { const { entryPointAddress } = parameters; const { paymaster } = client; const supportedEntryPoints = await getAction(client, getSupportedEntryPoints, "getSupportedEntryPoints")({}); if (!supportedEntryPoints.includes(entryPointAddress)) { throw new Error(`Unsupported entrypoint ${entryPointAddress}, expected one of ${supportedEntryPoints}`); } const validUntil = Date.now() + 3600; const validAfter = 0; const paymasterDataUnsigned = encodeAbiParameters( [ { name: "validUntil", type: "uint48" }, { name: "validAfter", type: "uint48" } ], [validUntil, validAfter] ); const paymasterDataSigned = concatHex([paymasterDataUnsigned, dummySignature]); const sponsor = { name: "Owl Protocol", icon: "https://example.com" }; return { paymaster, paymasterData: paymasterDataSigned, paymasterVerificationGasLimit: 100000n, paymasterPostOpGasLimit: 100000n, sponsor, isFinal: false }; } export { getPaymasterStubData };