types

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2019 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GenesisNonce     uint32 = 2083236893
	InvalidBlockSize int    = -1
)
View Source
const ELACoin = CoinType(0)
View Source
const (
	InvalidTransactionSize = -1
)
View Source
const PayloadIllegalBlockVersion byte = 0x00
View Source
const PayloadIllegalProposalVersion byte = 0x00
View Source
const PayloadIllegalVoteVersion byte = 0x00

Variables

This section is empty.

Functions

func IsValidAttributeType

func IsValidAttributeType(usage AttributeUsage) bool

Types

type Attribute

type Attribute struct {
	Usage AttributeUsage
	Data  []byte
}

func NewAttribute

func NewAttribute(u AttributeUsage, d []byte) Attribute

func (*Attribute) Deserialize

func (attr *Attribute) Deserialize(r io.Reader) error

func (*Attribute) Serialize

func (attr *Attribute) Serialize(w io.Writer) error

func (Attribute) String

func (attr Attribute) String() string

type AttributeUsage

type AttributeUsage byte
const (
	Nonce          AttributeUsage = 0x00
	Script         AttributeUsage = 0x20
	Memo           AttributeUsage = 0x81
	Description    AttributeUsage = 0x90
	DescriptionUrl AttributeUsage = 0x91
	Confirmations  AttributeUsage = 0x92
)

func (AttributeUsage) Name

func (it AttributeUsage) Name() string

type Block

type Block struct {
	Header
	Transactions []*Transaction
}

func (*Block) Deserialize

func (b *Block) Deserialize(r io.Reader) error

func (*Block) GetSize

func (b *Block) GetSize() int

func (*Block) Hash

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

func (*Block) Serialize

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

type BlockEvidence

type BlockEvidence struct {
	Block        []byte
	BlockConfirm []byte
	Signers      [][]byte
	// contains filtered or unexported fields
}

func (*BlockEvidence) BlockHash

func (b *BlockEvidence) BlockHash() common.Uint256

func (*BlockEvidence) Deserialize

func (b *BlockEvidence) Deserialize(r io.Reader) error

func (*BlockEvidence) Serialize

func (b *BlockEvidence) Serialize(w io.Writer) error

type CoinType

type CoinType uint32

type DPosProposal

type DPosProposal struct {
	Sponsor    string //todo [merge] replace with public key
	BlockHash  common.Uint256
	ViewOffset uint32
	Sign       []byte
	// contains filtered or unexported fields
}

func (*DPosProposal) Data

func (p *DPosProposal) Data() []byte

func (*DPosProposal) Deserialize

func (p *DPosProposal) Deserialize(r io.Reader) error

func (*DPosProposal) DeserializeUnSigned

func (p *DPosProposal) DeserializeUnSigned(r io.Reader) error

func (*DPosProposal) Hash

func (p *DPosProposal) Hash() common.Uint256

func (*DPosProposal) Serialize

func (p *DPosProposal) Serialize(w io.Writer) error

func (*DPosProposal) SerializeUnsigned

func (p *DPosProposal) SerializeUnsigned(w io.Writer) error

type DPosProposalVote

type DPosProposalVote struct {
	ProposalHash common.Uint256

	Signer string
	Accept bool
	Sign   []byte
	// contains filtered or unexported fields
}

func (*DPosProposalVote) Data

func (v *DPosProposalVote) Data() []byte

func (*DPosProposalVote) Deserialize

func (v *DPosProposalVote) Deserialize(r io.Reader) error

func (*DPosProposalVote) DeserializeUnsigned

func (v *DPosProposalVote) DeserializeUnsigned(r io.Reader) error

func (*DPosProposalVote) Hash

func (v *DPosProposalVote) Hash() common.Uint256

func (*DPosProposalVote) Serialize

func (v *DPosProposalVote) Serialize(w io.Writer) error

func (*DPosProposalVote) SerializeUnsigned

func (v *DPosProposalVote) SerializeUnsigned(w io.Writer) error

type DPosProposalVoteSlot

type DPosProposalVoteSlot struct {
	Hash     common.Uint256
	Proposal DPosProposal
	Votes    []DPosProposalVote
}

