Documentation ¶
Index ¶
- Variables
- func BlockMaxGasFromConsensusParams(_ context.Context, clientCtx clientcontext.CLIContext) (int64, error)
- func EthHeaderFromTendermint(header tmtypes.Header) *ethtypes.Header
- func EthTransactionsFromTendermint(clientCtx clientcontext.CLIContext, txs []tmtypes.Tx, blockHash common.Hash, ...) (*big.Int, []*watcher.Transaction, error)
- func FormatBlock(header tmtypes.Header, size int, curBlockHash tmbytes.HexBytes, gasLimit int64, ...) *evmtypes.Block
- func GetBlockCumulativeGas(cdc *codec.Codec, block *tmtypes.Block, idx int) uint64
- func GetEthSender(tr *ctypes.ResultTx) (string, error)
- func GetKeyByAddress(keys []ethsecp256k1.PrivKey, address common.Address) (key *ethsecp256k1.PrivKey, exist bool)
- func RawTxResultToEthReceipt(chainID *big.Int, tr *ctypes.ResultTx, realTx sdk.Tx, blockHash common.Hash) (*watcher.TransactionResult, error)
- func RawTxToEthTx(clientCtx clientcontext.CLIContext, bz []byte, height int64) (*evmtypes.MsgEthereumTx, error)
- func RawTxToRealTx(clientCtx clientcontext.CLIContext, bz tmtypes.Tx, blockHash common.Hash, ...) (sdk.Tx, error)
- func RpcBlockFromTendermint(clientCtx clientcontext.CLIContext, block *tmtypes.Block, fullTx bool, ...) (*evmtypes.Block, error)
- func ToTransaction(tx *evmtypes.MsgEthereumTx, from *common.Address) *watcher.Transaction
- type AccountResult
- type AddrLocker
- type BlockNumber
- type BlockNumberOrHash
- type CallArgs
- type EthHeaderWithBlockHash
- type FeeHistoryResult
- type GPIn3Gears
- type SendTxArgs
- type SignTransactionResult
- type StorageResult
Constants ¶
This section is empty.
Variables ¶
var ( // LatestBlockNumber mapping from "latest" to 0 for tm query LatestBlockNumber = BlockNumber(0) // PendingBlockNumber mapping from "pending" to -1 for tm query PendingBlockNumber = BlockNumber(-1) // EarliestBlockNumber mapping from "earliest" to (genesisHeight + 1) for tm query (earliest query not supported) EarliestBlockNumber = BlockNumber(1) ErrResourceNotFound = errors.New("resource not found") )
Functions ¶
func BlockMaxGasFromConsensusParams ¶
func BlockMaxGasFromConsensusParams(_ context.Context, clientCtx clientcontext.CLIContext) (int64, error)
BlockMaxGasFromConsensusParams returns the gas limit for the latest block from the chain consensus params.
func EthHeaderFromTendermint ¶
EthHeaderFromTendermint is an util function that returns an Ethereum Header from a tendermint Header.
func EthTransactionsFromTendermint ¶
func EthTransactionsFromTendermint(clientCtx clientcontext.CLIContext, txs []tmtypes.Tx, blockHash common.Hash, blockNumber uint64) (*big.Int, []*watcher.Transaction, error)
EthTransactionsFromTendermint returns a slice of ethereum transaction hashes and the total gas usage from a set of tendermint block transactions.
func FormatBlock ¶
func FormatBlock( header tmtypes.Header, size int, curBlockHash tmbytes.HexBytes, gasLimit int64, gasUsed *big.Int, transactions []*watcher.Transaction, bloom ethtypes.Bloom, fullTx bool, ) *evmtypes.Block
FormatBlock creates an ethereum block from a tendermint header and ethereum-formatted transactions.
func GetBlockCumulativeGas ¶
GetBlockCumulativeGas returns the cumulative gas used on a block up to a given transaction index. The returned gas used includes the gas from both the SDK and EVM module transactions.
func GetKeyByAddress ¶
func GetKeyByAddress(keys []ethsecp256k1.PrivKey, address common.Address) (key *ethsecp256k1.PrivKey, exist bool)
GetKeyByAddress returns the private key matching the given address. If not found it returns false.
func RawTxResultToEthReceipt ¶
func RawTxToEthTx ¶
func RawTxToEthTx(clientCtx clientcontext.CLIContext, bz []byte, height int64) (*evmtypes.MsgEthereumTx, error)
RawTxToEthTx returns a evm MsgEthereum transaction from raw tx bytes.
func RawTxToRealTx ¶
func RawTxToRealTx(clientCtx clientcontext.CLIContext, bz tmtypes.Tx, blockHash common.Hash, blockNumber, index uint64) (sdk.Tx, error)
func RpcBlockFromTendermint ¶
func RpcBlockFromTendermint(clientCtx clientcontext.CLIContext, block *tmtypes.Block, fullTx bool, txsLimit int) (*evmtypes.Block, error)
RpcBlockFromTendermint returns a JSON-RPC compatible Ethereum blockfrom a given Tendermint block.
func ToTransaction ¶
func ToTransaction(tx *evmtypes.MsgEthereumTx, from *common.Address) *watcher.Transaction
Types ¶
type AccountResult ¶
type AccountResult struct { Address common.Address `json:"address"` AccountProof []string `json:"accountProof"` Balance *hexutil.Big `json:"balance"` CodeHash common.Hash `json:"codeHash"` Nonce hexutil.Uint64 `json:"nonce"` StorageHash common.Hash `json:"storageHash"` StorageProof []StorageResult `json:"storageProof"` }
AccountResult struct for account proof
type AddrLocker ¶
type AddrLocker struct {
// contains filtered or unexported fields
}
AddrLocker is a mutex structure used to avoid querying outdated account data
func (*AddrLocker) LockAddr ¶
func (l *AddrLocker) LockAddr(address common.Address)
LockAddr locks an account's mutex. This is used to prevent another tx getting the same nonce until the lock is released. The mutex prevents the (an identical nonce) from being read again during the time that the first transaction is being signed.
func (*AddrLocker) UnlockAddr ¶
func (l *AddrLocker) UnlockAddr(address common.Address)
UnlockAddr unlocks the mutex of the given account.
type BlockNumber ¶
type BlockNumber int64
BlockNumber represents decoding hex string to block values
func NewBlockNumber ¶
func NewBlockNumber(n *big.Int) BlockNumber
NewBlockNumber creates a new BlockNumber instance.
func (BlockNumber) Int64 ¶
func (bn BlockNumber) Int64() int64
Int64 converts block number to primitive type
func (BlockNumber) TmHeight ¶
func (bn BlockNumber) TmHeight() *int64
TmHeight is a util function used for the Tendermint RPC client. It returns nil if the block number is "latest". Otherwise, it returns the pointer of the int64 value of the height.
func (*BlockNumber) UnmarshalJSON ¶
func (bn *BlockNumber) UnmarshalJSON(data []byte) error
UnmarshalJSON parses the given JSON fragment into a BlockNumber. It supports: - "latest", "earliest" or "pending" as string arguments - the block number Returned errors: - an invalid block number error when the given argument isn't a known strings - an out of range error when the given block number is either too little or too large
type BlockNumberOrHash ¶
type BlockNumberOrHash struct { BlockNumber *BlockNumber `json:"blockNumber,omitempty"` BlockHash *common.Hash `json:"blockHash,omitempty"` RequireCanonical bool `json:"requireCanonical,omitempty"` }
func BlockNumberOrHashWithHash ¶
func BlockNumberOrHashWithHash(hash common.Hash, canonical bool) BlockNumberOrHash
func BlockNumberOrHashWithNumber ¶
func BlockNumberOrHashWithNumber(blockNr BlockNumber) BlockNumberOrHash
func (*BlockNumberOrHash) Number ¶
func (bnh *BlockNumberOrHash) Number() (BlockNumber, bool)
func (*BlockNumberOrHash) UnmarshalJSON ¶
func (bnh *BlockNumberOrHash) UnmarshalJSON(data []byte) error
type CallArgs ¶
type CallArgs struct { From *common.Address `json:"from"` To *common.Address `json:"to"` Gas *hexutil.Uint64 `json:"gas"` GasPrice *hexutil.Big `json:"gasPrice"` Value *hexutil.Big `json:"value"` Data *hexutil.Bytes `json:"data"` }
CallArgs represents the arguments for a call.
type EthHeaderWithBlockHash ¶
type EthHeaderWithBlockHash struct { ParentHash common.Hash `json:"parentHash"` UncleHash common.Hash `json:"sha3Uncles"` Coinbase common.Address `json:"miner"` Root common.Hash `json:"stateRoot"` TxHash common.Hash `json:"transactionsRoot"` ReceiptHash common.Hash `json:"receiptsRoot"` Bloom ethtypes.Bloom `json:"logsBloom"` Difficulty *hexutil.Big `json:"difficulty"` Number *hexutil.Big `json:"number"` GasLimit hexutil.Uint64 `json:"gasLimit"` GasUsed hexutil.Uint64 `json:"gasUsed"` Time hexutil.Uint64 `json:"timestamp"` Extra hexutil.Bytes `json:"extraData"` MixDigest common.Hash `json:"mixHash"` Nonce ethtypes.BlockNonce `json:"nonce"` Hash common.Hash `json:"hash"` }
EthHeaderWithBlockHash represents a block header in the Ethereum blockchain with block hash generated from Tendermint Block
func EthHeaderWithBlockHashFromTendermint ¶
func EthHeaderWithBlockHashFromTendermint(tmHeader *tmtypes.Header) (header *EthHeaderWithBlockHash, err error)
EthHeaderWithBlockHashFromTendermint gets the eth Header with block hash from Tendermint block inside
type FeeHistoryResult ¶
type GPIn3Gears ¶
type GPIn3Gears struct { SafeLow *hexutil.Big `json:"safe_low"` Average *hexutil.Big `json:"average"` Fastest *hexutil.Big `json:"fastest"` }
func NewGPIn3Gears ¶
func NewGPIn3Gears(safelow, avg, fastest *big.Int) GPIn3Gears
type SendTxArgs ¶
type SendTxArgs struct { From *common.Address `json:"from"` To *common.Address `json:"to"` Gas *hexutil.Uint64 `json:"gas"` GasPrice *hexutil.Big `json:"gasPrice"` Value *hexutil.Big `json:"value"` Nonce *hexutil.Uint64 `json:"nonce"` // We accept "data" and "input" for backwards-compatibility reasons. "input" is the // newer name and should be preferred by clients. Data *hexutil.Bytes `json:"data"` Input *hexutil.Bytes `json:"input"` }
SendTxArgs represents the arguments to submit a new transaction into the transaction pool. Duplicate struct definition since geth struct is in internal package Ref: https://github.com/ethereum/go-ethereum/blob/release/1.9/internal/ethapi/api.go#L1346
func (SendTxArgs) String ¶
func (ca SendTxArgs) String() string
type SignTransactionResult ¶
type SignTransactionResult struct { Raw hexutil.Bytes `json:"raw"` Tx *watcher.Transaction `json:"tx"` }
SignTransactionResult represents a RLP encoded signed transaction.