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博客

猜你喜欢

转载自blog.csdn.net/u013288190/article/details/123850542