evmc

package module
v0.0.0-...-24c7e1a Latest Latest
Warning

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

Go to latest
Published: Jul 6, 2024 License: MIT Imports: 26 Imported by: 0

README

evmc (WIP)

evmc is an abbreviation of Ethereum Virtual Machine Client, and I wanted to express it as simply as a Go. But evmc is not simple.

I'm trying to create a more user-friendly client using the rpc package of go-thereum(geth). It also supports namespace for data analysis such as debug and trace and provides features for standard tokens.

Install
  • go version

    required Go version (v1.22 or later)

  • install

    go get github.com/bbaktaeho/evmc
    
Usage
package main

import "github.com/bbaktaeho/evmc"

func main() {
    client, err := evmc.New("http://localhost:8545")
	if err != nil {
		panic(err)
	}

    latest, err := client.Eth().BlockNumber()
    if err != nil {
		panic(err)
	}

    println(latest)
}

Documentation

Index

Constants

View Source
const (
	ZeroValue   = "0x0"
	ZeroData    = "0x"
	ZeroAddress = "0x0000000000000000000000000000000000000000"
	ZeroHash    = "0x0000000000000000000000000000000000000000000000000000000000000000"
)
View Source
const Erc20ABI = "" /* 3791-byte string literal not displayed */

Erc20ABI is the input ABI used to generate the binding from.

Variables

View Source
var (
	EthereumIDs = []ChainID{EthereumMainnet, EthereumSepolia, EthereumHolesky}
	PolygonIDs  = []ChainID{PolygonMainnet, PolygonAmoy}
	ArbitrumIDs = []ChainID{ArbitrumMainnet, ArbitrumSepolia}
	// OpStackIDs is built on Optimism’s open-source OP Stack.
	OpStackIDs = []ChainID{OptimismMainnet, OptimismSepolia, BaseMainnet, BaseSepolia}
)
View Source
var (
	ErrPendingBlockNotSupported   = errors.New("pending block is not supported")
	ErrWebsocketRequired          = errors.New("websocket is required for subscriptions")
	ErrWalletRequired             = errors.New("wallet is required")
	ErrTxGasLimitZero             = errors.New("gas limit is zero")
	ErrTxGasPriceZero             = errors.New("gas price is zero")
	ErrTxValueLessThanZero        = errors.New("value less than zero")
	ErrTxMaxFeePerGasZero         = errors.New("max fee per gas is zero")
	ErrTxMaxPriorityFeePerGasZero = errors.New("max priority fee per gas is zero")
	ErrFromRequired               = errors.New("from address is required")
	ErrToRequired                 = errors.New("to address is required")
	ErrTxRequired                 = errors.New("tx is required")
)
View Source
var Erc20Bin = "" /* 11958-byte string literal not displayed */

Erc20Bin is the compiled bytecode used for deploying new contracts.

Functions

This section is empty.

Types

type BlockAndTag

type BlockAndTag string
const (
	Pending   BlockAndTag = "pending"
	Earliest  BlockAndTag = "earliest"
	Latest    BlockAndTag = "latest"
	Safe      BlockAndTag = "safe"
	Finalized BlockAndTag = "finalized"
)

func FormatNumber

func FormatNumber(number uint64) BlockAndTag

func (BlockAndTag) String

func (b BlockAndTag) String() string

type ChainID

type ChainID uint64
const (
	EthereumMainnet ChainID = 1
	EthereumSepolia ChainID = 11155111
	EthereumHolesky ChainID = 17000

	PolygonMainnet ChainID = 137
	PolygonAmoy    ChainID = 80002

	ArbitrumMainnet ChainID = 42161
	ArbitrumSepolia ChainID = 421614

	OptimismMainnet ChainID = 10
	OptimismSepolia ChainID = 11155420

	BaseMainnet ChainID = 8453
	BaseSepolia ChainID = 84532
)

func (ChainID) Name

func (id ChainID) Name() string

type ClientName

type ClientName string
const (
	Geth   ClientName = "geth"
	Erigon ClientName = "erigon"
	Bor    ClientName = "bor"
	Besu   ClientName = "besu"
	Nitro  ClientName = "nitro"
)

