sponsorUserOperation

⚠️

The Pimlico paymaster actions in permissionless.js only work with the v2 Pimlico API. The v1 API for paymasters is deprecated and will be removed in the future.

This version, instead of simply signing over the passed-in User Operation, estimates the gas values for the User Operation and then signs over the estimated gas values, returning not only the paymasterAndData but also the preVerificationGas, verificationGasLimit, and callGasLimit.

Estimates the gas values for the User Operation and sponsors the operation with the new gas values.

Usage

import { pimlicoPaymasterClient } from "./client"
 
const sponsorResult = await pimlicoPaymasterClient.sponsorUserOperation({
    userOperation: {
        sender: "0x0C123D90Da0a640fFE54a2359D159629065775C5",
        nonce: 3n,
        initCode: "0x",
        callData: "0x18dfb3c7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d2f598c826429eee7c071c02735549acd88f2c09000000000000000000000000d2f598c826429eee7c071c02735549acd88f2c090000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000043a4eacb7839f202d9cab465dbdd77d4fabe0a1800000000000000000000000000000000000000000000000003782dace9d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000982e148216e3aa6b38f9d901ef578b5c06dd750200000000000000000000000000000000000000000000000005d423c655aa000000000000000000000000000000000000000000000000000000000000",
        maxFeePerGas: 113000000n,
        maxPriorityFeePerGas: 113000100n,
        signature: "0xf1513a8537a079a4d728bb87099b2c901e2c9034e60c95a4d41ac1ed75d6ee90270d52b48af30aa036e9a205ea008e1c62b317e7b3f88b3f302d45fb1ba76a191b"
    },
    entryPoint: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
})
/**
 * {
    "paymasterAndData": "0xe3dc822D77f8cA7ac74c30B0dfFEA9FcDCAAA321000000000000000000000000000000000000000000000000000000006514ac7d000000000000000000000000000000000000000000000000000000000000000071eee8c38559ef6872351c16a312cefbc545344a3f7cc1b910d059a0d5c613012763e6b1ce31080a975ddcba12817305a62a322e3ec8f106bd2181b0fd1391cf1c",
    "preVerificationGas": 61230n,
    "verificationGasLimit": 93823n,
    "callGasLimit": 134849n
   }
 */

Returns

  • Type: SponsorUserOperationReturnType

The estimated gas values for the User Operation and the paymasterAndData that includes the Pimlico paymaster address and Pimlico's paymaster signature.

Parameters

userOperation

  • Type: UserOperation

The User Operation object, with preVerificationGas, verificationGasLimit, callGasLimit, and paymasterAndData being optional.

entryPoint

  • Type: Address

The address of the entry point contract.

JSON-RPC Method

pm_sponsorUserOperation