ARB鏈上代幣合約質押挖礦系統開發丨DAPP技術框架

Lyr96246466發表於2023-05-09

“Web3.0”是對“Web2.0”的改進,開發-+181公鏈2591合約開發3365微電-+在此環境下,使用者不必在不同中心化的平臺

建立多種身份,而是能打造一個去中心化的通用數字身份體系,通行各個平臺。Web3.0被用來描述網際網路潛在的下一階段,一

個執行在“區塊鏈”技術之上的“去中心化”的網際網路。使用Solidity程式語言編寫合約程式碼。您可以使用Remix等線上IDE進

行開發和測試。部署代幣合約:將合約部署到ARB鏈上,並獲取合約地址。


  智慧合約程式碼


  直接上程式碼了,需要詳細理解的自己百度吧,因為我也不是很懂


  反正原理就是NFT的詳細實體不可能傳上區塊鏈,完全上去要耗費太多gas了


  所以只能將實體儲存在系統後臺,將NFT的檔案URI上傳到區塊鍊形成NFT


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.1;

 

import "@openzeppelin/contracts/utils/Context.sol";

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

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

 

contract NFTStore is Context, ERC20 {

    address private owner;

    struct Mints {

        address minter;

    uint256 amount;

    }

 

    mapping(uint256 => Mints) public tokenToMint;

    mapping(uint256 => uint256) private tokenAmounts;

    /**

     * @dev Constructor that gives _msgSender() all of existing tokens.

     */

    constructor (uint256 tokenNum) ERC20("NFTStore", "NFC") {

        owner = msg.sender;

        _mint(_msgSender(), tokenNum * (10 ** uint256(decimals())));

    }

 

    function mint(address _to,uint256 amount,uint256 tokenId) public {

        require(msg.sender == owner,"Only the owner of this Contract could mint!");  // 本文新增,否則函式 mint 會有邏輯錯誤

        _mint( _to, amount) ;    // 如果沒有新增上一句 require,此處會有邏輯錯誤,任何人都可以免費獲得NFC

        tokenAmounts[tokenId] = amount;

        Mints memory mintted = Mints({

            minter: _to,

            amount: amount

        });

        tokenToMint[tokenId]=mintted;

    }

 

    function getTokenAmount (uint256 tokenId) public view returns (uint256) {

        return tokenAmounts[tokenId];

    }

 

    function gettokenMints(uint256 tokenId) public view returns ( address, uint256){

        Mints memory mintted = tokenToMint[tokenId]; 

        return (mintted.minter,mintted.amount);

    }

    

    function destroy() virtual public {

    require(msg.sender == owner,"Only the owner of this Contract could destroy It!");

        selfdestruct(payable(owner));

    }

}


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

相關文章