Documentation ¶
Overview ¶
包ABI实现以太坊ABI(应用程序二进制 接口。
以太坊ABI是强类型的,在编译时已知 静态。此ABI将处理基本类型转换;无符号 签署,反之亦然。它不处理切片铸造这样 作为无符号切片到有符号切片。钻头尺寸类型铸造 处理。位大小为32的整数将正确转换为Int256, 等。
Index ¶
- Constants
- func U256(n *big.Int) []byte
- type ABI
- type Argument
- type Arguments
- func (arguments Arguments) LengthNonIndexed() int
- func (arguments Arguments) NonIndexed() Arguments
- func (arguments Arguments) Pack(args ...interface{}) ([]byte, error)
- func (arguments Arguments) PackValues(args []interface{}) ([]byte, error)
- func (arguments Arguments) Unpack(v interface{}, data []byte) error
- func (arguments Arguments) UnpackValues(data []byte) ([]interface{}, error)
- type Event
- type Method
- type Type
Examples ¶
Constants ¶
const ( IntTy byte = iota UintTy BoolTy StringTy SliceTy ArrayTy AddressTy FixedBytesTy BytesTy HashTy FixedPointTy FunctionTy )
类型枚举器
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ABI ¶
ABI保存有关合同上下文的信息,并提供 可调用方法。它将允许您键入check函数调用和 相应地打包数据。
func JSON ¶
JSON返回已分析的ABI接口,如果失败则返回错误。
Example ¶
const definition = `[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBar","outputs":[{"name":"","type":"bool"}],"type":"function"}]` abi, err := JSON(strings.NewReader(definition)) if err != nil { log.Fatalln(err) } out, err := abi.Pack("isBar", common.HexToAddress("01")) if err != nil { log.Fatalln(err) } fmt.Printf("%x\n", out) // 输出: // 1FBC40920000000000000000000000000000000000000000000000000000000000000000001
Output:
func (*ABI) MethodById ¶
method by id按4字节的ID查找方法 如果未找到,则返回nil
func (ABI) Pack ¶
打包给定的方法名以符合ABI。方法调用的数据 将由方法“id”、“args0”、“arg1…”组成。阿尔金方法ID由 其中4个字节和参数都是32个字节。 方法ID是从 方法字符串签名。(签名=baz(uint32,string32))
func (*ABI) UnmarshalJSON ¶
unmashaljson实现json.unmasheler接口
type Argument ¶
参数包含参数的名称和相应的类型。 类型在打包和测试参数时使用。
func (*Argument) UnmarshalJSON ¶
unmashaljson实现json.unmasheler接口
type Arguments ¶
type Arguments []Argument
func (Arguments) LengthNonIndexed ¶
lengthnonindexed返回不计算“indexed”参数时的参数数。只有事件 不能有“indexed”参数,方法输入/输出的参数应始终为false
func (Arguments) PackValues ¶
packvalues执行操作go format->hexdata 它在语义上与unpackvalues相反
func (Arguments) UnpackValues ¶
解包值可用于根据ABI规范解包ABI编码的十六进制数据。 不提供要解包的结构。相反,此方法返回一个包含 价值观。原子参数将是一个包含一个元素的列表。
type Method ¶
方法表示给定“name”的可调用项,以及该方法是否为常量。 如果方法为“const”,则不需要为此创建任何事务 特定方法调用。它可以很容易地使用本地虚拟机进行模拟。 例如,“balance()”方法只需要检索 从存储器中,因此不需要发送到 网络。像“transact”这样的方法需要一个tx,因此 标记为“真”。 输入指定此给定方法所需的输入参数。