types

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2018 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BoxPrefix           = 'b'
	AddressPrefixLength = 2
	FixPrefix           = 0x13

	AddressLength       = 26
	EncodeAddressLength = 35
)

const

View Source
const (
	GeneralTx = iota
	RegisterCandidateTx
	VoteTx
)

Define const

Variables

This section is empty.

Functions

func NewTxOut

func NewTxOut(value uint64) *corepb.TxOut

NewTxOut generates a new TxOut

Types

type Address

type Address interface {
	String() string
	SetString(string) error
	Hash() []byte
	Hash160() *AddressHash
}

Address is an interface type for any type of destination a transaction output may spend to.

func NewAddress

func NewAddress(address string) (Address, error)

NewAddress creates an address from string

type AddressHash

type AddressHash [ripemd160.Size]byte

AddressHash Alias for address hash

type AddressPubKeyHash

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

AddressPubKeyHash is an Address for a pay-to-pubkey-hash (P2PKH) transaction.

func NewAddressFromPubKey

func NewAddressFromPubKey(pubKey *crypto.PublicKey) (*AddressPubKeyHash, error)

NewAddressFromPubKey returns a new AddressPubKeyHash derived from an ecdsa public key

func NewAddressPubKeyHash

func NewAddressPubKeyHash(pkHash []byte) (*AddressPubKeyHash, error)

NewAddressPubKeyHash returns a new AddressPubKeyHash. pkHash mustbe 20 bytes.

func (*AddressPubKeyHash) Hash

func (a *AddressPubKeyHash) Hash() []byte

Hash returns the bytes to be included in a txout script to pay to a pubkey hash.

func (*AddressPubKeyHash) Hash160

func (a *AddressPubKeyHash) Hash160() *AddressHash

Hash160 returns the underlying array of the pubkey hash.

func (*AddressPubKeyHash) SetString

func (a *AddressPubKeyHash) SetString(in string) error

SetString sets the Address's internal byte array using byte array decoded from input base58 format string, returns error if input string is invalid

func (*AddressPubKeyHash) String

func (a *AddressPubKeyHash) String() string

String returns a human-readable string for the pay-to-pubkey-hash address.

type Block

type Block struct {
	Hash      *crypto.HashType
	Header    *BlockHeader
	Txs       []*Transaction
	Signature []byte

	Height uint32
}

Block defines a block containing block and height that provides easier and more efficient manipulation of raw blocks. It also memoizes hashes for the block and its transactions on their first access so subsequent accesses don't have to repeat the relatively expensive hashing operations.

func NewBlock

func NewBlock(parent *Block) *Block

NewBlock new a block from parent.

func NewBlocks

func NewBlocks(prevBlockHash crypto.HashType, txsRoot crypto.HashType, timestamp int64, prevOutPoint OutPoint, value uint64, lockTime int64, height uint32) *Block

NewBlocks generates a new Block

func (*Block) BlockHash

func (block *Block) BlockHash() *crypto.HashType

BlockHash returns the block identifier hash for the Block.

func (*Block) FromProtoMessage

func (block *Block) FromProtoMessage(message proto.Message) error

FromProtoMessage converts proto message to block.

func (*Block) Marshal

func (block *Block) Marshal() (data []byte, err error)

Marshal method marshal Block object to binary

func (*Block) ToProtoMessage

func (block *Block) ToProtoMessage() (proto.Message, error)

ToProtoMessage converts block to proto message.

func (*Block) Unmarshal

func (block *Block) Unmarshal(data []byte) error

Unmarshal method unmarshal binary data to Block object

type BlockHeader

type BlockHeader struct {
	// Version of the block.  This is not the same as the protocol version.
	Version int32

	// Hash of the previous block header in the block chain.
	PrevBlockHash crypto.HashType

	// Merkle tree reference to hash of all transactions for the block.
	TxsRoot crypto.HashType

	// Time the block was created.  This is, unfortunately, encoded as a
	// uint32 on the wire and therefore is limited to 2106.
	TimeStamp int64

	// Distinguish between mainnet and testnet.
	Magic uint32

	PeriodHash crypto.HashType

	CandidatesHash crypto.HashType
}

BlockHeader defines information about a block and is used in the block (Block) and headers (MsgHeaders) messages.

func NewBlockHeader

func NewBlockHeader(prevBlockHash crypto.HashType, txsRoot crypto.HashType, timestamp int64) *BlockHeader

NewBlockHeader generates a new BlockHeader

func (*BlockHeader) FromProtoMessage

func (header *BlockHeader) FromProtoMessage(message proto.Message) error

FromProtoMessage converts proto message to block header.

func (*BlockHeader) Marshal

func (header *BlockHeader) Marshal() (data []byte, err error)

Marshal method marshal BlockHeader object to binary

func (*BlockHeader) ToProtoMessage

func (header *BlockHeader) ToProtoMessage() (proto.Message, error)

ToProtoMessage converts block header to proto message.

func (*BlockHeader) Unmarshal

func (header *BlockHeader) Unmarshal(data []byte) error

Unmarshal method unmarshal binary data to BlockHeader object

type Consensus

type Consensus interface {
	Run() error
	Stop()
	StoreCandidateContext(*crypto.HashType) error
	VerifySign(*Block) (bool, error)
	VerifyMinerEpoch(*Block) error
	StopMint()
	RecoverMint()
	BroadcastEternalMsgToMiners(*Block) error
	ValidateMiner() bool
}

Consensus define consensus interface

type OutPoint

type OutPoint struct {
	Hash  crypto.HashType
	Index uint32
}

