Paymaster
The Paymaster class is a utility class that provides methods for interacting with Paymaster contracts on the zkSync network. It supports two types of Paymasters: ERC20Paymaster and SponsoredPaymaster.
To call the methods of the Paymaster class, we need to first get the paymaster object.
getPaymaster
Creates a new instance of the Paymaster class based on the provided Paymaster contract address.
address
: Address: The address of the Paymaster contract.walletClient
:WalletClient
instance for signing and sending transactions.publicClient
:PublicClient
public instance for getting public functionsReturns
: A newPaymaster
instance.
Paymaster
The Paymaster
class is a utility class that provides methods for interacting with Paymaster contracts on the zkSync network. It supports two types of Paymasters: ERC20Paymaster and SponsoredPaymaster.
Constructor
address
:Address
- The address of the Paymaster contract.walletClient
:WalletClient
instance for signing transactions.publicClient
:PublicClient
instance for getting public functionspaymasterType
:PaymasterType
- type of Paymaster (ERC20Paymaster or SponsoredPaymaster).chainId
:string
- The ID of the chain the Paymaster contract is deployed on.token
:Address
(optional) - The address of the ERC20 token used by the ERC20Paymaster.
getPaymasterCustomData
Generates the PaymasterParams
object that will be passed to the transaction that's using a paymaster.
paymasterOptions
:PaymasterOptions
(optional) - An object containing options for the Paymaster (e.g., innerInput, minimalAllowance).Returns
: APaymasterParams
object.
sendPaymasterTransaction
Populates and sends a transaction using the Paymaster.
address
:Address
- The address of the contract to call.abi
:Abi | readonly unknown[]
- The ABI of the contract to callfunctionName
:string
- The name of the function to callargs
:any[]
(optional) - An array of arguments for the function call.overrides
:PaymasterOverrides
(optional) - An object containing overrides for the transaction (e.g., to, value, data, customData, gasLimit, maxFeePerGas, maxPriorityFeePerGas)Returns
: A hash object.
getBalance
Gets the balance of the Paymaster contract.
Returns
: The balance of the Paymaster contract as abigint
value.
estimateGas
Estimates the gas required for a transaction. Especially tailored for Paymaster paymaster needs.
address
:Address
- The address of the contract to call for which to estimate the gas.abi
:Abi | readonly unknown[]
- The ABI of the contract to call for which to estimate the gas.functionName
:string
- The name of the function to call for gas estimation.args
:any[]
(optional) - An array of arguments for the function call.overrides
:PaymasterOverrides
(optional)- An object containing overrides for the transaction (e.g., to, value, data, customData, gasLimit, maxFeePerGas, maxPriorityFeePerGas)Returns
: The estimated gas limit as abigint
value.
getPaymasterContract
Gets an instance of the ERC20Paymaster or SponsoredPaymaster contract, depending on the paymasterType.
Returns
: An instance of the paymaster contract inERC20PaymasterContract
orSponsoredPaymasterContract
type.
addExtension
Adds an extension to the Paymaster.
address
:Address
- The address of the extension contract to add.Returns
: A hash of the extension.
getExtensions
Gets the list of restriction contract addresses added to the Paymaster.
Returns
: An array of extension contract addresses.
removeExtension
Removes an extension contract from the Paymaster.
address
:Address
- The address of the extension contract to remove.Returns
: A hash of the transaction object.
Last updated