如果您是Web3的新手,或者只是从坚固的开始,则建立一个端到头的ERC721或1155智能合约来部署您的NFT集合并不是一件容易的事。在此博客文章中,我们将探讨如何使用Infura的NFT API/SDK使用专门使用JavaScript部署集合。
支持的网络:
INFURA的NFT SDK支持各种网络,包括仲裁,雪崩(C链),以太坊,棕榈和多边形。重要的是要注意,Palm TestNet网络上的写操作仅由SDK支持,而可以使用REST API执行读取操作。
入门:
在进入代码之前,请确保您在系统上安装了最新版本的node.js。完成此操作后,让我们初始化一个新项目并安装必要的库。
获得测试资金:
前往faucet.infura.io抓住一些Sepolia Eth,我们将需要它来部署合同。
创建一个新的项目目录:
mkdir new_project
cd new_project
npm init -y
安装所需的库:
npm install -S @infura/sdk
npm i dotenv
创建一个.env文件:
在项目root目录中创建.ENV文件并添加以下数据:
INFURA_API_KEY=<API-KEY>
INFURA_API_KEY_SECRET=<API-KEY-SECRET>
WALLET_PUBLIC_ADDRESS=<WALLET-PUBLIC-ADDRESS>
WALLET_PRIVATE_KEY=<WALLET-PRIVATE-KEY>
用您自己的infura项目凭据替换占位符,并在受支持的网络上添加一个钱包地址及其私钥。
创建您的Contrancuri:
这将是指固定的JSON代码的链接,该链接告诉我们的程序您的收藏集的元数据是什么样的。从下面的示例中,我的看起来像这样:
{
“描述”:“ Jet”,
“图像”:“ https://gateway.pinata.cloud/ipfs/QmWtgDewkagKn7ZYTFyHfkJ3uYCnmL3gfdWdSQpXs4VCaN/jet_img3.png”,
“名称”:“我的飞机NFT”
}
图像链接到飞机的图片。我的元数据表明该集合中只有1个令牌,但是只要它们是唯一的,您就可以继续添加到每个令牌的JSON文件中。
代码实现:
现在我们已经设置了项目并安装了所需的库,让我们深入了解代码。
// Import the libraries and load the environment variables.
const { SDK, Auth, TEMPLATES } = require('@infura/sdk');
require('dotenv').config();
// Create Auth object
const auth = new Auth({
projectId: process.env.INFURA_API_KEY,
secretId: process.env.INFURA_API_KEY_SECRET,
privateKey: process.env.WALLET_PRIVATE_KEY,
rpcUrl: process.env.RPC_URL,
chainId: 11155111,
});
// Instantiate SDK
const sdk = new SDK(auth);
async function deployContract() {
try {
const newContract = await sdk.deploy({
template: TEMPLATES.ERC721Mintable,
params: {
name: 'Airplanes',
symbol: 'JET',
contractURI: 'https://gateway.pinata.cloud/ipfs/Qmbta8RRbdXjyvXwkuqmbsXkZ8ZRoMezNsP7g6n9Db1Mx1',
},
});
console.log('Contract address:', newContract.contractAddress);
} catch (error) {
console.error('An error occurred:', error);
}
}
deployContract();
解释:
上面的代码展示了使用Infura的NFT SDK实现的基本实现。首先,我们导入必要的库,并从.env文件加载环境变量。然后使用提供的凭据。
接下来,我们将SDK与Auth对象实例化。在deployContract
函数中,我们利用sdk.deploy
方法来部署新的NFT合同。我们将模板指定为TEMPLATES.ERC721Mintable
,并提供其他参数,例如合同名称,符号和Contracturi。
成功部署后,合同地址已记录到控制台。该地址代表新部署的NFT合同。
恭喜!您已成功部署了ERC721Mintable NFT,现在是Sepolia Testnet上的令牌的所有者。想要证明吗?您可以检查一下Sepolia Etherscan