Skip to content

Commit 799c7d6

Browse files
committed
Build 1.2.0
1 parent 58a808a commit 799c7d6

File tree

9 files changed

+155
-40
lines changed

9 files changed

+155
-40
lines changed

CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
2+
## [1.1.9] - 2021-01-29
3+
4+
### Added
5+
6+
- Support POST in /api routes.
7+
- API module: VerificationResults
8+
29
## [1.1.8] - 2021-01-28
10+
311
#### Changed
412

513
- Dependencies: nod3 to @rsksmart/nod3

dist/api/modules/ContractVerification.js

+3-8
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ var _types = require("../../lib/types");
77

88
class ContractVerification extends _DataCollector.DataCollectorItem {
99
constructor(collections, name) {
10-
const { ContractVerification, VerificationsResults } = collections;
10+
const { ContractVerification } = collections;
1111
super(ContractVerification, name);
12-
this.verificationsCollection = VerificationsResults;
1312
this.publicActions = {
1413
/**
1514
* @swagger
@@ -27,9 +26,7 @@ class ContractVerification extends _DataCollector.DataCollectorItem {
2726
* $ref: '#/responses/NotFound'
2827
*/
2928
getVerifiedContracts: params => {
30-
params.fields = { address: 1 };
31-
let query = { match: true };
32-
return this.getPageData(query, params);
29+
return this.parent.getModule('VerificationResults').run('getResults', params);
3330
},
3431
/**
3532
* @swagger
@@ -163,9 +160,7 @@ class ContractVerification extends _DataCollector.DataCollectorItem {
163160
* $ref: '#/responses/NotFound'
164161
*/
165162
isVerified: async params => {
166-
const { address } = params;
167-
const data = await this.verificationsCollection.findOne({ address });
168-
return { data };
163+
return this.parent.getModule('VerificationResults').run('getVerification', params);
169164
} };
170165

171166
}}exports.ContractVerification = ContractVerification;var _default =
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = exports.VerificationResults = void 0;var _DataCollector = require("../lib/DataCollector");
2+
3+
class VerificationResults extends _DataCollector.DataCollectorItem {
4+
constructor(collections, name) {
5+
const { VerificationsResults } = collections;
6+
super(VerificationsResults, name);
7+
this.publicActions = {
8+
/**
9+
* @swagger
10+
* /api?module=verificationResults&action=getResults:
11+
* get:
12+
* description: Gets a list of verified contracts addresses
13+
* tags:
14+
* - verification results
15+
* responses:
16+
* 200:
17+
* $ref: '#/definitions/Response'
18+
* 400:
19+
* $ref: '#/responses/BadRequest'
20+
* 404:
21+
* $ref: '#/responses/NotFound'
22+
*/
23+
getResults: params => {
24+
params.fields = { address: 1 };
25+
let query = { match: true };
26+
return this.getPageData(query, params);
27+
},
28+
/**
29+
* @swagger
30+
* /api?module=verificationResults&action=getVerification:
31+
* get:
32+
* description: Checks if a contract was verified
33+
* tags:
34+
* - verification results
35+
* parameters:
36+
* - name: address
37+
* in: query
38+
* required: true
39+
* responses:
40+
* 200:
41+
* $ref: '#/definitions/Response'
42+
* 400:
43+
* $ref: '#/responses/BadRequest'
44+
* 404:
45+
* $ref: '#/responses/NotFound'
46+
*/
47+
getVerification: async params => {
48+
const { address } = params;
49+
const query = { address, match: true };
50+
return this.getItem(query, params);
51+
} };
52+
53+
}}exports.VerificationResults = VerificationResults;var _default =
54+
55+
56+
VerificationResults;exports.default = _default;

dist/api/modules/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var _TxPending = require("./TxPending");
77
var _Stats = require("./Stats");
88
var _Summary = require("./Summary");
99

10+
var _VerificationResults = require("./VerificationResults");
1011
var _ContractVerification = require("./ContractVerification");
1112
var _InternalTx = require("./InternalTx");
1213
var _Balances = require("./Balances");
@@ -22,6 +23,7 @@ const apiModules = {
2223
Stats: _Stats.Stats,
2324
Summary: _Summary.Summary,
2425
ContractVerification: _ContractVerification.ContractVerification,
26+
VerificationResults: _VerificationResults.VerificationResults,
2527
InternalTx: _InternalTx.InternalTx,
2628
Balances: _Balances.Balances };
2729

dist/api/routes/api.js

