Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jan 2, 2022. It is now read-only.

HAECHI-LABS/henesis-cli

Repository files navigation

henesis-cli

πŸš€ Command Line Interface tool to Utilize henesis

License Version Platform ci

Install

To use henesis-cli, Node v10 or higher must be installed.

$ npm install -g @haechi-labs/henesis-cli
$ henesis help
VERSION
 @haechi-labs/henesis-cli/1.0.0-beta.39 darwin-x64 node-v10.16.0
USAGE
 $ henesis [COMMAND]
COMMANDS
 changepw change password
 help display help for henesis
 init create the folder structure required for your project
 integration manage integrations
 login perform a login
 logout perform a logout
 nft manage nft api
 node manage trusted nodes

How to Setup Henesis AutoComplete

$ henesis autocomplete

Enter the following script according to your shell type.

zsh:

$ printf "$(henesis autocomplete:script zsh)" >> ~/.zshrc; source ~/.zshrc

bash:

$ printf "$(henesis autocomplete:script bash)" >> ~/.bashrc; source ~/.bashrc

Usage

account

You must be logged in to use this features.

manage your account
USAGE
 $ henesis account:COMMAND
COMMANDS
 account:changepw change account password
 account:describe describe account information

account:changepw

Command Line
$ henesis account:changepw
Password: ******
New Password: ******
Again New Password: ******
πŸ¦„ Password changed!

account:describe

Command Line
$ henesis account:describe
Email: haechi@haechi.io
Name: haechi
Organization: haechi-labs
clientId: 49e77d0be585ef71c337f758e61e1f16

help

Use help as:

 $ henesis help [COMMAND]

For example, you can call help about integration:delete command like:

$ henesis help integration:delete
delete a integration
USAGE
 $ henesis integration:delete [INTEGRATIONID]
EXAMPLE
 $ henesis integration:delete my-integration-id

init

The directory in which the init command is run must be empty.

$ henesis init -n sample-project
sample-project directory has been created.

After this, the following folder structure is created.

sample_project
β”œβ”€β”€ contracts
β”‚ └── example.sol
└── henesis.yaml

integration

You can use command where the henesis.yaml file exists.

$ henesis integration
manage integrations
USAGE
 $ cli integration:COMMAND
COMMANDS
 integration:delete delete a integration
 integration:deploy deploy a integration
 integration:describe describe a integration
 integration:status get integrations
 integration:usage show event streamer statistics

There are tasks to be done before the deploy command.

  • Place the contract file distributed in Blockchain inside the contract directory.
  • Modify the henesis.yaml file to match the event you want to subscribe to and place the file with logic in the handler directory.
  • You can run the deploy command and check the status of the distribution through the status command.

integration:delete

Command Line
$ henesis integration:delete <integrationId>

integration:deploy

Command Line
$ henesis integration:deploy
Options
  • -f or --force: Erase existing deployed content and deploy current configuration.
  • -p or --path: Specify where henesis.yaml is located.

integration:describe

Command Line
henesis integration:describe <integrationId>

integration:status

Command Line
henesis integration:status

integration:describe

Command Line
henesis integration:describe <integrationId>

login

$ henesis login
Allow Henesis to collect anonymous CLI usage and error reporting information
yes(y) or no(n): y
email: yoonsung@haechi.io
password: ***********
πŸŽ‰ Login Success from yoonsung@haechi.io πŸŽ‰

logout

$ henesis logout
πŸ€— Logout Success πŸ‘

node

manage trusted nodes
USAGE
 $ henesis node:COMMAND
COMMANDS
 node:status show truested node information
 node:usage show truested node statistics

node:status

Command Line
$ henesis node:status
Platform Network Endpoint
ethereum mainnet https://tn.henesis.io/ethereum/mainnet
ethereum ropsten https://tn.henesis.io/ethereum/ropsten
ethereum rinkeby https://tn.henesis.io/ethereum/rinkeby

node:usage

