truffle编译合约常见问题及其在私链上的部署与交互

 

 一、初始化truffle项目

truffle init //初始化truffle项目文件夹

将写好的合约文件放到contract文件夹中

truffle  compile  //编译合约

(注意!!

此时往往会编译失败,可以分为两种情况,编译器版本问题  合约代码有编译错误。

编译器版本问题:

  1、修改truffle-config.js 文件(它就是网上常说的truffle.js文件),将里面的  

 

 version对应的0.5.1改为所需要的版本号。别忘了去掉该行的注释号

  2、将合约文件第一行的 “ ^ ” ,改为" >= "。

 

代码问题:

  不允许函数名与合约名相同。 

)

编译后的信息存储在build文件夹里。

 

二、部署合约到私链

  1、自己需要写一下配置,打开truffle-config.js文件,,加一个图示中的live,live本身没有意义,只是一个名称。需要注意的是host为IP,por为端口,network_id为标识,都需要与私链开启的参数相一致,如

geth --networkid 123456 --rpc --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*" --datadir ./data --nodiscover --rpcapi "eth,net,web3,personal,miner" console

 

  2、部署合约的命令是:

truffle migrate --network live --reset

  

  3.与普通的部署合约一样,需要账户先解锁,然后 挖矿,才能部署成功

 

三、合约交互

 

  1、首先得到合约的ABI,注意需要先对migrations文件夹新建一个文件“2_deploy_contracts.js”,内容是

var Test = artifacts.require("./add.sol");

module.exports = function(deployer) {
  deployer.deploy(Test);
};

用来规范合约部署的顺序。

  2、aaa = eth.contract(abi).at("0xafsadfdsafsadfsda合约位置")

  3、aaa.Add.call(1,2)   //调用合约 

转载于:https://www.cnblogs.com/daybreaking/p/11186045.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值