func (ClientName) String

func (c ClientName) String() string

type Erc20

type Erc20 struct {
	Erc20Caller     // Read-only binding to the contract
	Erc20Transactor // Write-only binding to the contract
	Erc20Filterer   // Log filterer for contract events
}

Erc20 is an auto generated Go binding around an Ethereum contract.

func DeployErc20

func DeployErc20(auth *bind.TransactOpts, backend bind.ContractBackend, name_ string, symbol_ string) (common.Address, *types.Transaction, *Erc20, error)

DeployErc20 deploys a new Ethereum contract, binding an instance of Erc20 to it.

func NewErc20

func NewErc20(address common.Address, backend bind.ContractBackend) (*Erc20, error)

NewErc20 creates a new instance of Erc20, bound to a specific deployed contract.

type Erc20Approval

type Erc20Approval struct {
	Owner   common.Address
	Spender common.Address
	Value   *big.Int
	Raw     types.Log // Blockchain specific contextual infos
}

Erc20Approval represents a Approval event raised by the Erc20 contract.

type Erc20ApprovalIterator

type Erc20ApprovalIterator struct {
	Event *Erc20Approval // Event containing the contract specifics and raw log
	// contains filtered or unexported fields
}

Erc20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Erc20 contract.

func (*Erc20ApprovalIterator) Close

func (it *Erc20ApprovalIterator) Close() error

Close terminates the iteration process, releasing any pending underlying resources.

func (*Erc20ApprovalIterator) Error

func (it *Erc20ApprovalIterator) Error() error

Error returns any retrieval or parsing error occurred during filtering.

func (*Erc20ApprovalIterator) Next

func (it *Erc20ApprovalIterator) Next() bool

Next advances the iterator to the subsequent event, returning whether there are any more events found. In case of a retrieval or parsing error, false is returned and Error() can be queried for the exact failure.

type Erc20Caller

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

Erc20Caller is an auto generated read-only Go binding around an Ethereum contract.

func NewErc20Caller

func NewErc20Caller(address common.Address, caller bind.ContractCaller) (*Erc20Caller, error)

NewErc20Caller creates a new read-only instance of Erc20, bound to a specific deployed contract.

func (*Erc20Caller) Allowance

func (_Erc20 *Erc20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error)

Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.

Solidity: function allowance(address owner, address spender) view returns(uint256)

func (*Erc20Caller) BalanceOf

func (_Erc20 *Erc20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error)

BalanceOf is a free data retrieval call binding the contract method 0x70a08231.

Solidity: function balanceOf(address account) view returns(uint256)

func (*Erc20Caller) Decimals

func (_Erc20 *Erc20Caller) Decimals(opts *bind.CallOpts) (uint8, error)

Decimals is a free data retrieval call binding the contract method 0x313ce567.

Solidity: function decimals() view returns(uint8)

func (*Erc20Caller) Name

func (_Erc20 *Erc20Caller) Name(opts *bind.CallOpts) (string, error)

Name is a free data retrieval call binding the contract method 0x06fdde03.

Solidity: function name() view returns(string)

func (*Erc20Caller) Symbol

func (_Erc20 *Erc20Caller) Symbol(opts *bind.CallOpts) (string, error)

Symbol is a free data retrieval call binding the contract method 0x95d89b41.

Solidity: function symbol() view returns(string)

func (*Erc20Caller) TotalSupply

func (_Erc20 *Erc20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error)

TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.

Solidity: function totalSupply() view returns(uint256)

type Erc20CallerRaw

type Erc20CallerRaw struct {
	Contract *Erc20Caller // Generic read-only contract binding to access the raw methods on
}

Erc20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.

func (*Erc20CallerRaw) Call

