Documentation
¶
Index ¶
- Constants
- Variables
- func BinByteCount(v interface{}) (uint64, error)
- func BorshByteCount(v interface{}) (uint64, error)
- func CompactU16ByteCount(v interface{}) (uint64, error)
- func DecodeCompactU16(bytes []byte) (int, int, error)
- func DecodeCompactU16LengthFromByteReader(reader io.ByteReader) (int, error)
- func EncodeCompactU16Length(buf *[]byte, ln int) error
- func FormatByteSlice(buf []byte) string
- func FormatDiscriminator(disc [8]byte) string
- func IsByteSlice(v interface{}) bool
- func MarshalBin(v interface{}) ([]byte, error)
- func MarshalBorsh(v interface{}) ([]byte, error)
- func MarshalCompactU16(v interface{}) ([]byte, error)
- func MustBinByteCount(v interface{}) uint64
- func MustBorshByteCount(v interface{}) uint64
- func MustCompactU16ByteCount(v interface{}) uint64
- func QuoRem(x, y *Uint128) (*Uint128, *Uint128)
- func Reciprocal(m *Uint256) (mu [5]uint64)
- func ReverseBytes(s []byte)
- func Sighash(namespace string, name string) []byte
- func SighashAccount(name string) []byte
- func SighashInstruction(name string) []byte
- func ToPascalCase(s string) string
- func ToRustSnakeCase(s string) string
- func ToSnakeForSighash(s string) string
- func Uint32FromTypeID(vid TypeID) (out uint32)
- func Uint8FromTypeID(vid TypeID) (out uint8)
- func UnmarshalBin(v interface{}, b []byte) error
- func UnmarshalBorsh(v interface{}, b []byte) error
- func UnmarshalCompactU16(v interface{}, b []byte) error
- func Uvarint32FromTypeID(vid TypeID) (out uint32)
- type BaseVariant
- type BinaryMarshaler
- type BinaryUnmarshaler
- type Bool
- type BorshEnum
- type Decoder
- func (dec *Decoder) Decode(v interface{}) (err error)
- func (dec *Decoder) Discard(n int) (err error)
- func (dec *Decoder) HasRemaining() bool
- func (dec *Decoder) IsBin() bool
- func (dec *Decoder) IsBorsh() bool
- func (dec *Decoder) IsCompactU16() bool
- func (dec *Decoder) Len() int
- func (dec *Decoder) Peek(n int) (out []byte, err error)
- func (dec *Decoder) PeekDiscriminator() (out TypeID, err error)
- func (dec *Decoder) Position() uint
- func (d *Decoder) Read(buf []byte) (int, error)
- func (dec *Decoder) ReadBool() (out bool, err error)
- func (dec *Decoder) ReadByte() (out byte, err error)
- func (dec *Decoder) ReadByteSlice() (out []byte, err error)
- func (dec *Decoder) ReadBytes(n int) (out []byte, err error)
- func (dec *Decoder) ReadCOption() (out bool, err error)
- func (dec *Decoder) ReadCompactU16() (out int, err error)
- func (dec *Decoder) ReadCompactU16Length() (int, error)
- func (dec *Decoder) ReadDiscriminator() (out TypeID, err error)
- func (dec *Decoder) ReadFloat32() (out float32, err error)
- func (dec *Decoder) ReadFloat64() (out float64, err error)
- func (dec *Decoder) ReadInt16() (out int16, err error)
- func (dec *Decoder) ReadInt32() (out int32, err error)
- func (dec *Decoder) ReadInt64() (out int64, err error)
- func (dec *Decoder) ReadInt8() (out int8, err error)
- func (dec *Decoder) ReadLength() (length int, err error)
- func (dec *Decoder) ReadNBytes(n int) (out []byte, err error)
- func (dec *Decoder) ReadOption() (out bool, err error)
- func (dec *Decoder) ReadRustString() (out string, err error)
- func (dec *Decoder) ReadString() (out string, err error)
- func (dec *Decoder) ReadTypeID() (out TypeID, err error)
- func (dec *Decoder) ReadUint128() (out Uint128, err error)
- func (dec *Decoder) ReadUint16() (out uint16, err error)
- func (dec *Decoder) ReadUint32() (out uint32, err error)
- func (dec *Decoder) ReadUint64() (out uint64, err error)
- func (dec *Decoder) ReadUint8() (out uint8, err error)
- func (dec *Decoder) ReadUvarint16() (out uint16, err error)
- func (dec *Decoder) ReadUvarint32() (out uint32, err error)
- func (dec *Decoder) ReadUvarint64() (uint64, error)
- func (dec *Decoder) ReadVarint16() (out int16, err error)
- func (dec *Decoder) ReadVarint32() (out int32, err error)
- func (d *Decoder) ReadVarint64() (out int64, err error)
- func (dec *Decoder) Remaining() int
- func (dec *Decoder) Reset(data []byte)
- func (dec *Decoder) SafeReadUTF8String() (out string, err error)
- func (dec *Decoder) SetEncoding(enc Encoding)
- func (dec *Decoder) SetPosition(idx uint) error
- func (dec *Decoder) SkipBytes(count uint) error
- type EmptyVariant
- type Encoder
- func (e *Encoder) Encode(v interface{}) (err error)
- func (enc *Encoder) IsBin() bool
- func (enc *Encoder) IsBorsh() bool
- func (enc *Encoder) IsCompactU16() bool
- func (e *Encoder) Write(b []byte) (n int, err error)
- func (e *Encoder) WriteBool(b bool) (err error)
- func (e *Encoder) WriteByte(b byte) (err error)
- func (e *Encoder) WriteBytes(b []byte, writeLength bool) error
- func (e *Encoder) WriteCOption(b bool) (err error)
- func (e *Encoder) WriteCompactU16(ln int) (err error)
- func (e *Encoder) WriteCompactU16Length(ln int) (err error)
- func (e *Encoder) WriteFloat32(f float32) (err error)
- func (e *Encoder) WriteFloat64(f float64) (err error)
- func (e *Encoder) WriteInt16(i int16) (err error)
- func (e *Encoder) WriteInt32(i int32) (err error)
- func (e *Encoder) WriteInt64(i int64) (err error)
- func (e *Encoder) WriteInt8(i int8) (err error)
- func (e *Encoder) WriteLength(length int) error
- func (e *Encoder) WriteOption(b bool) (err error)
- func (e *Encoder) WriteRustString(s string) (err error)
- func (e *Encoder) WriteString(s string) (err error)
- func (e *Encoder) WriteUVarInt(v int) (err error)
- func (e *Encoder) WriteUint128(z Uint128) (err error)
- func (e *Encoder) WriteUint16(i uint16) (err error)
- func (e *Encoder) WriteUint32(i uint32) (err error)
- func (e *Encoder) WriteUint64(i uint64) (err error)
- func (e *Encoder) WriteUint8(i uint8) (err error)
- func (e *Encoder) WriteVarInt(v int) (err error)
- func (e *Encoder) Written() int
- type EncoderDecoder
- type Encoding
- type HexBytes
- type Int64
- type InvalidDecoderError
- type JSONFloat64
- type OnVariant
- type SafeString
- type TypeID
- type TypeIDEncoding
- type Uint128
- func (z *Uint128) Add(x, y *Uint128) *Uint128
- func (z *Uint128) Add64(x *Uint128, y uint64) *Uint128
- func (z *Uint128) And(x, y *Uint128) *Uint128
- func (z *Uint128) And64(x *Uint128, y uint64) *Uint128
- func (z *Uint128) BigInt() *big.Int
- func (z *Uint128) Bytes() []byte
- func (z *Uint128) Clone() *Uint128
- func (z *Uint128) Cmp(x *Uint128) int
- func (z *Uint128) Cmp64(x uint64) int
- func (z *Uint128) DecimalString() string
- func (z *Uint128) Div(x, v *Uint128) *Uint128
- func (z *Uint128) Div64(x *Uint128, v uint64) *Uint128
- func (z *Uint128) Equals(x *Uint128) bool
- func (z *Uint128) Equals64(x uint64) bool
- func (z *Uint128) HexString() string
- func (z *Uint128) IsZero() bool
- func (z *Uint128) LeadingZeros() int
- func (z *Uint128) Lsh(x *Uint128, n uint) *Uint128
- func (z Uint128) MarshalJSON() (data []byte, err error)
- func (z Uint128) MarshalWithEncoder(enc *Encoder) error
- func (z *Uint128) Mod(x, y *Uint128) *Uint128
- func (z *Uint128) Mod64(x *Uint128, y uint64) *Uint128
- func (z *Uint128) Mul(x, y *Uint128) *Uint128
- func (z *Uint128) Mul64(x *Uint128, y uint64) *Uint128
- func (z *Uint128) Or(x, y *Uint128) *Uint128
- func (z *Uint128) Or64(x *Uint128, y uint64) *Uint128
- func (z *Uint128) Rsh(x *Uint128, n uint) *Uint128
- func (z *Uint128) String() string
- func (z *Uint128) Sub(x, y *Uint128) *Uint128
- func (z *Uint128) Sub64(x *Uint128, y uint64) *Uint128
- func (z *Uint128) Uint64() uint64
- func (z *Uint128) UnmarshalJSON(data []byte) error
- func (z *Uint128) UnmarshalWithDecoder(dec *Decoder) error
- func (z *Uint128) Xor(x, y *Uint128) *Uint128
- func (z *Uint128) Xor64(x *Uint128, y uint64) *Uint128
- type Uint256
- func (z *Uint256) Abs(x *Uint256) *Uint256
- func (z *Uint256) Add(x, y *Uint256) *Uint256
- func (z *Uint256) Add64(x *Uint256, y uint64) *Uint256
- func (z *Uint256) AddMod(x, y, m *Uint256) *Uint256
- func (z *Uint256) AddOverflow(x, y *Uint256) (*Uint256, bool)
- func (z *Uint256) And(x, y *Uint256) *Uint256
- func (z *Uint256) BitLen() int
- func (z *Uint256) Byte(n *Uint256) *Uint256
- func (z *Uint256) ByteLen() int
- func (z *Uint256) Clear() *Uint256
- func (z *Uint256) Clone() *Uint256
- func (z *Uint256) Cmp(x *Uint256) (r int)
- func (z *Uint256) Cmp64(x uint64) int
- func (z *Uint256) Div(x, y *Uint256) *Uint256
- func (z *Uint256) DivMod(x, y, m *Uint256) (*Uint256, *Uint256)
- func (z *Uint256) Eq(x *Uint256) bool
- func (z *Uint256) Exp(base, exponent *Uint256) *Uint256
- func (z *Uint256) ExtendSign(x, byteNum *Uint256) *Uint256
- func (z *Uint256) Gt(x *Uint256) bool
- func (z *Uint256) Gt64(n uint64) bool
- func (z *Uint256) Is64() bool
- func (z *Uint256) IsZero() bool
- func (z *Uint256) Log10() uint
- func (z *Uint256) Lsh(x *Uint256, n uint) *Uint256
- func (z *Uint256) Lt(x *Uint256) bool
- func (z *Uint256) Lt64(n uint64) bool
- func (z *Uint256) Mod(x, y *Uint256) *Uint256
- func (z *Uint256) Mul(x, y *Uint256) *Uint256
- func (z *Uint256) MulDivOverflow(x, y, d *Uint256) (*Uint256, bool)
- func (z *Uint256) MulMod(x, y, m *Uint256) *Uint256
- func (z *Uint256) MulModWithReciprocal(x, y, m *Uint256, mu *[5]uint64) *Uint256
- func (z *Uint256) MulOverflow(x, y *Uint256) (*Uint256, bool)
- func (z *Uint256) Neg(x *Uint256) *Uint256
- func (z *Uint256) Not(x *Uint256) *Uint256
- func (z *Uint256) Or(x, y *Uint256) *Uint256
- func (z *Uint256) PaddedBytes(n int) []byte
- func (z *Uint256) Rsh(x *Uint256, n uint) *Uint256
- func (z *Uint256) SDiv(n, d *Uint256) *Uint256
- func (z *Uint256) SMod(x, y *Uint256) *Uint256
- func (z *Uint256) SRsh(x *Uint256, n uint) *Uint256
- func (z *Uint256) Set(x *Uint256) *Uint256
- func (z *Uint256) Set64(x uint64) *Uint256
- func (z *Uint256) SetAllOne() *Uint256
- func (z *Uint256) SetOne() *Uint256
- func (z *Uint256) Sgt(x *Uint256) bool
- func (z *Uint256) Sign() int
- func (z *Uint256) Slt(x *Uint256) bool
- func (z *Uint256) Sqrt(x *Uint256) *Uint256
- func (z *Uint256) Sub(x, y *Uint256) *Uint256
- func (z *Uint256) Sub64(x *Uint256, y uint64) *Uint256
- func (z *Uint256) SubOverflow(x, y *Uint256) (*Uint256, bool)
- func (z *Uint256) Uint128() *Uint128
- func (z *Uint256) Uint64() uint64
- func (z *Uint256) Uint64WithOverflow() (uint64, bool)
- func (z *Uint256) Xor(x, y *Uint256) *Uint256
- type Uint64
- type Variant
- type VariantDefinition
- type VariantImplFactory
- type VariantType
- type Varint16
- type Varint32
- type Varuint16
- type Varuint32
- type WriteByWrite
Constants ¶
const ACCOUNT_DISCRIMINATOR_SIZE = 8
const SIGHASH_ACCOUNT_NAMESPACE string = "account"
const SIGHASH_GLOBAL_NAMESPACE string = "global"
Namespace for calculating instruction sighash signatures for any instruction not affecting program state.
const SIGHASH_STATE_NAMESPACE string = "state"
Namespace for calculating state instruction sighash signatures.
Variables ¶
var ErrVarIntBufferSize = errors.New("varint: invalid buffer size")
var (
LE = binary.LittleEndian
)
var NoTypeIDDefaultID = TypeIDFromUint8(0)
var TypeSize = struct { Bool int Byte int Int8 int Int16 int Uint8 int Uint16 int Uint32 int Uint64 int Uint128 int Float32 int Float64 int PublicKey int Signature int }{ Byte: 1, Bool: 1, Int8: 1, Int16: 2, Uint8: 1, Uint16: 2, Uint32: 4, Uint64: 8, Uint128: 16, Float32: 4, Float64: 8, PublicKey: 32, Signature: 64, }
Functions ¶
func BinByteCount ¶
BinByteCount computes the byte count size for the received populated structure. The reported size is the one for the populated structure received in arguments. Depending on how serialization of your fields is performed, size could vary for different structure.
func BorshByteCount ¶
BorshByteCount computes the byte count size for the received populated structure. The reported size is the one for the populated structure received in arguments. Depending on how serialization of your fields is performed, size could vary for different structure.
func CompactU16ByteCount ¶
CompactU16ByteCount computes the byte count size for the received populated structure. The reported size is the one for the populated structure received in arguments. Depending on how serialization of your fields is performed, size could vary for different structure.
func DecodeCompactU16LengthFromByteReader ¶
func DecodeCompactU16LengthFromByteReader(reader io.ByteReader) (int, error)
DecodeCompactU16LengthFromByteReader decodes a "Compact-u16" length from the provided io.ByteReader.
func EncodeCompactU16Length ¶
EncodeCompactU16Length encodes a "Compact-u16" length into the provided slice pointer. See https://docs.solana.com/developing/programming-model/transactions#compact-u16-format See https://github.com/solana-labs/solana/blob/2ef2b6daa05a7cff057e9d3ef95134cee3e4045d/web3.js/src/util/shortvec-encoding.ts
func FormatByteSlice ¶
FormatByteSlice formats the given byte slice into a readable format.
func FormatDiscriminator ¶
func IsByteSlice ¶
func IsByteSlice(v interface{}) bool
IsByteSlice returns true if the provided element is a []byte.
func MarshalBin ¶
func MarshalBorsh ¶
func MarshalCompactU16 ¶
func MustBinByteCount ¶
func MustBinByteCount(v interface{}) uint64
MustBinByteCount acts just like BinByteCount but panics if it encounters any encoding errors.
func MustBorshByteCount ¶
func MustBorshByteCount(v interface{}) uint64
MustBorshByteCount acts just like BorshByteCount but panics if it encounters any encoding errors.
func MustCompactU16ByteCount ¶
func MustCompactU16ByteCount(v interface{}) uint64
MustCompactU16ByteCount acts just like CompactU16ByteCount but panics if it encounters any encoding errors.
func Reciprocal ¶ added in v0.8.2
func ReverseBytes ¶
func ReverseBytes(s []byte)
func Sighash ¶
Sighash creates an anchor sighash for the provided namespace and element. An anchor sighash is the first 8 bytes of the sha256 of {namespace}:{name} NOTE: you must first convert the name to snake case using `ToSnakeForSighash`.
func SighashAccount ¶
func SighashInstruction ¶
func ToPascalCase ¶
ToPascalCase converts a string to upper camel case.
func ToRustSnakeCase ¶
ToRustSnakeCase converts the given string to a snake_case string. Ported from https://github.com/withoutboats/heck/blob/c501fc95db91ce20eaef248a511caec7142208b4/src/lib.rs#L75 as used by Anchor.
func ToSnakeForSighash ¶
func Uint32FromTypeID ¶
Uint32FromTypeID parses a TypeID bytes to a uint32.
func Uint8FromTypeID ¶
Uint32FromTypeID parses a TypeID bytes to a uint8.
func UnmarshalBin ¶
func UnmarshalBorsh ¶
func UnmarshalCompactU16 ¶
func Uvarint32FromTypeID ¶
Uvarint32FromTypeID parses a TypeID bytes to a uvarint 32.
Types ¶
type BaseVariant ¶
type BaseVariant struct {
TypeID TypeID
Impl interface{}
}
func (*BaseVariant) Assign ¶
func (a *BaseVariant) Assign(typeID TypeID, impl interface{})
func (*BaseVariant) Obtain ¶
func (a *BaseVariant) Obtain(def *VariantDefinition) (typeID TypeID, typeName string, impl interface{})
func (*BaseVariant) UnmarshalBinaryVariant ¶
func (a *BaseVariant) UnmarshalBinaryVariant(decoder *Decoder, def *VariantDefinition) (err error)
type BinaryMarshaler ¶
type BinaryUnmarshaler ¶
type Bool ¶
type Bool bool
func (Bool) MarshalWithEncoder ¶
func (*Bool) UnmarshalJSON ¶
func (*Bool) UnmarshalWithDecoder ¶
type Decoder ¶
type Decoder struct {
// contains filtered or unexported fields
}
func NewBinDecoder ¶
func NewBorshDecoder ¶
func NewCompactU16Decoder ¶
func NewDecoderWithEncoding ¶
func (*Decoder) HasRemaining ¶
func (*Decoder) IsCompactU16 ¶
func (*Decoder) PeekDiscriminator ¶
func (*Decoder) ReadByteSlice ¶
func (*Decoder) ReadCOption ¶
func (*Decoder) ReadCompactU16 ¶
ReadCompactU16 reads a compact u16 from the decoder.
func (*Decoder) ReadCompactU16Length ¶
func (*Decoder) ReadDiscriminator ¶
func (*Decoder) ReadFloat32 ¶
func (*Decoder) ReadFloat64 ¶
func (*Decoder) ReadLength ¶
func (*Decoder) ReadOption ¶
func (*Decoder) ReadRustString ¶
func (*Decoder) ReadString ¶
func (*Decoder) ReadTypeID ¶
func (*Decoder) ReadUint128 ¶
func (*Decoder) ReadUint16 ¶
func (*Decoder) ReadUint32 ¶
func (*Decoder) ReadUint64 ¶
func (*Decoder) ReadUvarint16 ¶
func (*Decoder) ReadUvarint32 ¶
func (*Decoder) ReadUvarint64 ¶
func (*Decoder) ReadVarint16 ¶
func (*Decoder) ReadVarint32 ¶
func (*Decoder) ReadVarint64 ¶
func (*Decoder) SafeReadUTF8String ¶
func (*Decoder) SetEncoding ¶
SetEncoding sets the encoding scheme to use for decoding.
func (*Decoder) SetPosition ¶
type EmptyVariant ¶
type EmptyVariant struct{}
EmptyVariant is an empty borsh enum variant.
func (*EmptyVariant) MarshalWithEncoder ¶
func (*EmptyVariant) MarshalWithEncoder(_ *Encoder) error
func (*EmptyVariant) UnmarshalWithDecoder ¶
func (*EmptyVariant) UnmarshalWithDecoder(_ *Decoder) error
type Encoder ¶
type Encoder struct {
// contains filtered or unexported fields
}
func NewBinEncoder ¶
func NewBorshEncoder ¶
func NewCompactU16Encoder ¶
func (*Encoder) IsCompactU16 ¶
func (*Encoder) WriteCOption ¶
func (*Encoder) WriteCompactU16 ¶
func (*Encoder) WriteCompactU16Length ¶
func (*Encoder) WriteFloat32 ¶
func (*Encoder) WriteFloat64 ¶
func (*Encoder) WriteInt16 ¶
func (*Encoder) WriteInt32 ¶
func (*Encoder) WriteInt64 ¶
func (*Encoder) WriteLength ¶
func (*Encoder) WriteOption ¶
func (*Encoder) WriteRustString ¶
func (*Encoder) WriteString ¶
func (*Encoder) WriteUVarInt ¶
func (*Encoder) WriteUint128 ¶
func (*Encoder) WriteUint16 ¶
func (*Encoder) WriteUint32 ¶
func (*Encoder) WriteUint64 ¶
func (*Encoder) WriteUint8 ¶
func (*Encoder) WriteVarInt ¶
type EncoderDecoder ¶
type EncoderDecoder interface {
BinaryMarshaler
BinaryUnmarshaler
}
type HexBytes ¶
type HexBytes []byte
func (HexBytes) MarshalJSON ¶
func (HexBytes) MarshalWithEncoder ¶
func (*HexBytes) UnmarshalJSON ¶
func (*HexBytes) UnmarshalWithDecoder ¶
type Int64 ¶
type Int64 int64
func (Int64) MarshalJSON ¶
func (Int64) MarshalWithEncoder ¶
func (*Int64) UnmarshalJSON ¶
func (*Int64) UnmarshalWithDecoder ¶
type InvalidDecoderError ¶
An InvalidDecoderError describes an invalid argument passed to Decoder. (The argument to Decoder must be a non-nil pointer.)
func (*InvalidDecoderError) Error ¶
func (e *InvalidDecoderError) Error() string
type JSONFloat64 ¶
type JSONFloat64 float64
func (JSONFloat64) MarshalWithEncoder ¶
func (f JSONFloat64) MarshalWithEncoder(enc *Encoder) error
func (*JSONFloat64) UnmarshalJSON ¶
func (f *JSONFloat64) UnmarshalJSON(data []byte) error
func (*JSONFloat64) UnmarshalWithDecoder ¶
func (f *JSONFloat64) UnmarshalWithDecoder(dec *Decoder) error
type SafeString ¶
type SafeString string
func (SafeString) MarshalWithEncoder ¶
func (ss SafeString) MarshalWithEncoder(encoder *Encoder) error
func (*SafeString) UnmarshalWithDecoder ¶
func (ss *SafeString) UnmarshalWithDecoder(d *Decoder) error
type TypeID ¶
type TypeID [8]byte
TypeID defines the internal representation of an instruction type ID (or account type, etc. in anchor programs) and it's used to associate instructions to decoders in the variant tracker.
func SighashTypeID ¶
NOTE: no casing conversion is done here, it's up to the caller to provide the correct casing.
func TypeIDFromBytes ¶
TypeIDFromBytes converts a []byte to a TypeID. The provided slice must be 8 bytes long or less.
func TypeIDFromSighash ¶
TypeIDFromSighash converts a sighash bytes to a TypeID.
func TypeIDFromUint32 ¶
TypeIDFromUint32 converts a uint32 to a TypeID.
func TypeIDFromUint8 ¶
TypeIDFromUint32 converts a uint8 to a TypeID.
func TypeIDFromUvarint32 ¶
TypeIDFromUvarint32 converts a Uvarint to a TypeID.
type TypeIDEncoding ¶
type TypeIDEncoding uint32
const ( Uvarint32TypeIDEncoding TypeIDEncoding = iota Uint32TypeIDEncoding Uint8TypeIDEncoding // AnchorTypeIDEncoding is the instruction ID encoding used by programs // written using the anchor SDK. // The typeID is the sighash of the instruction. AnchorTypeIDEncoding // No type ID; ONLY ONE VARIANT PER PROGRAM. NoTypeIDEncoding )
type Uint128 ¶
type Uint128 [2]uint64
Uint128
func NewUint128 ¶ added in v0.8.2
func NewUint128() *Uint128
func NewUint128From64 ¶
func NewUint128FromBig ¶ added in v0.8.3
func (*Uint128) DecimalString ¶
func (*Uint128) LeadingZeros ¶
func (Uint128) MarshalJSON ¶
func (Uint128) MarshalWithEncoder ¶
func (*Uint128) UnmarshalJSON ¶
func (*Uint128) UnmarshalWithDecoder ¶
type Uint256 ¶ added in v0.8.2
type Uint256 [4]uint64
func NewUint256From128 ¶ added in v0.8.2
func NewUint256From64 ¶ added in v0.8.2
func (*Uint256) Abs ¶ added in v0.8.2
Abs interprets x as a two's complement signed number, and sets z to the absolute value
Abs(0) = 0 Abs(1) = 1 Abs(2**255) = -2**255 Abs(2**256-1) = -1
func (*Uint256) Add64 ¶ added in v0.8.2
AddUint64 sets z to x + y, where y is a uint64, and returns z
func (*Uint256) AddMod ¶ added in v0.8.2
AddMod sets z to the sum ( x+y ) mod m, and returns z. If m == 0, z is set to 0 (OBS: differs from the big.Int)
func (*Uint256) AddOverflow ¶ added in v0.8.2
AddOverflow sets z to the sum x+y, and returns z and whether overflow occurred
func (*Uint256) Byte ¶ added in v0.8.2
Byte sets z to the value of the byte at position n, with z considered as a big-endian 32-byte integer. if n >= 32, z is set to 0 Example: z=5, n=31 => 5
func (*Uint256) ByteLen ¶ added in v0.8.2
ByteLen returns the number of bytes required to represent z
func (*Uint256) Cmp ¶ added in v0.8.2
Cmp compares z and x and returns:
-1 if z < x 0 if z == x +1 if z > x
func (*Uint256) Cmp64 ¶ added in v0.8.2
CmpUint64 compares z and x and returns:
-1 if z < x 0 if z == x +1 if z > x
func (*Uint256) Div ¶ added in v0.8.2
Div sets z to the quotient x/y for returns z. If y == 0, z is set to 0
func (*Uint256) DivMod ¶ added in v0.8.2
DivMod sets z to the quotient x div y and m to the modulus x mod y and returns the pair (z, m) for y != 0. If y == 0, both z and m are set to 0 (OBS: differs from the big.Int)
func (*Uint256) ExtendSign ¶ added in v0.8.2
ExtendSign extends length of two’s complement signed integer, sets z to
- x if byteNum > 30
- x interpreted as a signed number with sign-bit at (byteNum*8+7), extended to the full 256 bits
and returns z.
func (*Uint256) Log10 ¶ added in v0.8.2
Log10 returns the log in base 10, floored to nearest integer. **OBS** This method returns '0' for '0', not `-Inf`.
func (*Uint256) Mod ¶ added in v0.8.2
Mod sets z to the modulus x%y for y != 0 and returns z. If y == 0, z is set to 0 (OBS: differs from the big.Int)
func (*Uint256) MulDivOverflow ¶ added in v0.8.2
MulDivOverflow calculates (x*y)/d with full precision, returns z and whether overflow occurred in multiply process (result does not fit to 256-bit). computes 512-bit multiplication and 512 by 256 division.
func (*Uint256) MulMod ¶ added in v0.8.2
MulMod calculates the modulo-m multiplication of x and y and returns z. If m == 0, z is set to 0 (OBS: differs from the big.Int)
func (*Uint256) MulModWithReciprocal ¶ added in v0.8.2
MulModWithReciprocal calculates the modulo-m multiplication of x and y and returns z, using the reciprocal of m provided as the mu parameter. Use uint256.Reciprocal to calculate mu from m. If m == 0, z is set to 0 (OBS: differs from the big.Int)
func (*Uint256) MulOverflow ¶ added in v0.8.2
MulOverflow sets z to the product x*y, and returns z and whether overflow occurred
func (*Uint256) PaddedBytes ¶ added in v0.8.2
PaddedBytes encodes a Uint256 as a 0-padded byte slice. The length of the slice is at least n bytes. Example, z =1, n = 20 => [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]
func (*Uint256) SDiv ¶ added in v0.8.2
SDiv interprets n and d as two's complement signed integers, does a signed division on the two operands and sets z to the result. If d == 0, z is set to 0
func (*Uint256) SMod ¶ added in v0.8.2
SMod interprets x and y as two's complement signed integers, sets z to (sign x) * { abs(x) modulus abs(y) } If y == 0, z is set to 0 (OBS: differs from the big.Int)
func (*Uint256) SRsh ¶ added in v0.8.2
SRsh (Signed/Arithmetic right shift) considers z to be a signed integer, during right-shift and sets z = x >> n and returns z.
func (*Uint256) Sgt ¶ added in v0.8.2
Sgt interprets z and x as signed integers, and returns true if z > x
func (*Uint256) Sign ¶ added in v0.8.2
Sign returns:
-1 if z < 0 0 if z == 0 +1 if z > 0
Where z is interpreted as a two's complement signed number
func (*Uint256) Slt ¶ added in v0.8.2
Slt interprets z and x as signed integers, and returns true if z < x
func (*Uint256) Sqrt ¶ added in v0.8.2
Sqrt sets z to ⌊√x⌋, the largest integer such that z² ≤ x, and returns z.
func (*Uint256) Sub64 ¶ added in v0.8.2
SubUint64 set z to the difference x - y, where y is a uint64, and returns z
func (*Uint256) SubOverflow ¶ added in v0.8.2
SubOverflow sets z to the difference x-y and returns z and true if the operation underflowed
func (*Uint256) Uint64WithOverflow ¶ added in v0.8.2
Uint64WithOverflow returns the lower 64-bits of z and bool whether overflow occurred
type Uint64 ¶
type Uint64 uint64
func (Uint64) MarshalJSON ¶
func (Uint64) MarshalWithEncoder ¶
func (*Uint64) UnmarshalJSON ¶
func (*Uint64) UnmarshalWithDecoder ¶
type Variant ¶
type Variant interface {
Assign(typeID TypeID, impl interface{})
Obtain(*VariantDefinition) (typeID TypeID, typeName string, impl interface{})
}
type VariantDefinition ¶
type VariantDefinition struct {
// contains filtered or unexported fields
}
func NewVariantDefinition ¶
func NewVariantDefinition(typeIDEncoding TypeIDEncoding, types []VariantType) (out *VariantDefinition)
NewVariantDefinition creates a variant definition based on the *ordered* provided types.
- For anchor instructions, it's the name that defines the binary variant value.
- For all other types, it's the ordering that defines the binary variant value just like in native `nodeos` C++ and in Smart Contract via the `std::variant` type. It's important to pass the entries in the right order!
This variant definition can now be passed to functions of `BaseVariant` to implement marshal/unmarshaling functionalities for binary & JSON.
func (*VariantDefinition) TypeID ¶
func (d *VariantDefinition) TypeID(name string) TypeID
type VariantImplFactory ¶
type VariantImplFactory = func() interface{}
type VariantType ¶
type VariantType struct {
Name string
Type interface{}
}
type Varint16 ¶
type Varint16 int16
func (Varint16) MarshalWithEncoder ¶
func (*Varint16) UnmarshalWithDecoder ¶
type Varint32 ¶
type Varint32 int32
func (Varint32) MarshalWithEncoder ¶
func (*Varint32) UnmarshalWithDecoder ¶
type Varuint16 ¶
type Varuint16 uint16
func (Varuint16) MarshalWithEncoder ¶
func (*Varuint16) UnmarshalWithDecoder ¶
type Varuint32 ¶
type Varuint32 uint32
func (Varuint32) MarshalWithEncoder ¶
func (*Varuint32) UnmarshalWithDecoder ¶
type WriteByWrite ¶
type WriteByWrite struct {
// contains filtered or unexported fields
}
func NewWriteByWrite ¶
func NewWriteByWrite(name string) *WriteByWrite
func (*WriteByWrite) Bytes ¶
func (rec *WriteByWrite) Bytes() []byte
func (WriteByWrite) String ¶
func (rec WriteByWrite) String() string