Command Line
$ henesis node:usage
Henesis Trusted Node (Ethereum) Statistics
Total rpc call of this month: 226,233,096
This command shows the trusted node usage this month(The stat is updated every hour).
The daily statistic is added at UTC+0.
Date Usage Bandwidth
2019εΉ΄12月04ζ—₯ 27,105,464 75.96 GB
2019εΉ΄12月03ζ—₯ 107,220,983 300.35 GB
2019εΉ΄12月02ζ—₯ 51,677,543 135.39 GB
2019εΉ΄12月01ζ—₯ 40,229,106 107.58 GB

nft

manage nft api
USAGE
 $ henesis nft:COMMAND
COMMANDS
 nft:usage show nft api statistics

nft:usage

Command Line
$ henesis nft:usage
Henesis NFT API (Ethereum) Statistics
Total api call of this month: 25,904
This command shows the nft api usage this month.
Date Usage 
2020εΉ΄02月05ζ—₯ 6,250 
2020εΉ΄02月04ζ—₯ 11,500 
2020εΉ΄02月03ζ—₯ 8,154 

About henesis.yaml

webSocket

name: sample
version: v1 # (TBD) The version of this yaml file.
apiVersion: v1 # (TBD) The version of Henesis api. The type of message you receive can be changed depending on this version.
blockchain:
 platform: ethereum
 network: mainnet
 threshold: 12 # optional.
 # Ethereum: (default: 12, min: 6)
 # Klaytn: (default: 0, min: 0)
filters:
 contracts:
 - address: '0x'
 name: example
 files: # The events of the contracts listed below can be combined together at this address.
 - path: ./contracts/example.sol
 contractName: example
 compilerVersion: 0.5.8
provider:
 type: webSocket

webhook

name: sample
version: v1 # (TBD) The version of this yaml file.
apiVersion: v1 # (TBD) The version of Henesis api. The type of message you receive can be changed depending on this version.
blockchain:
 platform: ethereum
 network: mainnet
 threshold: 12 # optional.
 # Ethereum: (default: 12, min: 6)
 # Klaytn: (default: 0, min: 0)
filters:
 contracts:
 - address: '0x'
 name: example
 files: # The events of the contracts listed below can be combined together at this address.
 - path: ./contracts/example.sol
 contractName: example
 compilerVersion: 0.5.8
provider:
 type: webhook
 url: https://localhost:8080
 method: POST
 headers:
 Authorization: 'Bearer YOUR-OWN-TOKEN'

Parameter Details

The following are detailed explanations for parameters used to henesis.yaml.

version & name

The version and name are used as delimiters to identify the project. The name must consist only of lowercase letters, numbers, '-' and '.', the maximum length is 253 characters.

apiVersion

The apiVersion is the version of Henesis api. The type of message you receive can be changed depending on this version.


blockchain

The blockchain part is an area that describes the platform and network name of the blockchain in which the smart contract to e subscribed is deployed.

platform

The blockchain platform you want to use.

We support now

  • ethereum
  • klaytn
network

The blockchain network you want to use.

We support now below chains.

platform network chain
ethereum mainnet mainnet
ethereum ropsten ropsten testnet
ethereum rinkeby rinkeby testnet
klaytn mainnet cypress mainnet
klaytn baobob baobob testnet
threshold

Minimum confirmation thresohld which you want to received.

Caution : when receiving data, we wait for a threshold of block confirmation.


filters

The filters part is about information for the smart contracts you want to subscribe through Henesis.

You can subscribe to more than one contract.

contracts
address

An address of the deployed smart contract

name

A name of the contract filter

files
path

A file path of the smart contract source code

contractName

A name of the contract to subscribe in the source code

compilerVersion

A solidity compiler version. Must be identical to the compiler version at the time of deployment.


provider

The provider is where you choose how to receive events from Henesis. We support WebSocket and Webhook

The WebSocket doesn't need any settings like url, method, headers.

type

WebSocket or Webhook

url

URL which you want to hook

method

HTTP method like a GET, POST, PUT, DELETE

headers
Authorization

If you want to set authorization (like a JWT), you can set authorization

We also support tutorial.

About

πŸš€ Command Line Interface tool to Utilize henesis

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /