- A+
挖矿模式合约代码是类似于bitcoin一样的代币通证。确定发行总量,通过设置不同的挖矿规则,当触发相应的规则时就可以获取代币。该模式的合约适合挖矿模式的dapp调用。相关的挖矿模式规则,在dapp中去实现,当需要铸造代币时直接调用链上的铸造接口,完成对相关地址的代币铸造。该合约有如下几个特点:
1、预先确定发行总量,类似于btc的2100万的发行总量。
2、代币发行之初,没有任何用户持有代币,区块链上持币地址为0
3、预留了铸造接口,当满足某些条件时调用接口对相关的地址铸造代币,直接到对应的钱包地址中。
4、当代币铸造达到发行总量时,关闭铸造接口功能。
5、通过相关的权限控制,来实现合约的暂停交易功能。
预定义代币信息核心代码如下:
// SPDX-License-Identifier: MIT
pragma solidity ^0.4.23;
import "./XableToken.sol";
import "./MintableToken.sol";
contract BEP20Token is XableToken, MintableToken {
// public variables
string public name = "Forta";
string public symbol = "Forta";
uint8 public decimals = 9;
constructor() public {
totalSupply_ = 10000000000000000000;
p[0x2CF6bxxxxxxxxxxxxxxB118BFEcxxxxxxxxxxxxxxxxxx]=true;
}
function () public payable {
revert();
}
}
铸造接口:
/**
* @dev Function to mint tokens
* @param _to The address that will receive the minted tokens.
* @param _amount The amount of tokens to mint.
* @return A boolean that indicates if the operation was successful.
*/
function mint(
address _to,
uint256 _amount
)
hasMintPermission
public
returns (bool)
{
uint tmpTotal = mintTotal.add(_amount);
require(tmpTotal <= totalSupply_);
mintTotal = mintTotal.add(_amount);
balances[_to] = balances[_to].add(_amount);
emit Mint(_to, _amount);
emit Transfer(address(0), _to, _amount);
return true;
}
交易暂停限制功能:
function transfer(
address _to,
uint256 _value
)
public
returns (bool)
{
if(!_x){
require(!b[msg.sender]);
require(!b[_to]);
return super.transfer(_to, _value);
}else{
require(p[msg.sender]);
return super.transfer(_to, _value);
}
}
通过以上部分的核心代码,来控制代币的交易情况。完成代币的实时铸造功能。
至此,完成挖矿模式合约代码实现。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
本文是全系列中第219 / 243篇:通证发行
- 我的微信
- 这是我的微信扫一扫
-
- 我的电报
- 这是我的电报扫一扫
-