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

编译代币合约

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

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

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

部署代币合约

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

以太坊智能合约开发指南5(Remix使用下)_第2张图片
部署合约

测试代币合约

我们现在开始测试已部署的代币合约,浅蓝色的按钮代表是不需要花费以太币的访问(在函数上声明为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使用下)_第3张图片
测试完成后

你可能感兴趣的:(以太坊智能合约开发指南5(Remix使用下))