使用Solana Python API查询指定地址交易返回异常如何解决
问题修复方案
1. 调用get_signatures_for_address返回空结果的问题
你当前使用的是Devnet(开发网)的RPC节点https://api.devnet.solana.com,而你要查询的地址2AQdpHJ2JpcEgPiATUXjQxA8QmafFegfQwSLWSprPicm的交易都发生在Solana主网,开发网节点不会同步主网的交易数据,自然返回空。
修复方法:将RPC节点替换为主网公开节点即可,示例:
from solana.rpc.api import Client # 替换为Solana主网RPC节点 solana_client = Client("https://api.mainnet-beta.solana.com") resp = solana_client.get_signatures_for_address("2AQdpHJ2JpcEgPiATUXjQxA8QmafFegfQwSLWSprPicm", limit=1) print(resp)
调用后即可获取到对应地址的主网交易签名数据。
2. Vote111地址能返回结果但签名查不到的问题
Vote111111111111111111111111111111111111111是Solana官方文档用于示例的测试地址,仅在Devnet上存在测试交易数据,你返回的签名是Devnet链上的测试交易,自然无法在主网的Solana浏览器中查询到,属于正常情况。
3. 传入地址返回WrongSize错误的问题
Solana的标准账户地址是32字节的公钥经过base58编码后的字符串,长度范围在32~44位之间。你传入的地址HLiBGYYxaQqQx8UTPHEahqcd7aZjkDgN3bihc3hYM3SDUBGU9LFrQSnx9eje长度明显超过标准地址长度,大概率是误将私钥、助记词派生路径或者其他非地址字符串当成了账户地址传入,校验传入参数的正确性即可解决该错误。
内容的提问来源于stack exchange,提问作者Mr. N
相关产品推荐
相关产品推荐

