You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用QuickNode trace_transaction接口出现non-array args错误求助

解决QuickNode API调用trace_transaction时的non-array args错误

错误non-array args的核心原因是JSON-RPC规范要求方法参数必须以数组形式传递,你的代码里直接传了单个交易哈希字符串,不符合规范。

修改方案

把调用make_request的代码行,将单个参数包裹进数组即可:

原代码:

result = client.make_request("trace_transaction", trx['transactionHash'].hex())

修改后:

result = client.make_request("trace_transaction", [trx['transactionHash'].hex()])

完整修改后的代码

def get_logs(block_hash):
    logs_block = w3.eth.get_logs({'blockHash': block_hash})
    for log in logs_block:
        trx = w3.eth.get_transaction_receipt(log['transactionHash'])
        # 将交易哈希放入数组中作为参数传递
        result = client.make_request("trace_transaction", [trx['transactionHash'].hex()])
        print(result)
get_logs('0xeadccd8a2436ab5d50736ae2f93998aa007d3115089c14733b9a5764f6c7caaf')
# number block = 20504126

补充说明

之前代码能正常运行,大概率是因为QuickNode的API之前对参数格式要求宽松,现在调整为严格遵循JSON-RPC 2.0规范,所以必须用数组包裹参数,哪怕只有一个参数。

内容的提问来源于stack exchange,提问作者Ta-enta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 18:14:51