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

使用secret.js部署Secret Network NFT时Secp256k1Pen未定义问题求助

问题分析与解决

错误原因

出现TypeError: Cannot read properties of undefined (reading 'fromMnemonic')的核心原因是你安装的secretjs版本和教程依赖版本不兼容:

  • 教程使用的是旧版secretjs(如v1.x/v2.x),这类版本中确实存在Secp256k1Pen类;
  • 若你安装的是v10+的新版secretjs,该类已被移除,且签名模块API结构大幅调整,导致你无法从secretjs中导出Secp256k1Pen,最终该变量为undefined。

解决方法

你有两种可行方案:

1. 回退到教程对应的旧版secretjs

卸载当前版本,安装教程匹配的版本(比如视频中常用的1.7.2,可对照视频依赖确认具体版本号):

npm uninstall secretjs
npm install secretjs@1.7.2

完成后重新运行部署脚本,原代码即可正常执行。

2. 适配新版secretjs的API

若想使用新版secretjs,需替换签名相关代码逻辑,示例如下:
首先替换导入部分:

const { SigningCosmWasmClient } = require("secretjs");
const { DirectSecp256k1HdWallet } = require("@cosmjs/proto-signing");

然后替换原Secp256k1Pen的初始化代码:

// 替代原Secp256k1Pen.fromMnemonic逻辑
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix: "secret" });
const [account] = await wallet.getAccounts();

// 后续创建SigningCosmWasmClient时使用wallet的签名器
const client = await SigningCosmWasmClient.connectWithSigner(
  "https://rpc.testnet.secret.network", // 你的节点地址
  wallet
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:17:31