Skip to content

Commit aab23d0

Browse files
committed
build 0.7.0
1 parent 121c936 commit aab23d0

38 files changed

+859
-619
lines changed

dist/api/Address.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
11
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.Address = undefined;var _DataCollector = require('../lib/DataCollector');
22
var _types = require('../lib/types');
3-
var _getBalanceFromTxs = require('./getBalanceFromTxs');
43
var _config = require('../lib/config');var _config2 = _interopRequireDefault(_config);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
54
const bridgeAddress = _config2.default.bridgeAddress;
65
const remascAddress = _config2.default.remascAddress;
76
class Address extends _DataCollector.DataCollectorItem {
87
constructor(collection, key, parent) {
9-
super(collection, key, parent);
10-
this.sort = { address: 1 };
8+
super(collection, key, parent, { sortDir: 1 });
119
const Tx = this.parent.getItem({ key: 'Tx' });
1210
this.Tx = Tx;
13-
this.getBalanceFromTxs = (0, _getBalanceFromTxs.GetTxBalance)(Tx);
11+
this.fields = { code: 0, createdByTx: 0 };
1412
this.publicActions = {
13+
1514
getAddress: async params => {
1615
const { address } = params;
17-
const aData = await this.getOne({ address });
16+
const aData = await this.getOne({ address }, { createdByTx: 1 });
1817
if (aData.data) {
19-
const txBalance = await this.getBalanceFromTxs(address);
20-
if (txBalance) aData.data.txBalance = this.serialize(txBalance);
2118
if (!aData.data.name) {
2219
if (address === remascAddress) aData.data.name = _types.REMASC_NAME;
2320
if (address === bridgeAddress) aData.data.name = _types.BRIDGE_NAME;

dist/api/Block.js

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,27 @@
22
var _utils = require('../lib/utils');
33
class Block extends _DataCollector.DataCollectorItem {
44
constructor(collection, key, parent) {
5-
super(collection, key, parent);
6-
this.sort = { number: -1 };
5+
let cursorField = 'number';
6+
let sortDir = -1;
7+
let sortable = { timestamp: -1 };
8+
super(collection, key, parent, { sortDir, cursorField, sortable });
79
this.publicActions = {
810

9-
getBlock: async params => {
11+
getBlock: params => {
1012
const hashOrNumber = params.hashOrNumber || params.hash || params.number;
13+
let query = {};
1114
if ((0, _utils.isBlockHash)(hashOrNumber)) {
12-
const block = await this.getOne({ hash: hashOrNumber });
13-
if (block && block.data) return this.getBlockNextPrev(block.data.number, params);
15+
query = { hash: hashOrNumber };
1416
} else {
15-
const number = parseInt(hashOrNumber);
16-
return this.getBlockNextPrev(number, params);
17+
query = { number: parseInt(hashOrNumber) };
1718
}
19+
return this.getPrevNext(query, { number: 1 });
1820
},
1921

2022
getBlocks: params => {
2123
return this.getPageData({}, params);
2224
} };
2325

24-
}
25-
getBlockNextPrev(number, params) {
26-
return this.getPrevNext(
27-
params,
28-
{ number: number },
29-
{ number: { $lte: number - 1 } },
30-
{ number: { $lte: number + 1 } },
31-
this.sort);
3226
}}exports.Block = Block;exports.default =
3327

3428

dist/api/Blocks.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@ var _Address = require('./Address');
77
var _Event = require('./Event');
88
var _TokenAccount = require('./TokenAccount');
99
var _TxPending = require('./TxPending');function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
10-
const perPage = _config2.default.api.perPage;
1110
const lastLimit = _config2.default.api.lastBlocks || 10;
1211
const collections = _config2.default.blocks.collections;
1312
class Blocks extends _DataCollector.DataCollector {
1413
constructor(db) {
1514
let collectionName = collections.Blocks;
16-
super(db, { perPage, collectionName });
15+
super(db, { collectionName });
1716
this.lastLimit = lastLimit;
1817
this.latest = 0;
1918
this.lastBlocks = [];

dist/api/Event.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.Event = undefined;var _DataCollector = require('../lib/DataCollector');
22
class Event extends _DataCollector.DataCollectorItem {
33
constructor(collection, key, parent) {
4-
super(collection, key, parent);
5-
this.sort = { timestamp: -1 };
4+
const sortable = { timestamp: -1 };
5+
super(collection, key, parent, { sortable });
66
this.publicActions = {
77

88
getEvent: async params => {
99
try {
10-
const eventId = params.eventId;
11-
const data = await this.getOne({ eventId });
12-
if (!data) throw new Error(`Event ${eventId} does not exist`);
10+
const _id = params._id;
11+
let data = await this.getOne({ _id });
12+
if (!data) throw new Error(`Event ${_id} does not exist`);
1313
const address = data.data.address;
14-
return this.parent.addAddressData(address, data);
14+
data = await this.parent.addAddressData(address, data);
15+
return data;
1516
} catch (err) {
1617
return Promise.resolve(err);
1718
}

dist/api/Status.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.Status = undefined;var _DataCollector = require('../lib/DataCollector');
22
var _config = require('../lib/config');var _config2 = _interopRequireDefault(_config);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
33

4-
const perPage = _config2.default.api.perPage;
54
const statusCollection = _config2.default.blocks.collections.Status;
65
const blocksCollection = _config2.default.blocks.collections.Blocks;
76

87
class Status extends _DataCollector.DataCollector {
98
constructor(db) {
10-
super(db, { perPage, statusCollection });
9+
super(db, { statusCollection });
1110
this.tickDelay = 5000;
1211
this.state = {};
1312
this.addItem(statusCollection, 'Status', null, true);

dist/api/TokenAccount.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
class TokenAccount extends _DataCollector.DataCollectorItem {
44
constructor(collection, key, parent) {
55
super(collection, key, parent);
6-
this.sort = { address: 1 };
76
this.publicActions = {
87

98
getTokenAccounts: params => {
@@ -16,14 +15,12 @@ class TokenAccount extends _DataCollector.DataCollectorItem {
1615
const from = this.parent.Address.db.collectionName;
1716
if (address) {
1817
let aggregate = [
18+
{ $match: { address } },
1919
{
2020
$lookup: { from, localField: 'contract', foreignField: 'address', as: 'addressesItems' } },
2121

2222
{ $replaceRoot: { newRoot: { $mergeObjects: [{ $arrayElemAt: ['$addressesItems', 0] }, '$$ROOT'] } } },
23-
{ $project: { addressesItems: 0 } },
24-
{
25-
$match: { address } }];
26-
23+
{ $project: { addressesItems: 0 } }];
2724

2825
let data = await this.getAggPageData(aggregate, params);
2926
return data;

dist/api/Tx.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ var _utils = require('../lib/utils');
33

44
class Tx extends _DataCollector.DataCollectorItem {
55
constructor(collection, key, parent) {
6-
super(collection, key, parent);
7-
this.sort = { blockNumber: -1, transactionIndex: -1 };
6+
const sortable = { timestamp: -1 };
7+
super(collection, key, parent, { sortable });
88
const PendingTxs = this.parent.getItem({ key: 'TxPending' });
99
this.PendingTxs = PendingTxs.publicActions;
1010
this.publicActions = {
@@ -22,7 +22,7 @@ class Tx extends _DataCollector.DataCollectorItem {
2222
const hash = params.hash;
2323
if (hash) {
2424
let tx;
25-
tx = await this.getOne({ hash });
25+
tx = await this.getPrevNext({ hash }, { hash: 1 });
2626
if (!tx.data) tx = await this.PendingTxs.getPendingTransaction(params);
2727
return tx;
2828
}

dist/api/TxPending.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
class TxPending extends _DataCollector.DataCollectorItem {
44
constructor(collection, key, parent) {
55
super(collection, key, parent);
6-
this.sort = { timestamp: -1 };
76
this.publicActions = {
87

98
getPendingTransaction: params => {

dist/api/TxPool.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.TxPool = undefined;var _DataCollector = require('../lib/DataCollector');
22
var _config = require('../lib/config');var _config2 = _interopRequireDefault(_config);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
33

4-
const perPage = _config2.default.api.perPage;
54
const collectionName = _config2.default.blocks.collections.TxPool;
65

76
class TxPool extends _DataCollector.DataCollector {
87
constructor(db) {
9-
super(db, { perPage, collectionName });
8+
super(db, { collectionName });
109
this.tickDelay = 1000;
1110
this.state = {};
1211
this.chart = [];

dist/api/apiLib.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.errors = exports.getModuleName = exports.getModule = exports.getDelayedFields = exports.publicSettings = exports.formatError = exports.formatRes = exports.filterSort = exports.filterQuery = exports.filterParams = undefined;var _types = require('../lib/types');Object.defineProperty(exports, 'errors', { enumerable: true, get: function () {return _types.
1+
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.errors = exports.getModuleName = exports.getModule = exports.getDelayedFields = exports.publicSettings = exports.formatError = exports.formatRes = exports.remove$ = exports.filterSort = exports.filterQuery = exports.filterFields = exports.getLimit = exports.filterParams = undefined;var _types = require('../lib/types');Object.defineProperty(exports, 'errors', { enumerable: true, get: function () {return _types.
22

33

44

@@ -90,4 +90,21 @@
9090

9191

9292

93-
errors;} });var _config = require('../lib/config');var _config2 = _interopRequireDefault(_config);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}const delayedFields = _config2.default.api.delayedFields || {};const filterParams = exports.filterParams = (params, perPageMax = 50) => {params = params || {};let perPage = params.perPage || perPageMax;perPage = perPage <= perPageMax ? perPage : perPageMax;params.page = params.page || 1;let limit = params.limit || perPage;limit = limit <= perPage ? limit : perPage;params.limit = limit;params.query = filterQuery(params.query);params.sort = filterSort(params.sort);return params;};const filterQuery = exports.filterQuery = query => {if (!query) return;if (typeof query === 'object') {if (Object.keys(query).length > 0) {return sanitizeQuery(query);}}};const filterSort = exports.filterSort = sort => {if (!sort) return;let filtered = null;if (sort && typeof sort === 'object') {let keys = Object.keys(sort);filtered = {};for (let k of keys) {let val = sort[k];filtered[k] = !val || val === 1 ? 1 : -1;}}return retFiltered(filtered);};const sanitizeQuery = query => {let filtered = {};for (let p in query) {let k = p.replace('$', '');if (k === p) filtered[k] = query[p];}return retFiltered(filtered);};const retFiltered = filtered => {return filtered && Object.keys(filtered).length > 0 ? filtered : null;};const formatRes = exports.formatRes = payload => {let { module, action, result, req, error } = payload;module = module ? getModuleName(module) : null;let data, pages, next, prev, delayed;if (!result && !error) error = _types.errors.EMPTY_RESULT;if (error) {error = formatError(error);} else {({ data, pages, next, prev, delayed } = result);}if (!data && !error) {if (req.getDelayed && delayed && delayed.registry) {error = formatError(_types.errors.UPDATING_REGISTRY);} else {error = formatError(_types.errors.EMPTY_RESULT);}}return { module, action, data, req, pages, error, prev, next, delayed };};const formatError = exports.formatError = error => {error.serverTime = Date.now();return error;};const publicSettings = exports.publicSettings = () => {return _config2.default.publicSettings;};const getDelayedFields = exports.getDelayedFields = (module, action) => {let delayed = delayedFields[module] ? delayedFields[module][action] : null;if (delayed) delayed.module = module;return delayed;};const getModule = exports.getModule = module => _types.modules[module] || module;const getModuleName = exports.getModuleName = key => Object.keys(_types.modules)[Object.values(_types.modules).indexOf(key)] || key;
93+
94+
95+
96+
97+
98+
99+
100+
101+
102+
103+
104+
105+
106+
107+
108+
109+
110+
errors;} });var _config = require('../lib/config');var _config2 = _interopRequireDefault(_config);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}const delayedFields = _config2.default.api.delayedFields || {};const { MAX_LIMIT, LIMIT, MIN_LIMIT } = _config2.default.api;const filterParams = exports.filterParams = params => {params = params || {};let { limit, sort, fields, query } = params;params.limit = getLimit(limit);params.query = filterQuery(query);params.sort = filterSort(sort);params.fields = filterFields(fields);return params;};const getLimit = exports.getLimit = limit => {limit = limit || LIMIT;limit = limit > MAX_LIMIT ? MAX_LIMIT : limit;limit = limit < MIN_LIMIT ? MIN_LIMIT : limit;return limit;};const filterFields = exports.filterFields = fields => {if (!fields) return;let filtered = {};for (let p in fields) {let k = remove$(p);filtered[k] = fields[p] ? 1 : 0;}return filtered;};const filterQuery = exports.filterQuery = query => {if (!query) return;if (typeof query === 'object') {if (Object.keys(query).length > 0) {return sanitizeQuery(query);}}};const filterSort = exports.filterSort = sort => {if (!sort) return;let filtered = null;if (sort && typeof sort === 'object') {let keys = Object.keys(sort);filtered = {};for (let k of keys) {let val = sort[k];filtered[k] = !val || val === 1 ? 1 : -1;}}return retFiltered(filtered);};const sanitizeQuery = query => {let filtered = {};for (let p in query) {let k = remove$(p);if (k === p) filtered[k] = query[p];}return retFiltered(filtered);};const retFiltered = filtered => {return filtered && Object.keys(filtered).length > 0 ? filtered : null;};const remove$ = exports.remove$ = value => value.replace('$', '');const formatRes = exports.formatRes = payload => {let { module, action, result, req, error } = payload;module = module ? getModuleName(module) : null;let data, pages, next, prev, delayed;if (!result && !error) error = _types.errors.EMPTY_RESULT;if (error) {error = formatError(error);} else {({ data, pages, next, prev, delayed } = result);}if (!data && !error) {if (req.getDelayed && delayed && delayed.registry) {error = formatError(_types.errors.UPDATING_REGISTRY);} else {error = formatError(_types.errors.EMPTY_RESULT);}}return { module, action, data, req, pages, error, prev, next, delayed };};const formatError = exports.formatError = error => {error.serverTime = Date.now();return error;};const publicSettings = exports.publicSettings = () => {return _config2.default.publicSettings;};const getDelayedFields = exports.getDelayedFields = (module, action) => {let delayed = delayedFields[module] ? delayedFields[module][action] : null;if (delayed) delayed.module = module;return delayed;};const getModule = exports.getModule = module => _types.modules[module] || module;const getModuleName = exports.getModuleName = key => Object.keys(_types.modules)[Object.values(_types.modules).indexOf(key)] || key;

0 commit comments

Comments
 (0)