Package Exports
- @ocap/client
- @ocap/client/dist/browser.js
- @ocap/client/dist/lite
- @ocap/client/dist/lite.js
- @ocap/client/lib/node.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ocap/client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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 awalletand atxobject, then do the signing, and sendingencoders: shortcut methods that takes awalletand atxobject, encode the transaction for later signing, used internally by senders
Table of Contents
Install
npm i @ocap/client -S
# OR
yarn add @ocap/clientUsage
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 () => {
// Query chain state data
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);
// Send transaction
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
- Declare identify on the blockchain
- Get free token for newly created account
- Transfer assets between 2 accounts
- Transfer tokens between 2 accounts
- Exchange asset and token between 2 newly created accounts
- Create/update asset on the blockchain
- Consume newly create asset
- Stake for the connected node
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