types

package
v0.0.0-...-6425a1c Latest Latest
Warning

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

Go to latest
Published: May 9, 2020 License: LGPL-3.0 Imports: 13 Imported by: 49

Documentation

Index

Constants

View Source
const MAX_TX_SIZE = 1024 * 1024 * 2 // The max size of a transaction to prevent DOS attacks

Variables

This section is empty.

Functions

func AddressFromBookkeepers

func AddressFromBookkeepers(bookkeepers []keypair.PublicKey) (common.Address, error)

func AddressFromMultiPubKeys

func AddressFromMultiPubKeys(pubkeys []keypair.PublicKey, m int) (common.Address, error)

func AddressFromPubKey

func AddressFromPubKey(pubkey keypair.PublicKey) common.Address

func AddressFromVmCode

func AddressFromVmCode(code []byte) common.Address

func IsValidAttributeType

func IsValidAttributeType(usage TransactionAttributeUsage) bool

Types

type Block

type Block struct {
	Header       *Header
	Transactions []*Transaction
}

func (*Block) Deserialize

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

func (*Block) Hash

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

func (*Block) RebuildMerkleRoot

func (b *Block) RebuildMerkleRoot()

func (*Block) Serialize

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

func (*Block) ToArray

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

func (*Block) Type

func (b *Block) Type() common.InventoryType
type Header struct {
	Version          uint32
	PrevBlockHash    common.Uint256
	TransactionsRoot common.Uint256
	BlockRoot        common.Uint256
	Timestamp        uint32
	Height           uint32
	ConsensusData    uint64
	ConsensusPayload []byte
	NextBookkeeper   common.Address

	//Program *program.Program
	Bookkeepers []keypair.PublicKey
	SigData     [][]byte
	// contains filtered or unexported fields
}

func (*Header) Deserialize

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

func (*Header) DeserializeUnsigned

func (bd *Header) DeserializeUnsigned(r io.Reader) error

func (*Header) GetMessage

func (bd *Header) GetMessage() []byte

func (*Header) Hash

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

func (*Header) Serialize

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

Serialize the blockheader

func (*Header) SerializeUnsigned

func (bd *Header) SerializeUnsigned(w io.Writer) error

Serialize the blockheader data without program

func (*Header) ToArray

func (bd *Header) ToArray() []byte

type MutableTransaction

type MutableTransaction struct {
	Version  byte
	TxType   TransactionType
	Nonce    uint32
	GasPrice uint64
	GasLimit uint64
	Payer    common.Address
	Payload  Payload
	//Attributes []*TxAttribute
	Attributes byte //this must be 0 now, Attribute Array length use VarUint encoding, so byte is enough for extension
	Sigs       []Sig
}

func (*MutableTransaction) DeserializeUnsigned

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

func (*MutableTransaction) GetSignatureAddresses

func (self *MutableTransaction) GetSignatureAddresses() []common.Address

func (*MutableTransaction) Hash

func (self *MutableTransaction) Hash() common.Uint256

func (*MutableTransaction) IntoImmutable

func (self *MutableTransaction) IntoImmutable() (*Transaction, error)

output has no reference to self

type Payload

type Payload interface {
	//Serialize payload data
	Serialize(w io.Writer) error

	Deserialize(r io.Reader) error
}

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

type RawSig

type RawSig struct {
	Invoke []byte
	Verify []byte
}

func (*RawSig) Deserialization

func (self *RawSig) Deserialization(source *common.ZeroCopySource) error

func (*RawSig) Deserialize

func (self *RawSig) Deserialize(r io.Reader) error

func (*RawSig) GetSig

func (self *RawSig) GetSig() (Sig, error)

func (*RawSig) Serialization

func (self *RawSig) Serialization(sink *common.ZeroCopySink) error

func (*RawSig) Serialize

func (self *RawSig) Serialize(w io.Writer) error

type Sig

type Sig struct {
	SigData [][]byte
	PubKeys []keypair.PublicKey
	M       uint16
}

func (*Sig) Deserialize

func (self *Sig) Deserialize(r io.Reader) error

func (*Sig) GetRawSig

func (self *Sig) GetRawSig() (*RawSig, error)

func (*Sig) Serialize

func (self *Sig) Serialize(w io.Writer) error

type SmartCodeEvent

type SmartCodeEvent struct {
	TxHash common.Uint256
	Action string
	Result interface{}
	Error  int64
}

type Transaction

type Transaction struct {
	Version  byte
	TxType   TransactionType
	Nonce    uint32
	GasPrice uint64
	GasLimit uint64
	Payer    common.Address
	Payload  Payload
	//Attributes []*TxAttribute
	Attributes byte //this must be 0 now, Attribute Array length use VarUint encoding, so byte is enough for extension
	Sigs       []*Sig

	Raw []byte // raw transaction data

	SignedAddr []common.Address // this is assigned when passed signature verification
	// contains filtered or unexported fields
}

func TransactionFromRawBytes

func TransactionFromRawBytes(raw []byte) (*Transaction, error)

if no error, ownership of param raw is transfered to Transaction

func (*Transaction) Deserialization

func (tx *Transaction) Deserialization(source *common.ZeroCopySource) error

Transaction has internal reference of param `source`

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) GetMessage

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

func (*Transaction) GetSignatureAddresses

func (self *Transaction) GetSignatureAddresses() []common.Address

func (*Transaction) Hash

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

func (*Transaction) IntoMutable

func (tx *Transaction) IntoMutable() (*MutableTransaction, error)

note: ownership transfered to output

func (*Transaction) Serialization

func (tx *Transaction) Serialization(sink *common.ZeroCopySink) error

func (*Transaction) Serialize

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

func (*Transaction) SerializeUnsigned

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

Serialize the Transaction data without contracts

func (*Transaction) ToArray

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

func (*Transaction) Type

func (tx *Transaction) Type() common.InventoryType

func (*Transaction) Verify

func (tx *Transaction) Verify() error

type TransactionAttributeUsage

type TransactionAttributeUsage byte
const (
	Nonce          TransactionAttributeUsage = 0x00
	Script         TransactionAttributeUsage = 0x20
	DescriptionUrl TransactionAttributeUsage = 0x81
	Description    TransactionAttributeUsage = 0x90
)

type TransactionType

type TransactionType byte
const (
	Bookkeeper TransactionType = 0x02
	Deploy     TransactionType = 0xd0
	Invoke     TransactionType = 0xd1
)

type TxAttribute

type TxAttribute struct {
	Usage TransactionAttributeUsage
	Data  []byte
	Size  uint32
}

func NewTxAttribute

func NewTxAttribute(u TransactionAttributeUsage, d []byte) TxAttribute

func (*TxAttribute) Deserialize

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

func (*TxAttribute) GetSize

func (u *TxAttribute) GetSize() uint32

func (*TxAttribute) Serialize

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

func (*TxAttribute) ToArray

func (tx *TxAttribute) ToArray() []byte

Jump to

Keyboard shortcuts

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