Decentralized API GRPC definition files and generated clients
Ensure you have the latest NodeJS installed.
Clone the repo:
git clone https://github.com/dashevo/dapi-grpc
Install npm packages:
npm install
npm install @dashevo/dapi-grpc
Node users are able to access exported elements by requiring them under v0 property.
Provide a client to perform core request.
const {
v0: {
CorePromiseClient,
},
} = require('@dashevo/dapi-grpc');
const client = new CorePromiseClient(url);
Provided method allow to then perform the request, by passing a specific request parameter (see below example). All methods share the same API :
- First parameter expect a specific request instance of a Request class (such as GetBlockRequest, GetTransactionRequest).
- Second parameter is optional for metadata object.
- Third parameter is optional for options.
Here is a usage example for requesting a Block by its hash and handling its response :
const {
v0: {
CorePromiseClient,
GetBlockRequest,
GetBlockResponse,
},
} = require('@dashevo/dapi-grpc');
const client = new CorePromiseClient(url);
async function getBlockByHash(hash, options = {}) {
const getBlockRequest = new GetBlockRequest();
getBlockRequest.setHash(hash);
const response = await client.getBlock(
getBlockRequest,
{},
options,
);
const blockBinaryArray = response.getBlock();
return Buffer.from(blockBinaryArray);
}
Available methods :
- getStatus
- getBlock
- broadcastTransaction
- getTransaction
- getEstimatedTransactionFee
- subscribeToBlockHeadersWithChainLocks
- subscribeToTransactionsWithProofs
For streams, such as subscribeToTransactionsWithProofs and subscribeToBlockHeadersWithChainLocks, a grpc-web stream will be returned. More info on their usage can be read over their repository.
Provide a client to perform platform request. Method's API and usage is similar to CorePromiseClient.
const {
v0: {
PlatformPromiseClient,
},
} = require('@dashevo/dapi-grpc');
const client = new PlatformPromiseClient(url);
Available methods :
- broadcastStateTransition
- getIdentity
- getDataContract
- getDocuments
- getIdentitiesByPublicKeyHashes
- waitForStateTransitionResult
- getConsensusParams
- setProtocolVersion
Feel free to dive in! Open an issue or submit PRs.
MIT © Dash Core Group, Inc.