A Ruby gem for interacting with Pimlico ERC-4337 bundler and paymaster services, including support for EIP-7702 sponsored transactions.
Add this to your Gemfile:
gem 'pimlico', path: '../pimlico'require 'pimlico'
client = Pimlico::Client.new(
api_key: 'your_pimlico_api_key',
chain_id: 42161 # Arbitrum
)result = client.pimlico_get_user_operation_gas_price
if result[:success]
gas_prices = result[:data]
puts gas_prices['standard']['maxFeePerGas']
end# Build a UserOperation
builder = Pimlico::UserOperationBuilder.new(
sender: '0x...',
chain_id: 42161
)
user_op = builder.build(
call_data: '0x...',
nonce: 0
)
# Sponsor with a policy
result = client.pm_sponsor_user_operation(
user_op,
Pimlico::Constants::ENTRY_POINT_V08,
sponsorship_policy_id: 'sp_your_policy'
)require 'eth'
operator_key = Eth::Key.new(priv: 'your_private_key')
auth = Pimlico::Eip7702Auth.generate(
operator_key,
chain_id: 42161,
nonce: 0
)
# Include in UserOperation
user_op = builder.build(
call_data: '0x...',
nonce: 0,
authorization: auth
)Pimlico::Constants::ENTRY_POINT_V07- ERC-4337 v0.7 EntryPointPimlico::Constants::ENTRY_POINT_V08- ERC-4337 v0.8 EntryPoint (for EIP-7702)Pimlico::Constants::SIMPLE_ACCOUNT_7702- SimpleSmartAccount for delegation
MIT