编译器github地址:
1、安装:
npm install solc
2、写个任意的合约,保存为sol文件:
我的TokenWeb3.sol,如下:
pragma solidity 0.4.16;contract TokenWeb3 { mapping (address => uint) public balancesOf; address public owner; //这里是创建合约的时候调用。msg.sender就是eth.account[0],也可以改编译后的代码指定。其他地方谁调用msg就是调用者 function TokenWeb3() { owner = msg.sender; balancesOf[msg.sender] = 10000; }//msg就是调用者 function transfer(address _to, uint _value) { //避免转移出去的代币超过当前的存货 if (balancesOf[msg.sender] < _value) revert(); //避免自己调用自己,或者递归调用 if (balancesOf[_to] + _value < balancesOf[_to]) revert(); balancesOf[msg.sender] -= _value; balancesOf[_to] += _value; } function mint(uint _amount) { balancesOf[owner] += _amount; }}
3、运行命令,编译:
$ solc.sol --bin --abi --optimize -o /
我输出在当前目录的test下面,如下:
生成abi和bin文件。如下:
abi文件是个json文件表示了只能合约的结构。如下:
bin文件里面是一串数字。是合约的二进制哈希文件。