near-safe
Version:
An SDK for controlling Ethereum Smart Accounts via ERC4337 from a Near Account.
48 lines (47 loc) • 1.71 kB
TypeScript
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 {};