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

NEAR RPC API View Contract State Changes返回Base64解码问题求助

NEAR RPC View Contract State Changes接口返回数据解码问题

我在使用NEAR RPC API获取链上数据时,调用了EXPERIMENTAL_changes接口(对应合约状态变更查询功能),但解析返回的Base64格式响应值时遇到了问题,寻求解决指导。

请求参数

我的调用请求如下:

{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "EXPERIMENTAL_changes",
    "params": {
        "changes_type": "data_changes",
        "block_id": 112414444,
        "account_ids": ["token.lonkingnearbackto2024.near"],
        "key_prefix_base64": ""
    }
}

返回响应片段

接口返回的JSON响应片段:

{'cause': {'type': 'receipt_processing', 'receipt_hash': '7dAQnvkPUzgUHpRdm4BMTDaiFLYx5ckSjBZjKH1LYcqg'}, 'type': 'data_update', 'change': {'account_id': 'token.lonkingnearbackto2024.near', 'key_base64': 'YRMAAAB2Mi5yZWYtZmluYW5jZS5uZWFy', 'value_base64': 'YQ9Ya4aIcxgAAAAAAAAAAA=='}}

我的解析结果与问题

我用Python解析后得到以下内容:

key:  YRMAAAB2Mi5yZWYtZmluYW5jZS5uZWFy
value:  YQ9Ya4aIcxgAAAAAAAAAAA==
key in binary:  b'a\x13\x00\x00\x00v2.ref-finance.near'
value in binary:  b'a\x0fXk\x86\x88s\x18\x00\x00\x00\x00\x00\x00\x00\x00'
key decoded (utf-8):  av2.ref-finance.near
value decoded (utf-8):  aXk��s

这次调用本应捕获Ref Finance上的一笔swap交易,av2.ref-finance.near这个key值逻辑上是正确的,但前面多了一个未知的a;同时value_decoded显示为乱码。我尝试过utf-8、ascii等多种解码方式都无法得到可读结果,了解到Borsh但不确定是否适用,想请教:

  • 我的解码方式哪里出错了?
  • 是否需要使用Borsh解码这些二进制数据?
  • 这些二进制数据到底代表什么?是JSON对象吗?

我的解析代码

生成上述结果的Python代码:

key_base64 = i['change']['key_base64']
value_base64 = i['change']['value_base64']
print(i)
print("key: ", key_base64)
print("value: ", value_base64)

key_binaries = base64.b64decode(key_base64)
value_binaries = base64.b64decode(value_base64)
print("key binary: ", key_binaries)
print("value binary: ", value_binaries)

key_decoded = key_binaries.decode('utf-8', errors='replace')
value_decoded = value_binaries.decode('utf-8', errors='replace')

内容的提问来源于stack exchange,提问作者b_swiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:05:27