阅读背景:

以太坊开发----开发代币示例及讲解_bk1171676983的博客

来源:互联网 

基础版的代币合约

下面是一个最简单的代币合约代码,主要介绍可以看注释:

pragma solidity 0.4.20;

/**
 * @title 基础版的代币合约
 */
contract token {
    
    /* 公共变量 */
    string public standard = "https://mshk.top";
    
    /*记录所有余额的映射*/
    mapping (address => uint256) public balanceOf;
    
    /* 初始化合约,并且把初始的所有代币都给这合约的创建者
     * @param initialSupply 代币的总数
     */
    function token (uint256 initialSupply) public {
        balanceOf[msg.sender] = initialSupply;
    }
    
    /**
     * 私有方法从一个帐户发送给另一个帐户代币
     * @param  from address 发送代币的地址
     * @param  to address 接受代币的地址
     * @param  value uint256 接受代币的数量
     */
    function _transfer (address from, address to, uint256 value) internal {
        
        //避免转帐的地址是0x0
        require(to != 0x0);
        
        //检查发送者是否拥有足够余额
        require(balanceOf[from] >= value);
        
        //检查是否溢出
        require(balanceOf[to] + value > balanceOf[to]);
        
        //保存数据用于后面的判断
        uint previousBalances = balanceOf[from] + balanceOf[to];
        
        //从发送者减掉发送额
        balanceOf[from] -= value;
        
        //给接收者加上相同的量
        balanceOf[to] += value;
        
        //判断买、卖双方的数据是否和转换前一致
        assert(balanceOf[from] + balanceOf[to] == previousBalances);
    }
    
    /**
     * 从主帐户合约调用者发送给别人代币
     * @param  to address 接受代币的地址
     * @param  value uint256 接受代币的数量
     */
    function transfer (address to, uint256 value) public {
        _transfer(msg.sender, to, value);
    }
}
pragma 



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: