Documentation ¶
Index ¶
- Constants
- Variables
- func AddressToString(address Address) string
- func EncodeBigInt(b *big.Int) *string
- func EncodeBytes(b []byte) *string
- func EncodeUint64(b uint64) *string
- func IsValidAddress(address string) error
- func MarshalRLPTo(obj marshalRLPFunc, dst []byte) []byte
- func ParseBytes(val *string) ([]byte, error)
- func ParseUint256orHex(val *string) (*big.Int, error)
- func ParseUint64orHex(val *string) (uint64, error)
- func StringToBytes(str string) []byte
- func UnmarshalRlp(obj unmarshalRLPFunc, input []byte) error
- type Address
- type Block
- func (b *Block) Body() *Body
- func (b *Block) Hash() Hash
- func (b *Block) MarshalRLP() []byte
- func (b *Block) MarshalRLPTo(dst []byte) []byte
- func (b *Block) MarshalRLPWith(ar *fastrlp.Arena) *fastrlp.Value
- func (b *Block) Number() uint64
- func (b *Block) ParentHash() Hash
- func (b *Block) Size() uint64
- func (b *Block) String() string
- func (b *Block) UnmarshalRLP(input []byte) error
- func (b *Block) WithSeal(header *Header) *Block
- type Bloom
- type Body
- type ExitProof
- type FullBlock
- type Hash
- type Header
- func (h *Header) ComputeHash() *Header
- func (h *Header) Copy() *Header
- func (h *Header) Equal(hh *Header) bool
- func (h *Header) HasBody() bool
- func (h *Header) HasReceipts() bool
- func (h *Header) IsGenesis() bool
- func (h *Header) MarshalRLP() []byte
- func (h *Header) MarshalRLPTo(dst []byte) []byte
- func (h *Header) MarshalRLPWith(arena *fastrlp.Arena) *fastrlp.Value
- func (h *Header) SetNonce(i uint64)
- func (h *Header) UnmarshalRLP(input []byte) error
- type Log
- type Nonce
- type OverrideAccount
- type Proof
- type RLPMarshaler
- type RLPStoreMarshaler
- type RLPStoreUnmarshaler
- type RLPUnmarshaler
- type Receipt
- func (r *Receipt) IsLegacyTx() bool
- func (r *Receipt) MarshalLogsWith(a *fastrlp.Arena) *fastrlp.Value
- func (r *Receipt) MarshalRLP() []byte
- func (r *Receipt) MarshalRLPTo(dst []byte) []byte
- func (r *Receipt) MarshalRLPWith(a *fastrlp.Arena) *fastrlp.Value
- func (r *Receipt) MarshalStoreRLPTo(dst []byte) []byte
- func (r *Receipt) SetContractAddress(contractAddress Address)
- func (r *Receipt) SetStatus(s ReceiptStatus)
- func (r *Receipt) UnmarshalRLP(input []byte) error
- func (r *Receipt) UnmarshalStoreRLP(input []byte) error
- type ReceiptStatus
- type Receipts
- type StateOverride
- type StateSyncEvent
- type StateSyncProof
- type Transaction
- func (t *Transaction) ComputeHash() *Transaction
- func (t *Transaction) Copy() *Transaction
- func (t *Transaction) Cost() *big.Int
- func (t *Transaction) EffectiveTip(baseFee uint64) *big.Int
- func (t *Transaction) GetGasPrice(baseFee uint64) *big.Int
- func (t *Transaction) IsContractCreation() bool
- func (t *Transaction) MarshalRLP() []byte
- func (t *Transaction) MarshalRLPTo(dst []byte) []byte
- func (t *Transaction) MarshalRLPWith(arena *fastrlp.Arena) *fastrlp.Value
- func (t *Transaction) MarshalStoreRLPTo(dst []byte) []byte
- func (t *Transaction) Size() uint64
- func (t *Transaction) UnmarshalRLP(input []byte) error
- func (t *Transaction) UnmarshalStoreRLP(input []byte) error
- type TxType
Constants ¶
const ( HashLength = 32 AddressLength = 20 SignatureSize = 4 )
const BloomByteLength = 256
const (
RLPSingleByteUpperLimit = 0x7f
)
const (
// StateTransactionGasLimit is arbitrary default gas limit for state transactions
StateTransactionGasLimit = 1000000
)
Variables ¶
var ( // ZeroAddress is the default zero address ZeroAddress = Address{} // ZeroHash is the default zero hash ZeroHash = Hash{} // ZeroNonce is the default empty nonce ZeroNonce = Nonce{} // EmptyRootHash is the root when there are no transactions EmptyRootHash = StringToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") // EmptyUncleHash is the root when there are no uncles EmptyUncleHash = StringToHash("0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347") // EmptyCodeHash is the root where there is no code. // Equivalent of: `types.BytesToHash(crypto.Keccak256(nil))` EmptyCodeHash = StringToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") )
var (
// this will change to use the generated code, but for now, we leave it as is, because of the circular import
ExecuteStateSyncABIMethod, _ = abi.NewMethod("function execute(" +
"bytes32[] proof, " +
"tuple(uint256 id, address sender, address receiver, bytes data) obj)")
)
var HeaderHash func(h *Header) Hash
Functions ¶
func AddressToString ¶
func EncodeBigInt ¶
func EncodeBytes ¶
func EncodeUint64 ¶
func IsValidAddress ¶ added in v1.0.0
IsValidAddress checks if provided string is a valid Ethereum address
func MarshalRLPTo ¶
func ParseBytes ¶
func ParseUint64orHex ¶
ParseUint64orHex parses the given string as uint64 in hex It should go to the common package from the logical perspective as well as avoiding cycle imports. DEPRECATED. Use common.ParseUint64orHex.
func StringToBytes ¶ added in v0.8.0
func UnmarshalRlp ¶
Types ¶
type Address ¶
type Address [AddressLength]byte
func BytesToAddress ¶
func StringToAddress ¶
func (Address) MarshalText ¶
func (*Address) UnmarshalText ¶
UnmarshalText parses an address in hex syntax.
type Block ¶
type Block struct { Header *Header Transactions []*Transaction Uncles []*Header // contains filtered or unexported fields }
func (*Block) MarshalRLP ¶
func (*Block) MarshalRLPTo ¶
func (*Block) ParentHash ¶
func (*Block) UnmarshalRLP ¶
type Bloom ¶
type Bloom [BloomByteLength]byte
func CreateBloom ¶
CreateBloom creates a new bloom filter from a set of receipts
func (*Bloom) IsLogInBloom ¶
IsLogInBloom checks if the log has a possible presence in the bloom filter
func (Bloom) MarshalText ¶
MarshalText implements encoding.TextMarshaler
func (*Bloom) UnmarshalText ¶
type Body ¶
type Body struct { Transactions []*Transaction Uncles []*Header }
func (*Body) MarshalRLPTo ¶
func (*Body) UnmarshalRLP ¶
type Hash ¶
type Hash [HashLength]byte
func BytesToHash ¶
func StringToHash ¶
func (Hash) MarshalText ¶
func (*Hash) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type Header ¶
type Header struct { ParentHash Hash Sha3Uncles Hash Miner []byte StateRoot Hash TxRoot Hash ReceiptsRoot Hash LogsBloom Bloom Difficulty uint64 Number uint64 GasLimit uint64 GasUsed uint64 Timestamp uint64 ExtraData []byte MixHash Hash Nonce Nonce Hash Hash // BaseFee was added by EIP-1559 and is ignored in legacy headers. BaseFee uint64 `json:"baseFeePerGas"` }
Header represents a block header in the Ethereum blockchain.
func (*Header) ComputeHash ¶
ComputeHash computes the hash of the header
func (*Header) HasReceipts ¶
func (*Header) MarshalRLP ¶
func (*Header) MarshalRLPTo ¶
func (*Header) MarshalRLPWith ¶
MarshalRLPWith marshals the header to RLP with a specific fastrlp.Arena
func (*Header) UnmarshalRLP ¶
type Nonce ¶
type Nonce [8]byte
func (Nonce) MarshalText ¶
MarshalText implements encoding.TextMarshaler
type OverrideAccount ¶ added in v0.9.0
type RLPMarshaler ¶
type RLPStoreMarshaler ¶
type RLPStoreUnmarshaler ¶
type RLPUnmarshaler ¶
type Receipt ¶
type Receipt struct { // consensus fields Root Hash CumulativeGasUsed uint64 LogsBloom Bloom Logs []*Log Status *ReceiptStatus // context fields GasUsed uint64 ContractAddress *Address TxHash Hash TransactionType TxType }
func (*Receipt) IsLegacyTx ¶ added in v0.8.0
func (*Receipt) MarshalLogsWith ¶
MarshalLogsWith marshals the logs of the receipt to RLP with a specific fastrlp.Arena
func (*Receipt) MarshalRLP ¶
func (*Receipt) MarshalRLPTo ¶
func (*Receipt) MarshalRLPWith ¶
MarshalRLPWith marshals a receipt with a specific fastrlp.Arena
func (*Receipt) MarshalStoreRLPTo ¶
func (*Receipt) SetContractAddress ¶ added in v0.4.0
func (*Receipt) SetStatus ¶
func (r *Receipt) SetStatus(s ReceiptStatus)
func (*Receipt) UnmarshalRLP ¶
func (*Receipt) UnmarshalStoreRLP ¶
type ReceiptStatus ¶
type ReceiptStatus uint64
const ( ReceiptFailed ReceiptStatus = iota ReceiptSuccess )
type Receipts ¶
type Receipts []*Receipt
func (Receipts) MarshalRLPTo ¶
func (*Receipts) MarshalRLPWith ¶
func (Receipts) MarshalStoreRLPTo ¶
func (*Receipts) UnmarshalRLP ¶
func (*Receipts) UnmarshalStoreRLP ¶
type StateOverride ¶ added in v0.9.0
type StateOverride map[Address]OverrideAccount
type StateSyncEvent ¶ added in v0.9.0
type StateSyncEvent struct { // ID is the decoded 'index' field from the event ID uint64 // Sender is the decoded 'sender' field from the event Sender ethgo.Address // Receiver is the decoded 'receiver' field from the event Receiver ethgo.Address // Data is the decoded 'data' field from the event Data []byte }
StateSyncEvent is a bridge event from the rootchain
func (*StateSyncEvent) EncodeAbi ¶ added in v0.9.0
func (sse *StateSyncEvent) EncodeAbi() ([]byte, error)
ToABI converts StateSyncEvent to ABI
func (*StateSyncEvent) String ¶ added in v0.9.0
func (sse *StateSyncEvent) String() string
func (*StateSyncEvent) ToMap ¶ added in v0.9.0
func (sse *StateSyncEvent) ToMap() map[string]interface{}
ToMap converts StateSyncEvent to map
type StateSyncProof ¶ added in v0.9.0
type StateSyncProof struct { Proof []Hash StateSync *StateSyncEvent }
func (*StateSyncProof) DecodeAbi ¶ added in v0.9.0
func (ssp *StateSyncProof) DecodeAbi(txData []byte) error
DecodeAbi contains logic for decoding given ABI data
func (*StateSyncProof) EncodeAbi ¶ added in v0.9.0
func (ssp *StateSyncProof) EncodeAbi() ([]byte, error)
EncodeAbi contains logic for encoding given ABI data
type Transaction ¶
type Transaction struct { Nonce uint64 GasPrice *big.Int GasTipCap *big.Int GasFeeCap *big.Int Gas uint64 To *Address Value *big.Int Input []byte V, R, S *big.Int Hash Hash From Address Type TxType // contains filtered or unexported fields }
func (*Transaction) ComputeHash ¶
func (t *Transaction) ComputeHash() *Transaction
ComputeHash computes the hash of the transaction
func (*Transaction) Copy ¶
func (t *Transaction) Copy() *Transaction
func (*Transaction) Cost ¶
func (t *Transaction) Cost() *big.Int
Cost returns gas * gasPrice + value
func (*Transaction) EffectiveTip ¶ added in v0.9.0
func (t *Transaction) EffectiveTip(baseFee uint64) *big.Int
EffectiveTip defines effective tip based on tx type. Spec: https://eips.ethereum.org/EIPS/eip-1559#specification We use EIP-1559 fields of the tx if the london hardfork is enabled. Effective tip be came to be either gas tip cap or (gas fee cap - current base fee)
func (*Transaction) GetGasPrice ¶ added in v0.9.0
func (t *Transaction) GetGasPrice(baseFee uint64) *big.Int
GetGasPrice returns gas price if not empty, or calculates one based on the given EIP-1559 fields if exist
Here is the logic:
- use existing gas price if exists
- or calculate a value with formula: min(gasFeeCap, gasTipCap * baseFee);
func (*Transaction) IsContractCreation ¶
func (t *Transaction) IsContractCreation() bool
IsContractCreation checks if tx is contract creation
func (*Transaction) MarshalRLP ¶
func (t *Transaction) MarshalRLP() []byte
func (*Transaction) MarshalRLPTo ¶
func (t *Transaction) MarshalRLPTo(dst []byte) []byte
func (*Transaction) MarshalRLPWith ¶
func (t *Transaction) MarshalRLPWith(arena *fastrlp.Arena) *fastrlp.Value
MarshalRLPWith marshals the transaction to RLP with a specific fastrlp.Arena
func (*Transaction) MarshalStoreRLPTo ¶
func (t *Transaction) MarshalStoreRLPTo(dst []byte) []byte
func (*Transaction) Size ¶
func (t *Transaction) Size() uint64
func (*Transaction) UnmarshalRLP ¶
func (t *Transaction) UnmarshalRLP(input []byte) error
func (*Transaction) UnmarshalStoreRLP ¶
func (t *Transaction) UnmarshalStoreRLP(input []byte) error