eth

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 7, 2024 License: MIT Imports: 27 Imported by: 13

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrConflictingGasFlags = errors.New("cannot specify both legacy and EIP-1559 gas flags")
	ErrTooManyPendingTx    = errors.New("too many txs in pending status")
	ErrTooManySubmittingTx = errors.New("too many txs in submitting status")
)
View Source
var (
	ErrTxDropped = errors.New("onchain transaction dropped")
	ErrTxTimeout = errors.New("onchain transaction timeout")
	ErrTxReorg   = errors.New("onchain transaction reorg")
	// an error possibly returned when a transaction is pending
	ErrMissingField = errors.New("missing required field 'transactionHash' for Log")
)

Functions

func GeneratePrefixedHash

func GeneratePrefixedHash(data []byte) []byte

func GetAddrPrivKeyFromKeystore

func GetAddrPrivKeyFromKeystore(keyjson, passphrase string) (common.Address, string, error)

func IsSignatureValid added in v0.1.13

func IsSignatureValid(signer common.Address, data []byte, sig []byte) bool

func RecoverSigner

func RecoverSigner(data []byte, sig []byte) (common.Address, error)

func WaitMined

func WaitMined(
	ctx context.Context,
	ec *ethclient.Client,
	tx *types.Transaction,
	opts ...TxOption) (*types.Receipt, error)

func WaitMinedWithTxHash

func WaitMinedWithTxHash(
	ctx context.Context,
	ec *ethclient.Client,
	txHash string,
	opts ...TxOption) (*types.Receipt, error)

WaitMinedWithTxHash only wait with given txhash, without other info such as nonce. Therefore, it cannot tell if a tx is dropped if not yet mined

Types

type CelerSigner

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

func NewSigner

func NewSigner(privateKey string, chainId *big.Int) (*CelerSigner, error)

Create a new Signer object from the private key chainId could be nil if the signer is expected to only call SignEthMessage func

func NewSignerFromKeystore

func NewSignerFromKeystore(keyjson, passphrase string, chainId *big.Int) (*CelerSigner, error)

Create a new Signer object from the keystore json and passphrase chainId could be nil if the signer is expected to only call SignEthMessage func

func (*CelerSigner) SignEthMessage

func (s *CelerSigner) SignEthMessage(data []byte) ([]byte, error)

input data: a byte array of raw message to be signed return a byte array signature in the R,S,V format

func (*CelerSigner) SignEthTransaction

func (s *CelerSigner) SignEthTransaction(rawTx []byte) ([]byte, error)

input rawTx: a byte array of a RLP-encoded unsigned Ethereum raw transaction return a byte array signed raw tx in RLP-encoded format

type KmsSigner added in v0.1.38

type KmsSigner struct {
	Addr common.Address
	// contains filtered or unexported fields
}

impl Signer interface

func NewKmsSigner added in v0.1.38

func NewKmsSigner(region, keyAlias, awsKey, awsSec string, chainId *big.Int) (*KmsSigner, error)

region and keyAlias must be valid, eg. us-west-1 alias/mytestkey if awsKey, awsSec are empty string, will use aws sdk auto search

func (*KmsSigner) NewTransactOpts added in v0.1.41

func (s *KmsSigner) NewTransactOpts() *bind.TransactOpts

return bind.TransactOpts to be used in bound contract tx

func (*KmsSigner) Sign added in v0.1.38

func (s *KmsSigner) Sign(hash []byte) ([]byte, error)

input must be hash, return 65 bytes sig or error. sig[64] is 0 or 1

func (*KmsSigner) SignEthMessage added in v0.1.38

func (s *KmsSigner) SignEthMessage(data []byte) ([]byte, error)

satisfy Signer interface SignEthMessage

func (*KmsSigner) SignEthTransaction added in v0.1.38

func (s *KmsSigner) SignEthTransaction(rawTx []byte) ([]byte, error)

satisfy Signer interface SignEthTransaction

func (*KmsSigner) SignerFn added in v0.1.41

func (s *KmsSigner) SignerFn(addr common.Address, tx *types.Transaction) (*types.Transaction, error)

satisfy bind/base.go SignerFn

type PubKeyAsn added in v0.1.38

type PubKeyAsn struct {
	Algo   pkix.AlgorithmIdentifier
	PubKey asn1.BitString
}

type RS added in v0.1.38

type RS struct {
	R, S *big.Int
}

type Signer

type Signer interface {
	// input data: a byte array of raw message to be signed
	// return a byte array signature in the R,S,V format
	// The implementation should hash data w/ keccak256, and add
	// "\x19Ethereum Signed Message:\n32" prefix (32 is the length of hash result)
	// for ECDSA sign. If some library handles prefix automatically, pass hash
	// result is sufficient
	SignEthMessage(data []byte) ([]byte, error)
	// input rawTx: a byte array of a RLP-encoded unsigned Ethereum raw transaction
	// return a byte array signed raw tx in RLP-encoded format
	SignEthTransaction(rawTx []byte) ([]byte, error)
}

