Documentation ¶
Index ¶
- Constants
- func Bytes2Hex(d []byte) string
- func CopyBytes(b []byte) (copiedBytes []byte)
- func FromHex(s string) []byte
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func HexAddrToXwcAddr(hexAddr string) (string, error)
- func HexAddrToXwcConAddr(hexAddr string) (string, error)
- func HexKeyToWifKey(hexKey string) (string, error)
- func HexPubkeyToXwcPubkey(hexPubkey string) (string, error)
- func IsHexAddress(s string) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func PackUint16(v uint16) []byte
- func PackUint32(v uint32) []byte
- func PackUint64(v uint64) []byte
- func PackUint8(v uint8) []byte
- func PackVarInt(v uint64) []byte
- func RightPadBytes(slice []byte, l int) []byte
- func ToHex(b []byte) stringdeprecated
- func ToHexArray(b [][]byte) []string
- func TrimLeftZeroes(s []byte) []byte
- func TrimRightZeroes(s []byte) []byte
- func WifKeyToHexKey(wifKey string) (string, error)
- func XwcAddrToHexAddr(xwcAddr string) (string, error)
- func XwcConAddrToHexAddr(xwcConAddr string) (string, error)
- func XwcPubkeyToHexPubkey(xwcPubkey string) (string, error)
- func XwcPubkeyToXwcAddr(xwcPubkey string) (string, error)
- type Address
- func (a Address) Bytes() []byte
- func (a Address) Format(s fmt.State, c rune)
- func (a Address) Hash() Hash
- func (a Address) Hex() string
- func (a Address) ImplementsGraphQLType(name string) bool
- func (a Address) MarshalText() ([]byte, error)
- func (a *Address) Scan(src interface{}) error
- func (a *Address) SetBytes(b []byte)
- func (a Address) String() string
- func (a *Address) UnmarshalGraphQL(input interface{}) error
- func (a *Address) UnmarshalText(input []byte) error
- func (a Address) Value() (driver.Value, error)
- type Asset
- type Code
- type ConAddress
- type ContractInvokeOperation
- type ContractRegisterOperation
- type ContractTransferOperation
- type Hash
- func (h Hash) Big() *big.Int
- func (h Hash) Bytes() []byte
- func (h Hash) Format(s fmt.State, c rune)
- func (h Hash) Generate(rand *rand.Rand, size int) reflect.Value
- func (h Hash) Hex() string
- func (Hash) ImplementsGraphQLType(name string) bool
- func (h Hash) MarshalText() ([]byte, error)
- func (h *Hash) Scan(src interface{}) error
- func (h *Hash) SetBytes(b []byte)
- func (h Hash) String() string
- func (h *Hash) UnmarshalGraphQL(input interface{}) error
- func (h *Hash) UnmarshalJSON(input []byte) error
- func (h *Hash) UnmarshalText(input []byte) error
- func (h Hash) Value() (driver.Value, error)
- type Memo
- type MemoMessage
- type MixedcaseAddress
- func (ma *MixedcaseAddress) Address() Address
- func (ma *MixedcaseAddress) MarshalJSON() ([]byte, error)
- func (ma *MixedcaseAddress) Original() string
- func (ma *MixedcaseAddress) String() string
- func (ma *MixedcaseAddress) UnmarshalJSON(input []byte) error
- func (ma *MixedcaseAddress) ValidChecksum() bool
- type OperationPair
- type OperationType
- type PubKey
- type PubKeyType
- type Signature
- type Transaction
- type TransferOperation
- type UTCTime
- type UnprefixedAddress
- type UnprefixedHash
Constants ¶
const ( // HashLength is the expected length of the hash HashLength = 20 // AddressLength is the expected length of the address AddressLength = 20 PubkeyLength = 33 )
Lengths of hashes and addresses in bytes.
const ( ADDR_NORMAL = 0x35 ADDR_MULTISIG = 0x32 ADDR_CONTRACT = 0x1c )
const (
WIF_VERSION = 0x80
)
const (
XWC_PREFIX = "XWC"
)
Variables ¶
This section is empty.
Functions ¶
func FromHex ¶
FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".
func Hex2BytesFixed ¶
Hex2BytesFixed returns bytes of a specified fixed length flen.
func HexAddrToXwcAddr ¶
func HexAddrToXwcConAddr ¶
func HexKeyToWifKey ¶
func HexPubkeyToXwcPubkey ¶
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Ethereum address or not.
func LeftPadBytes ¶
LeftPadBytes zero-pads slice to the left up to length l.
func PackUint16 ¶
func PackUint32 ¶
func PackUint64 ¶
func PackVarInt ¶
func RightPadBytes ¶
RightPadBytes zero-pads slice to the right up to length l.
func ToHexArray ¶
ToHexArray creates a array of hex-string based on []byte
func TrimLeftZeroes ¶
TrimLeftZeroes returns a subslice of s without leading zeroes
func TrimRightZeroes ¶
TrimRightZeroes returns a subslice of s without trailing zeroes
func WifKeyToHexKey ¶
func XwcAddrToHexAddr ¶
func XwcConAddrToHexAddr ¶
func XwcPubkeyToHexPubkey ¶
func XwcPubkeyToXwcAddr ¶
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents the 20 byte address of an Ethereum account.
func BigToAddress ¶
BigToAddress returns Address with byte values of b. If b is larger than len(h), b will be cropped from the left.
func BytesToAddress ¶
BytesToAddress returns Address with value b. If b is larger than len(h), b will be cropped from the left.
func HexToAddress ¶
HexToAddress returns Address with byte values of s. If s is larger than len(h), s will be cropped from the left.
func (Address) Format ¶
Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.
func (Address) ImplementsGraphQLType ¶
ImplementsGraphQLType returns true if Hash implements the specified GraphQL type.
func (Address) MarshalText ¶
MarshalText returns the hex representation of a.
func (*Address) SetBytes ¶
SetBytes sets the address to the value of b. If b is larger than len(a) it will panic.
func (*Address) UnmarshalGraphQL ¶
UnmarshalGraphQL unmarshals the provided GraphQL query data.
func (*Address) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type Asset ¶
func (*Asset) SetDefault ¶
func (a *Asset) SetDefault()
type Code ¶
type Code struct { // need to order by ascii Abi []string `json:"fee"` // need to order by ascii OfflineAbi []string `json:"offline_abi"` // need to order by ascii Events []string `json:"events"` // need to order by ascii StorageProperties map[string]uint32 `json:"storage_properties"` Code []byte `json:"code"` CodeHash string `json:"code_hash"` }
TODO
func (*Code) LoadFromHex ¶
type ConAddress ¶
type ConAddress [AddressLength]byte
func (ConAddress) MarshalText ¶
func (a ConAddress) MarshalText() ([]byte, error)
MarshalText returns the hex representation of a.
func (*ConAddress) SetBytes ¶
func (a *ConAddress) SetBytes(b []byte)
func (*ConAddress) UnmarshalText ¶
func (a *ConAddress) UnmarshalText(input []byte) error
UnmarshalText parses a hash in hex syntax.
type ContractInvokeOperation ¶
type ContractInvokeOperation struct { Fee Asset `json:"fee"` InvokeCost uint64 `json:"invoke_cost"` GasPrice uint64 `json:"gas_price"` CallerAddr Address `json:"caller_addr"` CallerPubkey PubKeyType `json:"caller_pubkey"` ContractId ConAddress `json:"contract_id"` ContractApi string `json:"contract_api"` ContractArg string `json:"contract_arg"` GuaranteeId string `json:"guarantee_id,omitempty"` }
func (*ContractInvokeOperation) Pack ¶
func (cio *ContractInvokeOperation) Pack() []byte
type ContractRegisterOperation ¶
type ContractRegisterOperation struct { Fee Asset `json:"fee"` InitCost uint64 `json:"init_cost"` GasPrice uint64 `json:"gas_price"` OwnerAddr Address `json:"owner_addr"` OwnerPubkey PubKey `json:"owner_pubkey"` RegisterTime uint32 `json:"register_time"` ContractId ConAddress `json:"contract_id"` ContractCode Code `json:"contract_code"` InheritFrom ConAddress `json:"inherit_from"` Extensions []interface{} `json:"extensions"` GuaranteeId string `json:"guarantee_id,omitempty"` }
type ContractTransferOperation ¶
type ContractTransferOperation struct { Fee Asset `json:"fee"` InvokeCost uint64 `json:"invoke_cost"` GasPrice uint64 `json:"gas_price"` CallerAddr Address `json:"caller_addr"` CallerPubkey PubKeyType `json:"caller_pubkey"` ContractId ConAddress `json:"contract_id"` Amount Asset `json:"amount"` Param string `json:"param"` GuaranteeId string `json:"guarantee_id,omitempty"` }
func (*ContractTransferOperation) Pack ¶
func (cto *ContractTransferOperation) Pack() []byte
type Hash ¶
type Hash [HashLength]byte
Hash represents the 32 byte Keccak256 hash of arbitrary data.
func BigToHash ¶
BigToHash sets byte representation of b to hash. If b is larger than len(h), b will be cropped from the left.
func BytesToHash ¶
BytesToHash sets b to hash. If b is larger than len(h), b will be cropped from the left.
func HexToHash ¶
HexToHash sets byte representation of s to hash. If b is larger than len(h), b will be cropped from the left.
func (Hash) Format ¶
Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.
func (Hash) ImplementsGraphQLType ¶
ImplementsGraphQLType returns true if Hash implements the specified GraphQL type.
func (Hash) MarshalText ¶
MarshalText returns the hex representation of h.
func (*Hash) SetBytes ¶
SetBytes sets the hash to the value of b. If b is larger than len(h), b will be cropped from the left.
func (Hash) String ¶
String implements the stringer interface and is used also by the logger when doing full logging into a file.
func (*Hash) UnmarshalGraphQL ¶
UnmarshalGraphQL unmarshals the provided GraphQL query data.
func (*Hash) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Hash) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type Memo ¶
type Memo struct { From PubKey `json:"from"` To PubKey `json:"to"` Nonce uint64 `json:"nonce"` Message MemoMessage `json:"message"` }
type MemoMessage ¶
type MemoMessage string
func (MemoMessage) MarshalText ¶
func (a MemoMessage) MarshalText() ([]byte, error)
func (*MemoMessage) UnmarshalText ¶
func (a *MemoMessage) UnmarshalText(input []byte) error
type MixedcaseAddress ¶
type MixedcaseAddress struct {
// contains filtered or unexported fields
}
MixedcaseAddress retains the original string, which may or may not be correctly checksummed
func NewMixedcaseAddress ¶
func NewMixedcaseAddress(addr Address) MixedcaseAddress
NewMixedcaseAddress constructor (mainly for testing)
func NewMixedcaseAddressFromString ¶
func NewMixedcaseAddressFromString(hexaddr string) (*MixedcaseAddress, error)
NewMixedcaseAddressFromString is mainly meant for unit-testing
func (*MixedcaseAddress) Address ¶
func (ma *MixedcaseAddress) Address() Address
Address returns the address
func (*MixedcaseAddress) MarshalJSON ¶
func (ma *MixedcaseAddress) MarshalJSON() ([]byte, error)
MarshalJSON marshals the original value
func (*MixedcaseAddress) Original ¶
func (ma *MixedcaseAddress) Original() string
Original returns the mixed-case input string
func (*MixedcaseAddress) String ¶
func (ma *MixedcaseAddress) String() string
String implements fmt.Stringer
func (*MixedcaseAddress) UnmarshalJSON ¶
func (ma *MixedcaseAddress) UnmarshalJSON(input []byte) error
UnmarshalJSON parses MixedcaseAddress
func (*MixedcaseAddress) ValidChecksum ¶
func (ma *MixedcaseAddress) ValidChecksum() bool
ValidChecksum returns true if the address has valid checksum
type OperationPair ¶
type OperationPair [2]interface{}
type OperationType ¶
type OperationType interface {
Pack() []byte
}
type PubKey ¶
type PubKey [PubkeyLength]byte
func (PubKey) MarshalText ¶
func (*PubKey) UnmarshalText ¶
type PubKeyType ¶
type PubKeyType [PubkeyLength]byte
func (PubKeyType) MarshalText ¶
func (a PubKeyType) MarshalText() ([]byte, error)
func (*PubKeyType) SetBytes ¶
func (a *PubKeyType) SetBytes(b []byte)
func (*PubKeyType) UnmarshalText ¶
func (a *PubKeyType) UnmarshalText(input []byte) error
type Signature ¶
type Signature []byte
func (Signature) MarshalText ¶
func (*Signature) UnmarshalText ¶
type Transaction ¶
type Transaction struct { RefBlockNum uint16 `json:"ref_block_num"` RefBlockPrefix uint32 `json:"ref_block_prefix"` Expiration UTCTime `json:"expiration"` Operations []OperationPair `json:"operations"` Extensions []interface{} `json:"extensions"` Signatures []Signature `json:"signatures"` }
func (*Transaction) Pack ¶
func (tx *Transaction) Pack() []byte
type TransferOperation ¶
type TransferOperation struct { Fee Asset `json:"fee"` GuaranteeId string `json:"guarantee_id,omitempty"` From string `json:"from"` To string `json:"to"` FromAddr Address `json:"from_addr"` ToAddr Address `json:"to_addr"` Amount Asset `json:"amount"` Memo *Memo `json:"memo,omitempty"` Extensions []interface{} `json:"extensions"` }
func (*TransferOperation) Pack ¶
func (to *TransferOperation) Pack() []byte
type UnprefixedAddress ¶
type UnprefixedAddress Address
UnprefixedAddress allows marshaling an Address without 0x prefix.
func (UnprefixedAddress) MarshalText ¶
func (a UnprefixedAddress) MarshalText() ([]byte, error)
MarshalText encodes the address as hex.
func (*UnprefixedAddress) UnmarshalText ¶
func (a *UnprefixedAddress) UnmarshalText(input []byte) error
UnmarshalText decodes the address from hex. The 0x prefix is optional.
type UnprefixedHash ¶
type UnprefixedHash Hash
UnprefixedHash allows marshaling a Hash without 0x prefix.
func (UnprefixedHash) MarshalText ¶
func (h UnprefixedHash) MarshalText() ([]byte, error)
MarshalText encodes the hash as hex.
func (*UnprefixedHash) UnmarshalText ¶
func (h *UnprefixedHash) UnmarshalText(input []byte) error
UnmarshalText decodes the hash from hex. The 0x prefix is optional.