0.0.15 • Published 11 months ago

@abstraxn/paymaster v0.0.15

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

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>;
}
0.0.14

11 months ago

0.0.15

11 months ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.4

2 years ago

0.0.1

2 years ago