No description, website, or topics provided.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
package.json
sia-api.js

README.md

Sia API

dependencies Status license:mit

NodeJs API for Sia - the decentralized cloud storage platform.

This module converts HTTP API paths exposed by the Sia REST API to NodeJs function calls arranged in an object hierarchy.

Installation

npm install sia-api

Documentation

Each Sia REST API call is enveloped into a function call using request module. API paths are converted to hierarchy of objects containing API function calls as follows:

GET: /renter/allowance

becomes

sia.renter.allowance(<callback>)

By default, each function call is bount to HTTP GET method. So sia.renter.allowance() executes HTTP GET /renter/allowance. Each function call, however, can be overridden by explicitly calling .get() or .post() on the function as follows:

sia.renter.allowance(<callback>)        // default GET
sia.renter.allowance.get(<callback>)    // explicit GET
sia.renter.allowance.post(<post args object>, <callback>)   // explicit POST

If an API call requires a sub-path to be provided to the HTTP call, the first argument to the function must be the string containing this sub-path. For example:

GET: /wallet/transaction/bcf9922a9be02b0b4d1b3a2379054fb1c7113b1ac7006c03f93d7af6b440d172

must be called as follows:

sia.wallet.transaction("bcf9922a9be02b0b4d1b3a2379054fb1c7113b1ac7006c03f93d7af6b440d172", 
    function(err, resp) { ... })

headers and timeout arguments to the underlying request calls can be specified by an additional argument to the function before the callback argument:

sia.wallet.unlock({ timeout : 5 * 60 * 1000 }, <callback>)

Creating Sia Module Instance

To create Sia module instance you must do the following:

var Sia = require("sia-api");

var sia = new Sia({
    host : "http://localhost:9980",
    // other constructor arguments
})

Other constructor arguments:

  • verbose - Outputs request arguments and return data to console
  • timeout - Default timeout value for request HTTP calls (milliseconds)
  • rpcServer - iris-rpc server object (for iris-rpc relay)
  • rpcClient - iris-rpc client object (for iris-rpc relay)
  • rpcUUID - iris-rpc UUID when using iris-rpc multiplexer

This Sia API module supports call routing through iris-rpc, an RPC library that is a part of an IRIS Application Framework

Usage Example

var sia = new Sia({
    host : "http://localhost:9980",
})


sia.daemon.version(function(err, resp) {
    if(err)
        console.log(err);
    else
        console.log("Sia daemon version:", resp.version);
})

Sample script listing active Sia hosts and average network pricing: https://github.com/aspectron/sia-hosts