types

package
v0.0.0-...-ef73a9a Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2020 License: LGPL-3.0 Imports: 10 Imported by: 0

Documentation

Overview

* Copyright (C) 2018 The ontology Authors * This file is part of The ontology library. * * The ontology is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The ontology is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with The ontology. If not, see <http://www.gnu.org/licenses/>.

Index

Constants

View Source
const (
	CURR_CROSS_STATES_VERSION = 0
)
View Source
const MAX_TX_SIZE = 1024 * 1024 // 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 IsValidAttributeType

func IsValidAttributeType(usage TransactionAttributeUsage) bool

Types

type Block

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

func BlockFromRawBytes

func BlockFromRawBytes(raw []byte) (*Block, error)

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

func BlockFromRawBytes_ont

func BlockFromRawBytes_ont(raw []byte) (*Block, error)

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

func (*Block) Deserialization

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

func (*Block) Deserialization_ont

func (self *Block) Deserialization_ont(source *common.ZeroCopySource) error

func (*Block) Hash

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

func (*Block) RebuildMerkleRoot

func (b *Block) RebuildMerkleRoot()

func (*Block) Serialization

func (b *Block) Serialization(sink *common.ZeroCopySink)

func (*Block) ToArray

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

type CrossChainMsg

type CrossChainMsg struct {
	Version    byte
	Height     uint32
	StatesRoot common.Uint256

	SigData [][]byte
	// contains filtered or unexported fields
}

func (*CrossChainMsg) Deserialization

func (this *CrossChainMsg) Deserialization(source *common.ZeroCopySource) error

func (*CrossChainMsg) Hash

func (this *CrossChainMsg) Hash() common.Uint256

func (*CrossChainMsg) Serialization

func (this *CrossChainMsg) Serialization(sink *common.ZeroCopySink)

func (*CrossChainMsg) SetHash

func (this *CrossChainMsg) SetHash(hash common.Uint256)
type Header struct {
	Version          uint32
	PrevBlockHash    common.Uint256
	TransactionsRoot common.Uint256
	BlockRoot        common.Uint256
	StateRoot        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 HeaderFromRawBytes

func HeaderFromRawBytes(raw []byte) (*Header, error)

func (*Header) Deserialization

func (bd *Header) Deserialization(source *common.ZeroCopySource) error

func (*Header) Deserialization_ont

func (bd *Header) Deserialization_ont(source *common.ZeroCopySource) error

func (*Header) GetRawHeader

func (hd *Header) GetRawHeader() *RawHeader

func (*Header) Hash

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

func (*Header) Serialization

func (bd *Header) Serialization(sink *common.ZeroCopySink)

func (*Header) ToArray

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

type MutableTransaction

type MutableTransaction struct {
	Version  byte
	TxType   TransactionType
	SystemId uint32
	Nonce    uint32
	GasPrice uint64
	GasLimit uint64
	Payer    common.Address
	Payload  Payload

	Sigs []Sig
	// contains filtered or unexported fields
}

func (*MutableTransaction) GetSignatureAddresses

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

func (*MutableTransaction) Hash

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

func (*MutableTransaction) Hash_ont

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

func (*MutableTransaction) IntoImmutable

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

output has no reference to self

func (*MutableTransaction) IntoImmutable_ont

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

type Payload

type Payload interface {
	//Serialize payload data
	Serialization(sink *common.ZeroCopySink)
	Deserialization(source *common.ZeroCopySource) error
}

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

type RawHeader

type RawHeader struct {
	Height  uint32
	Payload []byte
}

func (*RawHeader) Deserialization

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

note: can only be called when source is trusted, like data from local ledger store

func (*RawHeader) Serialization

func (self *RawHeader) Serialization(sink *common.ZeroCopySink)

type RawSig

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

func (*RawSig) Deserialization

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

func (*RawSig) GetSig

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

func (*RawSig) Serialization

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

type Sig

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

func (*Sig) GetRawSig

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

func (*Sig) Serialization

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

type SmartCodeEvent

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

type StoreProof

type StoreProof iavl.RangeProof

func (*StoreProof) Deserialization

func (this *StoreProof) Deserialization(source *common.ZeroCopySource) error

func (*StoreProof) Serialization

func (this *StoreProof) Serialization(sink *common.ZeroCopySink)

type Transaction

type Transaction struct {
	Version  byte
	TxType   TransactionType
	SystemId uint32
	Nonce    uint32
	GasPrice uint64
	GasLimit uint64
	Payer    common.Address
	Payload  Payload

	Sigs []RawSig

	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 TransactionFromRawBytes_ont

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

func (*Transaction) Deserialization

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

Transaction has internal reference of param `source`

func (*Transaction) Deserialization_ont

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

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)

func (*Transaction) ToArray

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

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
	InvokeNeo  TransactionType = 0xd1
	InvokeWasm TransactionType = 0xd2 //add for wasm invoke
)

type TxAttribute

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

func NewTxAttribute

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

func (*TxAttribute) Deserialization

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

func (*TxAttribute) GetSize

func (u *TxAttribute) GetSize() uint32

func (*TxAttribute) Serialization

func (tx *TxAttribute) Serialization(sink *common.ZeroCopySink) 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