首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >go-ethereum:无法检索account nonce

go-ethereum:无法检索account nonce
EN

Stack Overflow用户
提问于 2017-08-07 00:30:23
回答 1查看 562关注 0票数 1

我为我的智能合约创建了go bindings,但在执行事务时遇到问题。只有当我显式地指定txOpts.Nonce (参见注释行)时,它才起作用。当我留下注释的行时,我得到了这个错误:

代码语言:javascript
复制
Failed to execute transaction: failed to retrieve account nonce: json: cannot unmarshal hex number with leading zero digits into Go value of type hexutil.Uint64`

相关代码如下:

代码语言:javascript
复制
txOpts := bind.NewKeyedTransactor(key)

//txOpts.Nonce = big.NewInt(<nonce>)

tx, err := token.MyContract(txOpts, big.NewInt(1))
if err != nil {
    log.Fatalf("Failed to execute transaction: %v", err)
}

txOpts.Noncenil时,documentation告诉它将从txOpts.From检索挂起的现时值。

EN

回答 1

Stack Overflow用户

发布于 2017-11-28 02:57:36

对于其他对此感到疑惑的人,我在使用Truffle develop框架进行测试时遇到了这个错误。对我来说,这个问题是因为Truffle JSON-RPC服务器返回的十六进制值带有前导零,比如"0x04",这违反了这里的规范:

https://github.com/ethereum/wiki/wiki/JSON-RPC#hex-value-encoding

当编码数量(整数,数字)时:编码为十六进制,前缀为"0x",最紧凑的表示形式(稍有例外:0应表示为"0x0")。

错误: 0x0400 (不允许前导零)

也就是说,对于Truffle,这里已经有了一个拉取请求:https://github.com/trufflesuite/ganache-core/pull/32

如果您正在使用另一个JSON-RPC服务器,则必须亲自验证它是否确实遵循此规范。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45534151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档