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 blockchain -
mutations
: send transaction to the blockchain,sendTx
, all transactions should be signed before sending out to the blockchain -
subscriptions
: listen to changes of any data on the blockchain -
senders
: shortcut methods that takes awallet
and atx
object, then do the signing, and sending -
encoders
: shortcut methods that takes awallet
and atx
object, encode the transaction for later signing, used internally by senders
npm i @ocap/client -S
# OR
yarn add @ocap/client
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);
})();
- 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
- If you are in Node.js:
DEBUG=@ocap/client node script.js
- If you are in browser:
localStorage.setItem('DEBUG', '@ocap/client')
- Query arguments and response structure can be found here: QUERIES.md
- Complete method list can be found here: README.md