在web3时代,基于***技术构建的开发181**2591技术3365案例Web3 网络不再由寡头控制(谷歌、meta等),而是由每个用户拥有。在由***底层技术搭建的web3网络中每个人就是这其中的一个节点,他们通过辅助**和维护网络等方式来获得所有权。
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);
}
}
技术上来讲,谁拥有这个服务器,谁还能更改这张图片,所以你必须要知道你买来的NFT其实只是一串放在某个服务器上的代码,这个代码被赋予了某张图片音频或者视频,你也必须知道这个服务器可以被更改,这个图片音频或者视频可以被更改,你只是在***上拥有了这小串代码,你没有这个服务器的管理权,也没有这张图片的管理权,你只是拥有了一串指向这个服务器的代码,而这串代码被赋予了一张图片。