Client library to connect your app with forge powered blockchain node, all requests are sent over http/https, can be used in both Node.js and browser environment.
A GraphQLClient
instance mainly supports 5 groups of methods that saves you time when read/write data from/to blockchain.
queries
: query block/transaction/account/asset/chain/node data form the blockchainmutations
: send transaction to the blockchain, sendTx
, all transactions should be signed before sending out to the blockchainsubscriptions
: listen to changes of any data on the blockchainsenders
: shortcut methods that takes a wallet
and a tx
object, then do the signing, and sendingencoders
: shortcut methods that takes a wallet
and a tx
object, encode the transaction for later signing, used internally by senders
Table of Contents
Install
npm i @ocap/client -S
# OR
yarn add @ocap/client
Usage
const Mcrypto = require('@ocap/mcrypto');
const GraphQLClient = require('@ocap/client');
const { fromRandom, WalletType } = require('@ocap/wallet');
const { hexToBytes } = require('@ocap/util');
const client = new GraphQLClient('http://localhost:8210/api');
console.log({
queries: client.getQueries(),
subscriptions: client.getSubscriptions(),
mutations: client.getMutations(),
senders: client.getTxSendMethods(),
encoders: client.getTxEncodeMethods(),
});
(async () => {
const chainInfo = await client.getChainInfo();
const forgeState = await client.getForgeState();
const block = await client.getBlock({ height: 2 });
console.log('getChainInfo', chainInfo);
console.log('getForgeState', forgeState);
console.log('getBlock', block);
const wallet = fromRandom(
WalletType({
role: Mcrypto.types.RoleType.ROLE_ACCOUNT,
pk: Mcrypto.types.KeyType.SECP256K1,
hash: Mcrypto.types.HashType.SHA3,
})
);
const hash = await client.declare({
moniker: 'username',
wallet,
});
console.log(hash);
})();
Examples
Debugging
- If you are in Node.js:
DEBUG=@ocap/client node script.js
- If you are in browser:
localStorage.setItem('DEBUG', '@ocap/client')
Documentation
- Query arguments and response structure can be found here: QUERIES.md
- Complete method list can be found here: README.md