common

package
v1.8.3 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2022 License: LGPL-3.0 Imports: 15 Imported by: 0

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

View Source
const (
	MAX_UINT64 = math.MaxUint64
	MAX_INT64  = math.MaxInt64
)
View Source
const (
	UINT16_SIZE  = 2
	UINT32_SIZE  = 4
	UINT64_SIZE  = 8
	UINT256_SIZE = 32
)
View Source
const ADDR_LEN = 20
View Source
const (
	Decimal = 100000000
)

Variables

View Source
var ADDRESS_EMPTY = Address{}
View Source
var ErrTooLarge = errors.New("bytes.Buffer: too large")
View Source
var ErrWriteExceedLimitedCount = errors.New("writer exceed limited count")
View Source
var UINT256_EMPTY = Uint256{}

Functions

func FileExisted

func FileExisted(filename string) bool

FileExisted checks whether filename exists in filesystem

func GetNonce

func GetNonce() uint64

GetNonce returns random nonce

func HexToBytes

func HexToBytes(value string) ([]byte, error)

HexToBytes convert hex string to []byte

func SafeAdd added in v0.9.2

func SafeAdd(x, y uint64) (uint64, bool)

func SafeMul added in v0.9.2

func SafeMul(x, y uint64) (uint64, bool)

func SafeSub added in v0.9.2

func SafeSub(x, y uint64) (uint64, bool)

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

func ToArrayReverse(arr []byte) []byte

func ToHexString

func ToHexString(data []byte) string

ToHexString convert []byte to hex string

Types

type Address

type Address [ADDR_LEN]byte

func AddressFromBase58

func AddressFromBase58(encoded string) (Address, error)

AddressFromBase58 returns Address from encoded base58 string

func AddressFromHexString

func AddressFromHexString(s string) (Address, error)

AddressParseFromHexString returns parsed Address

func AddressFromVmCode added in v1.2.0

func AddressFromVmCode(code []byte) Address

func AddressParseFromBytes

func AddressParseFromBytes(f []byte) (Address, error)

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

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

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

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

Serialize serialize Address into io.Writer

func (*Address) ToBase58

func (f *Address) ToBase58() string

ToBase58 returns base58 encoded address string

func (*Address) ToHexString

func (self *Address) ToHexString() string

ToHexString returns hex string representation of Address

type Fixed64

type Fixed64 int64

the 64 bit fixed-point number, precise 10^-8

func FromDecimal

func FromDecimal(value int64) Fixed64

func (*Fixed64) Deserialization added in v1.2.0

func (f *Fixed64) Deserialization(source *ZeroCopySource) error

func (Fixed64) GetData

func (f Fixed64) GetData() int64

func (*Fixed64) Serialization added in v1.2.0

func (f *Fixed64) Serialization(sink *ZeroCopySink)

func (Fixed64) String

func (f Fixed64) String() string

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

func (*LimitedWriter) Write added in v0.9.3

func (self *LimitedWriter) Write(buf []byte) (int, error)

type Serializable added in v1.2.0

type Serializable interface {
	Serialization(sink *ZeroCopySink)
}

type Uint256

type Uint256 [UINT256_SIZE]byte

func ComputeMerkleRoot

func ComputeMerkleRoot(hashes []Uint256) Uint256

param hashes will be used as workspace

func Uint256FromHexString

func Uint256FromHexString(s string) (Uint256, error)

func Uint256ParseFromBytes

func Uint256ParseFromBytes(f []byte) (Uint256, error)

func (*Uint256) Deserialize

func (u *Uint256) Deserialize(r io.Reader) error

func (*Uint256) Serialize

func (u *Uint256) Serialize(w io.Writer) error

func (*Uint256) ToArray

func (u *Uint256) ToArray() []byte

func (*Uint256) ToHexString

func (u *Uint256) ToHexString() string

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)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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