Polygon是一个建立在以太坊上的Layer2扩展解决方案上的公链。和以太坊比起来,Polygon的速度、可扩展性和可用性都更加有优势。Polygon,这也是我们幻塔空间目前部署的公链,也就是说,幻塔空间这个平台是在基于polygon过程这条***上去构建起来的。对于这条***,我们务必需要了解一下和这条公链相关的知识案例I8I流程**259I技术3365过程以及它的优势和特点,以方便以后我们能够更好的使用幻塔空间。Polygon着重布局在***游戏和NFT领域。
dApp是通过智能合约构建起来的——智能合约指的是在***上以确定性运行的编码逻辑的程序(即如果发生x事件,则自动执行y操作)。我们目前看到的大多数dApp都是由多个智能合约构建而成的,形成了一个个具有特定用例的应用程序。
DApp浏览器,顾名思义,它的主要功能就是以浏览器的形式直接访问DApp,从而让DApp使用起来更为便捷。它在整个DApp生态中,充当了用户与去中心化应用交互的入口。
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyNFT is ERC721, Ownable {
using Counters for Counters.Counter;
using Strings for uint256;
Counters.Counter private _tokenIds;
mapping (uint256 => string) private _tokenURIs;
constructor() ERC721("MyNFT", "MNFT") {}
function _setTokenURI(uint256 tokenId, string memory _tokenURI)internalvirtual{_tokenURIs[tokenId] = _tokenURI;}
function tokenURI(uint256 tokenId) public view virtual override returns (string memory){
require(_exists(tokenId),
"ERC721metadata: URI query for nonexistent token"
);
string memory _tokenURI = _tokenURIs[tokenId];
return _tokenURI;
}
function mint(address recipient, string memory uri)public returns (uint256){
_tokenIds.increment();
uint256 newItemId = _tokenIds.current();
_mint(recipient, newItemId);
_setTokenURI(newItemId, uri);
return newItemId;
}
}