truffle方式智能合约交互MetaCoin案例

作者:梁雁明

著权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

运行环境:

基础目录:/Users/yves/ethereum/truffle

操作系统:Mac OS

 

1:新建目录mcoin并进入;

mkdir mcoin && cd mcoin

2: 使用truffle unbox构建metacoin项目;

truffle unbox metacoin

3:编辑truffle.js文件,主要设置网络节点的地址,端口与网络编号,我本地用的是Ganache客户端支持,分别如图

module.exports= {
    
// See
    // to customize your Truffle configuration!
    
networks:{
        
development: {
            
host“127.0.0.1”,
            
port:“7545”,
            
network_id“5777” //Match any network id
        
}
    }
}
;

4:mcoin目录下,执行npm init形成node环境构建

npm init

5:添加依赖web3 truffle-contract,后package.json文件如下截图:

npm install web3@^0.18.4–-save

npm install truffle-contract@^3.0.5–-save

“dependencies”{
  
“truffle-contract”“^3.0.5”,
  
“web3”“^0.18.4”
}

7:编译部署

truffle compile

truffle migrate

8:编写index.js文件

var Web3require(“web3”)//添加以太坊web3.js支持
var contract require(“truffle-contract”)//node或浏览器端来说,更佳的以太坊合约抽象

//本地Ganache节点支持
var provider = new Web3.providers.HttpProvider(“http://127.0.0.1:7545”);
//MetaCoin合约
var SimpleNameRegistry = contract(require(“./build/contracts/MetaCoin.json”));
SimpleNameRegistry.setProvider(provider);//合约提供注册
SimpleNameRegistry.setNetwork(5777);//rpcport

//本地Ganache两账号
var account_one = “0x71D1d7371a618fA8Bb9B935Ada72994CD52Ad9d8”// first address
var account_two = “0xB94cf76E109BEE4b798898aD28EA475AbcfB5308”// another address

//instance of metacoin
var meta;
SimpleNameRegistry.deployed().then(function(instance) {
    meta = instance
;
    
//send 10 metacoin from account_one to account_two
    
returnmeta.sendCoin(account_two10,{from: account_one});
}).then(function(result){
    
//query balance of metacoin of account one
    
returnmeta.getBalance.call(account_one,{from:account_one});
}).then(reslut=>{
    console.
info(“balance of account_one:” + reslut)//info
}).catch(function(e) {
    
// There was an error! Handle it.
    
console.log(e);
})

9:结果

文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享