func (*DPosProposalVoteSlot) Deserialize

func (p *DPosProposalVoteSlot) Deserialize(r io.Reader) error

func (*DPosProposalVoteSlot) Serialize

func (p *DPosProposalVoteSlot) Serialize(w io.Writer) error

func (*DPosProposalVoteSlot) TryAppend

func (p *DPosProposalVoteSlot) TryAppend(v DPosProposalVote) bool

type DposBlock

type DposBlock struct {
	BlockFlag   bool
	Block       *Block
	ConfirmFlag bool
	Confirm     *DPosProposalVoteSlot
}

func (*DposBlock) Deserialize

func (b *DposBlock) Deserialize(r io.Reader) error

func (*DposBlock) Serialize

func (b *DposBlock) Serialize(w io.Writer) error

type DposIllegalBlocks

type DposIllegalBlocks struct {
	CoinType        CoinType
	BlockHeight     uint32
	Evidence        BlockEvidence
	CompareEvidence BlockEvidence
	// contains filtered or unexported fields
}

func (*DposIllegalBlocks) Deserialize

func (d *DposIllegalBlocks) Deserialize(r io.Reader) error

func (*DposIllegalBlocks) GetBlockHeight

func (d *DposIllegalBlocks) GetBlockHeight() uint32

func (*DposIllegalBlocks) Hash

func (d *DposIllegalBlocks) Hash() common.Uint256

func (*DposIllegalBlocks) Serialize

func (d *DposIllegalBlocks) Serialize(w io.Writer) error

func (*DposIllegalBlocks) Type

type DposIllegalData

type DposIllegalData interface {
	Type() IllegalDataType
	GetBlockHeight() uint32
	Serialize(w io.Writer) error
	Deserialize(r io.Reader) error
	Hash() common.Uint256
}

type DposIllegalProposals

type DposIllegalProposals struct {
	Evidence        ProposalEvidence
	CompareEvidence ProposalEvidence
	// contains filtered or unexported fields
}

func (*DposIllegalProposals) Deserialize

func (d *DposIllegalProposals) Deserialize(r io.Reader) error

func (*DposIllegalProposals) GetBlockHeight

func (d *DposIllegalProposals) GetBlockHeight() uint32

func (*DposIllegalProposals) Hash

func (*DposIllegalProposals) Serialize

func (d *DposIllegalProposals) Serialize(w io.Writer) error

func (*DposIllegalProposals) Type

type DposIllegalVotes

type DposIllegalVotes struct {
	Evidence        VoteEvidence
	CompareEvidence VoteEvidence
	// contains filtered or unexported fields
}

func (*DposIllegalVotes) Deserialize

func (d *DposIllegalVotes) Deserialize(r io.Reader) error

func (*DposIllegalVotes) GetBlockHeight

func (d *DposIllegalVotes) GetBlockHeight() uint32

func (*DposIllegalVotes) Hash

func (d *DposIllegalVotes) Hash() common.Uint256

func (*DposIllegalVotes) Serialize

func (d *DposIllegalVotes) Serialize(w io.Writer) error

func (*DposIllegalVotes) Type

type Header struct {
	Version    uint32
	Previous   common.Uint256
	MerkleRoot common.Uint256
	Timestamp  uint32
	Bits       uint32
	Nonce      uint32
	Height     uint32
	AuxPow     auxpow.AuxPow
}

func (*Header) Deserialize

func (header *Header) Deserialize(r io.Reader) error

func (*Header) Hash

func (header *Header) Hash() common.Uint256

func (*Header) Serialize

func (header *Header) Serialize(w io.Writer) error

type IllegalDataType

type IllegalDataType byte
const (
	IllegalBlock    IllegalDataType = 0x00
	IllegalProposal IllegalDataType = 0x01
	IllegalVote     IllegalDataType = 0x02
)

type Input

type Input struct {
	// Reference outpoint of this input
	Previous OutPoint

	// Sequence number
	Sequence uint32
}

func (*Input) Deserialize

func (i *Input) Deserialize(r io.Reader) error

