创建项目目录并到目录下:
$ mkdir Faucet && cd Faucet
初始化:
$ truffle init
如果在windows系统下,为避免冲突需要移除truffle.js:
$ rm truffle.js
在truffle-config.js文件中配置环境:
module.exports = {
networks: {
localnode: {
network_id: "5777",
host: "127.0.0.1",
port: 7545,
}
}
};
把Faucet.sol
合约放到contracts目录下:
Faucet
+---- contracts
| +---- Faucet.sol
| `---- Migrations.sol
...
使用truffle进行编译:
$ truffle compile
Compiling ./contracts/Faucet.sol...
Compiling ./contracts/Migrations.sol...
Writing artifacts to ./build/contracts
注:Truffle仅默认编译自上次编译后被修改过的文件,来减少不必要的编译。如果你想编译全部文件,可以使用--compile-all选项,$ truffle compile --compile-all
。
部署合约配置,在migrations
目录下新建文件2_deploy_contracts.js
,配置如下:
var Faucet = artifacts.require("./Faucet.sol");
module.exports = function(deployer) {
deployer.deploy(Faucet);
};
最后使用truffle部署合约到以太坊网络上:
$ truffle migrate --network localnode
使用truffle控制台
使用下面命令进入truffle控制台:
$ truffle console --network localnode
使用web3查看以太坊账户:
truffle(localnode)> web3.eth.accounts
[ '0x851e975ef4bcc4ed05974cfe16f0935c7136811d',
'0xa4a9641e10f6639b3f1ac1ab4e5a449968894738' ]
查看账户余额:
truffle(localnode)> web3.eth.getBalance(web3.eth.accounts[0]).toNumber()
99968474400000000000
查看Faucet合约地址:
truffle(localnode)> Faucet.address
'0x89e05ad97a99968e59fe3fa7ae795f44ad8633aa'
给Faucet合约转账:
truffle(localnode)> web3.eth.sendTransaction({from:web3.eth.accounts[0], to:Faucet.address, value:web3.toWei(0.5, 'ether')});
'0x969521c5e28e178715701f1f68f723116419b3dcdb93d159371e7fa6031d5ec4'
查看Faucet合约地址余额:
truffle(localnode)> web3.eth.getBalance(Faucet.address).toNumber()
500000000000000000
部署合约
创建一个变量保存合约实例,然后部署合约。
truffle(localnode)> let contract;
undefined
truffle(localnode)> Faucet.deployed().then(instance => contract = instance)
网友评论