我的 Javascript 文件由于 bigint 错误而无法运行



我试图使用@metaplex/js做一些NFT铸造。通常我的。js文件工作正常,但当我运行文件时,这个错误出现了。

bigint:加载绑定失败,将使用纯JS(尝试npm run rebuild?)

我不太明白那是什么意思。所以,我试着运行npm运行重建,但重建据说是一个缺失的脚本,我找不到一个方法来安装它。

下面是我的代码:
import { Connection, programs} from "@metaplex/js";
import { Loader } from "@solana/web3.js";
const { metadata: {Metadata}} = programs;

const connection = new Connection("devnet");
const tokenPublicKey = 'my_adress';
const run = async() => {
try{
const ownedMetadata = await Metadata.Loader(connection,tokenPublicKey)
console.log(ownedMetadata)
}
catch{
console.log('Failed to fetch')
}
};
run();

如果你有任何想法,或者只是解释一下我的错误意味着什么,我将不胜感激。

出现此错误是因为嵌套依赖项的编译步骤在您的平台上可能无法成功。这个问题提供了很好的解释。

[…这是因为我们的一个依赖项(bigint-buffer)在安装时运行了一个编译步骤,这个步骤可能会因为几个原因而失败。其中一个原因是,您的系统可能没有库正在寻找的构建工具。您可以在Windows上安装这些构建工具(参见https://www.npmjs.com/package/windows-build-tools),但实际上您不需要这样做,因为它会自动退回到纯JS解决方案。虽然我同意……那个警告真烦人。

但是,这应该会给你一个警告,并且仍然允许你编译你的代码。

值得注意的是,Metaplex的当前JS SDK将被弃用,而支持新的:https://github.com/metaplex-foundation/js-next

使用新的JS SDK,您可以使用以下代码获取NFT。

import { Metaplex } from "@metaplex-foundation/js";
import { Connection, clusterApiUrl } from "@solana/web3.js";
const connection = new Connection(clusterApiUrl("mainnet-beta"));
const metaplex = new Metaplex(connection);
const mintAddress = new PublicKey("ATe3DymKZadrUoqAMn7HSpraxE4gB88uo1L9zLGmzJeL");
const nft = await metaplex.nfts().findByMint({ mintAddress });

最新更新