1
0
mirror of https://github.com/bigchaindb/js-bigchaindb-driver.git synced 2024-11-22 17:50:09 +01:00

Merge pull request #6 from bigchaindb/add-ipdb-auth-headers

Add ipdb auth headers
This commit is contained in:
Dimitri De Jonghe 2017-05-15 11:43:59 +02:00 committed by GitHub
commit 0fbde113fc
32 changed files with 854 additions and 1145 deletions

23
API.md
View File

@ -14,8 +14,8 @@
- [ccJsonLoad](#ccjsonload) - [ccJsonLoad](#ccjsonload)
- [ccJsonify](#ccjsonify) - [ccJsonify](#ccjsonify)
- [getBlock](#getblock) - [getBlock](#getblock)
- [getTransaction](#gettransaction)
- [getStatus](#getstatus) - [getStatus](#getstatus)
- [getTransaction](#gettransaction)
- [listBlocks](#listblocks) - [listBlocks](#listblocks)
- [listOutputs](#listoutputs) - [listOutputs](#listoutputs)
- [listTransactions](#listtransactions) - [listTransactions](#listtransactions)
@ -153,21 +153,18 @@ Returns **[object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refer
**Parameters** **Parameters**
- `blockId` - `blockId`
- `API_PATH`
## getTransaction
**Parameters**
- `txId`
- `API_PATH`
## getStatus ## getStatus
**Parameters** **Parameters**
- `tx_id` - `tx_id`
- `API_PATH`
## getTransaction
**Parameters**
- `txId`
## listBlocks ## listBlocks
@ -176,7 +173,6 @@ Returns **[object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refer
- `$0` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `$0` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)**
- `$0.tx_id` - `$0.tx_id`
- `$0.status` - `$0.status`
- `API_PATH`
- `tx_id` - `tx_id`
- `status` - `status`
@ -187,7 +183,6 @@ Returns **[object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refer
- `$0` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `$0` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)**
- `$0.public_key` - `$0.public_key`
- `$0.unspent` - `$0.unspent`
- `API_PATH`
- `onlyJsonResponse` - `onlyJsonResponse`
- `public_key` - `public_key`
- `unspent` - `unspent`
@ -199,7 +194,6 @@ Returns **[object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refer
- `$0` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `$0` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)**
- `$0.asset_id` - `$0.asset_id`
- `$0.operation` - `$0.operation`
- `API_PATH`
- `asset_id` - `asset_id`
- `operation` - `operation`
@ -208,14 +202,12 @@ Returns **[object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refer
**Parameters** **Parameters**
- `block_id` - `block_id`
- `API_PATH`
## pollStatusAndFetchTransaction ## pollStatusAndFetchTransaction
**Parameters** **Parameters**
- `tx_id` - `tx_id`
- `API_PATH`
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)**
@ -224,4 +216,3 @@ Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe
**Parameters** **Parameters**
- `transaction` - `transaction`
- `API_PATH`

View File

@ -1,15 +0,0 @@
Installing latest master with pip
---------------------------------
In order to work with the latest BigchainDB (server) master branch:
.. code-block:: bash
$ pip install --process-dependency-links git+https://github.com/bigchaindb/bigchaindb-driver.git
Point to some BigchainDB node, which is running BigchainDB server ``master``:
.. code-block:: python
from bigchaindb_driver import BigchainDB
bdb = BigchainDB('http://here.be.dragons:9984')

View File

@ -75,13 +75,10 @@ const tx = driver.Transaction.makeCreateTransaction(
const txSigned = driver.Transaction.signTransaction(tx, alice.privateKey); const txSigned = driver.Transaction.signTransaction(tx, alice.privateKey);
// send it off to BigchainDB // send it off to BigchainDB
driver.Connection let conn = new driver.Connection(PATH, { 'Content-Type': 'application/json' });
.postTransaction(txSigned, API_PATH) conn.postTransaction(txSigned)
.then((res) => { .then(() => conn.getStatus(txSigned.id))
// request the status of the transaction .then((res) => console.log('Transaction status:', res.status));
driver.Connection
.getStatus(txSigned.id, API_PATH)
.then((res) => console.log('Transaction status:', res.status))});
``` ```
You may also be interested in some [long-form tutorials with actual code](https://github.com/bigchaindb/kyber). You may also be interested in some [long-form tutorials with actual code](https://github.com/bigchaindb/kyber).

1018
dist/bundle/bundle.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,18 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getApiUrls;
function getApiUrls(API_PATH) {
return {
'blocks': API_PATH + 'blocks',
'blocks_detail': API_PATH + 'blocks/%(blockId)s',
'outputs': API_PATH + 'outputs',
'statuses': API_PATH + 'statuses',
'transactions': API_PATH + 'transactions',
'transactions_detail': API_PATH + 'transactions/%(txId)s',
'votes': API_PATH + 'votes'
};
}
module.exports = exports['default'];

View File

@ -1,30 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getBlock;
var _getApiUrls = require('./getApiUrls');
var _getApiUrls2 = _interopRequireDefault(_getApiUrls);
var _request = require('../request');
var _request2 = _interopRequireDefault(_request);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @public
* @param blockId
* @param API_PATH
*/
function getBlock(blockId, API_PATH) {
return (0, _request2.default)((0, _getApiUrls2.default)(API_PATH)['blocks_detail'], {
urlTemplateSpec: {
blockId: blockId
}
});
}
module.exports = exports['default'];

View File

@ -1,30 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getStatus;
var _getApiUrls = require('./getApiUrls');
var _getApiUrls2 = _interopRequireDefault(_getApiUrls);
var _request = require('../request');
var _request2 = _interopRequireDefault(_request);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @public
* @param tx_id
* @param API_PATH
*/
function getStatus(tx_id, API_PATH) {
return (0, _request2.default)((0, _getApiUrls2.default)(API_PATH)['statuses'], {
query: {
tx_id: tx_id
}
});
}
module.exports = exports['default'];

View File

@ -1,30 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getTransaction;
var _getApiUrls = require('./getApiUrls');
var _getApiUrls2 = _interopRequireDefault(_getApiUrls);
var _request = require('../request');
var _request2 = _interopRequireDefault(_request);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @public
* @param txId
* @param API_PATH
*/
function getTransaction(txId, API_PATH) {
return (0, _request2.default)((0, _getApiUrls2.default)(API_PATH)['transactions_detail'], {
urlTemplateSpec: {
txId: txId
}
});
}
module.exports = exports['default'];

View File

@ -1,54 +1,222 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "__esModule", {
value: true value: true
}); });
exports.postTransaction = exports.pollStatusAndFetchTransaction = exports.listVotes = exports.listTransactions = exports.listOutputs = exports.listBlocks = exports.getStatus = exports.getTransaction = exports.getBlock = undefined;
var _getBlock2 = require('./getBlock'); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _getBlock3 = _interopRequireDefault(_getBlock2); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _getTransaction2 = require('./getTransaction'); var _request = require('../request');
var _getTransaction3 = _interopRequireDefault(_getTransaction2); var _request2 = _interopRequireDefault(_request);
var _getStatus2 = require('./getStatus');
var _getStatus3 = _interopRequireDefault(_getStatus2);
var _listBlocks2 = require('./listBlocks');
var _listBlocks3 = _interopRequireDefault(_listBlocks2);
var _listOutputs2 = require('./listOutputs');
var _listOutputs3 = _interopRequireDefault(_listOutputs2);
var _listTransactions2 = require('./listTransactions');
var _listTransactions3 = _interopRequireDefault(_listTransactions2);
var _listVotes2 = require('./listVotes');
var _listVotes3 = _interopRequireDefault(_listVotes2);
var _pollStatusAndFetchTransaction2 = require('./pollStatusAndFetchTransaction');
var _pollStatusAndFetchTransaction3 = _interopRequireDefault(_pollStatusAndFetchTransaction2);
var _postTransaction2 = require('./postTransaction');
var _postTransaction3 = _interopRequireDefault(_postTransaction2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.getBlock = _getBlock3.default; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
exports.getTransaction = _getTransaction3.default;
exports.getStatus = _getStatus3.default; var Connection = function () {
exports.listBlocks = _listBlocks3.default; function Connection(path, headers) {
exports.listOutputs = _listOutputs3.default; _classCallCheck(this, Connection);
exports.listTransactions = _listTransactions3.default;
exports.listVotes = _listVotes3.default; this.path = path;
exports.pollStatusAndFetchTransaction = _pollStatusAndFetchTransaction3.default; this.headers = headers;
exports.postTransaction = _postTransaction3.default; }
_createClass(Connection, [{
key: 'getApiUrls',
value: function getApiUrls(endpoints) {
return {
'blocks': this.path + 'blocks',
'blocks_detail': this.path + 'blocks/%(blockId)s',
'outputs': this.path + 'outputs',
'statuses': this.path + 'statuses',
'transactions': this.path + 'transactions',
'transactions_detail': this.path + 'transactions/%(txId)s',
'votes': this.path + 'votes'
}[endpoints];
}
}, {
key: 'req',
value: function req(path) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
// NOTE: `options.headers` could be undefined, but that's OK.
options.headers = _extends({}, options.headers, this.headers);
return (0, _request2.default)(path, options);
}
/**
* @public
* @param blockId
*/
}, {
key: 'getBlock',
value: function getBlock(blockId) {
return this.req(this.getApiUrls('blocks_detail'), {
urlTemplateSpec: {
blockId: blockId
}
});
}
/**
* @public
* @param tx_id
*/
}, {
key: 'getStatus',
value: function getStatus(tx_id) {
return this.req(this.getApiUrls('statuses'), {
query: {
tx_id: tx_id
}
});
}
/**
* @public
* @param txId
*/
}, {
key: 'getTransaction',
value: function getTransaction(txId) {
return this.req(this.getApiUrls('transactions_detail'), {
urlTemplateSpec: {
txId: txId
}
});
}
/**
* @public
* @param tx_id
* @param status
*/
}, {
key: 'listBlocks',
value: function listBlocks(_ref) {
var tx_id = _ref.tx_id,
status = _ref.status;
return this.req(this.getApiUrls('blocks'), {
query: {
tx_id: tx_id,
status: status
}
});
}
/**
* @public
* @param public_key
* @param unspent
* @param onlyJsonResponse
*/
}, {
key: 'listOutputs',
value: function listOutputs(_ref2) {
var public_key = _ref2.public_key,
unspent = _ref2.unspent;
var onlyJsonResponse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
return this.req(this.getApiUrls('outputs'), {
query: {
public_key: public_key,
unspent: unspent
}
}, onlyJsonResponse);
}
/**
* @public
* @param asset_id
* @param operation
*/
}, {
key: 'listTransactions',
value: function listTransactions(_ref3) {
var asset_id = _ref3.asset_id,
operation = _ref3.operation;
return this.req(this.getApiUrls('transactions'), {
query: {
asset_id: asset_id,
operation: operation
}
});
}
/**
* @public
* @param block_id
*/
}, {
key: 'listVotes',
value: function listVotes(block_id) {
return this.req(this.getApiUrls('votes'), {
query: {
block_id: block_id
}
});
}
/**
* @public
* @param tx_id
* @return {Promise}
*/
}, {
key: 'pollStatusAndFetchTransaction',
value: function pollStatusAndFetchTransaction(tx_id) {
var _this = this;
return new Promise(function (resolve, reject) {
var timer = setInterval(function () {
_this.getStatus(tx_id).then(function (res) {
console.log('Fetched transaction status:', res);
if (res.status === 'valid') {
clearInterval(timer);
_this.getTransaction(tx_id).then(function (res) {
console.log('Fetched transaction:', res);
resolve(res);
});
}
}).catch(function (err) {
clearInterval(timer);
reject(err);
});
}, 500);
});
}
/**
* @public
*
* @param transaction
*/
}, {
key: 'postTransaction',
value: function postTransaction(transaction) {
return this.req(this.getApiUrls('transactions'), {
method: 'POST',
jsonBody: transaction
});
}
}]);
return Connection;
}();
exports.default = Connection;
module.exports = exports['default'];

View File

@ -1,35 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = listBlocks;
var _getApiUrls = require('./getApiUrls');
var _getApiUrls2 = _interopRequireDefault(_getApiUrls);
var _request = require('../request');
var _request2 = _interopRequireDefault(_request);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @public
* @param tx_id
* @param status
* @param API_PATH
*/
function listBlocks(_ref, API_PATH) {
var tx_id = _ref.tx_id,
status = _ref.status;
return (0, _request2.default)((0, _getApiUrls2.default)(API_PATH)['blocks'], {
query: {
tx_id: tx_id,
status: status
}
});
}
module.exports = exports['default'];

View File

@ -1,37 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = listOutputs;
var _getApiUrls = require('./getApiUrls');
var _getApiUrls2 = _interopRequireDefault(_getApiUrls);
var _request = require('../request');
var _request2 = _interopRequireDefault(_request);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @public
* @param public_key
* @param unspent
* @param API_PATH
* @param onlyJsonResponse
*/
function listOutputs(_ref, API_PATH) {
var public_key = _ref.public_key,
unspent = _ref.unspent;
var onlyJsonResponse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
return (0, _request2.default)((0, _getApiUrls2.default)(API_PATH)['outputs'], {
query: {
public_key: public_key,
unspent: unspent
}
}, onlyJsonResponse);
}
module.exports = exports['default'];

View File

@ -1,35 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = listTransactions;
var _getApiUrls = require('./getApiUrls');
var _getApiUrls2 = _interopRequireDefault(_getApiUrls);
var _request = require('../request');
var _request2 = _interopRequireDefault(_request);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @public
* @param asset_id
* @param operation
* @param API_PATH
*/
function listTransactions(_ref, API_PATH) {
var asset_id = _ref.asset_id,
operation = _ref.operation;
return (0, _request2.default)((0, _getApiUrls2.default)(API_PATH)['transactions'], {
query: {
asset_id: asset_id,
operation: operation
}
});
}
module.exports = exports['default'];

View File

@ -1,30 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = listVotes;
var _getApiUrls = require('./getApiUrls');
var _getApiUrls2 = _interopRequireDefault(_getApiUrls);
var _request = require('../request');
var _request2 = _interopRequireDefault(_request);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @public
* @param block_id
* @param API_PATH
*/
function listVotes(block_id, API_PATH) {
return (0, _request2.default)((0, _getApiUrls2.default)(API_PATH)['votes'], {
query: {
block_id: block_id
}
});
}
module.exports = exports['default'];

View File

@ -1,44 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (tx_id, API_PATH) {
return new Promise(function (resolve, reject) {
var timer = setInterval(function () {
(0, _getStatus2.default)(tx_id, API_PATH).then(function (res) {
console.log('Fetched transaction status:', res);
if (res.status === 'valid') {
clearInterval(timer);
(0, _getTransaction2.default)(tx_id, API_PATH).then(function (res) {
console.log('Fetched transaction:', res);
resolve(res);
});
}
}).catch(function (err) {
clearInterval(timer);
reject(err);
});
}, 500);
});
};
var _getTransaction = require('./getTransaction');
var _getTransaction2 = _interopRequireDefault(_getTransaction);
var _getStatus = require('./getStatus');
var _getStatus2 = _interopRequireDefault(_getStatus);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = exports['default'];
/**
* @public
* @param tx_id
* @param API_PATH
* @return {Promise}
*/

View File

@ -1,30 +0,0 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = postTransaction;
var _getApiUrls = require('./getApiUrls');
var _getApiUrls2 = _interopRequireDefault(_getApiUrls);
var _request = require('../request');
var _request2 = _interopRequireDefault(_request);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @public
*
* @param transaction
* @param API_PATH
*/
function postTransaction(transaction, API_PATH) {
return (0, _request2.default)((0, _getApiUrls2.default)(API_PATH)['transactions'], {
method: 'POST',
jsonBody: transaction
});
}
module.exports = exports['default'];

4
dist/node/index.js vendored
View File

@ -15,7 +15,7 @@ var _Transaction = _interopRequireWildcard(_transaction);
var _connection = require('./connection'); var _connection = require('./connection');
var _Connection = _interopRequireWildcard(_connection); var _connection2 = _interopRequireDefault(_connection);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
@ -23,4 +23,4 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
exports.Ed25519Keypair = _Ed25519Keypair3.default; exports.Ed25519Keypair = _Ed25519Keypair3.default;
exports.Transaction = _Transaction; exports.Transaction = _Transaction;
exports.Connection = _Connection; exports.Connection = _connection2.default;

View File

@ -26,8 +26,8 @@ var DEFAULT_REQUEST_CONFIG = {
}; };
/** /**
* Small wrapper around js-utility-belt's request that provides url resolving, default settings, and * Small wrapper around js-utility-belt's request that provides url resolving,
* response handling. * default settings, and response handling.
*/ */
function request(url) { function request(url) {
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

View File

@ -1,11 +0,0 @@
export default function getApiUrls(API_PATH) {
return {
'blocks': API_PATH + 'blocks',
'blocks_detail': API_PATH + 'blocks/%(blockId)s',
'outputs': API_PATH + 'outputs',
'statuses': API_PATH + 'statuses',
'transactions': API_PATH + 'transactions',
'transactions_detail': API_PATH + 'transactions/%(txId)s',
'votes': API_PATH + 'votes'
};
}

View File

@ -1,17 +0,0 @@
import getApiUrls from './getApiUrls';
import request from '../request';
/**
* @public
* @param blockId
* @param API_PATH
*/
export default function getBlock(blockId, API_PATH) {
return request(getApiUrls(API_PATH)['blocks_detail'], {
urlTemplateSpec: {
blockId
}
});
}

View File

@ -1,15 +0,0 @@
import getApiUrls from './getApiUrls';
import request from '../request';
/**
* @public
* @param tx_id
* @param API_PATH
*/
export default function getStatus(tx_id, API_PATH) {
return request(getApiUrls(API_PATH)['statuses'], {
query: {
tx_id
}
});
}

View File

@ -1,15 +0,0 @@
import getApiUrls from './getApiUrls';
import request from '../request';
/**
* @public
* @param txId
* @param API_PATH
*/
export default function getTransaction(txId, API_PATH) {
return request(getApiUrls(API_PATH)['transactions_detail'], {
urlTemplateSpec: {
txId
}
});
}

View File

@ -1,9 +1,158 @@
export getBlock from './getBlock'; import request from '../request';
export getTransaction from './getTransaction';
export getStatus from './getStatus';
export listBlocks from './listBlocks'; export default class Connection {
export listOutputs from './listOutputs'; constructor(path, headers) {
export listTransactions from './listTransactions'; this.path = path;
export listVotes from './listVotes'; this.headers = headers;
export pollStatusAndFetchTransaction from './pollStatusAndFetchTransaction'; }
export postTransaction from './postTransaction';
getApiUrls(endpoints) {
return {
'blocks': this.path + 'blocks',
'blocks_detail': this.path + 'blocks/%(blockId)s',
'outputs': this.path + 'outputs',
'statuses': this.path + 'statuses',
'transactions': this.path + 'transactions',
'transactions_detail': this.path + 'transactions/%(txId)s',
'votes': this.path + 'votes'
}[endpoints];
}
_req(path, options={}) {
// NOTE: `options.headers` could be undefined, but that's OK.
options.headers = Object.assign({}, options.headers, this.headers)
return request(path, options)
}
/**
* @public
* @param blockId
*/
getBlock(blockId) {
return this._req(this.getApiUrls('blocks_detail'), {
urlTemplateSpec: {
blockId
}
});
}
/**
* @public
* @param tx_id
*/
getStatus(tx_id) {
return this._req(this.getApiUrls('statuses'), {
query: {
tx_id
}
});
}
/**
* @public
* @param txId
*/
getTransaction(txId) {
return this._req(this.getApiUrls('transactions_detail'), {
urlTemplateSpec: {
txId
}
});
}
/**
* @public
* @param tx_id
* @param status
*/
listBlocks({ tx_id, status }) {
return this._req(this.getApiUrls('blocks'), {
query: {
tx_id,
status
}
});
}
/**
* @public
* @param public_key
* @param unspent
* @param onlyJsonResponse
*/
listOutputs({ public_key, unspent }, onlyJsonResponse=true) {
return this._req(this.getApiUrls('outputs'), {
query: {
public_key,
unspent
}
}, onlyJsonResponse)
}
/**
* @public
* @param asset_id
* @param operation
*/
listTransactions({ asset_id, operation }) {
return this._req(this.getApiUrls('transactions'), {
query: {
asset_id,
operation
}
})
}
/**
* @public
* @param block_id
*/
listVotes(block_id) {
return this._req(this.getApiUrls('votes'), {
query: {
block_id
}
});
}
/**
* @public
* @param tx_id
* @return {Promise}
*/
pollStatusAndFetchTransaction(tx_id) {
return new Promise((resolve, reject) => {
const timer = setInterval(() => {
this.getStatus(tx_id)
.then((res) => {
console.log('Fetched transaction status:', res);
if (res.status === 'valid') {
clearInterval(timer);
this.getTransaction(tx_id)
.then((res) => {
console.log('Fetched transaction:', res);
resolve(res);
});
}
})
.catch((err) => {
clearInterval(timer);
reject(err);
});
}, 500)
})
}
/**
* @public
*
* @param transaction
*/
postTransaction(transaction) {
return this._req(this.getApiUrls('transactions'), {
method: 'POST',
jsonBody: transaction
})
}
}

View File

@ -1,17 +0,0 @@
import getApiUrls from './getApiUrls';
import request from '../request';
/**
* @public
* @param tx_id
* @param status
* @param API_PATH
*/
export default function listBlocks({tx_id, status}, API_PATH) {
return request(getApiUrls(API_PATH)['blocks'], {
query: {
tx_id,
status
}
});
}

View File

@ -1,18 +0,0 @@
import getApiUrls from './getApiUrls';
import request from '../request';
/**
* @public
* @param public_key
* @param unspent
* @param API_PATH
* @param onlyJsonResponse
*/
export default function listOutputs({ public_key, unspent }, API_PATH, onlyJsonResponse=true) {
return request(getApiUrls(API_PATH)['outputs'], {
query: {
public_key,
unspent
}
}, onlyJsonResponse)
}

View File

@ -1,17 +0,0 @@
import getApiUrls from './getApiUrls';
import request from '../request';
/**
* @public
* @param asset_id
* @param operation
* @param API_PATH
*/
export default function listTransactions({ asset_id, operation }, API_PATH) {
return request(getApiUrls(API_PATH)['transactions'], {
query: {
asset_id,
operation
}
})
}

View File

@ -1,16 +0,0 @@
import getApiUrls from './getApiUrls';
import request from '../request';
/**
* @public
* @param block_id
* @param API_PATH
*/
export default function listVotes(block_id, API_PATH) {
return request(getApiUrls(API_PATH)['votes'], {
query: {
block_id
}
});
}

View File

@ -1,31 +0,0 @@
import getTransaction from './getTransaction';
import getStatus from './getStatus';
/**
* @public
* @param tx_id
* @param API_PATH
* @return {Promise}
*/
export default function (tx_id, API_PATH) {
return new Promise((resolve, reject) => {
const timer = setInterval(() => {
getStatus(tx_id, API_PATH)
.then((res) => {
console.log('Fetched transaction status:', res);
if (res.status === 'valid') {
clearInterval(timer);
getTransaction(tx_id, API_PATH)
.then((res) => {
console.log('Fetched transaction:', res);
resolve(res);
});
}
})
.catch((err) => {
clearInterval(timer);
reject(err);
});
}, 500)
})
}

View File

@ -1,16 +0,0 @@
import getApiUrls from './getApiUrls';
import request from '../request';
/**
* @public
*
* @param transaction
* @param API_PATH
*/
export default function postTransaction(transaction, API_PATH) {
return request(getApiUrls(API_PATH)['transactions'], {
method: 'POST',
jsonBody: transaction
})
}

View File

@ -2,4 +2,4 @@
export Ed25519Keypair from './Ed25519Keypair'; export Ed25519Keypair from './Ed25519Keypair';
export * as Transaction from './transaction'; export * as Transaction from './transaction';
export * as Connection from './connection'; export Connection from './connection';

View File

@ -10,8 +10,8 @@ const DEFAULT_REQUEST_CONFIG = {
}; };
/** /**
* Small wrapper around js-utility-belt's request that provides url resolving, default settings, and * Small wrapper around js-utility-belt's request that provides url resolving,
* response handling. * default settings, and response handling.
*/ */
export default function request(url, config = {}, onlyJsonResponse=true) { export default function request(url, config = {}, onlyJsonResponse=true) {
// Load default fetch configuration and remove any falsy query parameters // Load default fetch configuration and remove any falsy query parameters
@ -42,4 +42,3 @@ export default function request(url, config = {}, onlyJsonResponse=true) {
throw err; throw err;
}); });
} }