func (_Erc20 *Erc20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error

Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.

type Erc20CallerSession

type Erc20CallerSession struct {
	Contract *Erc20Caller  // Generic contract caller binding to set the session for
	CallOpts bind.CallOpts // Call options to use throughout this session
}

Erc20CallerSession is an auto generated read-only Go binding around an Ethereum contract, with pre-set call options.

func (*Erc20CallerSession) Allowance

func (_Erc20 *Erc20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error)

Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.

Solidity: function allowance(address owner, address spender) view returns(uint256)

func (*Erc20CallerSession) BalanceOf

func (_Erc20 *Erc20CallerSession) BalanceOf(account common.Address) (*big.Int, error)

BalanceOf is a free data retrieval call binding the contract method 0x70a08231.

Solidity: function balanceOf(address account) view returns(uint256)

func (*Erc20CallerSession) Decimals

func (_Erc20 *Erc20CallerSession) Decimals() (uint8, error)

Decimals is a free data retrieval call binding the contract method 0x313ce567.

Solidity: function decimals() view returns(uint8)

func (*Erc20CallerSession) Name

func (_Erc20 *Erc20CallerSession) Name() (string, error)

Name is a free data retrieval call binding the contract method 0x06fdde03.

Solidity: function name() view returns(string)

func (*Erc20CallerSession) Symbol

func (_Erc20 *Erc20CallerSession) Symbol() (string, error)

Symbol is a free data retrieval call binding the contract method 0x95d89b41.

Solidity: function symbol() view returns(string)

func (*Erc20CallerSession) TotalSupply

func (_Erc20 *Erc20CallerSession) TotalSupply() (*big.Int, error)

TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.

Solidity: function totalSupply() view returns(uint256)

type Erc20Filterer

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

Erc20Filterer is an auto generated log filtering Go binding around an Ethereum contract events.

func NewErc20Filterer

func NewErc20Filterer(address common.Address, filterer bind.ContractFilterer) (*Erc20Filterer, error)

NewErc20Filterer creates a new log filterer instance of Erc20, bound to a specific deployed contract.

func (*Erc20Filterer) FilterApproval

func (_Erc20 *Erc20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*Erc20ApprovalIterator, error)

FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.

Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)

func (*Erc20Filterer) FilterTransfer

func (_Erc20 *Erc20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*Erc20TransferIterator, error)

FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.

Solidity: event Transfer(address indexed from, address indexed to, uint256 value)

func (*Erc20Filterer) ParseApproval

func (_Erc20 *Erc20Filterer) ParseApproval(log types.Log) (*Erc20Approval, error)

ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.

Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)

func (*Erc20Filterer) ParseTransfer

func (_Erc20 *Erc20Filterer) ParseTransfer(log types.Log) (*Erc20Transfer, error)

ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.

Solidity: event Transfer(address indexed from, address indexed to, uint256 value)

func (*Erc20Filterer) WatchApproval

func (_Erc20 *Erc20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *Erc20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error)

WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.

Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)

func (*Erc20Filterer) WatchTransfer

func (_Erc20 *Erc20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *Erc20Transfer, from []common.Address, to []common.Address) (event.Subscription, error)

WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.

Solidity: event Transfer(address indexed from, address indexed to, uint256 value)

type Erc20Raw

type Erc20Raw struct {
	Contract *Erc20 // Generic contract binding to access the raw methods on
}

Erc20Raw is an auto generated low-level Go binding around an Ethereum contract.

func (*Erc20Raw) Call

func (_Erc20 *Erc20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error

Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.

func (*Erc20Raw) Transact

func (_Erc20 *Erc20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)

Transact invokes the (paid) contract method with params as input values.

func (*Erc20Raw) Transfer

func (_Erc20 *Erc20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)

Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.

type Erc20Session

type Erc20Session struct {
	Contract     *Erc20            // Generic contract binding to set the session for
	CallOpts     bind.CallOpts     // Call options to use throughout this session
	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}

Erc20Session is an auto generated Go binding around an Ethereum contract, with pre-set call and transact options.

func (*Erc20Session) Allowance

func (_Erc20 *Erc20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error)

Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.

Solidity: function allowance(address owner, address spender) view returns(uint256)

func (*Erc20Session) Approve

func (_Erc20 *Erc20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error)

Approve is a paid mutator transaction binding the contract method 0x095ea7b3.

Solidity: function approve(address spender, uint256 amount) returns(bool)

func (*Erc20Session) BalanceOf

func (_Erc20 *Erc20Session) BalanceOf(account common.Address) (*big.Int, error)

BalanceOf is a free data retrieval call binding the contract method 0x70a08231.

Solidity: function balanceOf(address account) view returns(uint256)

func (*Erc20Session) Decimals

func (_Erc20 *Erc20Session) Decimals() (uint8, error)

Decimals is a free data retrieval call binding the contract method 0x313ce567.

Solidity: function decimals() view returns(uint8)

func (*Erc20Session) DecreaseAllowance

func (_Erc20 *Erc20Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error)

DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.

Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)

