etherlime-2-Etherlime Library API-deployer
Etherlime Library API 库API
Deployer部署者
Deployer functionality
The main functionality the deployer exposes is (obviously) the ability to deploy compiled contract.
开发者暴露的主要函数(明显)是部署编译合约的能力。
This is achieved through the deploy(contract, [libraries], [params])
function.
通过deploy(contract, [libraries], [params])
函数得到这样的能力
deploy(contract, [libraries], [params])
Parameters参数:
contract
- descriptor object for contract to be deployed. More details below被部署合约的描述对象,更多细节在下面libraries
- key-value object containing all libraries which will be linked to the contract. 链接到合约的包含所有库的键-值对象params
- the constructor params you’d need to pass on deploy (if there are any) 在部署中你需要传给合约构造函数的参数(如果需要的话)
The contract is descriptor object that needs to have at least the following three fields:
合约是至少需要下面三个字段的描述对象
contractName
- the name of the contract 合约名字abi
- the abi interface of the contract 合约abi接口bytecode
- the compiled bytecode 编译的字节码
The easiest way to get such descriptor is to compile your solidity files via etherlime compile
最简单的得到描述者的方法是通过etherlime compile编译你的solidity文件
The libraries object should be in the following format:
文件对象应该是如下的格式:
{
libraryName0: '0xAddressOfLibrary0',
libraryName1: '0xAddressOfLibrary1'
}
If the contract to be deployed doesn’t contains any libraries, {}
, undefined
, null
, false
or 0
can be passed. For convenience we have made the deploy function to work even without this parameter passed.
如果被部署的合约没有包含任何的库,那么可以传递{}
, undefined
, null
, false
或0给库对象。为了方便,即使没有这些参数被传递我们也可以让部署函数工作起来
Example举例说明:
Linking libraries链接库
const contractUsingQueueAndLinkedList = require('...'); const libraries = {
Queue: '0x655341AabD39a5ee0939796dF610aD685a984C53,
LinkedList: '0x619acBB5Dafc5aC340B6de4821835aF50adb29c1'
} await deployer.deploy(contractUsingQueueAndLinkedList, libraries);
Skipping linking on contract without arguments
跳过库链接并且合约构造函数不需要参数
const contractWithoutLibraries = require('...'); await deployer.deploy(contractWithoutLibraries);
Skipping linking on contract with arguments
跳过库链接,合约构造函数需要参数
const contractWithoutLibraries = require('...'); await deployer.deploy(contractWithoutLibraries, false, param1, param2);
estimateGas(contract, [libraries], [params])估计使用的gas
Estimates the gas that this transaction is going to cost you.估计这个交易将要花费的gas
Parameters参数:
contract
- descriptor object for contract to be deployed 部署的合约的描述对象libraries
- key-value object containing all libraries which will be linked to the contract. 链接到合约的包含所有库的键-值对象params
- the constructor params you’d need to pass on deploy (if there are any)在部署中你需要传给合约构造函数的参数(如果需要的话)
The contract is descriptor object is the same as above.
合约是和上面一样的描述对象
Example举例说明
const estimate = await deployer.estimateGas(TestContract, randomParam1, randomParam2);
// returns something like "2470692"
Deployers
InfuraPrivateKeyDeployer
InfuraPrivateKeyDeployer(privateKey, network, apiKey, [defaultOverrides])
Parameters参数:
privateKey
- The private key to the deployment wallet 部署钱包的密钥network
- network as found inethers.providers.networks 使用
ethers.providers.networks
找到的网络apiKey
- your Infura API keydefaultOverrides
- [Optional] object overiding the deployment settings forgasPrice
andgasLimit
.(可选)复写部署设置中的gasPrice
和
asLimit的对象
const etherlime = require('etherlime'); const TestContract = require('./TestContract.json'); const defaultConfigs = {
gasPrice: ,
gasLimit:
} const deploy = async (network, secret) => { const deployer = new etherlime.InfuraPrivateKeyDeployer('Your Private Key Goes Here', 'ropsten', 'Your Infura API Key', defaultConfigs); const result = await deployer.deploy(TestContract, '0xda8a06f1c910cab18ad187be1faa2b8606c2ec86', );
}
JSONRPCPrivateKeyDeployer
JSONRPCPrivateKeyDeployer(privateKey, nodeUrl, [defaultOverrides])
Parameters参数:
privateKey
- The private key to the deployment wallet部署钱包的密钥nodeUrl
- the url to the node you are trying to connect (local or remote)你打算连接的节点的URL(本地或远程)defaultOverrides
- [Optional] object overiding the deployment settings forgasPrice
andgasLimit
.(可选)复写部署设置中的gasPrice
和
asLimit的对象
const etherlime = require('etherlime'); const TestContract = require('./TestContract.json'); const defaultConfigs = {
gasPrice: ,
gasLimit:
} const deploy = async (network, secret) => { const deployer = new etherlime.JSONRPCPrivateKeyDeployer('Your Private Key Goes Here', 'http://localhost:8545/', defaultConfigs); const result = await deployer.deploy(TestContract);
}
EtherlimeGanacheDeployer
EtherlimeGanacheDeployer([privateKey], [port], [defaultOverrides])
Parameters:
privateKey
- [Optional] The private key to the deployment wallet. Defauts to the first one in the etherlime ganache(可选)部署钱包的私钥。默认为etherlime ganache中的第一个账户port
- [Optional] the port you’ve ran the etherlime ganache on. Defaults to 8545.(可选)etherlime ganache的端口,默认为8545defaultOverrides
- [Optional] object overiding the deployment settings forgasPrice
andgasLimit
.(可选)复写部署设置中的gasPrice
和
asLimit的对象
This deployer only works with etherlime ganache
该部署只在etherlime ganache能工作
const etherlime = require('etherlime'); const TestContract = require('./TestContract.json'); const defaultConfigs = {
gasPrice: ,
gasLimit:
} const deploy = async (network, secret) => { const deployer = new etherlime.EtherlimeGanacheDeployer(); const result = await deployer.deploy(TestContract);
}
etherlime-2-Etherlime Library API-deployer的更多相关文章
- Google Ajax Library API使用方法(JQuery)
Google Ajax Library API使用方法 1.传统方式: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7. ...
- Windows api 函数全部列表 (未完成)
网上找了很久,发现没有完整版的,msdn上面有,但是不方便查阅,所以想自己整理一下:由于工程量过于庞大,希望大家共同完成.MSDN:http://msdn.microsoft.com/en-us/li ...
- Prism5.0新内容 What's New in Prism Library 5.0 for WPF(英汉对照版)
Prism 5.0 includes guidance in several new areas, resulting in new code in the Prism Library for WPF ...
- etherlime-1-Quick Start
https://etherlime.readthedocs.io/en/latest/getting-started.html Quick Start Installing全局安装 npm i -g ...
- etherlime-4-Etherlime CLI
Etherlime CLI命令行界面 Installing & Help Syntax语法 npm i -g etherlime Install the global etherlime to ...
- The .NET of Tomorrow
Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciting times lie ahead f ...
- 资源list:Github上关于大数据的开源项目、论文等合集
Awesome Big Data A curated list of awesome big data frameworks, resources and other awesomeness. Ins ...
- robotframework笔记22
创建测试库 支持的编程语言 机器人框架本身是用写的 Python 和自然的测试 库扩展它可以使用相同的实现 语言. 运行时框架上 Jython ,图书馆也可以 实现使用 Java . 纯Python代 ...
- C++ 多继承和虚继承的内存布局(转)
转自:http://www.oschina.net/translate/cpp-virtual-inheritance 警告. 本文有点技术难度,需要读者了解C++和一些汇编语言知识. 在本文中,我们 ...
随机推荐
- item2 快捷键
快捷键 ⌘ + Click:可以打开文件,文件夹和链接 ⌘ + n:新建窗口 ⌘ + t:新建标签页 ⌘ + w:关闭当前页 ⌘ + 数字 & ⌘ + 方向键:切换标签页 ⌥⌘ + 数字:切换 ...
- 安装pl/sql developer(内附下载地址)
前言:PL/SQL Developer是一个集成开发环境,更方便的使用oracle,这里记录一下安装过程. 第一步:下载 这里提供我的百度云连接: 链接:https://pan.baidu.com/s ...
- xamarin.Android 选择本地图片、拍摄图片、剪裁图片
[Activity(Theme = "@style/MyStyleBottom")] public class SelectPicPopupWindow : Activity, I ...
- SESSION机制(转)
转自:http://www.cnblogs.com/zyf-zhaoyafei/p/4477175.html 一:Session与Cookie Session:在服务器端创建并存放在服务器的内存中的, ...
- 浏览器从输入到输出的过程与原理三之DNS
1. DNS 在互联网上的每一个计算机都拥有一个唯一的地址,称作“IP地址”(即互联网协议地址).由于IP地址(为一串数字)不方便记忆,DNS允许用户使用一串常见的字母(即“域名”)取代.比如,您只需 ...
- android studio *.apk does not exist on disk
Build -> Clean Project Restart Android Studio
- 【Android】Retrofit网络请求Service,@Path、@Query、@QueryMap...
对Retrofit已经使用了一点时间了,是时候归纳一下各种网络请求的service了. 下面分为GET.POST.DELETE还有PUT的请求,说明@Path.@Query.@QueryMap.@Bo ...
- git bash 出现vim弹框的时候怎么退出
如果是输出状态,首先按Esc键退出输入状态,然后按Shift+“;”,再输入q!或wq!(不保存改动,wq!是保存文件的写入修改)退出. so easy!!
- seo关键词
除非你站有很高的权重. 小道消息称keywords曾被百度.谷歌.雅虎等搜索引擎剔除,将不会再影响搜索引擎的排序结果,小编认为设置一下总没坏处,还是有一些搜索引擎比较重视keywords标签的. 用法 ...
- SSH安全
新建用户,设置密码 useradd eason passwd eason 不允许root直接登陆 修改配置文件 vi /etc/ssh/sshd_config 禁止root登录 查找“#PermitR ...