JSPM

dash

5.1.0-dev.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 648
  • Score
    100M100P100Q97361F
  • License MIT

Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...)

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

    Readme

    Dash SDK

    NPM Version Release Packages Release Date standard-readme compliant

    Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...)

    Warning: This SDK should only be used in production when connected to trusted nodes. Although it provides easy access to Dash Platform without requiring a full node, it does not support Dash Platform’s proofs or verify synchronized blockchain data. Therefore, it is less secure than the Rust SDK, which requests proofs for all queried data.

    Dash library provides access via DAPI to use both the Dash Core network and Dash Platform on supported networks. The Dash Core network can be used to broadcast and receive payments. Dash Platform can be used to manage identities, register data contracts for applications, and submit or retrieve application data via documents.

    Table of Contents

    Install

    ES5/ES6 via NPM

    In order to use this library, you will need to add it to your project as a dependency.

    Having NodeJS installed, just type : npm install dash in your terminal.

    npm install dash

    CDN Standalone

    For browser usage, you can also directly rely on unpkg :

    <script src="https://unpkg.com/dash"></script>

    Usage

    const Dash = require("dash"); // or import Dash from "dash"
    
    const client = new Dash.Client({
      wallet: {
        mnemonic: "arena light cheap control apple buffalo indicate rare motor valid accident isolate",
      },
      apps: {
        tutorialContract: {
          // Learn more on how to register Data Contract
          // https://dashplatform.readme.io/docs/tutorial-register-a-data-contract#registering-the-data-contract
          contractId: "<tutorial-contract-id>" 
        }
      }
    });
    
    // Accessing an account allow you to transact with the Dash Network
    client.wallet.getAccount().then(async (account) => {
      console.log('Funding address', account.getUnusedAddress().address);
    
      const balance = account.getConfirmedBalance();
      console.log('Confirmed Balance', balance);
    
      if (balance > 0) {
        // Obtain identity - the base of all platform interactions
        // Read more on how to create an identity here: https://dashplatform.readme.io/docs/tutorial-register-an-identity
        const identityIds = account.identities.getIdentityIds();
        const identity = await client.platform.identities.get(identityIds[0]);
    
        // Prepare a new document containing a simple hello world sent to a hypothetical tutorial contract
        const document = await client.platform.documents.create(
          'tutorialContract.note',
          identity,
          { message: 'Hello World' },
        );
    
        // Broadcast the document into a new state transition
        await client.platform.documents.broadcast({ create: [document] }, identity);
    
        // Retrieve documents
        const documents = await client.platform.documents.get('tutorialContract.note', {
          limit: 2,
        });
    
        console.log(documents);
      }
    });

    Primitives and essentials

    Dash SDK bundled into a standalone package, so that the end user never have to worry about mananaging polyfills or related dependencies

    const Dash = require('dash')
    
    const {
      Essentials: {
        Buffer  // Node.JS Buffer polyfill.
      },
      Core: { // @dashevo/dashcore-lib essentials
        Transaction, 
        PrivateKey,
        BlockHeader,
        // ...
      },
      PlatformProtocol: { // @dashevo/wasm-dpp essentials
        Identity,
        Identifier,
      },
      WalletLib: { // @dashevo/wallet-lib essentials
        EVENTS
      },
      DAPIClient, // @dashevo/dapi-client
    } = Dash;

    Dependencies

    The Dash SDK works using multiple dependencies that might interest you:

    • Wallet-Lib - Wallet management for handling, signing and broadcasting transactions (BIP-44 HD).
    • Dashcore-Lib - Provides the main L1 blockchain primitives (Block, Transaction,...).
    • DAPI-Client - Client library for accessing DAPI endpoints.
    • Wasm-DPP - Implementation of Dash Platform Protocol.

    Some features might be more extensive in those libs, as Dash SDK only wraps around them to provide a single interface that is easy to use (and thus has less features).

    Documentation

    More extensive documentation available at https://dashpay.github.io/platform/SDK/.

    Contributing

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

    License

    MIT © Dash Core Group, Inc.