node-shadowcash is a simple wrapper for the Shadowcash client's JSON-RPC API.

Shadow

Shadow is a decentralized network built on the framework of Bitcoin. It provides free, uncensorable end-to-end encrypted messaging and also includes a more anonymous cryptocurrency named ShadowCash.

Install and run daemon

You MUST have the shadowcoind daemon running, else your NodeJS app will return a connection error. Please for the sake of security do this on the same machine that the code will be running on. You can start the shadowcash daemon with the following command.

Linux: ./shadowcoind -daemon

Windows: shadowcoind.exe -daemon

A daemon is a process that runs in the background after you've started it.

You can download Shadow's graphical interface and daemon for Ubuntu here. We highly recommend building the daemon from source, this option works best for other linux flavours such as Debian. You can find detailed instructions here

For numerous security reasons you'll get an error when first running the shadowcoind daemon. The error will instruct you to create a shadowcoin.conf file in your corresponding directory:

OS PATH Windows %appdata%\ShadowCoin OSX ~/Library/Application Support/ShadowCoin/ Linux ~/.shadowcoin/

Create the file shadowcoin.conf , the linux command line instructions are:

cd ~ /.shadowcoin/ nano shadowcoin.conf

and insert the following, make sure to change USERNAME and PASSWORD to something secure:

server= 1 rpcuser=USERNAME rpcpassword=PASSWORD

Install for NodeJS

npm install shadowcash

API

The API is equivalent to the API document here. The documentation on the website is not yet up to date (not all Bitcoin JSON RPC commands are valid), you're better off checking the actual client or in the file /lib/commands.js .

The methods are exposed as lower camelcase methods on the shadowcash.Client object, or you may call the API directly using the cmd method.

Examples

Create client

var client = new shadowcash . Client ( { host : ' localhost ' , port : 51736 , user : ' username ' , pass : ' password ' , timeout : 30000 } ) ;

Get all unread messages

Note: Does not work with GUI wallet, it automatically marks the message as read. Use in combination with shadowcoind.

client . smsgInbox ( ' unread ' , function ( err , result , resHeaders ) { if ( err ) return console . log ( err ) ; console . log ( JSON . stringify ( result ) ) ; for ( var i = 0 ; i < + result . result ; i ++ ) { var sender = result . messages [ i ] . from ; var receiver = result . messages [ i ] . to ; var text = result . messages [ i ] . text ; } } ) ;

Get balance across all accounts with minimum confirmations of 6

client . getBalance ( ' * ' , 6 , function ( err , balance , resHeaders ) { if ( err ) return console . log ( err ) ; console . log ( ' Balance: ' , balance ) ; } ) ;

Getting the balance directly using cmd

client . cmd ( ' getbalance ' , ' * ' , 6 , function ( err , balance , resHeaders ) { if ( err ) return console . log ( err ) ; console . log ( ' Balance: ' , balance ) ; } ) ;

Batch multiple RPC calls into single HTTP request