solidity-以太坊区块链Truffle-webpack开发入门 (十) 管理包和打包EthPM

管理包和打包  原文地址

EthPM是Ethereum一个新的包管理工具,遵循ERC190 spec的智能合约的规则,而且支持Ethereum的很多开发工具

 

使用EthPM安装包:

$ truffle install <package name>

指定版号:

$ truffle install <package name>@<version>

*像NPM一样的版本号规则

 

安装依赖包,你可能会跟别人共同开发项目,为了方便别人开发,可以把你的需要安装的包的清单放在 ethpm.json文件中,当有改动时,执行下列命令就可安装依赖包

$ truffle install

 

已经安装的包会被放在installed_contracts目录中,如果你的项目没有此目录,那么在安装包的时候会自动创建的,像NPM的已安装包目录:node_modules一样,不要轻易的修改,除非有把握。

安装包的使用方式跟NPM的一样:

pragma solidity ^0.4.2;


import "owned/owned.sol";


contract MyContract is owned {
  // ...
}

不用使用路径,truffle会自动到EthPM或NPM的包目录中查找

***truffle会优先到EthPM目录中查找 如果找不到再到NPM包目录中查找

打包发布:

如果要发布我们的合约,必须要有一个真实的模拟环境,应为testrpc环境中的address都是指定的

此处我们用ropsten,ropsten是一个在线的模拟环境,有使用限制的

安装必要的插件:

  • $ npm install truffle-hdwallet-provider --save

     

修改truffle.js

var HDWalletProvider = require("truffle-hdwallet-provider");


// 12-word mnemonic
var mnemonic = "opinion destroy betray ...";


module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*" // Match any network id
    },
    ropsten: {
      provider: new HDWalletProvider(mnemonic, "https://ropsten.infura.io/"),
      network_id: 3 // official id of the ropsten network
    }
  }
};

编辑环境:ethpm.json

{
  "package_name": "adder",
  "version": "0.0.3",
  "description": "Simple contract to add two numbers",
  "authors": [
    "Tim Coulter <tim.coulter@consensys.net>"
  ],
  "keywords": [
    "ethereum",
    "addition"
  ],
  "dependencies": {
    "owned": "^0.0.1"
  },
  "license": "MIT"
}

执行打包命令:

$ truffle publish

打印的信息:

Gathering contracts...

Finding publishable artifacts...

Uploading sources and publishing to registry...

+ adder@0.0.3

为了确保打包发布成功,在发布之前需要清空网络

$ truffle networks --clean

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值