关于在 Velas 上创建 NFT 您需要了解的一切
在 Velas 上创建 NFT 可以给团队带来各种好处。其中包括利用与以太坊兼容的智能合约、享受闪电般的快速交易速度、免于高额汽油费等等。
内容:
介绍
NFT 是一项革命性技术,可以通过多种方式让用户受益。例如,它以前所未有的方式向用户提供其数字资产的所有权证明。此外,NFT 可以带来全新的创造者经济。
考虑到 NFT 带来的种种好处,每个人都在谈论用 NFT 来增强他们的项目能力。但你知道如何开发支持NFT的智能合约吗?如果没有,请不要担心,因为本文将引导您完成在 Velas 测试网上创建 NFT 智能合约的所有步骤。
请注意,本教程将向您展示如何创建一个一对一的 NFT,而不是一个集合。因此,这个智能合约将使用户能够将他们的任何照片或视频创建为 NFT。
为什么是维拉斯?
有许多可用的区块链协议。但开发人员在使用它们时仍然面临问题。例如,以太坊面临高昂的汽油费和缓慢的交易处理,而其他区块链则要求开发人员使用 Rust 等不熟悉的语言。
韦拉斯,其中大多数担忧并不存在。 Velas 的解决方案继承了 Solana 技术的最佳 DNA,并补充了额外的功能以支持与 EVM。这为用户和开发人员提供了一个理想的平台,保证卓越的用户体验和更快的交易时间。此外,它通过 Solidity 支持简化了开发过程。
先决条件
为了继续进行,您应该拥有 Node 和 Yarn(包管理器)。另外,您应该具备 Solidity 的基本知识。因此,如果您不熟悉它,请先熟悉 Solidity 和 首先是安全帽.
设置
要设置我们的项目,请在终端中执行以下命令。
npx hardhat
如果您没有安装 Hardhat,您将看到以下输出。
Type y 并点击 进入,它将继续安装安全帽。但是,如果您已经安装了 Hardhat,则不会显示安装 Hardhat 的提示。相反,它会询问一些有关您希望如何设置项目的问题。
我们想要在当前文件夹中有一个基本的 Javascript 项目,所以只需单击 进入 为了一切。
然后我们必须安装项目的依赖项。要安装它们,我们将使用以下命令。
npm install --save-dev "^2.10.1" "@nomicfoundation/^1.0.1" "@openzeppelin/contracts" "dotenv"
当我们使用 Yarn 时,我们必须安装 Hardhat-toolbox 使用的库。
yarn add --dev @nomicfoundation/hardhat-toolbox @nomicfoundation/hardhat-network-helpers @nomicfoundation/hardhat-chai-matchers @nomiclabs/hardhat-ethers @nomiclabs/hardhat-etherscan chai ethers hardhat-gas-reporter solidity-coverage @typechain/hardhat typechain @typechain/ethers-v5 @ethersproject/abi @ethersproject/providers
如果您使用 npm 版本 7 或更高版本,这些库将直接安装。
值得注意的是,在编写智能合约之前我们还需要再迈出一步。那就是删除任何 .sol 您在合同文件夹中看到的文件并创建一个名为的新文件 VELASNFT.sol。这是我们编写合同的文件夹。
如何编写 NFT 智能合约
构造函数
首先,我们将创建一个准系统智能合约,在其中定义 Solidity 版本并创建一个空的智能合约主体。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9; contract VELASNFT { }
我们必须导入基础智能合约和实用智能合约。值得注意的是,这些合约将用于构建我们的 NFT 智能合约。基础合约是 ERC721URI存储,具有基于存储的令牌 URI 管理的 ERC721 实现。
Counters 是一种实用合约,将用于计算 NFT 的铸造数量。
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
我们的合约将继承基础合约。这将允许用户访问基础合约和我们的智能合约的所有功能。
contract VELASNFT is ERC721URIStorage { }
现在我们可以为我们的合约编写构造函数了。值得注意的是,我们的构造函数不会有任何参数,但您必须将名称和符号传递给 ERC721 构造函数。
constructor() ERC721("VELASNFT", "VN") {}
在此步骤结束时,您的智能合约应如下所示。
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol"; contract VELASNFT is ERC721URIStorage { constructor() ERC721("VELASNFT", "VN") {} }
编写薄荷函数
对于mint功能,我们需要先设置计数器。将以下代码片段粘贴到构造函数上方的合约中。
using Counters for Counters.Counter; Counters.Counter private _tokenIds;
我们将 Counters 库的所有函数分配给 Counter 结构体。然后我们将创建一个名为的私有变量 _tokenIds.
现在我们开始开发该功能。需要一个参数: 令牌URI,这将是存储所有元数据的 json 文件的 url。我们将在以下部分中详细介绍元数据。 mint 函数将具有公共可见性,并将返回铸造的 NFT 的 ID,其类型为 uint256。
function mint(string memory tokenURI) public returns (uint256) { }
在函数内部,我们首先获取计数器的当前计数。
为了铸造 NFT,我们将使用 _薄荷 以地址和 ID 作为参数的函数。对于地址,我们将使用呼叫者的地址,ID 将是当前计数。之后,我们必须保存 令牌URI。
为此,我们必须 _setTokenURI, 它将保存带有相应 ID 的 URI 作为密钥。最后,我们将递增计数器,然后递增所创建的 NFT 的 ID。
function mint(string memory tokenURI) public returns (uint256) { uint256 newItemId = _tokenIds.current(); _mint(minter, newItemId); _setTokenURI(newItemId, tokenURI); _tokenIds.increment(); return newItemId; }
恭喜!现在您的智能合约可以铸造 NFT!这是整个合同的概述。
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.9; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol"; contract VELASNFT is ERC721URIStorage { using Counters for Counters.Counter; Counters.Counter private _tokenIds; constructor() ERC721("VELASNFT", "VN") {} function mint(string memory tokenURI) public returns (uint256) { uint256 newItemId = _tokenIds.current(); _mint(msg.sender, newItemId); _setTokenURI(newItemId, tokenURI); _tokenIds.increment(); return newItemId; }
}
如何部署合约
我们已经构建了 NFT 智能合约。令人兴奋的一步来了,部署。但在部署合约之前,我们需要对其进行编译并编写部署合约的脚本。要编译合约,请在终端中运行以下命令。
npx hardhat compile
您将看到以下输出。
现在让我们进入下一阶段,编写用于部署此智能合约的脚本。为此,我们将转到脚本文件夹并打开deploy.js 文件。然后,删除所有内容并将以下代码段粘贴到该文件中。
const hre = require("hardhat"); async function main () { // We get the contract to deploy const VELASNFT = await hre.ethers.getContractFactory('VELASNFT'); console.log("Deploying NFT contract..."); const velasnft = await VELASNFT.deploy(); await velasnft.deployed(); console.log('NFT contract deployed to:', velasnft.address); } main() .then(() => process.exit(0)) .catch(error => { console.error(error); process.exit(1);
});
在部署合约之前,我们必须将 Velas 测试网的详细信息添加到hardhat.config.js 文件中。打开文件并添加 Velas 测试网配置。
require("@nomicfoundation/hardhat-toolbox");
const dotenv = require('dotenv');
dotenv.config(); /** @type import('hardhat/config').HardhatUserConfig */
module.exports = { solidity: "0.8.9", networks: { velastestnet: { url: `https://evmexplorer.testnet.velas.com/rpc`, accounts: [process.env.PRIVATE_KEY] } }
};
还值得一提的是,在部署合约之前,您必须将钱包的私钥添加到 .env 文件中,并在钱包中拥有一些测试网 VLX 代币。您可以从以下位置获取测试网代币 相关信息.
现在我们已经完成了所有设置,请在终端中运行以下命令。
npx hardhat run scripts/deploy.js --network velastestnet
如果命令执行成功,您将在终端中看到类似如下所示的输出。
铸造 NFT
随着智能合约的部署,我们可以从终端铸造 NFT。为此,首先使用以下命令启动安全帽控制台。
npx hardhat console --network velastestnet
输出如下所示。
然后我们将创建名为的合约变量 “维拉斯夫特”。 该 获取合同地址 方法将返回合约对象。
const velasnft = await ethers.getContractAt("VELASNFT", '0x587133187DEC8E1D5a964254B42FF3627a649313')
请参阅下面所示的输出。
为了铸造 NFT,我们将使用 维拉斯尼夫特 多变的。我们还必须将元数据的链接传递给该方法。您可以阅读有关元数据标准的更多信息 点击这里.
await velasnft.mint("https://metadatastorage.com/velasnft/0")
查看下面的输出。
现在是时候检查 NFT 的所有者了。由于我们使用 的主人 方法,现在让我们传递我们铸造的 NFT 的索引。
await velasnft.ownerOf(0)
这就是我们如何得到 NFT 所有者的结果。
结论
在本文中,我们学习了如何编写允许用户铸造 NFT 的 NFT 智能合约。此外,我们已成功将其部署在 Velas 测试网上。现在,您可以开发新的 NFT 支持的应用程序并探索动态的 Velas 生态系统。
Velas 希望为那些努力加快 Web3 开发的人们提供帮助。因此,Velas 启动了一项 100 亿美元的赠款计划来完成这一使命。同时,该计划还旨在支持 Velas 生态系统的扩展。
借助 Velas 的资助计划,开发人员可以更有效地将他们令人兴奋的想法变为现实。每个项目都有机会获得高达 100,000 美元的资助。此外,选定的团队还将获得其他资源来促进其项目的发展,包括营销、技术顾问等。
该资助计划涵盖广泛的类别,包括但不限于 DeFi、NFT、区块链驱动的游戏等。
如果您有兴趣加速加密货币和区块链的大规模采用, 立即申请加入 Velas 不断发展的生态系统。
了解有关维拉斯的更多信息:
免责声明 — 这是一篇赞助文章。 DappRadar 不认可此页面上的任何内容或产品。 DappRadar 旨在提供准确的信息,但读者在采取行动之前应始终进行自己的研究。 DappRadar 的文章不能被视为投资建议。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://dappradar.com/blog/how-to-create-nft-on-velas
- 100 百万美元
- 000
- 1
- 10
- 7
- 9
- a
- 关于
- 以上
- 加速
- ACCESS
- 账户
- 精准的
- 操作
- 增加
- 额外
- 地址
- 采用
- 忠告
- 后
- 目标
- 所有类型
- 允许
- 已经
- 时刻
- 和
- 应用领域
- 论点
- 参数
- 刊文
- 刊文
- 办公室文员:
- 可使用
- 等待
- 基地
- 基本包
- 基础
- 因为
- before
- 作为
- 如下。
- 得益
- 好处
- 最佳
- blockchain
- blockchain供电
- 块链
- 身体
- 带来
- 建立
- 建
- 被称为
- 呼叫者
- 可以得到
- 类别
- 查
- 采集
- 兼容性
- 兼容
- 关注
- 结论
- 配置
- 考虑
- 安慰
- 顾问
- 内容
- 合同
- 合同的
- 相应
- Counter
- 计数器
- 盖
- 创建信息图
- 创建
- 创造
- 创造者
- 创作者经济
- cryptocurrencies
- 电流
- DAO
- DappRadar
- data
- DEFI
- 部署
- 部署
- 部署
- 部署
- 部署
- 详情
- 开发
- 开发
- 研发支持
- 数字
- 数字资产
- 直接
- 的DNA
- 别
- 动态
- 每
- 经济
- 生态系统
- 有效
- 授权
- 授权
- enable
- 拥护
- 完全
- ERC721
- 错误
- 复仇
- 每个人
- 一切
- 例子
- 优秀
- 令人兴奋的
- 执行
- 扩张
- 体验
- 探索
- 出口
- 面部彩妆
- 熟悉
- 高效率
- 快
- 特征
- 费用
- 文件
- 档
- (名字)
- 遵循
- 以下
- 培育
- 自由的
- 止
- 功能
- 功能
- 资金
- Games
- 天然气
- 煤气费
- 得到
- 给
- 给
- Go
- 授予
- 补助金
- 担保
- 相关信息
- 高
- 创新中心
- How To
- 但是
- HTTPS
- 理想
- 思路
- 履行
- 进口
- in
- 包括
- 包含
- 指数
- 信息
- 安装
- 代替
- 有兴趣
- 介绍
- 投资
- 问题
- IT
- JavaScript的
- 加入
- JSON
- 键
- 键
- 知道
- 知识
- 语言
- 推出
- 铅
- 知道
- 借力
- 库
- 自学资料库
- 生活
- 有限
- 友情链接
- 看
- 看起来像
- 主要
- 管理
- 颠覆性技术
- 经理
- 许多
- 营销
- 质量
- 大规模采用
- 最大宽度
- 与此同时
- 中等
- 内存
- 元数据
- 方法
- 百万
- 薄荷
- 铸造
- 使命
- 麻省理工学院简介
- 模块
- 更多
- 最先进的
- 移动
- 姓名
- 需求
- 网络
- 全新
- 下页
- NFT
- NFT智能合约
- NFT
- 节点
- 特别是
- 数
- 对象
- 一
- 打开
- 外海
- ZAP优势
- 其他名称
- 简介
- 己
- 业主
- 所有权
- 包
- 津贴
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 请
- 加
- 先决条件
- 私立
- 私钥
- 过程
- 处理
- 产品
- 曲目
- 项目
- 项目
- 证明
- 保护
- 协议
- 提供
- 国家
- 有疑问吗?
- 范围
- 阅读
- 读者
- 接收
- 去掉
- 要求
- 研究
- 资源
- 导致
- 回报
- 回报
- 革命的
- 运行
- 锈
- 保存
- 脚本
- 部分
- 选
- 集
- 格局
- 应该
- 显示
- 如图
- 类似
- 自
- 放慢
- 智能
- 聪明的合同
- 智能合同
- So
- SOL
- 坚固
- 方案,
- 一些
- 速度
- 赞助商
- 阶段
- 标准
- 开始
- 步
- 步骤
- 仍
- 商店
- 努力
- 斗争
- 顺利
- SUPPORT
- 符号
- 采取
- 需要
- 服用
- 说
- 队
- 文案
- 专业技术
- 终端
- testnet
- 基础知识
- 其
- 那里。
- 因此
- 事
- 通过
- 次
- 至
- 象征
- 令牌
- 交易
- 交易速度
- true
- 教程
- 陌生
- 网址
- 使用
- 用户
- 用户体验
- 用户
- 效用
- 各个
- 韦拉斯
- 版本
- 通过
- 视频
- 能见度
- W3
- 钱包
- 方法
- Web3
- 网页
- 这
- 而
- WHO
- 宽
- 大范围
- 将
- 价值
- 写
- 写作
- 完全
- 您一站式解决方案
- 你自己
- 和风网