OutPoint defines a data type that is used to track previous transaction outputs.

func NewOutPoint

func NewOutPoint(hash crypto.HashType) *OutPoint

NewOutPoint generates a new OutPoint

func (*OutPoint) FromProtoMessage

func (op *OutPoint) FromProtoMessage(message proto.Message) error

FromProtoMessage converts proto message to out point.

func (*OutPoint) Marshal

func (op *OutPoint) Marshal() (data []byte, err error)

Marshal method marshal OutPoint object to binary

func (*OutPoint) ToProtoMessage

func (op *OutPoint) ToProtoMessage() (proto.Message, error)

ToProtoMessage converts out point to proto message.

func (*OutPoint) Unmarshal

func (op *OutPoint) Unmarshal(data []byte) error

Unmarshal method unmarshal binary data to OutPoint object

type SignUpContent

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

SignUpContent identify the tx of signup type

func (*SignUpContent) Addr

func (sc *SignUpContent) Addr() AddressHash

Addr returns addr in signUpContent.

func (*SignUpContent) Marshal

func (sc *SignUpContent) Marshal() (data []byte, err error)

Marshal marshals the SignUpContent to a binary representation of it.

func (*SignUpContent) Unmarshal

func (sc *SignUpContent) Unmarshal(data []byte) error

Unmarshal unmarshals SignUpContent from binary data.

type SyncManager

type SyncManager interface {
	StartSync()
	ActiveLightSync(peer.ID) error
	Run()
}

SyncManager define sync manager interface

type Transaction

type Transaction struct {
	Version  int32
	Vin      []*TxIn
	Vout     []*corepb.TxOut
	Data     *corepb.Data
	Magic    uint32
	LockTime int64
	// contains filtered or unexported fields
}

Transaction defines a transaction.

func NewTransaction

func NewTransaction(prevOutPoint OutPoint, value uint64, lockTime int64) *Transaction

NewTransaction generates a new Transaction

func (*Transaction) CalcTxHash

func (tx *Transaction) CalcTxHash() (*crypto.HashType, error)

CalcTxHash calculates tx hash

func (*Transaction) FromProtoMessage

func (tx *Transaction) FromProtoMessage(message proto.Message) error

FromProtoMessage converts proto message to transaction.

func (*Transaction) Marshal

func (tx *Transaction) Marshal() (data []byte, err error)

Marshal method marshal tx object to binary

func (*Transaction) SerializeSize

func (tx *Transaction) SerializeSize() (int, error)

SerializeSize return tx size.

func (*Transaction) ToProtoMessage

func (tx *Transaction) ToProtoMessage() (proto.Message, error)

ToProtoMessage converts transaction to proto message.

func (*Transaction) TxHash

func (tx *Transaction) TxHash() (*crypto.HashType, error)

TxHash returns tx hash; return cached hash if it exists

func (*Transaction) Unmarshal

func (tx *Transaction) Unmarshal(data []byte) error

Unmarshal method unmarshal binary data to tx object

type TxIn

type TxIn struct {
	PrevOutPoint OutPoint
	ScriptSig    []byte
	Sequence     uint32
}

TxIn defines a transaction input.

func NewTxIn

func NewTxIn(prevOutPoint OutPoint) *TxIn

NewTxIn generates a new TxIn

func (*TxIn) FromProtoMessage

func (txin *TxIn) FromProtoMessage(message proto.Message) error

FromProtoMessage converts proto message to txin.

func (*TxIn) Marshal

func (txin *TxIn) Marshal() (data []byte, err error)

Marshal method marshal TxIn object to binary

func (*TxIn) ToProtoMessage

func (txin *TxIn) ToProtoMessage() (proto.Message, error)

ToProtoMessage converts txin to proto message.

func (*TxIn) Unmarshal

func (txin *TxIn) Unmarshal(data []byte) error

Unmarshal method unmarshal binary data to TxIn object

type UtxoWrap

type UtxoWrap struct {
	Output      *corepb.TxOut
	BlockHeight uint32
	IsCoinBase  bool
	IsSpent     bool
	IsModified  bool
}

UtxoWrap contains info about utxo

func (*UtxoWrap) FromProtoMessage

func (utxoWrap *UtxoWrap) FromProtoMessage(message proto.Message) error

FromProtoMessage converts proto message to utxo wrap.

func (*UtxoWrap) Marshal

func (utxoWrap *UtxoWrap) Marshal() (data []byte, err error)

Marshal method marshal UtxoWrap object to binary

func (*UtxoWrap) ToProtoMessage

func (utxoWrap *UtxoWrap) ToProtoMessage() (proto.Message, error)

ToProtoMessage converts utxo wrap to proto message.

func (*UtxoWrap) Unmarshal

func (utxoWrap *UtxoWrap) Unmarshal(data []byte) error

Unmarshal method unmarshal binary data to UtxoWrap object

func (*UtxoWrap) Value

func (utxoWrap *UtxoWrap) Value() uint64

Value returns utxo amount

type VoteContent

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

VoteContent identify the tx of vote type

func (*VoteContent) Addr

func (vc *VoteContent) Addr() AddressHash

Addr returns addr in voteContent.

func (*VoteContent) Marshal

func (vc *VoteContent) Marshal() (data []byte, err error)

Marshal marshals the VoteContent to a binary representation of it.

func (*VoteContent) Unmarshal

func (vc *VoteContent) Unmarshal(data []byte) error

Unmarshal unmarshals VoteContent from binary data.

func (*VoteContent) Votes

func (vc *VoteContent) Votes() int64

Votes returns votes in voteContent.

Jump to

Keyboard shortcuts

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