getPaymasterStubData
Returns stub values to be used in paymaster-related fields of an unsigned user operation for gas estimation. This method calls pm_getPaymasterStubData
and is part of the experimental ERC-7677 specification.
Usage
example.ts
import { paymasterEip7677Client } from "./client"
import { sepolia } from 'viem/chains'
const paymasterStubReturnData = paymasterEip7677Client.getPaymasterStubData({
userOperation: {
sender: "0x6152348912fb1e78c9037D83f9d4524D4a2988Ed",
nonce: 20n,
factory: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5",
factoryData:
"0xc5265d5d0000000000000000000000006723b44abeec4e71ebe3232bd5b455805badd22f0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e412af322c018104e3ad430ea6d354d013a6789fdfc71e671c4300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000014ec787ae5c34157ce61e751e54dff3612d4117663000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
callData:
"0xe9ae5c530100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000594bc666500faed35dc741f45a35c571399560d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e4e688a440000000000000000000000000c67e4838d4e6682e3a5f9ec27f133e76cb3855f30000000000000000000000006152348912fb1e78c9037d83f9d4524d4a2988ed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000041aebdfb90adba067d9304980a300636506c3c9081b01f64b04f108407a890602377625ef9096946cc028743123646881c7e31a1c8d6698132c188cb4c33a3f9151b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
maxFeePerGas: 99985502n,
maxPriorityFeePerGas: 1221000n,
preVerificationGas: 66875n,
verificationGasLimit: 373705n,
callGasLimit: 170447n,
},
})
/**
* {
* paymaster: "0x9d0021A869f1Ed3a661Ffe8C9B41Ec6244261d98",
* paymasterData: "0x000000000000000000000000000000000000000000000000000000006638ab470000000000000000000000000000000000000000000000000000000000000000e9311d1945317dc6a1c750e8e6d0641a598beb59edc5652ed3807ca57338a7a107123e1a479386b2c91f242d2dff367c18e0ad9d1021acfe47afc890e252644e1c",
* paymasterVerificationGasLimit: 20274n,
* paymasterPostOpGasLimit: 1n
* }
*/
Returns
- Type:
GetPaymasterStubDataReturnType<entryPoint>
The paymaster values to be used in the paymaster-related fields of a signed user operation.
For EntryPoint v0.7, the return type is:
{
paymaster: Address,
paymasterData: Hex,
paymasterVerificationGasLimit: bigint | undefined,
paymasterPostOpGasLimit: bigint | undefined
}
For EntryPoint v0.6, the return type is:
{
paymasterAndData: Hex
}