区块链开发学习第五章:truffle-unbox使用

使用truffle模板能极大的提高我们学习区块链的进度以及了解智能合约

一、下载MetaCoin模板

truffle unbox metacoin

区块链开发学习第五章:truffle-unbox使用

 

这里不知道是网络问题还是环境问题,搞了半天都没搞好,无论是K学上网还是设置hosts,都没用,最后只能通过git clone下载metacoin代码。

truffle官网地址:https://www.trufflesuite.com/boxes

git上下载truffle各模板地址:https://github.com/truffle-box

区块链开发学习第五章:truffle-unbox使用

 

下载完之后同样需要修改truffle-config.js文件里面的私有链地址 

 

二、truffle test

区块链开发学习第五章:truffle-unbox使用

 

 

三、truffle compile

这里要开启挖矿

区块链开发学习第五章:truffle-unbox使用区块链开发学习第五章:truffle-unbox使用

 

 

 四、truffle console

 

五、控制台与合同进行交互

1、查看部署合约的账户metacoin余额

MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});

区块链开发学习第五章:truffle-unbox使用

 

 这里出了问题,提示是地址不合法,我查了合约代码应该是没问题来着,结果把web3.eth.accounts[0]换成我们私有链的第一个默认账户地址就可以了

MetaCoin.deployed().then(function(instance){return instance.getBalance('0x229ea411d368c97b008c7bc19b01fdd813163701');}).then(function(value){return value.toNumber()});
10000

为什么这里会有10000余额呢,我看了合约代码原来是这样的:

区块链开发学习第五章:truffle-unbox使用

 

我们前面创建了两个账户,现在查一下第二个账户:

MetaCoin.deployed().then(function(instance){return instance.getBalance('0xbb723ee82cb41a733f2289588697f0e199e29de5');}).then(function(value){return value.toNumber()});
0

合约里面getBalanceInEth方法写了一个metacoin值两个eth,所以调用下换算方法:

MetaCoin.deployed().then(function(instance){return instance.getBalanceInEth('0x229ea411d368c97b008c7bc19b01fdd813163701');}).then(function(value){return value.toNumber()});
20000

调用sendCoin转账方法(开启挖矿):

MetaCoin.deployed().then(function(instance){return instance.sendCoin('0xbb723ee82cb41a733f2289588697f0e199e29de5', 500);});
{ tx:
   '0x8716dab16ffb66b23604c476643105929cab24890914592f8eecd2ebb2f72020',
  receipt:
   { blockHash:
      '0xc94a716ba1463740bc85ceb7be6abaccd09d1c1f329642630a685a3b60785f7f',
     blockNumber: 546,
     contractAddress: null,
     cumulativeGasUsed: 51520,
     effectiveGasPrice: '0x3b9aca00',
     from: '0x229ea411d368c97b008c7bc19b01fdd813163701',
     gasUsed: 51520,
     logs: [ [Object] ],
     logsBloom:
      '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000100000000000000000000004000010000000000000000000000000000000000000000000000000000000000000000000000100000000104000000000000000000000000000000000004000000020000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000100000',
     status: true,
     to: '0xaed8bef575a739c7239b4a140c789b2f41043279',
     transactionHash:
      '0x8716dab16ffb66b23604c476643105929cab24890914592f8eecd2ebb2f72020',
     transactionIndex: 0,
     type: '0x0',
     rawLogs: [ [Object] ] },
  logs:
   [ { address: '0xAED8BEf575A739C7239B4a140c789B2f41043279',
       blockNumber: 546,
       transactionHash:
        '0x8716dab16ffb66b23604c476643105929cab24890914592f8eecd2ebb2f72020',
       transactionIndex: 0,
       blockHash:
        '0xc94a716ba1463740bc85ceb7be6abaccd09d1c1f329642630a685a3b60785f7f',
       logIndex: 0,
       removed: false,
       id: 'log_4626e8e8',
       event: 'Transfer',
       args: [Result] } ] }

转账完查看两个账户余额:

##账户一
MetaCoin.deployed().then(function(instance){return instance.getBalance('0x229ea411d368c97b008c7bc19b01fdd813163701');}).then(function(value){return value.toNumber()});
9500

##账户二
MetaCoin.deployed().then(function(instance){return instance.getBalance('0xbb723ee82cb41a733f2289588697f0e199e29de5');}).then(function(value){return value.toNumber()});
500

 

上一篇:自己构建shardingsphere-elasticjob-ui Docker镜像


下一篇:truffle 宠物店开发教程