types

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 25, 2015 License: GPL-3.0 Imports: 20 Imported by: 0

Documentation

Overview

Package types contains data types related to Ethereum consensus.

Index

Constants

This section is empty.

Variables

View Source
var Bloom9 = bloom9
View Source
var ErrInvalidSig = errors.New("invalid v, r, s values")

Functions

func BloomLookup

func BloomLookup(bin Bloom, topic bytesBacked) bool

func CalcUncleHash

func CalcUncleHash(uncles []*Header) common.Hash

func DeriveSha

func DeriveSha(list DerivableList) common.Hash

func IsContractAddr

func IsContractAddr(addr []byte) bool

func LogsBloom

func LogsBloom(logs state.Logs) *big.Int

func Number

func Number(b1, b2 *Block) bool

Types

type Block

type Block struct {

	// Td is used by package core to store the total difficulty
	// of the chain up to and including the block.
	Td *big.Int

	// ReceivedAt is used by package eth to track block propagation time.
	ReceivedAt time.Time
	// contains filtered or unexported fields
}

func NewBlock

func NewBlock(header *Header, txs []*Transaction, uncles []*Header, receipts []*Receipt) *Block

NewBlock creates a new block. The input data is copied, changes to header and to the field values will not affect the block.

The values of TxHash, UncleHash, ReceiptHash and Bloom in header are ignored and set to values derived from the given txs, uncles and receipts.

func NewBlockWithHeader

func NewBlockWithHeader(header *Header) *Block

NewBlockWithHeader creates a block with the given header data. The header data is copied, changes to header and to the field values will not affect the block.

func (*Block) Bloom

func (b *Block) Bloom() Bloom

func (*Block) Coinbase

func (b *Block) Coinbase() common.Address

func (*Block) DecodeRLP

func (b *Block) DecodeRLP(s *rlp.Stream) error

func (*Block) Difficulty

func (b *Block) Difficulty() *big.Int

func (*Block) EncodeRLP

func (b *Block) EncodeRLP(w io.Writer) error

func (*Block) Extra

func (b *Block) Extra() []byte

func (*Block) GasLimit

func (b *Block) GasLimit() *big.Int

func (*Block) GasUsed

func (b *Block) GasUsed() *big.Int

func (*Block) Hash

func (b *Block) Hash() common.Hash

func (*Block) HashNoNonce

func (b *Block) HashNoNonce() common.Hash

func (*Block) Header

func (b *Block) Header() *Header

func (*Block) MixDigest

func (b *Block) MixDigest() common.Hash

func (*Block) Nonce

func (b *Block) Nonce() uint64

func (*Block) Number

func (b *Block) Number() *big.Int

func (*Block) NumberU64

func (b *Block) NumberU64() uint64

func (*Block) ParentHash

func (b *Block) ParentHash() common.Hash

func (*Block) ReceiptHash

func (b *Block) ReceiptHash() common.Hash

func (*Block) Receipts

func (b *Block) Receipts() Receipts

func (*Block) Root

func (b *Block) Root() common.Hash

func (*Block) Size

func (b *Block) Size() common.StorageSize

func (*Block) String

func (b *Block) String() string

func (*Block) Time

func (b *Block) Time() *big.Int

func (*Block) Transaction

func (b *Block) Transaction(hash common.Hash) *Transaction

func (*Block) Transactions

func (b *Block) Transactions() Transactions

func (*Block) TxHash

func (b *Block) TxHash() common.Hash

func (*Block) UncleHash

func (b *Block) UncleHash() common.Hash

func (*Block) Uncles

func (b *Block) Uncles() []*Header

TODO: copies

func (*Block) ValidateFields

func (b *Block) ValidateFields() error

func (*Block) WithMiningResult

func (b *Block) WithMiningResult(nonce uint64, mixDigest common.Hash) *Block

WithMiningResult returns a new block with the data from b where nonce and mix digest are set to the provided values.

type BlockBy

type BlockBy func(b1, b2 *Block) bool

func (BlockBy) Sort

func (self BlockBy) Sort(blocks Blocks)

type BlockNonce

type BlockNonce [8]byte

A BlockNonce is a 64-bit hash which proves (combined with the mix-hash) that a suffcient amount of computation has been carried out on a block.

func EncodeNonce

func EncodeNonce(i uint64) BlockNonce

func (BlockNonce) Uint64

func (n BlockNonce) Uint64() uint64

type BlockProcessor

type BlockProcessor interface {
	Process(*Block) (state.Logs, Receipts, error)
}

type Blocks

type Blocks []*Block

type Bloom

type Bloom [bloomLength]byte

func BytesToBloom

func BytesToBloom(b []byte) Bloom

func CreateBloom

func CreateBloom(receipts Receipts) Bloom

func (Bloom) Big

func (b Bloom) Big() *big.Int

func (Bloom) Bytes

func (b Bloom) Bytes() []byte

func (*Bloom) SetBytes

func (b *Bloom) SetBytes(d []byte)

type DerivableList

type DerivableList interface {
	Len() int
	GetRlp(i int) []byte
}
type Header struct {
	ParentHash  common.Hash    // Hash to the previous block
	UncleHash   common.Hash    // Uncles of this block
	Coinbase    common.Address // The coin base address
	Root        common.Hash    // Block Trie state
	TxHash      common.Hash    // Tx sha
	ReceiptHash common.Hash    // Receipt sha
	Bloom       Bloom          // Bloom
	Difficulty  *big.Int       // Difficulty for the current block
	Number      *big.Int       // The block number
	GasLimit    *big.Int       // Gas limit
	GasUsed     *big.Int       // Gas used
	Time        *big.Int       // Creation time
	Extra       []byte         // Extra data
	MixDigest   common.Hash    // for quick difficulty verification
	Nonce       BlockNonce
}

