# token_nft **Repository Path**: blackcoder/token_nft ## Basic Information - **Project Name**: token_nft - **Description**: 1.实现ERC720 和ERC721 2.实现nft 的拍卖 3.展示了使用部署的代币去竞拍nft - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-07-02 - **Last Updated**: 2025-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # token_nft合约代码 ### 对应的后端项目:https://gitee.com/blackcoder/token_nft_admin.git #### 介绍 - 实现ERC720 和ERC721 - 实现nft 的拍卖 #### 软件架构 1. contracts目录: 文件中包含的了所有和合约代码 1. contracts-lib目录: 是合约库 1. test目录:测试合约的js脚本 1. migrations目录:迁移合约的js脚本(部署脚本) #### 安装教程 1. 本地安装:Ganache 官网地址:https://trufflesuite.com/ganache/ 2. 开发工具使用:Vscode,需要安装的插件:Truffle 3. 需要安装node.js。我是:18.19.0的版本 #### 使用说明 1. 在项目根目录中,安装依赖:npm install @openzeppelin/contracts 2. 在终端控制台中编译合约:truffle compile 3. 启动Ganache或者本地有对应的链 4. 部署合约:truffle migrate --to 3 #### 部署合约后 - mwToken合约地址:0x3855E743833D2DA9bEa9b61E914435F0b96b9405 - nft合约地址:0x781659ed7487e026aDfCC3e65525cd16f0796236 - 拍卖合约地址:0x128371876F61E6f8229deeBa10DD5709CFBb7cC5 - 测试地址-1:0x1B213b7A11194791dF98Be53D06b168D14e2d858 - 测试地址-2:0x26259Dd88A46916e03233f78a734296Ac62D09be ##### 在项目根目录,进入控制台,执行命令:truffle console ``` // 设置nft管理员 MwNft.deployed().then(function (instance) {return instance.addAdmin('0x3855E743833D2DA9bEa9b61E914435F0b96b9405');}); // 设置拍卖合约管理员 NftAuction.deployed().then(function (instance) {return instance.addAdmin('0x1B213b7A11194791dF98Be53D06b168D14e2d858');}); NftAuction.deployed().then(function (instance) {return instance.addAdmin('0x26259Dd88A46916e03233f78a734296Ac62D09be');}); ``` 1.token交易 ``` 查询余额 MwToken.deployed().then(function (instance) {return instance.balanceOf('0x1B213b7A11194791dF98Be53D06b168D14e2d858');}).then(function (balance) {console.log(balance.toString());}); 转移代币(1000) MwToken.deployed().then(function (instance) {return instance.transfer('0x7516C53b0095949eaBFE8675A3f7C371e6392BfF',web3.utils.toBN(1000).mul(web3.utils.toBN(10).pow(web3.utils.toBN(18))));}); ``` java项目监听交易事件 ``` private void mwTokenTransferHandle(EventValues eventValues, String transactionHash) { String from = eventValues.getIndexedValues().get(0).toString(); String to = eventValues.getIndexedValues().get(1).toString(); Type type = eventValues.getNonIndexedValues().get(0); BigDecimal mwTokenNum = new BigDecimal(type.getValue().toString()).scaleByPowerOfTen(-18).setScale(18, RoundingMode.DOWN); log.info("mwToken链上交易转移,from:{},to:{},mwTokenNum:{}",from,to,mwTokenNum); } ```