truffle console用法 总结

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了truffle console用法 总结相关的知识,希望对你有一定的参考价值。

 4.1.创建自己的合约
在./contract目录下创建一个自己的合约文件Greeter.sol,其代码如下:

contract Greeter         

    address creator;     
    string greeting;     

    function Greeter(string _greeting) public   
    
        creator = msg.sender;
        greeting = _greeting;
    
    

    function greet() public constant returns (string)           
    
        return greeting;
    
    
    function setGreeting(string _newgreeting) public
    
        greeting = _newgreeting;
    
    
     /**********
     Standard kill() function to recover funds 
     **********/
    
    function kill()public
     
        if (msg.sender == creator)
            suicide(creator);  // kills this contract and sends remaining funds back to creator
    


4.2.新建发布脚本
在./migrations/目录下修改 2_deploy_contracts.js 文件,增加发布代码如下:

module.exports = function(deployer) 
  deployer.deploy(Greeter,"Hello, World!");//"参数在第二个变量携带"
;

之后就是 truffle compile编译合约;truffle migrate部署合约,效果如下:

4.3.通过控制台操作
我们可以运用 truffle console 命令进入控制台,通过控制台输入相关指令进行相关操作,效果如下:

 通过输入指令进行相关操作:

查询-----调用call例子

MetaCoin.deployed().then(function(contractInstance)contractInstance.getBalance.call('0x2B9f4E75310127Bbd1A13E6a3Cb9cBc8bDc05F91').then(function(v)console.log(v)))

设置---sendTransaction

MetaCoin.deployed().then(function(contractInstance)contractInstance.sendCoin.sendTransaction('0xA39b1E127aEd52352b3cc043C94189E46C9E9601',200).then(function(v)console.log(v)))

 

Ubuntu下Truffle框架的搭建_浪里个浪の的博客-CSDN博客_ubuntu安装truffle

如何使用Truffle部署智能合约-51CTO.COM

进入truffle控制台调试合约

合约部署成功后,在终端执行truffle console,可以进入javascript控制台对合约进行调试:

 
  1. truffle console

  2. truffle(default)>

在Javascript控制台通过

ContractName.deployed()ContractName.at(contractAddress)

获取已部署的合约对象,之后就可以通过该对象调用合约的方法进行调试:

获取已部署的合约对象:

truffle(default)> var metacoin = MetaCoin.deployed()

首先查看第一个账户的MetaCoin余额:

truffle(default)> metacoin.getBalance.call(web3.eth.accounts[0])

应该返回10000,因为在MetaCoin的构造函数中将合约创建者的初始值设为了10000。

接下来从第一个账户往第二个账户转30个MetaCoin:

truffle(default)> metacoin.sendCoin.sendTransaction(web3.eth.accounts[1],30,from:web3.eth.accounts[0])

上面调用sendCoin会向区块链发送一笔交易,需要节点挖矿使交易生效。

转账成功后再查看两个账户的余额是否发生了变化:

 
  1. truffle(default)> metacoin.getBalance.call(web3.eth.accounts[0])

  2. truffle(default)> metacoin.getBalance.call(web3.eth.accounts[1])

执行完后发现accounts[0]的余额变成了9970,accounts[1]的余额变成了30,说明转账成功了。输入.exit可以退出truffle控制台。

以太坊学习笔记:Truffle开发环境配置及使用_chuhuan6596的博客-CSDN博客

以上是关于truffle console用法 总结的主要内容,如果未能解决你的问题,请参考以下文章

使用 Truffle Develop 和 console

使用truffle console连接到公共区块链网络,出现undefined Error: Mnemonic invalid or undefined

如何将 wei/eth 发送到合约地址? (使用 truffle javascript 测试)

使用 web3 api 检查余额时出错

truffle详细使用教程

ChainIDE 3. 使用truffle部署合约