node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

openpublish-state

openpublish-state

Request information about the state of Open Publish documents and ownership.

About

This module is a client-side library for performing queries on Open Published documents.

A user in the context of Open Publish is a Bitcoin wallet address such as the tesnet address mqMsBiNtGJdwdhKr12TqyRNE7RTvEeAkaR.

Install

npm install openpublish-state

Usage

The openpublish-state module defaults to using the Open Publish state engines that run at https://bsync.blockai.com and https://bsync-test.blockai.com.

First we need to create the client and specify which blockchain network we're interested in querying.

var openpublishState = require('openpublish-state')({
  network: "testnet" // "bitcoin" 
});

Finding a single document by SHA1

openpublishState.findDoc({sha1: "f072bf66cd807c48e37170137b6f8bd3dc01963e"}, function(err, openpublishDoc) {
  // openpublishDoc looks like the following: 
  {
    "sha1":"f072bf66cd807c48e37170137b6f8bd3dc01963e",
    "btih":"e61e35d68a46439a11dd2405f3c20b59c1283699",
    "op":"r",
    "name":"1280x720-OLx.jpg",
    "size":"122193",
    "uri":"https://bitstore-test.blockai.com/mqMsBiNtGJdwdhKr12TqyRNE7RTvEeAkaR/sha1/f072bf66cd807c48e37170137b6f8bd3dc01963e",
    "type":"image/jpeg",
    "created_at":"2015-08-12T18:18:59.404Z",
    "updated_at":"2015-08-12T18:18:59.963Z",
    "output":{
      "tx_hash":"861a340f054cf1dc1af9c951ca1c062b4f3b6d233ac5fd9436c3f2e9242a7cc7",
      "position":1,
      "height":530114,
      "branch":"main"},
    "totalTipAmount":10000,
    "tipCount":1,
    "sourceAddresses":["mqMsBiNtGJdwdhKr12TqyRNE7RTvEeAkaR"]
  };
});

Find all documents by type

openpublishState.findAllByType({type: "image", limit: 10}, function(err, openpublishImageDocs) {
  // returns the 10 latest images that have been published 
});

Find all documents published by a user

openpublishState.findDocsByUser({address: "mqMsBiNtGJdwdhKr12TqyRNE7RTvEeAkaR"}, function(err, openpublishDocs) {
  // returns all docs published by mqMsBiNtGJdwdhKr12TqyRNE7RTvEeAkaR 
});

Find tips

openpublishState.findTips({sha1: "f072bf66cd807c48e37170137b6f8bd3dc01963e"}, function(err, tipInfo) {
  // tipInfo looks like: 
  {
    tips: [{
      "opendoc_sha1": "f072bf66cd807c48e37170137b6f8bd3dc01963e",
      "destination": "{\"mqMsBiNtGJdwdhKr12TqyRNE7RTvEeAkaR\"}",
      "amount": 10000,
      "created_at": "2015-08-17T20:40:30.457Z",
      "updated_at": "2015-08-17T20:40:30.456Z",
      "output": {
        "tx_hash": "398244834976e88870e364935189d0d92031d22543338d46f8141af22bf36ab8",
        "position": 1,
        "height": 531011,
        "branch": "main"
      },
      "sourceAddresses": [
        "mqMsBiNtGJdwdhKr12TqyRNE7RTvEeAkaR"
      ]
    }, ...],
    totalTipAmount: 20000,
    tipCount: 2
  }
});