+31-23
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,47 @@
1-
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _express = _interopRequireDefault(require("express"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
1+
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _express = _interopRequireDefault(require("express"));
2+
var _bodyParser = _interopRequireDefault(require("body-parser"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
23
const router = _express.default.Router();
34

45
const Routes = ({ log, api }) => {
5-
router.use('/', (req, res, next) => {
6+
const getResult = async (api, { module, action, params }) => {
67
try {
7-
const params = req.query;
8-
if (Object.keys(params).length === 0) {
9-
res.send(api.info());
10-
} else {
11-
const { module, action } = req.query;
12-
if (!module) throw new Error(`invalid module: ${module}`);
13-
if (!action) throw new Error(`invalid action: ${action}`);
14-
next();
15-
}
16-
} catch (err) {
17-
log.debug(err);
18-
res.status(400).send();
19-
}
20-
});
21-
22-
router.get('/', async (req, res, next) => {
23-
try {
24-
const params = req.query;
25-
const { module, action } = req.query;
26-
delete params.module;
27-
delete params.action;
288
const { result } = await api.run({ module, action, params });
299
if (!result) throw new Error('Missing result');
3010
if (!result.data) throw new Error('Missing data');
11+
return result;
12+
} catch (err) {
13+
return Promise.reject(err);
14+
}
15+
};
16+
const sendResult = async (api, res, { module, action, params }) => {
17+
let result;
18+
try {
19+
if (!!module !== !!action) {
20+
res.status(400).send();
21+
return;
22+
}
23+
if (!module && !action) result = api.info();else
24+
result = await getResult(api, { module, action, params });
25+
if (!result) throw new Error('Empty result');
3126
res.send(result);
3227
} catch (err) {
3328
res.status(404).send();
3429
log.error(err);
3530
}
31+
};
32+
33+
router.get('/', (req, res, next) => {
34+
const params = req.query;
35+
const { module, action } = params;
36+
delete params.module;
37+
delete params.action;
38+
return sendResult(api, res, { module, action, params });
3639
});
40+
41+
router.post('/', _bodyParser.default.json(), (req, res, next) => {
42+
return sendResult(api, res, req.body);
43+
});
44+
3745
return router;
3846
};var _default =
3947

dist/lib/types.js

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ const MODULES = {
7171
txPending: 'TxPending',
7272
extendedStats: 'ExtendedStats',
7373
contractVerifier: 'ContractVerification',
74+
verificationResults: 'VerificationResults',
7475
internalTransactions: 'InternalTx',
7576
balances: 'Balances' };exports.MODULES = MODULES;
7677

package-lock.json

+7-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rsk-explorer-api",
3-
"version": "1.1.8",
3+
"version": "1.2.0",
44
"description": "",
55
"main": "index.js",
66
"scripts": {

public/swagger.json

+46-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"info": {
33
"title": "rsk-explorer-api",
4-
"version": "1.1.8",
4+
"version": "1.2.0",
55
"description": "explorer API Documentation"
66
},
77
"swagger": "2.0",
@@ -1846,6 +1846,51 @@
18461846
}
18471847
}
18481848
}
1849+
},
1850+
"/api?module=verificationResults&action=getResults": {
1851+
"get": {
1852+
"description": "Gets a list of verified contracts addresses",
1853+
"tags": [
1854+
"verification results"
1855+
],
1856+
"responses": {
1857+
"200": {
1858+
"$ref": "#/definitions/Response"
1859+
},
1860+
"400": {
1861+
"$ref": "#/responses/BadRequest"
1862+
},
1863+
"404": {
1864+
"$ref": "#/responses/NotFound"
1865+
}
1866+
}
1867+
}
1868+
},
1869+
"/api?module=verificationResults&action=getVerification": {
1870+
"get": {
1871+
"description": "Checks if a contract was verified",
1872+
"tags": [
1873+
"verification results"
1874+
],
1875+
"parameters": [
1876+
{
1877+
"name": "address",
1878+
"in": "query",
1879+
"required": true
1880+
}
1881+
],
1882+
"responses": {
1883+
"200": {
1884+
"$ref": "#/definitions/Response"
1885+
},
1886+
"400": {
1887+
"$ref": "#/responses/BadRequest"
1888+
},
1889+
"404": {
1890+
"$ref": "#/responses/NotFound"
1891+
}
1892+
}
1893+
}
18491894
}
18501895
},
18511896
"definitions": {

0 commit comments

Comments
 (0)