Skip to content

robin-thomas/erasure-sdk

Repository files navigation

Erasure SDK

License

Table of Contents

  1. Introduction
  2. Features
  3. Tests

Introduction

Erasure SDK is an SDK for Erasure writen in JS.

SDK documentation can be found here: https://erasure-docs.robinthomas2591.now.sh/

SDK can be installed by,

$ npm install @robinthomas/erasure-sdk

Features

  • Supports Erasure version - v1.3.0
  • Supports Erasure Feeds, Posts, Escrows and Agreements
  • Keyvault for client side encryption and transaction signing (using 3Box)
  • Datastore for storing feed, post and other details (using 3Box)
  • Ability to pass a web3Provider (optional)
  • Simplifies SDK for users using classes & objects.
  • ErasureFeed
    • add a post while creating a new feed (optional)
    • create a new post
    • retrieve all the posts in a feed
    • reveal all the posts in a feed
    • check if the posts have been revealed or not
  • ErasurePost
    • offer to sell a post
    • find the number of sell offers for a post
    • offer to buy a post
    • find the number of buy offers for a post
    • reveal a post
    • get the total number of times a post has been sold
  • ErasureEscrow
    • deposit stake by seller (if the payment is already deposited by buyer, encrypted sym key will be added to escrow)
    • deposit payment into the escrow by the buyer
    • finalize the escrow (and add the encrypted sym key to the escrow)
    • cancel an escrow
  • Escrow Agreement
    • stake some amount into an agreement (called by operator)
    • reward the staker (called by counterparty)
    • punish, i.e. burn some stake (called by counterparty)
    • release some stake (called by counterparty)
    • request some withdraw (called by staker to start the countdown to withdraw some stake)
    • withdraw some stake to a recipient (called by staker)
    • check the agreement status
  • Given a address/proofhash, detect if its an ErasureFeed, Post, Agreement or Escrow and return the correct object

Tests

Tests are written using mocha and are executed with the help of truffle. Test coverage is using nyc.

These tests are run in a test ganache network, which deploys all the Erasure smart contracts v1.2.0 and then runs through all the contract tests.

npm run test
npm run coverage