Solana交易签名出现Non-base58 character错误,求原因排查
Solana交易签名报错
Non-base58 character的可能原因 - 签名密钥格式无效:
this._signer.secretKey不是合法的base58编码私钥,或是被错误转换为包含非base58字符的格式。Solana私钥需为base58字符串(仅包含0-9、A-Z、a-z排除IlO0的字符),或是正确的Uint8Array类型,若字符串混入非法字符就会触发该错误。 - 交易核心参数损坏:
recentBlockhash或feePayer公钥字段包含非base58字符。比如公钥从外部获取时被篡改、编码错误,或是解析过程中出现格式异常,都会导致签名校验失败。 - 指令数据格式错误:循环添加的
instructions中,某条指令的data字段为无效base58编码内容,或是构造指令时传入了含非法字符的字符串,签名交易时库会校验整个交易的base58相关字段,进而触发错误。 - 库参数类型不匹配:若使用的Solana交易库(如
@solana/web3.js)对参数类型要求严格,比如secretKey需传入Uint8Array却传入了格式错误的字符串,或是版本过旧导致的兼容性问题,也会引发base58校验错误。
内容的提问来源于stack exchange,提问作者Andon Mitev
相关产品推荐
相关产品推荐

