美文网首页
使用Truffle进行以太坊智能合约开发

使用Truffle进行以太坊智能合约开发

作者: Jisen | 来源:发表于2019-01-11 11:47 被阅读16次

创建项目目录并到目录下:

$ 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)

相关文章

网友评论

      本文标题:使用Truffle进行以太坊智能合约开发

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