Ethereum的智能合约调试起来很麻烦,到目前为止还是没有一个方便的类似于console.log()或printf的调用;
一般都是通过Event的方法来打印log;这种办法在写单元测试的时候很麻烦;
目前最接近于官方的手段是构造一个公用的Console库合约,然后链接到主合约里面来用;
https://github.com/trufflesuite/truffle-logger-example
这个PR一直没有Merge到TruffleSuite的新版本中,我们只能先临时手工Copy下代码来Monkey Patch一下;
步骤如下:
- 首先在主合约的同级目录添加Console.sol合约:
1
| |
- 然后在部署脚本里面增加这个库的链接(以官方示例MetaCoin为例)
1
| |
1 2 3 4 5 6 7 8 | |
- 在需要打印log的单元测试中引入Console.sol
1
| |
1 2 3 4 | |