gas

package
v0.6.0-rc.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2023 License: GPL-3.0 Imports: 8 Imported by: 6

Documentation

Overview

Package gas implements helper functions for calculating gas parameters based on Ethereum protocol values.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EstimateGas added in v0.6.0

func EstimateGas(
	rpc *rpc.Client,
	from common.Address,
	op *userop.UserOperation,
	chainID *big.Int,
	tracer string,
) (verificationGas uint64, callGas uint64, err error)

EstimateGas uses the simulateHandleOp method on the EntryPoint to derive an estimate for verificationGasLimit and callGasLimit.

TODO: This function requires an eth_call and a debug_traceCall. It could probably be optimized further by just using a debug_traceCall.

Types

type GasEstimates added in v0.2.0

type GasEstimates struct {
	PreVerificationGas *big.Int `json:"preVerificationGas"`
	VerificationGas    *big.Int `json:"verificationGas"`
	CallGasLimit       *big.Int `json:"callGasLimit"`
}

GasEstimates provides estimate values for all gas fields in a UserOperation.

type Overhead

type Overhead struct {
	// contains filtered or unexported fields
}

Overhead provides helper methods for calculating gas limits based on pre-defined parameters.

func NewDefaultOverhead

func NewDefaultOverhead() *Overhead

NewDefaultOverhead returns an instance of Overhead using parameters defined by the Ethereum protocol.

func (*Overhead) CalcPreVerificationGas

func (ov *Overhead) CalcPreVerificationGas(op *userop.UserOperation) *big.Int

CalcPreVerificationGas returns an expected gas cost for processing a UserOperation from a batch.

func (*Overhead) NonZeroValueCall

func (ov *Overhead) NonZeroValueCall() *big.Int

NonZeroValueCall returns an expected gas cost of using the CALL opcode in the context of EIP-4337. See https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-1-call.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL