zoukankan      html  css  js  c++  java
  • 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)   //调用合约 

  • 相关阅读:
    mysql 写计数器需要注意的问题
    CSS3倒影效果
    svg path 解析
    图论-深度优先和广度优先(均非递归)
    线段树---HDU1166敌兵布阵
    线段树入门---给定多个线段求点的出现个数
    NYOJ-129 并查集
    并查集(基础)
    二叉搜索树
    堆及堆排序
  • 原文地址:https://www.cnblogs.com/daybreaking/p/11186045.html
Copyright © 2011-2022 走看看