美文网首页区块链之虚拟货币区块链开发以太坊
以太坊智能合约开发指南5(Remix使用下)

以太坊智能合约开发指南5(Remix使用下)

作者: luohuayong | 来源:发表于2018-02-17 09:38 被阅读624次

    编译代币合约

    接着前面的内容,使用Remix来编译我们的代币合约。

    • 启动remix服务
    • 在浏览器中打开remix IDE
    • 然后创建我们的两个智能合约文件
    • 编译文件(Start Compile)
      我这里把自动编译选项关闭了,需要手动点编译按钮,在ERC20.sol为当前页签下进行,编译器会自动找到ERC20Interface.sol文件。因为有继承关系。
      现在看起来是这样的。
    编译合约

    右边有一些黄色的警告,是编译器给出的一些语法和格式上的建议,这里我们暂时先不管。

    部署代币合约

    在Run -> Create 按钮是部署合约,这里我们使用默认的JavaScript VM环境。系统给我们默认生成了5个账户,每个账户有100(ether)以太币。这里要分清楚两个概念,我们发行的是代币(token),这个代币只存在于我们的智能合约中,与以太坊的以太币是不一样的。
    部署完合约后,我们发现当前账户的以太币余额变少了,这是因为部署合约是要花费以太币的。

    部署合约

    测试代币合约

    我们现在开始测试已部署的代币合约,浅蓝色的按钮代表是不需要花费以太币的访问(在函数上声明为view或者pure的),后方有输入框的是函数需要给出参数的。
    调用函数后,会立即给出调用结果,返回结果中包含返回参数名,参数类型,返回值。
    账户(Account)栏显示的是当前账户,后面有一个复制按钮可以把账户复制到剪切板,测试过程中注意当前账户,别弄错了。
    下面的测试过程,为了阅读体验,我省略了地址中间部分,实际参数不能省略。
    "0xca3...733c"账户是合约的发布账户,初始拥有10000代币。其它账户初始余额都为0。
    测试case,需要按顺序执行:

    • decimals,返回3,小数位为3
    • totalSupply,返回10000,总供给为10000
    • symbol ,返回MYT,代币标识符
    • name ,返回MyToken,代币名称
    • allowance "0xca3...733c","0x147...160c",查询帐户0xca3...733c对账户0x147...160c的配额。返回0,正确的,我们还没做任何配额。
    • balanceOf "0xca3...733c",返回为10000,正确的。因为我们在构造器函数中,将总供给都分给了合约的发布账号。
    • transfer "0x147...160c",1000, 从当前账户发送1000代币到0x147...160c
    • balanceOf "0xca3...733c",我们再次查询合约发布账户的余额,返回9000。
    • balanceOf "0x147...160c" ,返回1000,刚刚给这个账户转入了1000代币。
    • approve "0x147...160c",2000,当前账户(合约发布账户),给0x147...160c批准2000代币的配额。
    • allowance "0xca3...733c","0x147...160c",我们再次查询配额,现在返回值为2000,说明新的配额已经生效。
    • transferFrom "0xca3...733c","0x4b0...d2db",500 (注意当前账户设置是"0x147...160c"),"0x147...160c"账户把0xca3...733c的500代币发送到0x4b0...d2db ,从配额中扣除。
    • allowance "0xca3...733c","0x147...160c",剩余配额,现在是1500。
    • balanceOf "0xca3...733c",账户余额为8500。
    • balanceOf "0x4b0...d2db",账户余额为500。
    • balanceOf "0x147...160c",账户余额未变,还是1000。

    测试完后是这样的:


    测试完成后

    相关文章

      网友评论

      本文标题:以太坊智能合约开发指南5(Remix使用下)

      本文链接:https://www.haomeiwen.com/subject/gasxtftx.html