npm.io
1.3.0 • Published 3 years ago

@vaimee/desmold-sdk

Licence
MIT
Version
1.3.0
Deps
5
Size
86 kB
Vulns
0
Weekly
0
Stars
2
DESMO

DESMO-SDK

npm Issues License Discord chat LinkedIn

Overview

DESMO-LD is a distributed oracle for IoT data. This project exposes a practical NodeJS and browser API to interact with DESMO-LD system components.

Table of Contents
  • Documentation
  • Acknowledgments
  • Contact
  • Features

    The Desmo-SDK provides an easy way to interact with the contracts defined in desmo-contracts. The Desmo-SDK provides functions to:

    • Sign in your wallet with MetaMask or with a RPC provider
    • Interact with the Desmo-Hub and Desmo contracts :
      • calling all the public function on the contracts
      • retrieve the results with an event based approach

    Installation

    Starting using the Desmo-SDK is really easy, just use the following command in your Node.js project:

    npm i @vaimee/desmold-sdk

    Usage Examples

    DesmoHub contract
    Register your TDD
    // Sign in with a RPC provider and a private key
    const walletSigner: WalletSignerJsonRpc = new WalletSignerJsonRpc(chainURL);
    walletSigner.signInWithPrivateKey(privateKEY);
    // Otherwise Sign in with MetaMask
    // const walletSigner = new WalletSignerMetamask(window.ethereum);
    const desmohub: DesmoHub = new DesmoHub(walletSigner);
    // state changing methods work with an event based approach
    await desmohub.startListeners();
    desmoHub.tddCreated$.subscribe(() => console.log('tdd created'));
    await desmoHub.registerTDD(TDDUrl);
    Get your TDD
    // Sign in with a RPC provider and a private key
    const walletSigner: WalletSignerJsonRpc = new WalletSignerJsonRpc(chainURL);
    walletSigner.signInWithPrivateKey(privateKEY);
    // Otherwise Sign in with MetaMask
    // const walletSigner = new WalletSignerMetamask(window.ethereum);
    const desmohub: DesmoHub = new DesmoHub(walletSigner);
    // no need to listen for events -> not a state changing method
    const myTDDObject = await desmohub.getTDD();
    Desmo Contract
    Buy a query
    // Sign in with a RPC provider and a private key
    const walletSigner: WalletSignerJsonRpc = new WalletSignerJsonRpc(chainURL);
    walletSigner.signInWithPrivateKey(privateKEY);
    // Otherwise Sign in with MetaMask
    // const walletSigner = new WalletSignerMetamask(window.ethereum);
    const desmohub: DesmoHub = new DesmoHub(walletSigner);
    const desmoContract = new DesmoContract(walletSigner);
    const eventPromise = firstValueFrom(desmoHub.requestID$);
    await desmoHub.getNewRequestID();
    const event = await eventPromise;
    await desmoContract.buyQuery(
      event.requestID,
      JSON.stringify(query),
      iExecDAppAddress,
    );

    For further usage examples we suggest to go check out our front-end that make use of the Desmo-SDK

    Documentation

    Our code is well documented, if you have any doubt you can check our documentation page

    Acknowledgments

    DESMO-LD

    DESMO-SDK is founded by the DESMO-LD project inside the ONTOCHAIN european organization part of the Next Generation Internet fund.

    Contact

    VAIMEE - @MaVaimee - info@vaimee.com