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

使用Node.js和Solana web3.js开发模因币交易Bot时遇bs58.decode非函数的TypeError错误

使用Node.js和Solana web3.js开发模因币交易Bot时遇bs58.decode非函数的TypeError错误

嘿,我之前折腾Solana Bot的时候也碰到过一模一样的报错,别发愁,这个问题基本上是bs58模块的导入方式或者版本兼容搞的鬼,咱们一步步来搞定它:

先搞清楚错误根源

这个报错说明你调用bs58.decode()的时候,bs58对象里根本没有decode这个方法,大概率是因为bs58的版本更新后导出方式变了。

解决方法分两种情况:

  • 如果用的是bs58 v5及以上版本
    新版本的bs58改成了ES模块风格的默认导出,不再把decode挂载在导出的对象上了。如果你还是用CommonJS的require导入,就会出问题。
    之前你可能写的是:

    const bs58 = require('bs58');
    bs58.decode(yourAddress); // 这里就会报错
    

    改成下面两种方式都可以:

    // 方案1:用default导出
    const decode = require('bs58').default;
    decode(yourAddress);
    // 方案2:切换成ES模块导入(需要把文件后缀改成.mjs,或者在package.json里加"type": "module")
    import decode from 'bs58';
    decode(yourAddress);
    
  • 不想改代码?直接降级版本
    如果你懒得调整导入方式,也可以把bs58降级到v4.x版本,这个版本还是沿用旧的CommonJS导出方式,直接用const bs58 = require('bs58')就能正常调用bs58.decode()。执行下面的命令就行:

    npm install bs58@4.0.1
    

额外排查小技巧

  • 先确认你项目里bs58的实际版本,执行npm list bs58就能看到版本号,快速判断是新老版本的问题。
  • 有时候Solana web3.js本身也依赖bs58,如果你的项目里单独装的bs58版本和web3.js依赖的版本冲突,也可能出问题。这时候可以试试删掉node_modules和package-lock.json,然后重新跑npm install,让所有依赖版本对齐。

备注:内容来源于stack exchange,提问作者Linda Baptiste

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:13:05