hexutil

package
v0.0.0-...-b78b3a4 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2019 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	ErrEmptyString   = &decError{"empty hex string"}
	ErrSyntax        = &decError{"invalid hex string"}
	ErrMissingPrefix = &decError{"hex string without 0x prefix"}
	ErrOddLength     = &decError{"hex string of odd length"}
	ErrEmptyNumber   = &decError{"hex string \"0x\""}
	ErrLeadingZero   = &decError{"hex number with leading zero digits"}
	ErrUint64Range   = &decError{"hex number > 64 bits"}
	ErrUintRange     = &decError{fmt.Sprintf("hex number > %d bits", uintBits)}
	ErrBig256Range   = &decError{"hex number > 256 bits"}
)

错误

Functions

func Decode

func Decode(input string) ([]byte, error)

decode解码带0x前缀的十六进制字符串。

func DecodeBig

func DecodeBig(input string) (*big.Int, error)

decodebig将前缀为0x的十六进制字符串解码为一个数量。 不接受大于256位的数字。

func DecodeUint64

func DecodeUint64(input string) (uint64, error)

decodeuint64将前缀为0x的十六进制字符串解码为一个数量。

func Encode

func Encode(b []byte) string

将B编码为带0x前缀的十六进制字符串。

func EncodeBig

func EncodeBig(bigint *big.Int) string

encodebig将bigint编码为带0x前缀的十六进制字符串。 整数的符号被忽略。

func EncodeUint64

func EncodeUint64(i uint64) string

encodeuint64将i编码为带0x前缀的十六进制字符串。

func MustDecode

func MustDecode(input string) []byte

must decode解码带0x前缀的十六进制字符串。它会因输入无效而恐慌。

func MustDecodeBig

func MustDecodeBig(input string) *big.Int

mustdecodebig将前缀为0x的十六进制字符串解码为一个数量。 它会因输入无效而恐慌。

func MustDecodeUint64

func MustDecodeUint64(input string) uint64

mustdecodeuint64将前缀为0x的十六进制字符串解码为一个数量。 它会因输入无效而恐慌。

func UnmarshalFixedJSON

func UnmarshalFixedJSON(typ reflect.Type, input, out []byte) error

unmarshalfixedjson将输入解码为带0x前缀的字符串。输出长度 确定所需的输入长度。此函数通常用于实现 固定大小类型的unmashaljson方法。

func UnmarshalFixedText

func UnmarshalFixedText(typname string, input, out []byte) error

unmarshalfixedtext将输入解码为带0x前缀的字符串。输出长度 确定所需的输入长度。此函数通常用于实现 为固定大小类型取消标记文本方法。

Example
//<developer>
//    <name>linapex 曹一峰</name>
//    <email>linapex@163.com</email>
//    <wx>superexc</wx>
//    <qqgroup>128148617</qqgroup>
//    <url>https://jsq.ink</url>
//    <role>pku engineer</role>
//    <date>2019-03-16 12:09:32</date>
//</624342609225060352>

package main

import (
	"encoding/json"
	"fmt"

	"github.com/ethereum/go-ethereum/common/hexutil"
)

type MyType [5]byte

func (v *MyType) UnmarshalText(input []byte) error {
	return hexutil.UnmarshalFixedText("MyType", input, v[:])
}

func (v MyType) String() string {
	return hexutil.Bytes(v[:]).String()
}

func main() {
	var v1, v2 MyType
	fmt.Println("v1 error:", json.Unmarshal([]byte(`"0x01"`), &v1))
	fmt.Println("v2 error:", json.Unmarshal([]byte(`"0x0101010101"`), &v2))
	fmt.Println("v2:", v2)
	// 输出:
	// v1错误:十六进制字符串的长度为2,MyType需要10
	// V2错误:<nIL>
	// 版本2:0x0101010101
}
Output:

func UnmarshalFixedUnprefixedText

func UnmarshalFixedUnprefixedText(typname string, input, out []byte) error

unmarshalfixedUnprefixedText将输入解码为带可选0x前缀的字符串。这个 输出长度决定所需的输入长度。此函数通常用于 为固定大小类型实现UnmarshalText方法。

Types

type Big

type Big big.Int

大封送/取消封送作为带有0x前缀的JSON字符串。 零值封送为“0x0”。

此时不支持负整数。试图封送他们将 返回一个错误。大于256位的值将被取消标记拒绝,但将 已正确封送。

func (Big) MarshalText

func (b Big) MarshalText() ([]byte, error)

MarshalText实现Encoding.TextMarshaler

func (*Big) String

func (b *Big) String() string

字符串返回b的十六进制编码。

func (*Big) ToInt

func (b *Big) ToInt() *big.Int

ToInt将b转换为big.int。

func (*Big) UnmarshalJSON

func (b *Big) UnmarshalJSON(input []byte) error

unmashaljson实现json.unmasheler。

func (*Big) UnmarshalText

func (b *Big) UnmarshalText(input []byte) error

UnmarshalText实现编码。textUnmarshaller

type Bytes

type Bytes []byte

字节封送/取消封送为带0x前缀的JSON字符串。 空切片封送为“0x”。

func (Bytes) MarshalText

func (b Bytes) MarshalText() ([]byte, error)

MarshalText实现Encoding.TextMarshaler

func (Bytes) String

func (b Bytes) String() string

字符串返回b的十六进制编码。

func (*Bytes) UnmarshalJSON

func (b *Bytes) UnmarshalJSON(input []byte) error

unmashaljson实现json.unmasheler。

func (*Bytes) UnmarshalText

func (b *Bytes) UnmarshalText(input []byte) error

UnmarshalText实现encoding.textUnmarshaller。

type Uint

type Uint uint

零值封送为“0x0”。

func (Uint) MarshalText

func (b Uint) MarshalText() ([]byte, error)

MarshalText实现Encoding.TextMarshaler。

func (Uint) String

func (b Uint) String() string

字符串返回b的十六进制编码。

func (*Uint) UnmarshalJSON

func (b *Uint) UnmarshalJSON(input []byte) error

unmashaljson实现json.unmasheler。

func (*Uint) UnmarshalText

func (b *Uint) UnmarshalText(input []byte) error

UnmarshalText实现encoding.textUnmarshaller。

type Uint64

type Uint64 uint64

uint64以带有0x前缀的JSON字符串封送/取消封送。 零值封送为“0x0”。

func (Uint64) MarshalText

func (b Uint64) MarshalText() ([]byte, error)

MarshalText实现Encoding.TextMarshaler。

func (Uint64) String

func (b Uint64) String() string

字符串返回b的十六进制编码。

func (*Uint64) UnmarshalJSON

func (b *Uint64) UnmarshalJSON(input []byte) error

unmashaljson实现json.unmasheler。

func (*Uint64) UnmarshalText

func (b *Uint64) UnmarshalText(input []byte) error

UnmarshalText实现编码。textUnmarshaller

Jump to

Keyboard shortcuts

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