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 forgasPriceandgasLimit.(可选)复写部署设置中的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 forgasPriceandgasLimit.(可选)复写部署设置中的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 forgasPriceandgasLimit.(可选)复写部署设置中的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++和一些汇编语言知识. 在本文中,我们 ...
随机推荐
- 悟空模式-java-普通工厂模式
[大圣看玩多时,问土地道:“此树有多少株数?”土地道:“有三千六百株.前面一千二百株,花微果小,三千年一熟,人吃了成仙了道,体健身轻.中间一千二百株,层花甘实,六千年一熟,人吃了霞举飞升,长生不老.后 ...
- 统计SQL Server所有表记录数
SELECT SCHEMA_NAME(t.schema_id) AS [schema] ,t.name AS tableName ,i.rows AS [rowCount] FROM sys.tabl ...
- PHP ServerPush (推送) 技术的探讨[整理]
需求: 我想做个会员站内通知的功能.不想用以前的ajax查询,听说有个推技术.以下文章介绍的不错,来自转载, ============================================= ...
- 【代码笔记】iOS-cell自动变化大小
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- Mysql 删除数据表的三种方式详解
用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, 用 delete. 删除强度:dro ...
- ci 3.0 默认路由放在子文件夹 无法访问的解决办法
比方说你想配置默认路由为: $route['default_controller'] = 'index/home'; ci3.0之前是可以放在 controllers中的子文件夹中的,但是到了ci ...
- CentOS7系列--5.1CentOS7中配置和管理KVM
CentOS7配置和管理KVM 安装与配置虚拟化软件KVM ( Kernel-based Virtual Machine ) + QEMU,它要求计算机的CPU支持Intel VT or AMD-V功 ...
- ArcGIS for JavaScript 关于路径开发的一些记录(二)
又是高度集中开发路径模块的一天.真希望自己以后都可以如此的专注和高效(虽然知道很难一直都保持这样的状态,我会坚持的~哈哈哈) 言归正传,今天开发了途径点的功能和改进了些相关起点.终点的代码.先说一下我 ...
- android之画板功能之橡皮擦 画笔大小和画笔颜色
第一展示设置画笔颜色的功能,第二展示设置画笔大小的颜色,而第三则展示橡皮擦的功能,这节将图标颜色设置为了蓝色,并且,增加了最左边的按钮(其实,就是在gridview中多增加了一个item). 下面分别 ...
- 使用Callable和Future接口创建线程
具体是创建Callable接口的实现类,并实现clall()方法.并使用FutureTask类来包装Callable实现类的对象,且以此FutureTask对象作为Thread对象的target来创建 ...