Documentation ¶
Overview ¶
* Copyright (C) 2018 The DNA Authors * This file is part of The DNA library. * * The DNA 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 DNA 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 DNA. If not, see <http://www.gnu.org/licenses/>.
Index ¶
- Constants
- Variables
- func BigIntFromNeoBytes(ba []byte) *big.Int
- func BigIntToNeoBytes(data *big.Int) []byte
- 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 ToArrayReverse(arr []byte) []byte
- func ToHexString(data []byte) string
- type Address
- type Fixed64
- type Inventory
- type InventoryType
- type LimitedWriter
- type Uint256
- 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) Len() uint64
- func (self *ZeroCopySource) NextAddress() (data Address, eof bool)
- func (self *ZeroCopySource) NextBool() (data bool, irregular 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, size uint64, irregular bool, 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, size uint64, irregular bool, eof bool)
- func (self *ZeroCopySource) NextVarUint() (data uint64, size uint64, irregular bool, eof bool)
- func (self *ZeroCopySource) Pos() uint64
- func (self *ZeroCopySource) Size() uint64
- func (self *ZeroCopySource) Skip(n uint64) (eof bool)
Constants ¶
const ( UINT16_SIZE = 2 UINT32_SIZE = 4 UINT64_SIZE = 8 UINT256_SIZE = 32 )
const ADDR_LEN = 20
const (
Decimal = 100000000
)
const MaxBase58AddrLen = 2048 // just to avoid dos
Variables ¶
var ADDRESS_EMPTY = Address{}
var UINT256_EMPTY = Uint256{}
Functions ¶
func BigIntToNeoBytes ¶
neo encoding: https://docs.microsoft.com/en-us/dotnet/api/system.numerics.biginteger.tobytearray?view=netframework-4.7.2
func FileExisted ¶
FileExisted checks whether filename exists in filesystem
func HexToBytes ¶
HexToBytes convert hex string to []byte
Types ¶
type Address ¶
func AddressFromBase58 ¶
AddressFromBase58 returns Address from encoded base58 string
func AddressFromHexString ¶
AddressParseFromHexString returns parsed Address
func AddressParseFromBytes ¶
AddressParseFromBytes returns parsed Address
func (*Address) Deserialize ¶
Deserialize deserialize Address from io.Reader
func (*Address) Serialize ¶
Serialize serialize Address into io.Writer
func (*Address) ToBase58 ¶
ToBase58 returns base58 encoded address string
type Fixed64 ¶
type Fixed64 int64
the 64 bit fixed-point number, precise 10^-8
func (*Fixed64) Deserialization ¶
func (f *Fixed64) Deserialization(source *ZeroCopySource) error
func (*Fixed64) Serialization ¶
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 ¶
type LimitedWriter struct {
// contains filtered or unexported fields
}
func NewLimitedWriter ¶
func NewLimitedWriter(w io.Writer, max uint64) *LimitedWriter
func (*LimitedWriter) Count ¶
func (self *LimitedWriter) Count() uint64
Count function return counted bytes
func (*LimitedWriter) Write ¶
func (self *LimitedWriter) Write(buf []byte) (int, error)
type Uint256 ¶
type Uint256 [UINT256_SIZE]byte
func ComputeMerkleRoot ¶
param hashes will be used as workspace
type ZeroCopySink ¶
type ZeroCopySink struct {
// contains filtered or unexported fields
}
func NewZeroCopySink ¶
func NewZeroCopySink(b []byte) *ZeroCopySink
NewReader returns a new ZeroCopySink reading from b.
func (*ZeroCopySink) BackUp ¶
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 ¶
func (self *ZeroCopySink) Bytes() []byte
func (*ZeroCopySink) NextBytes ¶
func (self *ZeroCopySink) NextBytes(n uint64) (data []byte)
func (*ZeroCopySink) Reset ¶
func (self *ZeroCopySink) Reset()
func (*ZeroCopySink) Size ¶
func (self *ZeroCopySink) Size() uint64
func (*ZeroCopySink) WriteAddress ¶
func (self *ZeroCopySink) WriteAddress(addr Address)
func (*ZeroCopySink) WriteBool ¶
func (self *ZeroCopySink) WriteBool(data bool)
func (*ZeroCopySink) WriteByte ¶
func (self *ZeroCopySink) WriteByte(c byte)
func (*ZeroCopySink) WriteBytes ¶
func (self *ZeroCopySink) WriteBytes(p []byte)
func (*ZeroCopySink) WriteHash ¶
func (self *ZeroCopySink) WriteHash(hash Uint256)
func (*ZeroCopySink) WriteInt16 ¶
func (self *ZeroCopySink) WriteInt16(data int16)
func (*ZeroCopySink) WriteInt32 ¶
func (self *ZeroCopySink) WriteInt32(data int32)
func (*ZeroCopySink) WriteInt64 ¶
func (self *ZeroCopySink) WriteInt64(data int64)
func (*ZeroCopySink) WriteString ¶
func (self *ZeroCopySink) WriteString(data string) (size uint64)
func (*ZeroCopySink) WriteUint16 ¶
func (self *ZeroCopySink) WriteUint16(data uint16)
func (*ZeroCopySink) WriteUint32 ¶
func (self *ZeroCopySink) WriteUint32(data uint32)
func (*ZeroCopySink) WriteUint64 ¶
func (self *ZeroCopySink) WriteUint64(data uint64)
func (*ZeroCopySink) WriteUint8 ¶
func (self *ZeroCopySink) WriteUint8(data uint8)
func (*ZeroCopySink) WriteVarBytes ¶
func (self *ZeroCopySink) WriteVarBytes(data []byte) (size uint64)
func (*ZeroCopySink) WriteVarUint ¶
func (self *ZeroCopySink) WriteVarUint(data uint64) (size uint64)
type ZeroCopySource ¶
type ZeroCopySource struct {
// contains filtered or unexported fields
}
func NewZeroCopySource ¶
func NewZeroCopySource(b []byte) *ZeroCopySource
NewReader returns a new ZeroCopySource reading from b.
func (*ZeroCopySource) BackUp ¶
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) Len ¶
func (self *ZeroCopySource) Len() uint64
Len returns the number of bytes of the unread portion of the slice.
func (*ZeroCopySource) NextAddress ¶
func (self *ZeroCopySource) NextAddress() (data Address, eof bool)
func (*ZeroCopySource) NextBool ¶
func (self *ZeroCopySource) NextBool() (data bool, irregular bool, eof bool)
func (*ZeroCopySource) NextByte ¶
func (self *ZeroCopySource) NextByte() (data byte, eof bool)
ReadByte implements the io.ByteReader interface.
func (*ZeroCopySource) NextBytes ¶
func (self *ZeroCopySource) NextBytes(n uint64) (data []byte, eof bool)
Read implements the io.ZeroCopySource interface.
func (*ZeroCopySource) NextHash ¶
func (self *ZeroCopySource) NextHash() (data Uint256, eof bool)
func (*ZeroCopySource) NextInt16 ¶
func (self *ZeroCopySource) NextInt16() (data int16, eof bool)
func (*ZeroCopySource) NextInt32 ¶
func (self *ZeroCopySource) NextInt32() (data int32, eof bool)
func (*ZeroCopySource) NextInt64 ¶
func (self *ZeroCopySource) NextInt64() (data int64, eof bool)
func (*ZeroCopySource) NextString ¶
func (self *ZeroCopySource) NextString() (data string, size uint64, irregular bool, eof bool)
func (*ZeroCopySource) NextUint16 ¶
func (self *ZeroCopySource) NextUint16() (data uint16, eof bool)
func (*ZeroCopySource) NextUint32 ¶
func (self *ZeroCopySource) NextUint32() (data uint32, eof bool)
func (*ZeroCopySource) NextUint64 ¶
func (self *ZeroCopySource) NextUint64() (data uint64, eof bool)
func (*ZeroCopySource) NextUint8 ¶
func (self *ZeroCopySource) NextUint8() (data uint8, eof bool)
func (*ZeroCopySource) NextVarBytes ¶
func (self *ZeroCopySource) NextVarBytes() (data []byte, size uint64, irregular bool, eof bool)
func (*ZeroCopySource) NextVarUint ¶
func (self *ZeroCopySource) NextVarUint() (data uint64, size uint64, irregular bool, eof bool)
func (*ZeroCopySource) Pos ¶
func (self *ZeroCopySource) Pos() uint64
func (*ZeroCopySource) Size ¶
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 ¶
func (self *ZeroCopySource) Skip(n uint64) (eof bool)