func (*Input) IsEqual

func (i *Input) IsEqual(o Input) bool

func (*Input) ReferKey

func (i *Input) ReferKey() string

func (*Input) Serialize

func (i *Input) Serialize(w io.Writer) error

func (Input) String

func (i Input) String() string

type OutPoint

type OutPoint struct {
	TxID  common.Uint256
	Index uint16
}

func NewOutPoint

func NewOutPoint(txID common.Uint256, index uint16) *OutPoint

func OutPointFromBytes

func OutPointFromBytes(value []byte) (*OutPoint, error)

func (*OutPoint) Bytes

func (op *OutPoint) Bytes() []byte

func (*OutPoint) Deserialize

func (op *OutPoint) Deserialize(r io.Reader) error

func (*OutPoint) IsEqual

func (op *OutPoint) IsEqual(o OutPoint) bool

func (*OutPoint) Serialize

func (op *OutPoint) Serialize(w io.Writer) error

type Output

type Output struct {
	AssetID       common.Uint256
	Value         common.Fixed64
	OutputLock    uint32
	ProgramHash   common.Uint168
	OutputType    OutputType
	OutputPayload OutputPayload
}

func (*Output) Deserialize

func (o *Output) Deserialize(r io.Reader, txVersion TransactionVersion) error

func (*Output) Serialize

func (o *Output) Serialize(w io.Writer, txVersion TransactionVersion) error

func (*Output) String

func (o *Output) String() string

type OutputPayload

type OutputPayload interface {
	// Get payload data
	Data() []byte
	Serialize(w io.Writer) error
	Deserialize(r io.Reader) error
	GetVersion() byte
	Validate() error
}

type OutputType

type OutputType byte
const (
	DefaultOutput OutputType = 0x00
	VoteOutput    OutputType = 0x01
)

type Payload

type Payload interface {
	// Get payload data
	Data(version byte) []byte

	Serialize(w io.Writer, version byte) error

	Deserialize(r io.Reader, version byte) error
}

Payload define the func for loading the payload data base on payload type which have different structure

func GetPayload

func GetPayload(txType TransactionType) (Payload, error)

type PayloadIllegalBlock

type PayloadIllegalBlock struct {
	DposIllegalBlocks
}

func (*PayloadIllegalBlock) Data

func (p *PayloadIllegalBlock) Data(version byte) []byte

func (*PayloadIllegalBlock) Deserialize

func (p *PayloadIllegalBlock) Deserialize(r io.Reader, version byte) error

func (*PayloadIllegalBlock) Serialize

func (p *PayloadIllegalBlock) Serialize(w io.Writer, version byte) error

type PayloadIllegalProposal

type PayloadIllegalProposal struct {
	DposIllegalProposals
}

func (*PayloadIllegalProposal) Data

func (p *PayloadIllegalProposal) Data(version byte) []byte

func (*PayloadIllegalProposal) Deserialize

func (p *PayloadIllegalProposal) Deserialize(r io.Reader, version byte) error

func (*PayloadIllegalProposal) Serialize

func (p *PayloadIllegalProposal) Serialize(w io.Writer, version byte) error

type PayloadIllegalVote

type PayloadIllegalVote struct {
	DposIllegalVotes
}

func (*PayloadIllegalVote) Data

func (p *PayloadIllegalVote) Data(version byte) []byte

func (*PayloadIllegalVote) Deserialize

func (p *PayloadIllegalVote) Deserialize(r io.Reader, version byte) error

func (*PayloadIllegalVote) Serialize

func (p *PayloadIllegalVote) Serialize(w io.Writer, version byte) error

type ProposalEvidence

type ProposalEvidence struct {
	Proposal    DPosProposal
	BlockHeader Header
}

func (*ProposalEvidence) Deserialize

func (d *ProposalEvidence) Deserialize(r io.Reader) error

func (*ProposalEvidence) IsMatch

func (d *ProposalEvidence) IsMatch() bool

func (*ProposalEvidence) Serialize

func (d *ProposalEvidence) Serialize(w io.Writer) error

type Transaction

