@abstraxn/paymaster
TypeScript icon, indicating that this package has built-in type declarations

0.0.15 • Public • Published

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

// This is how you create paymaster instance in your dapp's
import { IPaymaster, AbstraxnPaymaster } from "@abstraxn/paymaster";


const paymaster = new AbstraxnPaymaster({
  paymasterUrl: "", // you can get this value from abstraxn dashboard.
});

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 {
  // Implementing class may add extra parameter (for example paymasterServiceData with it's own type) in below function signature
  getPaymasterAndData(userOp: Partial<UserOperation>): Promise<PaymasterAndDataResponse>;
  getDummyPaymasterAndData(userOp: Partial<UserOperation>): Promise<string>;
}

Package Sidebar

Install

npm i @abstraxn/paymaster

Weekly Downloads

6

Version

0.0.15

License

MIT

Unpacked Size

67.9 kB

Total Files

27

Last publish

Collaborators

  • sandeep_sj
  • jaskaran449