国产失禁大喷潮在线观看,免费女人高潮流视频在线,国产午夜精品理论片久久影院 ,善良的小峓子完整版在线观看

無標(biāo)題文檔
wdCP系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說明,演示,常見問題,使用教程) wdCDN系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說明,演示,常見問題,使用手冊)
wdOS系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說明,演示,常見問題,使用教程) wdDNS系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說明,演示,常見問題,使用手冊)
注冊 發(fā)貼 提問 回復(fù)-必看必看 wddns免費(fèi)智能 DNS 開通 本地或虛擬機(jī)使 用wdcp 一鍵包在mysql編 譯時(shí)"卡住"
AI導(dǎo)航網(wǎng)AI應(yīng)用網(wǎng)站大全 wdcp官方技術(shù)支持/服務(wù) 阿里云8折優(yōu)惠券 無敵云 騰訊云優(yōu)惠中,現(xiàn)注冊更有260代金額券贈送
返回列表 發(fā)帖
提問三步曲: 提問先看教程/FAQ索引(wdcp,wdcp_v3,一鍵包)及搜索,會讓你更快解決問題
1 提供詳細(xì),如系統(tǒng)版本,wdcp版本,軟件版本等及錯誤的詳細(xì)信息,貼上論壇或截圖發(fā)論壇
2 做過哪些操作或改動設(shè)置等

溫馨提示:信息不詳,很可能會沒人理你!論壇有教程說明的,也可能沒人理!因?yàn)?你懂的

TheGraph 實(shí)操(一)準(zhǔn)備一個 NFT 項(xiàng)目

本篇是這個系列的第一篇:創(chuàng)建一個 NFT 合約并實(shí)現(xiàn)交易。

注:這里主要聚焦在 The Graph 的使用,自己實(shí)現(xiàn) NFT 項(xiàng)目是為了方便解析事件,不關(guān)注 NFT 合約的安全等


創(chuàng)建合約

1、實(shí)現(xiàn)一個標(biāo)準(zhǔn)的 ERC721 合約,通過這個合約發(fā)行 NFT,用 The Graph 解析 Transfer 事件。

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";contract ERC721Token is ERC721 {    string public baseURI;    constructor() ERC721(unicode"小貓", "LCAT") {    }    function _baseURI(
) internal view override returns (string memory) {        return baseURI;    }    function setBaseURI(string calldata uri) external {        baseURI = uri;    }    function safeMint(address to, uint256 tokenId) external {        _safeMint(to, tokenId);    }}

2、實(shí)現(xiàn)一個標(biāo)準(zhǔn)的 ERC20 代幣,用來買賣我們上面發(fā)行的 NFT。

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";contract ERC20Token is ERC20 {    address public immutable owner;    constructor() ERC20(unicode"貓幣", "CAT") {        owner = msg.sender;        _mint(owner, 100000 * 10 ** decimals());    }    function mint(address account, uint256 amount) public {        require(msg.sender == owner, "mint: only owner");        _mint(account, amount);    }}

3、實(shí)現(xiàn)一個 Market 合約,買賣 NFT

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";import "@openzeppelin/contracts/token/ERC721/IERC721.sol";contract Market {    IERC20 public immutable TOKEN20;    IERC721 public immutable TOKEN721;    mapping(uint256 => uint256) public priceOf;    mapping(uint256 => address) public sellerOf;    constructor(address token20, address token721) {        TOKEN20 = IERC20(token20);        TOKEN721 = IERC721(token721);    }    event BuyEvent(address user, uint256 tokenId, uint256 amount);    event SellEvent(address user, uint256 tokenId, uint256 price);    function buy(uint256 tokenId, uint256 amount) external {        uint256 price = priceOf[tokenId];        require(price > 0 && price <= amount, "buy: error price or amount");        require(sellerOf[tokenId] != address(0), "buy: seller address zero");        TOKEN20.transferFrom(msg.sender, sellerOf[tokenId], price);        TOKEN721.transferFrom(address(this), msg.sender, tokenId);        priceOf[tokenId] = 0;        sellerOf[tokenId] = address(0);        emit BuyEvent(msg.sender, tokenId, price);    }    function sell(uint256 tokenId, uint256 price) external {        TOKEN721.transferFrom(msg.sender, address(this), tokenId);        sellerOf[tokenId] = msg.sender;        priceOf[tokenId] = price;        emit SellEvent(msg.sender, tokenId, price);    }}

4、請使用你熟悉的工具(Remix/truffle/hardhat/foundry) 部署并驗(yàn)證合約

  • 使用 hardhat 部署合約,這里部署到 mumbai 網(wǎng)絡(luò),也可部署到 bsc 測試網(wǎng)等

    • 申請 apikey(驗(yàn)證合約需要)
      重點(diǎn):apikey 需要去 測試網(wǎng) 對應(yīng)的 主網(wǎng)區(qū)塊鏈瀏覽器 申請,需要注冊登錄

      • 驗(yàn)證合約 即 把合約代碼開源到區(qū)塊鏈,通過區(qū)塊鏈瀏覽器可以查看我們的合約代碼
      • 驗(yàn)證合約后,The Graph 自動從區(qū)塊鏈拉取我們的合約字節(jié)碼,解析事件,如果不驗(yàn)證,也可以自己從本地指定 abi.json
    • 配置 hardhat.config.js

    module.exports = {  solidity: "0.8.18",  networks: {      mumbai: {          url: "可以在 alchemy.com 創(chuàng)建一個 endpoint",          accounts: {              mnemonic: mnemonic, // 助記詞可以推導(dǎo)出多個賬戶          },          chainId: 80001,      },  },  // 這個 scankey 是上面申請的apikey  etherscan: {      apiKey: scankey,  },};
    • 部署:npx hardhat run ./scripts/deploy.js --network mumbai
    • 驗(yàn)證:npx hardhat verify 合約地址 參數(shù) 1 參數(shù) 2... --network mumbai

至此,本篇文章就結(jié)束了。如果有問題可以留言,我看到后會回復(fù)留言。

返回列表