上周三晚上,老陈盯着tpwallet里的待处理交易,页面显示pending已经18分钟。他原本要抢一个热门NFT的,gas设了28 gwei,结果链上突然拥堵,同一批mint的人把费率推到70 gwei以上。这笔交易就是排在那里不动,nonce也没被消耗。老陈第一次意识到。tpwallet 加速交易不是点一下“加速”就完事,先得判断卡在gas、RPC节点还是nonce。
我让他打开区块浏览器查交易哈希。状态显示pending,节点返回的gas价格已经翻倍。问题很明确,出价低于当前市场。TPWallet里那笔待处理记录旁边有“加速”选项。本质是用同一个nonce重新发一笔交易,把gas调高。老陈把gas上限28 gwei提还有62 gwei,优先费也加了。
这里有个细节的。钱包估算的gas limit不能乱改,否则可能执行失败还扣费。
十分钟后,新区块打包了那笔替换交易。老陈的mint成功,成本比预想多出十几美元吧?他问我的,有没有更省的办法呢?我说有。要看场景了。
交易只是转账,不是抢购,可以取消原交易,发一笔0 ETH给自己了。nonce相同,gas更高。tpwallet 加速交易在抢购场景里就是竞价,慢一秒可能就错过的。若RPC节点本身拥堵,换一个低延迟节点有时比加gas更管用。另一个案例更典型。小林用TPWallet参与空投领取了,交易卡了半小时。他反复点加速,结果钱包里出现多笔同nonce交易,最后只有一笔上链,其他被丢弃。
多花的gas不会退。我的观察是tpwallet 加速交易之前。先看nonce是否重复呢?再决定替换哪一笔呢?
盲目加价只会让记录更乱。加速交易不是魔法,是拿更高费用换区块空间。TPWallet提供了入口,判断得自己做。当前base fee、优先费、节点延迟、交易紧急程度了,四个变量缺一不能。老陈后来把常用RPC换成付费节点,抢购前先小额测试,pending概率降了。这比每次卡单再救火更实在。