Javascript WebSocket rpc library for Steem
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build
examples
src
test
.gitignore
.npmignore
LICENSE
README.md
package.json

README.md

npm version npm downloads

steem-rpc

A simple websocket wrapper enabling RPC communication with the steem client steemd for node.js and browsers.

Installation

This library is available as an NPM module:

npm install steem-rpc

If you would like to use it in a browser, browser builds are available in /build. An example is provided in examples/index.html

Node/Webpack/Browserify usage

The library needs to initialize a connection and retrieve some api references before it is ready to be used. By default steem-rpc will attempt to connect to a public API node provided by xeroc at wss://this.piston.rocks.

A simple init and use case can be seen in examples/example.js and can be launched with npm run example:

const options = {
	// user: "username",
	// pass: "password",
	// url: "ws://localhost:9090",
	// debug: false
};
var {Client} = require("steem-rpc");
var Api = Client.get({}, true);

Api.initPromise.then(response => {
	console.log("Api ready:", response);

	Api.database_api().exec("get_dynamic_global_properties", []).then(response => {
		console.log("get_dynamic_global_properties", response);
	})
});

If you'd like to use another server, simply pass the new websocket url in the options object:

const options = {
	url: "ws://localhost:9090"
}

This library borrows heavily from James Calfee's websocket RPC implementation for the Bitshares GUI which can be found here: https://github.com/cryptonomex/graphene-ui/tree/master/dl/src/rpc_api

Example api commands

There's a handy "shortcut" api call that will get you a global state object:

get_state(string route)

You can call this with an empty string, or with a category like trending.

Api.database_api().exec("get_state", ["trending"]).then(response => {
	console.log("get_state", response);
})

There is no api call to fetch all possible calls, but one can look through the STEEM source code in order to find the available commands with their expected inputs:

Database api Market history api Network broadcast api ++