type Transaction struct {
	Version        TransactionVersion // New field added in TxVersionC0
	TxType         TransactionType
	PayloadVersion byte
	Payload        Payload
	Attributes     []*Attribute
	Inputs         []*Input
	Outputs        []*Output
	LockTime       uint32
	Programs       []*pg.Program
	Fee            common.Fixed64
	FeePerKB       common.Fixed64
	// contains filtered or unexported fields
}

func (*Transaction) Deserialize

func (tx *Transaction) Deserialize(r io.Reader) error

Deserialize the Transaction

func (*Transaction) DeserializeUnsigned

func (tx *Transaction) DeserializeUnsigned(r io.Reader) error

func (*Transaction) GetSize

func (tx *Transaction) GetSize() int

func (*Transaction) Hash

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

func (*Transaction) IsCancelProducerTx

func (tx *Transaction) IsCancelProducerTx() bool

func (*Transaction) IsCoinBaseTx

func (tx *Transaction) IsCoinBaseTx() bool

func (*Transaction) IsIllegalBlockTx

func (tx *Transaction) IsIllegalBlockTx() bool

func (*Transaction) IsIllegalProposalTx

func (tx *Transaction) IsIllegalProposalTx() bool

func (*Transaction) IsIllegalVoteTx

func (tx *Transaction) IsIllegalVoteTx() bool

func (*Transaction) IsRechargeToSideChainTx

func (tx *Transaction) IsRechargeToSideChainTx() bool

func (*Transaction) IsRegisterProducerTx

func (tx *Transaction) IsRegisterProducerTx() bool

func (*Transaction) IsReturnDepositCoin

func (tx *Transaction) IsReturnDepositCoin() bool

func (*Transaction) IsSideChainPowTx

func (tx *Transaction) IsSideChainPowTx() bool

func (*Transaction) IsTransferCrossChainAssetTx

func (tx *Transaction) IsTransferCrossChainAssetTx() bool

func (*Transaction) IsUpdateProducerTx

func (tx *Transaction) IsUpdateProducerTx() bool

func (*Transaction) IsWithdrawFromSideChainTx

func (tx *Transaction) IsWithdrawFromSideChainTx() bool

func (*Transaction) Serialize

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

Serialize the Transaction

func (*Transaction) SerializeUnsigned

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

Serialize the Transaction data without contracts

func (*Transaction) String

func (tx *Transaction) String() string

type TransactionType

type TransactionType byte

TransactionType represents different transaction types with different payload format. The TransactionType range is 0x00 - 0x08. When it is greater than 0x08 it will be interpreted as a TransactionVersion.

const (
	CoinBase                TransactionType = 0x00
	RegisterAsset           TransactionType = 0x01
	TransferAsset           TransactionType = 0x02
	Record                  TransactionType = 0x03
	Deploy                  TransactionType = 0x04
	SideChainPow            TransactionType = 0x05
	RechargeToSideChain     TransactionType = 0x06
	WithdrawFromSideChain   TransactionType = 0x07
	TransferCrossChainAsset TransactionType = 0x08

	RegisterProducer  TransactionType = 0x09
	CancelProducer    TransactionType = 0x0a
	UpdateProducer    TransactionType = 0x0b
	ReturnDepositCoin TransactionType = 0x0c

	IllegalProposalEvidence TransactionType = 0x0d
	IllegalVoteEvidence     TransactionType = 0x0e
	IllegalBlockEvidence    TransactionType = 0x0f
)

func (TransactionType) Name

func (self TransactionType) Name() string

type TransactionVersion

type TransactionVersion byte
const (
	TxVersionDefault TransactionVersion = 0x00
	TxVersion09      TransactionVersion = 0x09
)

type VoteEvidence

type VoteEvidence struct {
	Vote        DPosProposalVote
	Proposal    DPosProposal
	BlockHeader Header
}

func (*VoteEvidence) Deserialize

func (d *VoteEvidence) Deserialize(r io.Reader) error

func (*VoteEvidence) IsMatch

func (d *VoteEvidence) IsMatch() bool

func (*VoteEvidence) Serialize

func (d *VoteEvidence) Serialize(w io.Writer) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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