eth

package
v0.1.23 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2021 License: MIT Imports: 19 Imported by: 13

Documentation

Index

Constants

This section is empty.

Variables

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 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,
	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 WithAddGasGwei added in v0.1.13

func WithAddGasGwei(g uint64) 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 WithGasLimit added in v0.1.13

func WithGasLimit(l uint64) TxOption

func WithMaxGasGwei added in v0.1.13

func WithMaxGasGwei(g uint64) TxOption

func WithMinGasGwei added in v0.1.13

func WithMinGasGwei(g 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