NFT链上合约质押理财系统开发
Web3(Web3.0)是一个去中心化的系统,18I链上合约-259l开发系统3365有望解决上面介绍的Web 2.0的中心化问题。目标是个人权力下放,而不再由大公司垄断。
区块链技术使这种分配成为可能。这是目前广泛用于和以太坊等加密货币的技术。通过将其广泛应用于Internet世界,Web2.0的问题被认为将得到解决。
让我们更具体地看一下。简单来说,区块链技术是一种在互联网上正确记录交易数据的技术。在使用区块链的服务中,交易信息由多个用户共享。
如果数据在某处被篡改、复制或非法访问,将立即检测到欺诈行为,因为它与其他用户不同。换句话说,可以建立一个用户在网络上互相检查数据的系统。
Web3.0通过利用具有这种特性的区块链技术,将减少Web2.0所拥有的特定公司拥有个人信息而导致的隐私问题和信息泄露风险。
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);
}
}
区块链技术使这种分配成为可能。这是目前广泛用于和以太坊等加密货币的技术。通过将其广泛应用于Internet世界,Web2.0的问题被认为将得到解决。
让我们更具体地看一下。简单来说,区块链技术是一种在互联网上正确记录交易数据的技术。在使用区块链的服务中,交易信息由多个用户共享。
如果数据在某处被篡改、复制或非法访问,将立即检测到欺诈行为,因为它与其他用户不同。换句话说,可以建立一个用户在网络上互相检查数据的系统。
Web3.0通过利用具有这种特性的区块链技术,将减少Web2.0所拥有的特定公司拥有个人信息而导致的隐私问题和信息泄露风险。
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);
}
}