Paymaster
ERC-4337, also known as Account Abstraction, introduces the innovative concept of Paymasters. These entities are specialized actors that hold a crucial role in transforming the conventional gas payment mechanism within Ethereum Virtual Machine (EVM) transactions. Paymasters act as intermediaries, empowered to cover gas fees on behalf of an account, subject to predefined conditions being met. This paradigm shift offers a significant advancement in the Ethereum ecosystem, fostering greater flexibility and efficiency in transaction processing.
Installation
Using npm
package manager
npm i @abstraxn/paymaster
OR
Using yarn
package manager
yarn add @abstraxn/paymaster
Usage
import { IPaymaster, AbstraxnPaymaster } from "@abstraxn/paymaster";
const paymaster = new AbstraxnPaymaster({
paymasterUrl: "",
});
paymasterUrl you can get this value from abstraxn dashboard.
Following are the methods that can be called on paymaster instance
export interface IHybridPaymaster<T> extends IPaymaster {
getPaymasterAndData(userOp: Partial<UserOperation>, paymasterServiceData?: T): Promise<PaymasterAndDataResponse>;
buildTokenApprovalTransaction(tokenPaymasterRequest: AbstraxnTokenPaymasterRequest, provider: Provider): Promise<Transaction>;
getPaymasterFeeQuotesOrData(userOp: Partial<UserOperation>, paymasterServiceData: FeeQuotesOrDataDto): Promise<FeeQuotesOrDataResponse>;
}
One can also build their own Paymaster API class and submit a PR or just provide instance of it in the account package / use standalone to generate paymasterAndData
It should follow below Interface.
export interface IPaymaster {
getPaymasterAndData(userOp: Partial<UserOperation>): Promise<PaymasterAndDataResponse>;
getDummyPaymasterAndData(userOp: Partial<UserOperation>): Promise<string>;
}