9.1.2. Javascript library¶
This library provides functions which will help you to interact with Hyperledger Iroha from your JS program.
9.1.2.1. Installation¶
Via npm
$ npm i iroha-helpers
Via yarn
$ yarn add iroha-helpers
9.1.2.2. Commands¶
For usage of any command you need to provide commandOptions
as a first argument.
const commandOptions = {
privateKeys: ['f101537e319568c765b2cc89698325604991dca57b9716b58016b253506cab70'], // Array of private keys in hex format
creatorAccountId: '', // Account id, ex. admin@test
quorum: 1,
commandService: null
}
As second argument you need to provide object that contains properties for required command.
// Example usage of setAccountDetail
const commandService = new CommandService_v1Client(
'127.0.0.1:50051',
grpc.credentials.createInsecure()
)
const adminPriv = 'f101537e319568c765b2cc89698325604991dca57b9716b58016b253506cab70'
commands.setAccountDetail({
privateKeys: [adminPriv],
creatorAccountId: 'admin@test',
quorum: 1,
commandService
}, {
accountId: 'admin@test',
key: 'jason',
value: 'statham'
})
9.1.2.3. Queries¶
For usage of any query you need to provide queryOptions
as a first argument.
const queryOptions = {
privateKey: 'f101537e319568c765b2cc89698325604991dca57b9716b58016b253506cab70', // Private key in hex format
creatorAccountId: '', // Account id, ex. admin@test
queryService: null
}
As second argument you need to provide object that contains properties for required query.
// Example usage of getAccountDetail
const queryService = new QueryService_v1Client(
'127.0.0.1:50051',
grpc.credentials.createInsecure()
)
const adminPriv = 'f101537e319568c765b2cc89698325604991dca57b9716b58016b253506cab70'
queries.getAccountDetail({
privateKey: adminPriv,
creatorAccountId: 'admin@test',
queryService
}, {
accountId: 'admin@test'
})
9.1.2.4. Example code¶
import grpc from 'grpc'
import {
QueryService_v1Client,
CommandService_v1Client
} from '../iroha-helpers/lib/proto/endpoint_grpc_pb'
import { commands, queries } from 'iroha-helpers'
const IROHA_ADDRESS = 'localhost:50051'
const adminPriv =
'f101537e319568c765b2cc89698325604991dca57b9716b58016b253506cab70'
const commandService = new CommandService_v1Client(
IROHA_ADDRESS,
grpc.credentials.createInsecure()
)
const queryService = new QueryService_v1Client(
IROHA_ADDRESS,
grpc.credentials.createInsecure()
)
Promise.all([
commands.setAccountDetail({
privateKeys: [adminPriv],
creatorAccountId: 'admin@test',
quorum: 1,
commandService
}, {
accountId: 'admin@test',
key: 'jason',
value: 'statham'
}),
queries.getAccountDetail({
privateKey: adminPriv,
creatorAccountId: 'admin@test',
queryService
}, {
accountId: 'admin@test'
})
])
.then(a => console.log(a))
.catch(e => console.error(e))