UNPKG

near-safe

Version:

An SDK for controlling Ethereum Smart Accounts via ERC4337 from a Near Account.

48 lines (47 loc) 1.71 kB
import { Address, Hash, PublicClient, Transport } from "viem"; import { GasPrices, PaymasterData, SponsorshipPolicyData, UnsignedUserOperation, UserOperation, UserOperationGas, UserOperationReceipt } from "../types"; import { Pimlico } from "./pimlico"; type SponsorshipPolicy = { sponsorshipPolicyId: string; }; type BundlerRpcSchema = [ { Method: "pm_sponsorUserOperation"; Parameters: [UnsignedUserOperation, Address, SponsorshipPolicy]; ReturnType: PaymasterData; }, { Method: "eth_estimateUserOperationGas"; Parameters: [UnsignedUserOperation, Address]; ReturnType: UserOperationGas; }, { Method: "eth_sendUserOperation"; Parameters: [UserOperation, Address]; ReturnType: Hash; }, { Method: "pimlico_getUserOperationGasPrice"; Parameters: []; ReturnType: GasPrices; }, { Method: "eth_getUserOperationReceipt"; Parameters: [Hash]; ReturnType: UserOperationReceipt | null; } ]; export declare class Erc4337Bundler { client: PublicClient<Transport, undefined, undefined, BundlerRpcSchema>; entryPointAddress: Address; pimlico: Pimlico; chainId: number; constructor(entryPointAddress: Address, apiKey: string, chainId: number); getPaymasterData(rawUserOp: UnsignedUserOperation, sponsorshipPolicy?: string): Promise<PaymasterData>; sendUserOperation(userOp: UserOperation): Promise<Hash>; getGasPrice(): Promise<GasPrices>; getUserOpReceipt(userOpHash: Hash): Promise<UserOperationReceipt>; getSponsorshipPolicies(): Promise<SponsorshipPolicyData[]>; private _getUserOpReceiptInner; } export {};