之前使用java代码调用合约时,通过一下方法来生成input data。
new Function(functionName, argumentList, Collections.<TypeReference<?>>emptyList());
FunctionEncoder.encode(functionCall);
这种方法之用输入合约名称和合约的参数,没有使用abi.json信息,我想知道如何使用golang来达到类似的效果。我只有合约地址,账户公私钥,合约代码信息。 研究过一段时间这个方法,但是他一致没有正常运行。
name := "add"
rawName := "add"
funType := 0
mutability := "view"
param1, err := abi.NewType("value", "int", nil)
inputs := abi.Arguments{
abi.Argument{
Name: "value",
Type: param1,
Indexed: false,
},
}
method := abi.NewMethod(name, rawName, abi.FunctionType(funType), mutability, false, false, inputs, nil)
input, err := method.Inputs.Pack(1)
if err != nil {
log.Fatal(err)
}
log.Println(common.Bytes2Hex(input))
在没有合约abi.json的情况下,如何生成input data信息呢?