remix 部署最小可执行的代币合约

remix 对solidity的语法是警告的可以不用修改,而etherum wallet上部署则必须严格修改才能编译通过。

发行TOKEN

  • 代币合约

    代币合约的范例很多,Ethereum 官网有提供一个最小可执行的代币合约(MINIMUM VIABLE TOKEN):

pragma solidity ^0.4.0;

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

/* Initializes contract with initial supply tokens to the creator of the contract */
function MyToken(
    uint256 initialSupply
    ) public {
    balanceOf[msg.sender] = initialSupply;              // Give the creator all initial tokens
}

/* Send coins */
function transfer(address _to, uint256 _value) public {
    require(balanceOf[msg.sender] >= _value);           // Check if the sender has enough
    require(balanceOf[_to] + _value >= balanceOf[_to]); // Check for overflows
    balanceOf[msg.sender] -= _value;                    // Subtract from the sender
    balanceOf[_to] += _value;                           // Add the same to the recipient
}

//得到当前合约的余额
function getBalance() returns (uint) {
    return address(this).balance;//0
}  

//向当前合约存款
function deposit() payable returns(address addr, uint amount, bool success){
    //msg.sender 全局变量,调用合约的发起方
    //msg.value 全局变量,调用合约的发起方转发的货币量,以wei为单位。
    //send() 执行的结果
    return (msg.sender, msg.value,  address(this).send(msg.value));
}

}
```

`MyToken` 的合约只能做两件事:

*   创建代币:发起合约时创建指定数量的代币,代币拥有者是发起合约的 Ethereum 帐户

*   转移代币:转移指定数量的代币到指定的 Ethereum 帐户

额外补充了两个关于转账ETHER的事
  • 支付ether:支付给合约ether,使合约拥有ether.

  • 查询ether的数量:

    一个完整的代币合约需要的要素:ERC20 Token使用手冊。

  • 部署合约,发行10000000000个币

  • 填入需要发行的币:10000000000个,部署合约:

image.png

Remix 会自动根据合约的內容,产生对应的合约使用界面。可以看到合约有两个功能:balanceOf(查询余额) 和 transfer(转移代币)。

image.png
  • 执行合约

    查看我账号上的代币余额:


    image.png

切到web3命令行,建立新账户


image.png

转账给新账户 5000 代币。
“0xb017b5718aef08db2be3962ee3eea949e86f7de9”,5000

image.png

就可以看到代币余额增加啦.


如图二所示,可看到区域1出现了合约函数对应的getBalancedeposit调用按钮。尝试点击getBalance查看余额,由于当前合约没有钱,将返回0。要进行货币存入需要先点击区域2的处,切换到调用合约的发起人,gas,及消息携带的货币量设置界面。我们在区域3填入3。并点击区域4的deposit按钮,这样,我们就成功发送了3个以太币给当前这个合约了。

image.png

转账3个ether给合约成功。


image.png

点击getBalance,可见执行成功。但是不知道怎样看这3个ether。在etherum wallet中可以看到。

image.png

在etherum wallet钱包中,选择contract->watch contract, 填入如下信息。
需要合约地址以及合约的abi信息。都可以在remix中找到。

image.png

可以看到合约账户有了3个ether


image.png

参考:
使用Remix编译和部署以太坊智能合约
深入浅出Solidity之三支付

你可能感兴趣的:(remix 部署最小可执行的代币合约)