func (*Erc20Session) IncreaseAllowance

func (_Erc20 *Erc20Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error)

IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.

Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)

func (*Erc20Session) Name

func (_Erc20 *Erc20Session) Name() (string, error)

Name is a free data retrieval call binding the contract method 0x06fdde03.

Solidity: function name() view returns(string)

func (*Erc20Session) Symbol

func (_Erc20 *Erc20Session) Symbol() (string, error)

Symbol is a free data retrieval call binding the contract method 0x95d89b41.

Solidity: function symbol() view returns(string)

func (*Erc20Session) TotalSupply

func (_Erc20 *Erc20Session) TotalSupply() (*big.Int, error)

TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.

Solidity: function totalSupply() view returns(uint256)

func (*Erc20Session) Transfer

func (_Erc20 *Erc20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error)

Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.

Solidity: function transfer(address recipient, uint256 amount) returns(bool)

func (*Erc20Session) TransferFrom

func (_Erc20 *Erc20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error)

TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.

Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)

type Erc20Transactor

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

Erc20Transactor is an auto generated write-only Go binding around an Ethereum contract.

func NewErc20Transactor

func NewErc20Transactor(address common.Address, transactor bind.ContractTransactor) (*Erc20Transactor, error)

NewErc20Transactor creates a new write-only instance of Erc20, bound to a specific deployed contract.

func (*Erc20Transactor) Approve

func (_Erc20 *Erc20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error)

Approve is a paid mutator transaction binding the contract method 0x095ea7b3.

Solidity: function approve(address spender, uint256 amount) returns(bool)

func (*Erc20Transactor) DecreaseAllowance

func (_Erc20 *Erc20Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error)

DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.

Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)

func (*Erc20Transactor) IncreaseAllowance

func (_Erc20 *Erc20Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error)

IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.

Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)

func (*Erc20Transactor) Transfer

func (_Erc20 *Erc20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error)

Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.

Solidity: function transfer(address recipient, uint256 amount) returns(bool)

func (*Erc20Transactor) TransferFrom

func (_Erc20 *Erc20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error)

TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.

Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)

type Erc20TransactorRaw

type Erc20TransactorRaw struct {
	Contract *Erc20Transactor // Generic write-only contract binding to access the raw methods on
}

Erc20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.

func (*Erc20TransactorRaw) Transact

func (_Erc20 *Erc20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)

Transact invokes the (paid) contract method with params as input values.

func (*Erc20TransactorRaw) Transfer

func (_Erc20 *Erc20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)

Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.

type Erc20TransactorSession

type Erc20TransactorSession struct {
	Contract     *Erc20Transactor  // Generic contract transactor binding to set the session for
	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}

Erc20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, with pre-set transact options.

func (*Erc20TransactorSession) Approve

func (_Erc20 *Erc20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error)

Approve is a paid mutator transaction binding the contract method 0x095ea7b3.

Solidity: function approve(address spender, uint256 amount) returns(bool)

func (*Erc20TransactorSession) DecreaseAllowance

func (_Erc20 *Erc20TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error)

DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.

Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)

func (*Erc20TransactorSession) IncreaseAllowance

func (_Erc20 *Erc20TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error)

IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.

Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)

func (*Erc20TransactorSession) Transfer

func (_Erc20 *Erc20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error)

Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.

Solidity: function transfer(address recipient, uint256 amount) returns(bool)

func (*Erc20TransactorSession) TransferFrom

func (_Erc20 *Erc20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error)

TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.

Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)

type Erc20Transfer

type Erc20Transfer struct {
	From  common.Address
	To    common.Address
	Value *big.Int
	Raw   types.Log // Blockchain specific contextual infos
}

