eth

package
v0.1.11 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2020 License: MIT Imports: 19 Imported by: 12

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 RecoverSigner

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

func SetBlockDelay

func SetBlockDelay(blockDelay uint64)

func SetBlockPollingInterval

func SetBlockPollingInterval(pollingIntervalSec uint64)

func SetChainId

func SetChainId(chainId *big.Int)

func SetGasLimit

func SetGasLimit(minGasGwei, maxGasGwei uint64)

func SetQuickCatchBlockDelay

func SetQuickCatchBlockDelay(quickCatchBlockDelay uint64)

func SetWaitMinedConfig

func SetWaitMinedConfig(txTimeoutSec, txQueryTimeoutSec, txQueryRetryIntervalSec uint64)

func SigIsValid

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

func WaitMined

func WaitMined(
	ctx context.Context,
	ec *ethclient.Client,
	tx *types.Transaction,
	blockDelay uint64,
	pollingIntervalSec uint64) (*types.Receipt, error)

func WaitMinedWithTxHash

func WaitMinedWithTxHash(
	ctx context.Context,
	ec *ethclient.Client,
	txHash string,
	blockDelay uint64,
	pollingIntervalSec uint64) (*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) (*CelerSigner, error)

func NewSignerFromKeystore

func NewSignerFromKeystore(keyjson, passphrase string) (*CelerSigner, error)

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)
	OnDropped func(tx *types.Transaction)
	OnTimeout func(tx *types.Transaction)
}

type Transactor

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

func NewTransactor

func NewTransactor(
	keyjson string,
	passphrase string,
	client *ethclient.Client) (*Transactor, error)

func NewTransactorByExternalSigner

func NewTransactorByExternalSigner(
	address common.Address,
	signer Signer,
	client *ethclient.Client) *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,
	txconfig *TxConfig,
	method TxMethod) (*types.Transaction, error)

func (*Transactor) TransactWaitMined

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

func (*Transactor) WaitMined

func (t *Transactor) WaitMined(txHash string) (*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) (*TransactorPool, error)

func (*TransactorPool) ContractCaller

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

func (*TransactorPool) Submit

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

func (*TransactorPool) SubmitWaitMined

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

func (*TransactorPool) WaitMined

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

type TxConfig

type TxConfig struct {
	EthValue   *big.Int
	GasLimit   uint64
	QuickCatch bool
	Urgent     bool
	Retry      bool
}

type TxMethod

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

Jump to

Keyboard shortcuts

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