创建自己的基于ETH的数字货币

参考:

https://www.ethereum.org/token

https://ethfans.org/topics/118

 

创建货币

由于执行智能合约需要支付一定的eth(费用不是太高,一般0.00几个ETH),所以首先要保证我们的账户中有一定的eth余额。

打开Ethereum Wallet,点击CONTRACTS。

创建自己的基于ETH的数字货币_第1张图片

点击DEPLOY NEW CONTRACTS。

创建自己的基于ETH的数字货币_第2张图片

 在SOLIDITY CONTRACT SOURCE CODE中粘贴如下代码:

pragma solidity ^0.4.16;

interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }

contract MyToken {
    // 货币的全称
    string public name;
    // 货币的简称(eg:BTC,ETH)
    string public symbol;
    // 货币单位精确到小数点后几位,强烈推荐默认为18位
    uint8 public decimals = 18;
    // 货币的发行总量
    uint256 public totalSupply;

    // This creates an array with all balances
    mapping (address => uint256) public balanceOf;


    // This generates a public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);

   
    /**
     * Constructor function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */
    function MyToken(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) public {
        totalSupply = initialSupply * 10 ** uint256(decimals);  // Update total supply with the decimal amount
        balanceOf[msg.sender] = totalSupply;                // Give the creator all initial tokens
        name = tokenName;                                   // Set the name for display purposes
        symbol = tokenSymbol;                               // Set the symbol for display purposes
    }

    /**
     * Internal transfer, only can be called by this contract
     */
    function _transfer(address _from, address _to, uint _value) internal {
        // Prevent transfer to 0x0 address. Use burn() instead
        require(_to != 0x0);
        // Check if the sender has enough
        require(balanceOf[_from] >= _value);
        // Check for overflows
        require(balanceOf[_to] + _value > balanceOf[_to]);
        // Save this for an assertion in the future
        uint previousBalances = balanceOf[_from] + balanceOf[_to];
        // Subtract from the sender
        balanceOf[_from] -= _value;
        // Add the same to the recipient
        balanceOf[_to] += _value;
        Transfer(_from, _to, _value);
        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
    }

    /**
     * Transfer tokens
     *
     * Send `_value` tokens to `_to` from your account
     *
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transfer(address _to, uint256 _value) public {
        _transfer(msg.sender, _to, _value);
    }
}

 

如果系统检测我们的代码没有问题,就会在右边出现一个参数列表让我们填写。如果代码有问题也会出现相应的错误提示。

在右边的填写对应参数:

  • 下拉框中选择My Token
  • Initial supply:要创建的货币的数量
  • Token name:货币的全称
  • Token symbol:货币的简称

 

创建自己的基于ETH的数字货币_第3张图片

然后向下拉就会看到执行这个合约所要花费的ETH,你可以自己调整金额。金额越小等会儿执行合约等待的时间就越久。这里比较推荐推荐选择系统默认的值。

创建自己的基于ETH的数字货币_第4张图片

最后点击DEPLOY,输入我们创建钱包时的密码,就可以看到我们的合约已经成功执行了。

创建自己的基于ETH的数字货币_第5张图片

 

现在我们点击WALLETS,向下拉动滚动条,就可以看到我们的合约正在执行了。

创建自己的基于ETH的数字货币_第6张图片

当执行了12个区块之后,我们的数字货币也就创建成功了。

 

现在点击点击CONTRACTS,往下拉滚动条,就可以在custom token里面已经有我们创建的数字货币了。

创建自己的基于ETH的数字货币_第7张图片

发送货币

现在我们来把创建的货币发送给其他人。

点击SEND,在TO里面填写接收方的ETH地址,然后填写要发送的数量,选择要发送的数字货币,这里我们选择刚刚创建好的NaviSimpleJC。发送货币也会收取少量的ETH作为矿工费。最后点击send 在弹出来的窗口中输入密码即可完成发送。

创建自己的基于ETH的数字货币_第8张图片

创建自己的基于ETH的数字货币_第9张图片

创建自己的基于ETH的数字货币_第10张图片

你可能感兴趣的:(区块链)