From 11ecd391a971133fca657f55aafb6e26bf4bbe2a Mon Sep 17 00:00:00 2001 From: Johan Nordberg <its@johan-nordberg.com> Date: Thu, 14 Dec 2017 01:22:24 +0100 Subject: [PATCH] Add signedCall api method --- package.json | 1 + src/api/index.js | 20 ++++++++++++++++++++ yarn.lock | 10 ++++++++++ 3 files changed, 31 insertions(+) diff --git a/package.json b/package.json index a3d8e5d..8b4c4e4 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ }, "homepage": "https://github.com/steemit/steem-js#readme", "dependencies": { + "@steemit/rpc-auth": "^1.1.0", "bigi": "^1.4.2", "bluebird": "^3.4.6", "browserify-aes": "^1.0.6", diff --git a/src/api/index.js b/src/api/index.js index 67e67f5..0c30e75 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -15,6 +15,9 @@ import { import { jsonRpc } from './transports/http'; +import { + sign as signRequest +} from '@steemit/rpc-auth'; class Steem extends EventEmitter { constructor(options = {}) { @@ -154,6 +157,23 @@ class Steem extends EventEmitter { .then(res => { callback(null, res) }, err => { callback(err) }); } + signedCall(method, params, account, key, callback) { + if (this._transportType !== 'http') { + callback(new Error('RPC methods can only be called when using http transport')); + return; + } + const id = ++this.seqNo; + let request; + try { + request = signRequest({method, params, id}, account, [key]); + } catch (error) { + callback(error); + return; + } + jsonRpc(this.options.uri, request) + .then(res => { callback(null, res) }, err => { callback(err) }); + } + setOptions(options) { Object.assign(this.options, options); this._setLogger(options); diff --git a/yarn.lock b/yarn.lock index faa3504..c653b3f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,16 @@ # yarn lockfile v1 +"@steemit/libcrypto@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@steemit/libcrypto/-/libcrypto-1.0.1.tgz#c31ab3e5deb667628169b3d54d746b015de31a79" + +"@steemit/rpc-auth@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@steemit/rpc-auth/-/rpc-auth-1.1.0.tgz#4170c04d928ef37af5bdbde3f517ef74909480bd" + dependencies: + "@steemit/libcrypto" "^1.0.1" + abbrev@1: version "1.1.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" -- GitLab