type TransactionStateHandler

type TransactionStateHandler struct {
	OnMined func(receipt *types.Receipt)
	OnError func(tx *types.Transaction, err error)
}

type Transactor

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

func NewTransactor

func NewTransactor(
	keyjson string,
	passphrase string,
	client *ethclient.Client,
	chainId *big.Int,
	opts ...TxOption) (*Transactor, error)

func NewTransactorByExternalSigner

func NewTransactorByExternalSigner(
	address common.Address,
	signer Signer,
	client *ethclient.Client,
	chainId *big.Int,
	opts ...TxOption) *Transactor

func (*Transactor) Address

func (t *Transactor) Address() common.Address

func (*Transactor) ContractCaller

func (t *Transactor) ContractCaller() bind.ContractCaller

func (*Transactor) Transact

func (t *Transactor) Transact(
	handler *TransactionStateHandler,
	method TxMethod,
	opts ...TxOption) (*types.Transaction, error)

func (*Transactor) TransactWaitMined

func (t *Transactor) TransactWaitMined(
	description string,
	method TxMethod,
	opts ...TxOption) (*types.Receipt, error)

func (*Transactor) WaitMined

func (t *Transactor) WaitMined(txHash string, opts ...TxOption) (*types.Receipt, error)

type TransactorConfig

type TransactorConfig struct {
	Keyjson    string
	Passphrase string
}

func NewTransactorConfig

func NewTransactorConfig(keyjson string, passphrase string) *TransactorConfig

type TransactorPool

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

func NewTransactorPool

func NewTransactorPool(transactors []*Transactor) (*TransactorPool, error)

func NewTransactorPoolFromConfig

func NewTransactorPoolFromConfig(
	client *ethclient.Client,
	configs []*TransactorConfig,
	chainId *big.Int,
	opts ...TxOption) (*TransactorPool, error)

func (*TransactorPool) ContractCaller

func (p *TransactorPool) ContractCaller() bind.ContractCaller

func (*TransactorPool) Submit

func (p *TransactorPool) Submit(
	handler *TransactionStateHandler,
	method TxMethod,
	opts ...TxOption) (*types.Transaction, error)

func (*TransactorPool) SubmitWaitMined

func (p *TransactorPool) SubmitWaitMined(
	description string,
	method TxMethod,
	opts ...TxOption) (*types.Receipt, error)

func (*TransactorPool) WaitMined

func (p *TransactorPool) WaitMined(txHash string, opts ...TxOption) (*types.Receipt, error)

type TxMethod

type TxMethod func(transactor bind.ContractTransactor, opts *bind.TransactOpts) (*types.Transaction, error)

type TxOption added in v0.1.13

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

func WithAddGasEstimateRatio added in v0.1.26

func WithAddGasEstimateRatio(r float64) TxOption

func WithAddGasFeeRatio added in v0.2.0

func WithAddGasFeeRatio(r float64) TxOption

func WithAddGasGwei added in v0.1.13

func WithAddGasGwei(g float64) TxOption

func WithAddPriorityFeePerGasGwei added in v0.1.64

func WithAddPriorityFeePerGasGwei(g float64) TxOption

func WithBlockDelay added in v0.1.13

func WithBlockDelay(d uint64) TxOption

func WithDropDetection added in v0.1.21

func WithDropDetection(d bool) TxOption

func WithEthValue added in v0.1.13

func WithEthValue(v *big.Int) TxOption

func WithForceGasGwei added in v0.1.29

func WithForceGasGwei(g string) TxOption

func WithGasLimit added in v0.1.13

func WithGasLimit(l uint64) TxOption

func WithMaxFeePerGasGwei added in v0.1.40

func WithMaxFeePerGasGwei(g uint64) TxOption

func WithMaxGasGwei added in v0.1.13

func WithMaxGasGwei(g float64) TxOption

func WithMaxPendingTxNum added in v0.1.54

func WithMaxPendingTxNum(n uint64) TxOption

func WithMaxPriorityFeePerGasGwei added in v0.1.40

func WithMaxPriorityFeePerGasGwei(g float64) TxOption

func WithMaxSubmittingTxNum added in v0.1.54

func WithMaxSubmittingTxNum(n uint64) TxOption

func WithMinGasGwei added in v0.1.13

func WithMinGasGwei(g float64) TxOption

func WithNonce added in v0.1.64

func WithNonce(n uint64) TxOption

func WithPollingInterval added in v0.1.13

func WithPollingInterval(t time.Duration) TxOption

func WithQueryRetryInterval added in v0.1.13

func WithQueryRetryInterval(t time.Duration) TxOption

func WithQueryTimeout added in v0.1.13

func WithQueryTimeout(t time.Duration) TxOption

func WithTimeout added in v0.1.13

func WithTimeout(t time.Duration) TxOption

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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