Erc20Transfer represents a Transfer event raised by the Erc20 contract.

type Erc20TransferIterator

type Erc20TransferIterator struct {
	Event *Erc20Transfer // Event containing the contract specifics and raw log
	// contains filtered or unexported fields
}

Erc20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Erc20 contract.

func (*Erc20TransferIterator) Close

func (it *Erc20TransferIterator) Close() error

Close terminates the iteration process, releasing any pending underlying resources.

func (*Erc20TransferIterator) Error

func (it *Erc20TransferIterator) Error() error

Error returns any retrieval or parsing error occurred during filtering.

func (*Erc20TransferIterator) Next

func (it *Erc20TransferIterator) Next() bool

Next advances the iterator to the subsequent event, returning whether there are any more events found. In case of a retrieval or parsing error, false is returned and Error() can be queried for the exact failure.

type Evmc

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

func New

func New(httpURL string, opts ...Options) (*Evmc, error)

func NewWebsocket

func NewWebsocket(ctx context.Context, wsURL string, opts ...Options) (*Evmc, error)

func (*Evmc) ChainID

func (e *Evmc) ChainID() uint64

func (*Evmc) Close

func (e *Evmc) Close()

func (*Evmc) Debug

func (e *Evmc) Debug() *debugNamespace

func (*Evmc) ERC1155

func (e *Evmc) ERC1155() *erc1155Contract

func (*Evmc) ERC20

func (e *Evmc) ERC20() *erc20Contract

func (*Evmc) ERC721

func (e *Evmc) ERC721() *erc721Contract

func (*Evmc) Eth

func (e *Evmc) Eth() *ethNamespace

func (*Evmc) IsWebsocket

func (e *Evmc) IsWebsocket() bool

func (*Evmc) NodeClient

func (e *Evmc) NodeClient() (name, version string)

func (*Evmc) Web3

func (e *Evmc) Web3() *web3Namespace

type Options

type Options interface {
	// contains filtered or unexported methods
}

func WithConnPool

func WithConnPool(pool int) Options

func WithMaxBatchItems

func WithMaxBatchItems(items int) Options

func WithMaxBatchSize

func WithMaxBatchSize(size int) Options

func WithReqTimeout

func WithReqTimeout(timeout time.Duration) Options

func WithWsMessageSizeLimit

func WithWsMessageSizeLimit(limit int) Options

func WithWsReadBufferSize

func WithWsReadBufferSize(size int) Options

func WithWsWriteBufferSize

func WithWsWriteBufferSize(size int) Options

type SendingTx

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

func NewAccessListTx

func NewAccessListTx(tx *Tx) (*SendingTx, error)

func NewDynamicFeeTx

func NewDynamicFeeTx(tx *Tx) (*SendingTx, error)

TODO: auto setting maxPriorityFeePerGas and maxFeePerGas

func NewLegacyTx

func NewLegacyTx(tx *Tx) (*SendingTx, error)

func NewSendingTx

func NewSendingTx(tx *Tx) (*SendingTx, error)

type Tx

type Tx struct {
	From     string          `json:"from"`
	Nonce    uint64          `json:"nonce"`
	To       string          `json:"to"`
	Data     string          `json:"data"`
	Value    decimal.Decimal `json:"value"`
	GasPrice decimal.Decimal `json:"gasPrice"` // legacy
	GasLimit uint64          `json:"gasLimit"`

	AccessList []struct {
		Address     string   `json:"address"`
		StorageKeys []string `json:"storageKeys"`
	} `json:"accessList"` // EIP-2930
	MaxPriorityFeePerGas decimal.Decimal `json:"maxPriorityFeePerGas"` // EIP-1559
	MaxFeePerGas         decimal.Decimal `json:"maxFeePerGas"`         // EIP-1559
}

Tx is a structure that contains transaction information to be sent to the blockchain network by EOA.

type Wallet

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

func NewWallet

func NewWallet(privateKey string) (*Wallet, error)

func (*Wallet) Address

func (w *Wallet) Address() string

func (*Wallet) SignTx

func (w *Wallet) SignTx(sendingTx *SendingTx, chainID uint64) (hash, rawTx string, err error)

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

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