关于除了Portal钱包以外发送交易到合约总会出现的失败问题

当前除了官方支持的Portal钱包以外,web钱包、安卓钱包等发送给合约地址的交易均会出现交易失败等问题,比如:https://confluxscan.io/transactionsdetail/0x55c80c5e21162c962ce9b723e44053cfe6c8c8257b3bd0c55d79fa3effe31cf3

问题遗留一月有余,最近两天开始着手处理修复安卓钱包这方面的问题。

之前反馈的结果是,发送交易出现的问题就来自于两方面,第一就是nonce,第二就是storageLimit。

当前遵循上次交流的情况,代码中进行调整,当前nonce使用cfx_getNextNonce取值,storageLimit通过cfx_estimateGasAndCollateral取值,发送给智能合约地址交易之后(比如0x8509f345de71f960d9863b13cb1d46bc1c83e3fe)依然会存在此问题,是否还存在其他没有注意到的情况?能否给提供下思路?

  1. 通过 estimate 接口获取到的预估值,有时会偏小,可以试试增大一些,比如 乘上 1.1
  2. 另外使用相同的nonce,但使用更高的 gasPrice,value 设为0,可以取消某笔交易

另外不要并发的发送交易,并发发送交易会导致相同的 nonce 使用多次

好的,谢谢,我改成1.1倍试试。

增加了10%、20%的storageLimit还是之前的问题。http://www.confluxscan.io/transactionsdetail/0x69bdb0385b020436353ab301000d8f51eb6707fdce16c3b7760767476b42826e

http://www.confluxscan.io/transactionsdetail/0x8533e49179d55e5ef584b8a997d59944e224060de1648c4cc0c423829e65ad08

把storagelimit暂时默认512,暂时解决

这个应该有些问题,我们需要看一下具体是哪里问题
暂时的方法应该需要调整 nonce,storageLimit,gasPrice
使用相同的 nonce,提高 gasPrice 重试
image