From 9af97b2aa6053dcc8bd79abf42bfbae6e374a3b7 Mon Sep 17 00:00:00 2001 From: Dominic Dagradi Date: Wed, 25 Jan 2017 18:13:23 -0800 Subject: [PATCH] sdk/node: expose Connection constructor, version 1.0.2 Closes #437 --- docs/core/get-started/sdk.md | 2 +- sdk/node/CHANGELOG.md | 5 +++++ sdk/node/README.md | 12 +++++++++++- sdk/node/package.json | 2 +- sdk/node/src/client.js | 5 +++-- sdk/node/src/connection.js | 4 ++-- sdk/node/src/index.js | 4 +++- 7 files changed, 26 insertions(+), 8 deletions(-) diff --git a/docs/core/get-started/sdk.md b/docs/core/get-started/sdk.md index 12bc559f60..d002b0552f 100644 --- a/docs/core/get-started/sdk.md +++ b/docs/core/get-started/sdk.md @@ -28,5 +28,5 @@ The Chain Node.js SDK is available [via npm](https://www.npmjs.com/package/chain For most applications, you can simply add Chain to your `package.json` with the following command: ``` -npm install --save chain-sdk@1.0.1 +npm install --save chain-sdk@1.0.2 ``` diff --git a/sdk/node/CHANGELOG.md b/sdk/node/CHANGELOG.md index 64f43bb831..1bf7f2eb2d 100644 --- a/sdk/node/CHANGELOG.md +++ b/sdk/node/CHANGELOG.md @@ -1,5 +1,10 @@ # Chain Node.js SDK +## 1.0.2 (January 25, 2017) + +* Use base URL and client token provided on initialization for MockHSM connection +* Allow users to instantiate `Connection` objects with `new chain.Connection()` + ## 1.0.1 (January 24, 2017) * README and documentation updates diff --git a/sdk/node/README.md b/sdk/node/README.md index 9ed57a064e..e74c36c00f 100644 --- a/sdk/node/README.md +++ b/sdk/node/README.md @@ -12,7 +12,7 @@ For most applications, you can simply add Chain to your `package.json` with the following command: ``` -npm install --save chain-sdk@1.0.1 +npm install --save chain-sdk@1.0.2 ``` ### In your code @@ -49,6 +49,16 @@ let callback = (err, data) => { client.transactions.query({}, callback) ``` +## Using external signers + +To connect to an HSM other than the built-in Mock HSM, you must create a new +`Connection` object: + +``` +const myHsmConnection = new chain.Connection('https://myhost.dev/mockhsm', 'tokenname:tokenvalue') +signer.addKey(myKey, myHsmConnection) +``` + ## Testing To run integration tests, run an instance of Chain Core on localhost:1999. diff --git a/sdk/node/package.json b/sdk/node/package.json index 5466dff77b..c89607b22e 100644 --- a/sdk/node/package.json +++ b/sdk/node/package.json @@ -1,6 +1,6 @@ { "name": "chain-sdk", - "version": "1.0.1", + "version": "1.0.2", "description": "The Official Node.js SDK for Chain Core", "homepage": "https://github.com/chain/chain/tree/main/sdk/node", "main": "dist/index.js", diff --git a/sdk/node/src/client.js b/sdk/node/src/client.js index 5ce409fbaf..7a6b1efc03 100644 --- a/sdk/node/src/client.js +++ b/sdk/node/src/client.js @@ -24,7 +24,8 @@ class Client { * @param {String} token - Chain Core client token for API access. * @returns {Client} */ - constructor(baseUrl, token) { + constructor(baseUrl, token = '') { + baseUrl = baseUrl || 'http://localhost:1999' this.connection = new Connection(baseUrl, token) /** @@ -63,7 +64,7 @@ class Client { */ this.mockHsm = { keys: mockHsmKeysAPI(this), - signerConnection: new Connection('http://localhost:1999/mockhsm') + signerConnection: new Connection(`${baseUrl}/mockhsm`, token) } /** diff --git a/sdk/node/src/connection.js b/sdk/node/src/connection.js index dacc3817c0..0a582c925b 100644 --- a/sdk/node/src/connection.js +++ b/sdk/node/src/connection.js @@ -68,8 +68,8 @@ class Connection { * @param {String} token Chain Core client token for API access. * @returns {Client} */ - constructor(baseUrl, token) { - this.baseUrl = baseUrl || 'http://localhost:1999' + constructor(baseUrl, token = '') { + this.baseUrl = baseUrl this.token = token || '' } diff --git a/sdk/node/src/index.js b/sdk/node/src/index.js index d08b266f89..e798e56512 100644 --- a/sdk/node/src/index.js +++ b/sdk/node/src/index.js @@ -1,7 +1,9 @@ const Client = require('./client') const HsmSigner = require('./hsmSigner') +const Connection = require('./connection') module.exports = { Client, - HsmSigner + HsmSigner, + Connection, }