JSPM

@dashevo/dapi-grpc

2.1.0-dev.5
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 205
  • Score
    100M100P100Q112291F
  • License MIT

DAPI GRPC definition file and generated clients

Package Exports

    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 (@dashevo/dapi-grpc) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    DAPI GRPC

    Build Status NPM version Release Date license

    Decentralized API GRPC definition files and generated clients

    Table of Contents

    Install

    Ensure you have the latest NodeJS installed.

    From repository

    Clone the repo:

    git clone https://github.com/dashevo/dapi-grpc

    Install npm packages:

    npm install

    From NPM

    npm install @dashevo/dapi-grpc

    Usage

    Node users are able to access exported elements by requiring them under v0 property.

    Core Client

    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.

    Platform Client

    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

    Maintainer

    @shumkov

    Contributing

    Feel free to dive in! Open an issue or submit PRs.

    License

    MIT © Dash Core Group, Inc.