func (*Header) Hash

func (h *Header) Hash() common.Hash

func (*Header) HashNoNonce

func (h *Header) HashNoNonce() common.Hash

func (*Header) String

func (h *Header) String() string

func (*Header) UnmarshalJSON

func (h *Header) UnmarshalJSON(data []byte) error

type Receipt

type Receipt struct {
	PostState         []byte
	CumulativeGasUsed *big.Int
	Bloom             Bloom
	TxHash            common.Hash
	ContractAddress   common.Address

	GasUsed *big.Int
	// contains filtered or unexported fields
}

func NewReceipt

func NewReceipt(root []byte, cumalativeGasUsed *big.Int) *Receipt

func (*Receipt) Cmp

func (self *Receipt) Cmp(other *Receipt) bool

func (*Receipt) DecodeRLP

func (self *Receipt) DecodeRLP(s *rlp.Stream) error

func (*Receipt) EncodeRLP

func (self *Receipt) EncodeRLP(w io.Writer) error

func (*Receipt) Logs

func (self *Receipt) Logs() state.Logs

func (*Receipt) RlpEncode

func (self *Receipt) RlpEncode() []byte

func (*Receipt) SetLogs

func (self *Receipt) SetLogs(logs state.Logs)

func (*Receipt) String

func (self *Receipt) String() string

type ReceiptForStorage

type ReceiptForStorage Receipt

func (*ReceiptForStorage) EncodeRLP

func (self *ReceiptForStorage) EncodeRLP(w io.Writer) error

type Receipts

type Receipts []*Receipt

func (Receipts) GetRlp

func (self Receipts) GetRlp(i int) []byte

func (Receipts) Len

func (self Receipts) Len() int

func (Receipts) RlpEncode

func (self Receipts) RlpEncode() []byte

type StorageBlock

type StorageBlock Block

StorageBlock defines the RLP encoding of a Block stored in the state database. The StorageBlock encoding contains fields that would otherwise need to be recomputed.

func (*StorageBlock) DecodeRLP

func (b *StorageBlock) DecodeRLP(s *rlp.Stream) error

func (*StorageBlock) EncodeRLP

func (b *StorageBlock) EncodeRLP(w io.Writer) error

type Transaction

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

func NewContractCreation

func NewContractCreation(nonce uint64, amount, gasLimit, gasPrice *big.Int, data []byte) *Transaction

func NewTransaction

func NewTransaction(nonce uint64, to common.Address, amount, gasLimit, gasPrice *big.Int, data []byte) *Transaction

func (*Transaction) Cost

func (tx *Transaction) Cost() *big.Int

Cost returns amount + gasprice * gaslimit.

func (*Transaction) Data

func (tx *Transaction) Data() []byte

func (*Transaction) DecodeRLP

func (tx *Transaction) DecodeRLP(s *rlp.Stream) error

func (*Transaction) EncodeRLP

func (tx *Transaction) EncodeRLP(w io.Writer) error

func (*Transaction) From

func (tx *Transaction) From() (common.Address, error)

func (*Transaction) Gas

func (tx *Transaction) Gas() *big.Int

func (*Transaction) GasPrice

func (tx *Transaction) GasPrice() *big.Int

func (*Transaction) Hash

func (tx *Transaction) Hash() common.Hash

Hash hashes the RLP encoding of tx. It uniquely identifies the transaction.

func (*Transaction) Nonce

func (tx *Transaction) Nonce() uint64

func (*Transaction) SigHash

func (tx *Transaction) SigHash() common.Hash

SigHash returns the hash to be signed by the sender. It does not uniquely identify the transaction.

func (*Transaction) SignECDSA

func (tx *Transaction) SignECDSA(prv *ecdsa.PrivateKey) (*Transaction, error)

func (*Transaction) SignatureValues

func (tx *Transaction) SignatureValues() (v byte, r *big.Int, s *big.Int)

func (*Transaction) Size

func (tx *Transaction) Size() common.StorageSize

func (*Transaction) String

func (tx *Transaction) String() string

func (*Transaction) To

func (tx *Transaction) To() *common.Address

func (*Transaction) Value

func (tx *Transaction) Value() *big.Int

func (*Transaction) WithSignature

func (tx *Transaction) WithSignature(sig []byte) (*Transaction, error)

type Transactions

type Transactions []*Transaction

Transaction slice type for basic sorting.

func (Transactions) GetRlp

func (s Transactions) GetRlp(i int) []byte

func (Transactions) Len

func (s Transactions) Len() int

func (Transactions) Swap

func (s Transactions) Swap(i, j int)

type TxByNonce

type TxByNonce struct{ Transactions }

func (TxByNonce) Less

func (s TxByNonce) Less(i, j int) bool

type TxByPrice added in v1.0.1

type TxByPrice struct{ Transactions }

func (TxByPrice) Less added in v1.0.1

func (s TxByPrice) Less(i, j int) bool

type TxByPriceAndNonce added in v1.0.1

type TxByPriceAndNonce struct{ Transactions }

func (TxByPriceAndNonce) Less added in v1.0.1

func (s TxByPriceAndNonce) Less(i, j int) bool

Jump to

Keyboard shortcuts

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