Documentation ¶
Overview ¶
* Copyright (C) 2021 The poly network Authors * This file is part of The poly network library. * * The poly network 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 poly network 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 poly network. If not, see <http://www.gnu.org/licenses/>.
* Copyright (C) 2021 The poly network Authors * This file is part of The poly network library. * * The poly network 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 poly network 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 poly network. If not, see <http://www.gnu.org/licenses/>.
* Copyright (C) 2021 The poly network Authors * This file is part of The poly network library. * * The poly network 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 poly network 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 poly network. If not, see <http://www.gnu.org/licenses/>.
Index ¶
- Constants
- Variables
- func FileExisted(filename string) bool
- func GetNonce() uint64
- func HexToBytes(value string) ([]byte, error)
- func SafeAdd(x, y uint64) (uint64, bool)
- func SafeMul(x, y uint64) (uint64, bool)
- func SafeSub(x, y uint64) (uint64, bool)
- func SerializeToBytes(values ...Serializable) []byte
- func SortUint64s(l []uint64)
- func ToArrayReverse(arr []byte) []byte
- func ToHexString(data []byte) string
- type Address
- func (self *Address) Deserialization(source *ZeroCopySource) error
- func (self *Address) Deserialize(r io.Reader) error
- func (self *Address) Serialization(sink *ZeroCopySink)
- func (self *Address) Serialize(w io.Writer) error
- func (f *Address) ToBase58() string
- func (self *Address) ToHexString() string
- type Fixed64
- type Inventory
- type InventoryType
- type LimitedWriter
- type Serializable
- type Uint256
- type Uint64Slice
- type ZeroCopySink
- func (self *ZeroCopySink) BackUp(n uint64)
- func (self *ZeroCopySink) Bytes() []byte
- func (self *ZeroCopySink) NextBytes(n uint64) (data []byte)
- func (self *ZeroCopySink) Reset()
- func (self *ZeroCopySink) Size() uint64
- func (self *ZeroCopySink) WriteAddress(addr Address)
- func (self *ZeroCopySink) WriteBool(data bool)
- func (self *ZeroCopySink) WriteByte(c byte)
- func (self *ZeroCopySink) WriteBytes(p []byte)
- func (self *ZeroCopySink) WriteHash(hash Uint256)
- func (self *ZeroCopySink) WriteInt16(data int16)
- func (self *ZeroCopySink) WriteInt32(data int32)
- func (self *ZeroCopySink) WriteInt64(data int64)
- func (self *ZeroCopySink) WriteString(data string) (size uint64)
- func (self *ZeroCopySink) WriteUint16(data uint16)
- func (self *ZeroCopySink) WriteUint32(data uint32)
- func (self *ZeroCopySink) WriteUint64(data uint64)
- func (self *ZeroCopySink) WriteUint8(data uint8)
- func (self *ZeroCopySink) WriteVarBytes(data []byte) (size uint64)
- func (self *ZeroCopySink) WriteVarUint(data uint64) (size uint64)
- type ZeroCopySource
- func (self *ZeroCopySource) BackUp(n uint64)
- func (self *ZeroCopySource) Bytes() []byte
- func (self *ZeroCopySource) Len() uint64
- func (self *ZeroCopySource) NextAddress() (data Address, eof bool)
- func (self *ZeroCopySource) NextBool() (data bool, eof bool)
- func (self *ZeroCopySource) NextByte() (data byte, eof bool)
- func (self *ZeroCopySource) NextBytes(n uint64) (data []byte, eof bool)
- func (self *ZeroCopySource) NextHash() (data Uint256, eof bool)
- func (self *ZeroCopySource) NextInt16() (data int16, eof bool)
- func (self *ZeroCopySource) NextInt32() (data int32, eof bool)
- func (self *ZeroCopySource) NextInt64() (data int64, eof bool)
- func (self *ZeroCopySource) NextString() (data string, eof bool)
- func (self *ZeroCopySource) NextUint16() (data uint16, eof bool)
- func (self *ZeroCopySource) NextUint32() (data uint32, eof bool)
- func (self *ZeroCopySource) NextUint64() (data uint64, eof bool)
- func (self *ZeroCopySource) NextUint8() (data uint8, eof bool)
- func (self *ZeroCopySource) NextVarBytes() (data []byte, eof bool)
- func (self *ZeroCopySource) NextVarUint() (data uint64, eof bool)
- func (self *ZeroCopySource) OffBytes() []byte
- func (self *ZeroCopySource) Pos() uint64
- func (self *ZeroCopySource) Size() uint64
- func (self *ZeroCopySource) Skip(n uint64) (eof bool)
Constants ¶
const ( MAX_UINT64 = math.MaxUint64 MAX_INT64 = math.MaxInt64 )
const ( UINT16_SIZE = 2 UINT32_SIZE = 4 UINT64_SIZE = 8 UINT256_SIZE = 32 )
const ADDR_LEN = 20
const (
Decimal = 100000000
)
Variables ¶
var ADDRESS_EMPTY = Address{}
var ErrTooLarge = errors.New("bytes.Buffer: too large")
var ErrWriteExceedLimitedCount = errors.New("writer exceed limited count")
var UINT256_EMPTY = Uint256{}
Functions ¶
func FileExisted ¶
FileExisted checks whether filename exists in filesystem
func HexToBytes ¶
HexToBytes convert hex string to []byte
func SerializeToBytes ¶ added in v1.2.0
func SerializeToBytes(values ...Serializable) []byte
func SortUint64s ¶ added in v1.2.0
func SortUint64s(l []uint64)
func ToArrayReverse ¶
Types ¶
type Address ¶
func AddressFromBase58 ¶
AddressFromBase58 returns Address from encoded base58 string
func AddressFromHexString ¶
AddressParseFromHexString returns parsed Address
func AddressFromVmCode ¶ added in v1.2.0
func AddressParseFromBytes ¶
AddressParseFromBytes returns parsed Address
func (*Address) Deserialization ¶ added in v1.2.0
func (self *Address) Deserialization(source *ZeroCopySource) error
Deserialize deserialize Address from io.Reader
func (*Address) Deserialize ¶
Deserialize deserialize Address from io.Reader
func (*Address) Serialization ¶ added in v1.2.0
func (self *Address) Serialization(sink *ZeroCopySink)
Serialize serialize Address into io.Writer
func (*Address) ToHexString ¶
ToHexString returns hex string representation of Address
type Fixed64 ¶
type Fixed64 int64
the 64 bit fixed-point number, precise 10^-8
func FromDecimal ¶
func (*Fixed64) Deserialization ¶ added in v1.2.0
func (f *Fixed64) Deserialization(source *ZeroCopySource) error
func (*Fixed64) Serialization ¶ added in v1.2.0
func (f *Fixed64) Serialization(sink *ZeroCopySink)
type Inventory ¶
type Inventory interface { //sig.SignableData Hash() Uint256 Verify() error Type() InventoryType }
TODO: temp inventory
type InventoryType ¶
type InventoryType byte
const ( TRANSACTION InventoryType = 0x01 BLOCK InventoryType = 0x02 CONSENSUS InventoryType = 0xe0 )
type LimitedWriter ¶ added in v0.9.3
type LimitedWriter struct {
// contains filtered or unexported fields
}
func NewLimitedWriter ¶ added in v0.9.3
func NewLimitedWriter(w io.Writer, max uint64) *LimitedWriter
func (*LimitedWriter) Count ¶ added in v0.9.3
func (self *LimitedWriter) Count() uint64
Count function return counted bytes
type Serializable ¶ added in v1.2.0
type Serializable interface {
Serialization(sink *ZeroCopySink)
}
type Uint256 ¶
type Uint256 [UINT256_SIZE]byte
func ComputeMerkleRoot ¶
param hashes will be used as workspace
func Uint256FromHexString ¶
func Uint256ParseFromBytes ¶
func (*Uint256) ToHexString ¶
type Uint64Slice ¶ added in v1.2.0
type Uint64Slice []uint64
func (Uint64Slice) Len ¶ added in v1.2.0
func (p Uint64Slice) Len() int
func (Uint64Slice) Less ¶ added in v1.2.0
func (p Uint64Slice) Less(i, j int) bool
func (Uint64Slice) Swap ¶ added in v1.2.0
func (p Uint64Slice) Swap(i, j int)
type ZeroCopySink ¶ added in v1.0.3
type ZeroCopySink struct {
// contains filtered or unexported fields
}
func NewZeroCopySink ¶ added in v1.0.3
func NewZeroCopySink(b []byte) *ZeroCopySink
NewReader returns a new ZeroCopySink reading from b.
func (*ZeroCopySink) BackUp ¶ added in v1.0.3
func (self *ZeroCopySink) BackUp(n uint64)
Backs up a number of bytes, so that the next call to NextXXX() returns data again that was already returned by the last call to NextXXX().
func (*ZeroCopySink) Bytes ¶ added in v1.0.3
func (self *ZeroCopySink) Bytes() []byte
func (*ZeroCopySink) NextBytes ¶ added in v1.0.3
func (self *ZeroCopySink) NextBytes(n uint64) (data []byte)
func (*ZeroCopySink) Reset ¶ added in v1.0.3
func (self *ZeroCopySink) Reset()
func (*ZeroCopySink) Size ¶ added in v1.0.3
func (self *ZeroCopySink) Size() uint64
func (*ZeroCopySink) WriteAddress ¶ added in v1.0.3
func (self *ZeroCopySink) WriteAddress(addr Address)
func (*ZeroCopySink) WriteBool ¶ added in v1.0.3
func (self *ZeroCopySink) WriteBool(data bool)
func (*ZeroCopySink) WriteByte ¶ added in v1.0.3
func (self *ZeroCopySink) WriteByte(c byte)
func (*ZeroCopySink) WriteBytes ¶ added in v1.0.3
func (self *ZeroCopySink) WriteBytes(p []byte)
func (*ZeroCopySink) WriteHash ¶ added in v1.0.3
func (self *ZeroCopySink) WriteHash(hash Uint256)
func (*ZeroCopySink) WriteInt16 ¶ added in v1.0.3
func (self *ZeroCopySink) WriteInt16(data int16)
func (*ZeroCopySink) WriteInt32 ¶ added in v1.0.3
func (self *ZeroCopySink) WriteInt32(data int32)
func (*ZeroCopySink) WriteInt64 ¶ added in v1.0.3
func (self *ZeroCopySink) WriteInt64(data int64)
func (*ZeroCopySink) WriteString ¶ added in v1.0.3
func (self *ZeroCopySink) WriteString(data string) (size uint64)
func (*ZeroCopySink) WriteUint16 ¶ added in v1.0.3
func (self *ZeroCopySink) WriteUint16(data uint16)
func (*ZeroCopySink) WriteUint32 ¶ added in v1.0.3
func (self *ZeroCopySink) WriteUint32(data uint32)
func (*ZeroCopySink) WriteUint64 ¶ added in v1.0.3
func (self *ZeroCopySink) WriteUint64(data uint64)
func (*ZeroCopySink) WriteUint8 ¶ added in v1.0.3
func (self *ZeroCopySink) WriteUint8(data uint8)
func (*ZeroCopySink) WriteVarBytes ¶ added in v1.0.3
func (self *ZeroCopySink) WriteVarBytes(data []byte) (size uint64)
func (*ZeroCopySink) WriteVarUint ¶ added in v1.0.3
func (self *ZeroCopySink) WriteVarUint(data uint64) (size uint64)
type ZeroCopySource ¶ added in v1.0.3
type ZeroCopySource struct {
// contains filtered or unexported fields
}
func NewZeroCopySource ¶ added in v1.0.3
func NewZeroCopySource(b []byte) *ZeroCopySource
NewReader returns a new ZeroCopySource reading from b.
func (*ZeroCopySource) BackUp ¶ added in v1.0.3
func (self *ZeroCopySource) BackUp(n uint64)
Backs up a number of bytes, so that the next call to NextXXX() returns data again that was already returned by the last call to NextXXX().
func (*ZeroCopySource) Bytes ¶ added in v1.2.0
func (self *ZeroCopySource) Bytes() []byte
func (*ZeroCopySource) Len ¶ added in v1.0.3
func (self *ZeroCopySource) Len() uint64
Len returns the number of bytes of the unread portion of the slice.
func (*ZeroCopySource) NextAddress ¶ added in v1.0.3
func (self *ZeroCopySource) NextAddress() (data Address, eof bool)
func (*ZeroCopySource) NextBool ¶ added in v1.0.3
func (self *ZeroCopySource) NextBool() (data bool, eof bool)
func (*ZeroCopySource) NextByte ¶ added in v1.0.3
func (self *ZeroCopySource) NextByte() (data byte, eof bool)
ReadByte implements the io.ByteReader interface.
func (*ZeroCopySource) NextBytes ¶ added in v1.0.3
func (self *ZeroCopySource) NextBytes(n uint64) (data []byte, eof bool)
Read implements the io.ZeroCopySource interface.
func (*ZeroCopySource) NextHash ¶ added in v1.0.3
func (self *ZeroCopySource) NextHash() (data Uint256, eof bool)
func (*ZeroCopySource) NextInt16 ¶ added in v1.0.3
func (self *ZeroCopySource) NextInt16() (data int16, eof bool)
func (*ZeroCopySource) NextInt32 ¶ added in v1.0.3
func (self *ZeroCopySource) NextInt32() (data int32, eof bool)
func (*ZeroCopySource) NextInt64 ¶ added in v1.0.3
func (self *ZeroCopySource) NextInt64() (data int64, eof bool)
func (*ZeroCopySource) NextString ¶ added in v1.0.3
func (self *ZeroCopySource) NextString() (data string, eof bool)
func (*ZeroCopySource) NextUint16 ¶ added in v1.0.3
func (self *ZeroCopySource) NextUint16() (data uint16, eof bool)
func (*ZeroCopySource) NextUint32 ¶ added in v1.0.3
func (self *ZeroCopySource) NextUint32() (data uint32, eof bool)
func (*ZeroCopySource) NextUint64 ¶ added in v1.0.3
func (self *ZeroCopySource) NextUint64() (data uint64, eof bool)
func (*ZeroCopySource) NextUint8 ¶ added in v1.0.3
func (self *ZeroCopySource) NextUint8() (data uint8, eof bool)
func (*ZeroCopySource) NextVarBytes ¶ added in v1.0.3
func (self *ZeroCopySource) NextVarBytes() (data []byte, eof bool)
func (*ZeroCopySource) NextVarUint ¶ added in v1.0.3
func (self *ZeroCopySource) NextVarUint() (data uint64, eof bool)
func (*ZeroCopySource) OffBytes ¶ added in v1.2.0
func (self *ZeroCopySource) OffBytes() []byte
func (*ZeroCopySource) Pos ¶ added in v1.0.3
func (self *ZeroCopySource) Pos() uint64
func (*ZeroCopySource) Size ¶ added in v1.0.3
func (self *ZeroCopySource) Size() uint64
Size returns the original length of the underlying byte slice. Size is the number of bytes available for reading via ReadAt. The returned value is always the same and is not affected by calls to any other method.
func (*ZeroCopySource) Skip ¶ added in v1.0.3
func (self *ZeroCopySource) Skip(n uint64) (eof bool)