NFT鑄造交易合成平臺系統開發丨區塊鏈智慧合約部署程式碼詳情

Lyr96246466發表於2023-05-15

  鑄造NFT的過程就是建立NFT的過程。開發+181公鏈2591合約開發3365微電這是透過向區塊鏈部署智慧合約來實現,它

將儲存關於NFT的資訊,包括它的代幣ID和策略ID。對於不懂Solidity等智慧合約語言的人來說,這可能是一個重大障礙。NFT

鑄造有時也可能涉及高昂的gas費,這對於首-次鑄造的人來說可能是負擔不起的。


  在學習的過程中,我學會了一些技巧,現在我想把它們分享給其他初學者。第一個技巧是鑄造NFT,而無需學習如何使用

Tatum NFT Express編寫智慧合約。


  Tatum NFT Express是一個工具,讓我們無需編寫智慧合約或支付高昂的gas費就可以建立NFT。透過消除與開發NFT相關

的高昂管理成本、複雜性和安全問題,並避免加密貨幣相關的任何監管挑戰,這為世界各地的企業提供了機會。在不擁有任何

加密貨幣的情況下,使用者可以使用Tatum在許多區塊鏈上進行鑄造。


  使用Tatum NFT Express,使用者可以立即製造他們想要的NFT——Ethereum,Solana,Polygon,Celo和Cardano。此外,該

工具解決了許多安全問題,允許企業快速地將NFT功能新增到移動應用程式,並在任何地方建立NFT。


簡易版NFT合約程式碼

pragma solidity ^0.8.4;


import '@openzeppelin/contracts/token/ERC721/ERC721.sol';

import '@openzeppelin/contracts/access/Ownable.sol';


// 繼承ERC721, Ownable

contract SimpleMintContract is ERC721, Ownable {

    // mint 價格

    uint256 public mintPrice = 0.05 ether;

    // 總共已經被mint數量

    uint256 public totalSupply;

    // 可以mint的最大數量

    uint256 public maxSupply;

    // 是否開啟mint

    bool public isMintEnabled;

    // 每個地址mint => 數量

    mapping(address => uint256) public mintedWallets;


    // 建構函式,部署合約的時候,設定最大數量為2

    constructor() payable ERC721('Simple Mint', 'SIMPLEMINT') {

        maxSupply = 2;

    }


    // 外部呼叫函式,開啟mint

    function toggleIsMintEnabled() external onlyOwner {

        isMintEnabled = !isMintEnabled;

    }


    // 設定最大mint數量

    function setMaxSuppley(uint256 _maxSupply) external onlyOwner {

        maxSupply = _maxSupply;

    }


    // mint函式

    function mint() external payable {

        // require判斷函式,前半部判斷為false,則丟擲後半部分資訊

        // 判斷是否開啟mint

        require(isMintEnabled, 'minting not enabled');

        // 判斷地址是否已經mint

        require(mintedWallets[msg.sender] < 1, 'exceeds max per wallet');

        // 判斷髮送到合約的eth數量是否跟mint價格一樣

        require(msg.value == mintPrice, 'wrong value');

        // 判斷是否還有可以mint的數量

        require(maxSupply > totalSupply, 'sold out');


        mintedWallets[msg.sender]++;

        totalSupply++;

        uint256 tokenId = totalSupply;

        _safeMint(msg.sender, tokenId);

    }

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70012429/viewspace-2952200/,如需轉載,請註明出處,否則將追究法律責任。

相關文章