@bitpay-labs/bitcore-wallet-service 11.8.1 → 11.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/package.json +2 -2
  2. package/src/bws.ts +2 -0
  3. package/src/lib/common/utils.ts +6 -0
  4. package/src/lib/expressapp.ts +63 -2378
  5. package/src/lib/model/txproposal.ts +14 -10
  6. package/src/lib/routes/advertisements.ts +151 -0
  7. package/src/lib/routes/blockchain.ts +152 -0
  8. package/src/lib/routes/context.ts +149 -0
  9. package/src/lib/routes/maintenance.ts +111 -0
  10. package/src/lib/routes/moralis.ts +89 -0
  11. package/src/lib/routes/notifications.ts +135 -0
  12. package/src/lib/routes/services.ts +528 -0
  13. package/src/lib/routes/setup.ts +86 -0
  14. package/src/lib/routes/transactions.ts +196 -0
  15. package/src/lib/routes/walletdata.ts +167 -0
  16. package/src/lib/routes/wallets.ts +289 -0
  17. package/src/lib/server.ts +24 -1
  18. package/src/lib/storage.ts +3 -0
  19. package/ts_build/package.json +4 -4
  20. package/ts_build/src/bws.js +3 -0
  21. package/ts_build/src/bws.js.map +1 -1
  22. package/ts_build/src/lib/common/index.d.ts +1 -0
  23. package/ts_build/src/lib/common/index.d.ts.map +1 -1
  24. package/ts_build/src/lib/common/utils.d.ts +1 -0
  25. package/ts_build/src/lib/common/utils.d.ts.map +1 -1
  26. package/ts_build/src/lib/common/utils.js +6 -0
  27. package/ts_build/src/lib/common/utils.js.map +1 -1
  28. package/ts_build/src/lib/expressapp.d.ts.map +1 -1
  29. package/ts_build/src/lib/expressapp.js +64 -2224
  30. package/ts_build/src/lib/expressapp.js.map +1 -1
  31. package/ts_build/src/lib/model/txproposal.d.ts +1 -4
  32. package/ts_build/src/lib/model/txproposal.d.ts.map +1 -1
  33. package/ts_build/src/lib/model/txproposal.js +13 -9
  34. package/ts_build/src/lib/model/txproposal.js.map +1 -1
  35. package/ts_build/src/lib/routes/advertisements.d.ts +11 -0
  36. package/ts_build/src/lib/routes/advertisements.d.ts.map +1 -0
  37. package/ts_build/src/lib/routes/advertisements.js +119 -0
  38. package/ts_build/src/lib/routes/advertisements.js.map +1 -0
  39. package/ts_build/src/lib/routes/blockchain.d.ts +13 -0
  40. package/ts_build/src/lib/routes/blockchain.d.ts.map +1 -0
  41. package/ts_build/src/lib/routes/blockchain.js +159 -0
  42. package/ts_build/src/lib/routes/blockchain.js.map +1 -0
  43. package/ts_build/src/lib/routes/context.d.ts +12 -0
  44. package/ts_build/src/lib/routes/context.d.ts.map +1 -0
  45. package/ts_build/src/lib/routes/context.js +115 -0
  46. package/ts_build/src/lib/routes/context.js.map +1 -0
  47. package/ts_build/src/lib/routes/maintenance.d.ts +10 -0
  48. package/ts_build/src/lib/routes/maintenance.d.ts.map +1 -0
  49. package/ts_build/src/lib/routes/maintenance.js +131 -0
  50. package/ts_build/src/lib/routes/maintenance.js.map +1 -0
  51. package/ts_build/src/lib/routes/moralis.d.ts +9 -0
  52. package/ts_build/src/lib/routes/moralis.d.ts.map +1 -0
  53. package/ts_build/src/lib/routes/moralis.js +78 -0
  54. package/ts_build/src/lib/routes/moralis.js.map +1 -0
  55. package/ts_build/src/lib/routes/notifications.d.ts +10 -0
  56. package/ts_build/src/lib/routes/notifications.d.ts.map +1 -0
  57. package/ts_build/src/lib/routes/notifications.js +120 -0
  58. package/ts_build/src/lib/routes/notifications.js.map +1 -0
  59. package/ts_build/src/lib/routes/services.d.ts +11 -0
  60. package/ts_build/src/lib/routes/services.d.ts.map +1 -0
  61. package/ts_build/src/lib/routes/services.js +430 -0
  62. package/ts_build/src/lib/routes/services.js.map +1 -0
  63. package/ts_build/src/lib/routes/setup.d.ts +4 -0
  64. package/ts_build/src/lib/routes/setup.d.ts.map +1 -0
  65. package/ts_build/src/lib/routes/setup.js +79 -0
  66. package/ts_build/src/lib/routes/setup.js.map +1 -0
  67. package/ts_build/src/lib/routes/transactions.d.ts +9 -0
  68. package/ts_build/src/lib/routes/transactions.d.ts.map +1 -0
  69. package/ts_build/src/lib/routes/transactions.js +188 -0
  70. package/ts_build/src/lib/routes/transactions.js.map +1 -0
  71. package/ts_build/src/lib/routes/walletdata.d.ts +10 -0
  72. package/ts_build/src/lib/routes/walletdata.d.ts.map +1 -0
  73. package/ts_build/src/lib/routes/walletdata.js +186 -0
  74. package/ts_build/src/lib/routes/walletdata.js.map +1 -0
  75. package/ts_build/src/lib/routes/wallets.d.ts +13 -0
  76. package/ts_build/src/lib/routes/wallets.d.ts.map +1 -0
  77. package/ts_build/src/lib/routes/wallets.js +292 -0
  78. package/ts_build/src/lib/routes/wallets.js.map +1 -0
  79. package/ts_build/src/lib/server.d.ts.map +1 -1
  80. package/ts_build/src/lib/server.js +19 -1
  81. package/ts_build/src/lib/server.js.map +1 -1
  82. package/ts_build/src/lib/storage.d.ts.map +1 -1
  83. package/ts_build/src/lib/storage.js +3 -0
  84. package/ts_build/src/lib/storage.js.map +1 -1
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerBlockchainRoutes = registerBlockchainRoutes;
37
+ const _ = __importStar(require("lodash"));
38
+ const ONE_MINUTE = 60;
39
+ function callbackResult(fn) {
40
+ return new Promise((resolve, reject) => {
41
+ fn((err, data) => {
42
+ if (err)
43
+ return reject(err);
44
+ return resolve(data);
45
+ });
46
+ });
47
+ }
48
+ function getServerOrReturnError(req, res, context) {
49
+ try {
50
+ return context.getServer(req, res);
51
+ }
52
+ catch (err) {
53
+ context.returnError(err, res, req);
54
+ return null;
55
+ }
56
+ }
57
+ function respondWithPublicServer(req, res, context, handler) {
58
+ const server = getServerOrReturnError(req, res, context);
59
+ if (!server)
60
+ return;
61
+ Promise.resolve()
62
+ .then(() => handler(server))
63
+ .then(response => {
64
+ res.json(response);
65
+ })
66
+ .catch(err => {
67
+ context.returnError(err ?? 'unknown', res, req);
68
+ });
69
+ }
70
+ function respondWithAuthServer(req, res, context, handler) {
71
+ context.getServerWithAuth(req, res, server => {
72
+ Promise.resolve()
73
+ .then(() => handler(server))
74
+ .then(response => {
75
+ res.json(response);
76
+ })
77
+ .catch(err => {
78
+ context.returnError(err ?? 'unknown', res, req);
79
+ });
80
+ });
81
+ }
82
+ function registerBlockchainRoutes(router, context) {
83
+ const { estimateFeeLimiter, logDeprecated, setPublicCache } = context;
84
+ router.get('/v1/feelevels/', estimateFeeLimiter, (req, res) => {
85
+ setPublicCache(res, 1 * ONE_MINUTE);
86
+ logDeprecated(req);
87
+ respondWithPublicServer(req, res, context, server => callbackResult(resolve => {
88
+ const opts = {};
89
+ if (req.query.network)
90
+ opts.network = req.query.network;
91
+ server.getFeeLevels(opts, resolve);
92
+ }).then((feeLevels) => {
93
+ _.each(feeLevels, feeLevel => {
94
+ feeLevel.feePerKB = feeLevel.feePerKb;
95
+ delete feeLevel.feePerKb;
96
+ });
97
+ return feeLevels;
98
+ }));
99
+ });
100
+ router.get('/v2/feelevels/', (req, res) => {
101
+ setPublicCache(res, 1 * ONE_MINUTE);
102
+ respondWithPublicServer(req, res, context, server => callbackResult(resolve => {
103
+ const opts = {};
104
+ if (req.query.coin)
105
+ opts.coin = req.query.coin;
106
+ if (req.query.chain || req.query.coin)
107
+ opts.chain = (req.query.chain || req.query.coin);
108
+ if (req.query.network)
109
+ opts.network = req.query.network;
110
+ server.getFeeLevels(opts, resolve);
111
+ }));
112
+ });
113
+ router.post('/v3/estimateGas/', (req, res) => {
114
+ respondWithAuthServer(req, res, context, server => {
115
+ return server.estimateGas(req.body);
116
+ });
117
+ });
118
+ router.post('/v1/ethmultisig/', (req, res) => {
119
+ respondWithAuthServer(req, res, context, server => {
120
+ return server.getMultisigContractInstantiationInfo(req.body);
121
+ });
122
+ });
123
+ router.post('/v1/ethmultisig/info', (req, res) => {
124
+ respondWithAuthServer(req, res, context, server => {
125
+ return server.getMultisigContractInfo(req.body);
126
+ });
127
+ });
128
+ router.post('/v1/multisig/', (req, res) => {
129
+ respondWithAuthServer(req, res, context, server => {
130
+ return server.getMultisigContractInstantiationInfo(req.body);
131
+ });
132
+ });
133
+ router.post('/v1/multisig/info', (req, res) => {
134
+ respondWithAuthServer(req, res, context, server => {
135
+ return server.getMultisigContractInfo(req.body);
136
+ });
137
+ });
138
+ router.post('/v1/token/info', (req, res) => {
139
+ respondWithAuthServer(req, res, context, server => {
140
+ return server.getTokenContractInfo(req.body);
141
+ });
142
+ });
143
+ router.post('/v1/token/allowance', (req, res) => {
144
+ respondWithPublicServer(req, res, context, server => {
145
+ return server.getTokenAllowance(req.body);
146
+ });
147
+ });
148
+ router.get('/v1/nonce/:address', (req, res) => {
149
+ respondWithAuthServer(req, res, context, server => {
150
+ return server.getNonce({
151
+ coin: req.query.coin || 'eth',
152
+ chain: req.query.chain,
153
+ network: req.query.network || 'livenet',
154
+ address: req.params['address']
155
+ });
156
+ });
157
+ });
158
+ }
159
+ //# sourceMappingURL=blockchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../../../src/lib/routes/blockchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import express from 'express';
2
+ import * as Types from '../../types/expressapp';
3
+ interface RouteHelpers {
4
+ getServer: Types.GetServerFn;
5
+ getServerWithAuth: Types.GetServerWithAuthFn;
6
+ getServerWithMultiAuth: Types.GetServerWithMultiAuthFn;
7
+ logDeprecated: Types.LogDeprecatedFn;
8
+ setPublicCache: (res: express.Response, seconds: number) => void;
9
+ }
10
+ export declare function createRouteHelpers(returnError: Types.ReturnErrorFn): RouteHelpers;
11
+ export {};
12
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/lib/routes/context.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAKhD,UAAU,YAAY;IACpB,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC;IAC7B,iBAAiB,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAC7C,sBAAsB,EAAE,KAAK,CAAC,wBAAwB,CAAC;IACvD,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC;IACrC,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,GAAG,YAAY,CAsIjF"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRouteHelpers = createRouteHelpers;
4
+ const errordefinitions_1 = require("../errors/errordefinitions");
5
+ const logger_1 = require("../logger");
6
+ const server_1 = require("../server");
7
+ function createRouteHelpers(returnError) {
8
+ const logDeprecated = req => {
9
+ logger_1.logger.warn('DEPRECATED', req.method, req.url, '(' + req.header('x-client-version') + ')');
10
+ };
11
+ const getCredentials = req => {
12
+ const identity = req.header('x-identity');
13
+ if (!identity)
14
+ return;
15
+ return {
16
+ copayerId: identity,
17
+ signature: req.header('x-signature'),
18
+ session: req.header('x-session')
19
+ };
20
+ };
21
+ const getServer = (req, _res) => {
22
+ const opts = {
23
+ clientVersion: req.header('x-client-version'),
24
+ userAgent: req.header('user-agent')
25
+ };
26
+ return server_1.WalletService.getInstance(opts);
27
+ };
28
+ const getServerWithAuth = async (req, res, opts, cb) => {
29
+ if (typeof opts === 'function') {
30
+ cb = opts;
31
+ opts = {};
32
+ }
33
+ opts = (opts || {});
34
+ const credentials = getCredentials(req);
35
+ if (!credentials) {
36
+ return returnError(errordefinitions_1.Errors.NOT_AUTHORIZED, res, req);
37
+ }
38
+ const reqUrl = req.redirectedUrl || req.url;
39
+ const auth = {
40
+ copayerId: credentials.copayerId,
41
+ message: req.method.toLowerCase() + '|' + reqUrl + '|' + JSON.stringify(req.body),
42
+ signature: credentials.signature,
43
+ clientVersion: req.header('x-client-version'),
44
+ userAgent: req.header('user-agent'),
45
+ walletId: req.header('x-wallet-id'),
46
+ session: undefined
47
+ };
48
+ if (opts.allowSession) {
49
+ auth.session = credentials.session;
50
+ }
51
+ try {
52
+ const server = await new Promise((resolve, reject) => {
53
+ server_1.WalletService.getInstanceWithAuth(auth, (err, server) => {
54
+ if (err) {
55
+ return reject(err);
56
+ }
57
+ if (opts.onlySupportStaff && !server.copayerIsSupportStaff) {
58
+ return reject(errordefinitions_1.Errors.NOT_AUTHORIZED);
59
+ }
60
+ if (server.copayerIsSupportStaff) {
61
+ req.isSupportStaff = true;
62
+ }
63
+ if (opts.onlyMarketingStaff && !server.copayerIsMarketingStaff) {
64
+ return reject(errordefinitions_1.Errors.NOT_AUTHORIZED);
65
+ }
66
+ req.walletId = server.walletId;
67
+ req.copayerId = server.copayerId;
68
+ return resolve(server);
69
+ });
70
+ });
71
+ if (cb) {
72
+ return cb(server);
73
+ }
74
+ return server;
75
+ }
76
+ catch (err) {
77
+ if (opts.silentFailure) {
78
+ if (cb) {
79
+ return cb(null, err);
80
+ }
81
+ throw err;
82
+ }
83
+ return returnError(err, res, req);
84
+ }
85
+ };
86
+ const getServerWithMultiAuth = (req, res, opts = {}) => {
87
+ const identitiesHeader = req.headers['x-identities'];
88
+ const identitiesHeaderValue = Array.isArray(identitiesHeader) ? identitiesHeader.join(',') : identitiesHeader;
89
+ const identities = identitiesHeaderValue ? identitiesHeaderValue.split(',') : false;
90
+ const signature = req.headers['x-signature'];
91
+ if (!identities || !signature) {
92
+ throw errordefinitions_1.Errors.NOT_AUTHORIZED;
93
+ }
94
+ if (!Array.isArray(identities)) {
95
+ throw errordefinitions_1.Errors.NOT_AUTHORIZED;
96
+ }
97
+ return identities.map(id => new Promise((resolve, reject) => getServerWithAuth(Object.assign(req, {
98
+ headers: {
99
+ ...req.headers,
100
+ 'x-identity': id
101
+ }
102
+ }), res, opts, (server, err) => (err ? reject(err) : resolve(server)))));
103
+ };
104
+ const setPublicCache = (res, seconds) => {
105
+ res.setHeader('Cache-Control', `public, max-age=${seconds}, stale-if-error=${10 * seconds}`);
106
+ };
107
+ return {
108
+ getServer,
109
+ getServerWithAuth,
110
+ getServerWithMultiAuth,
111
+ logDeprecated,
112
+ setPublicCache
113
+ };
114
+ }
115
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/lib/routes/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import express from 'express';
2
+ import type * as Types from '../../types/expressapp';
3
+ interface RouteContext {
4
+ getServerWithAuth: Types.GetServerWithAuthFn;
5
+ setPublicCache: (res: express.Response, seconds: number) => void;
6
+ returnError: Types.ReturnErrorFn;
7
+ }
8
+ export declare function registerMaintenanceRoutes(router: express.Router, context: RouteContext): void;
9
+ export {};
10
+ //# sourceMappingURL=maintenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../../../src/lib/routes/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,KAAK,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAErD,UAAU,YAAY;IACpB,iBAAiB,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAC7C,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;CAClC;AAID,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,QAgGtF"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerMaintenanceRoutes = registerMaintenanceRoutes;
37
+ const _ = __importStar(require("lodash"));
38
+ const server_1 = require("../server");
39
+ const stats_1 = require("../stats");
40
+ const ONE_MINUTE = 60;
41
+ function registerMaintenanceRoutes(router, context) {
42
+ const { getServerWithAuth, setPublicCache, returnError } = context;
43
+ router.post('/v1/addresses/scan/', (req, res) => {
44
+ getServerWithAuth(req, res, server => {
45
+ req.body = req.body || {};
46
+ req.body.startIdx = server.copayerIsSupportStaff ? Number(req.body.startIdx) : null;
47
+ server.startScan(req.body, (err, started) => {
48
+ if (err)
49
+ return returnError(err, res, req);
50
+ res.json(started);
51
+ res.end();
52
+ });
53
+ });
54
+ });
55
+ router.get('/v1/stats/', (req, res) => {
56
+ setPublicCache(res, 1 * ONE_MINUTE);
57
+ const opts = {};
58
+ if (req.query.network)
59
+ opts.network = req.query.network;
60
+ if (req.query.coin)
61
+ opts.coin = req.query.coin;
62
+ if (req.query.from)
63
+ opts.from = req.query.from;
64
+ if (req.query.to)
65
+ opts.to = req.query.to;
66
+ const stats = new stats_1.Stats(opts);
67
+ stats.run((err, data) => {
68
+ if (err)
69
+ return returnError(err, res, req);
70
+ res.json(data);
71
+ res.end();
72
+ });
73
+ });
74
+ router.get('/v1/version/', (req, res) => {
75
+ setPublicCache(res, 1 * ONE_MINUTE);
76
+ res.json({
77
+ serviceVersion: server_1.WalletService.getServiceVersion()
78
+ });
79
+ res.end();
80
+ });
81
+ router.get('/v1/txnotes/:txid', (req, res) => {
82
+ getServerWithAuth(req, res, server => {
83
+ server.getTxNote({
84
+ txid: req.params['txid']
85
+ }, (err, note) => {
86
+ if (err)
87
+ return returnError(err, res, req);
88
+ res.json(note);
89
+ });
90
+ });
91
+ });
92
+ router.put('/v1/txnotes/:txid/', (req, res) => {
93
+ req.body.txid = req.params['txid'];
94
+ getServerWithAuth(req, res, server => {
95
+ server.editTxNote(req.body, (err, note) => {
96
+ if (err)
97
+ return returnError(err, res, req);
98
+ res.json(note);
99
+ });
100
+ });
101
+ });
102
+ router.get('/v1/txnotes/', (req, res) => {
103
+ getServerWithAuth(req, res, server => {
104
+ const opts = {};
105
+ if (req.query.minTs && _.isNumber(+req.query.minTs)) {
106
+ opts.minTs = +req.query.minTs;
107
+ }
108
+ server.getTxNotes(opts, (err, notes) => {
109
+ if (err)
110
+ return returnError(err, res, req);
111
+ res.json(notes);
112
+ });
113
+ });
114
+ });
115
+ router.post('/v1/clearcache/', (req, res) => {
116
+ getServerWithAuth(req, res, server => {
117
+ server
118
+ .clearWalletCache(req.query)
119
+ .then(val => {
120
+ if (val) {
121
+ res.sendStatus(200);
122
+ }
123
+ else {
124
+ res.sendStatus(500);
125
+ }
126
+ })
127
+ .catch(err => returnError(err, res, req));
128
+ });
129
+ });
130
+ }
131
+ //# sourceMappingURL=maintenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../../../src/lib/routes/maintenance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import express from 'express';
2
+ import type * as Types from '../../types/expressapp';
3
+ interface RouteContext {
4
+ getServer: Types.GetServerFn;
5
+ returnError: Types.ReturnErrorFn;
6
+ }
7
+ export declare function registerMoralisRoutes(router: express.Router, context: RouteContext): void;
8
+ export {};
9
+ //# sourceMappingURL=moralis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moralis.d.ts","sourceRoot":"","sources":["../../../../src/lib/routes/moralis.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAGrD,UAAU,YAAY;IACpB,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC;IAC7B,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;CAClC;AA0BD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,QAqDlF"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerMoralisRoutes = registerMoralisRoutes;
7
+ const cors_1 = __importDefault(require("cors"));
8
+ const config_1 = __importDefault(require("../../config"));
9
+ function getServerOrReturnError(req, res, context) {
10
+ try {
11
+ return context.getServer(req, res);
12
+ }
13
+ catch (err) {
14
+ context.returnError(err, res, req);
15
+ return null;
16
+ }
17
+ }
18
+ function respondWithPublicServer(req, res, context, handler) {
19
+ const server = getServerOrReturnError(req, res, context);
20
+ if (!server)
21
+ return;
22
+ handler(server)
23
+ .then(response => {
24
+ res.json(response);
25
+ })
26
+ .catch(err => {
27
+ context.returnError(err ?? 'unknown', res, req);
28
+ });
29
+ }
30
+ function registerMoralisRoutes(router, context) {
31
+ const moralisCorsOptions = {
32
+ origin: (origin, cb) => {
33
+ const moralisWhiteList = config_1.default.moralis?.whitelist ?? [];
34
+ if (moralisWhiteList.indexOf(origin) !== -1) {
35
+ cb(null, true);
36
+ }
37
+ else {
38
+ cb(new Error('Not allowed by CORS'));
39
+ }
40
+ }
41
+ };
42
+ router.post('/v1/moralis/getWalletTokenBalances', (0, cors_1.default)(moralisCorsOptions), (req, res) => {
43
+ respondWithPublicServer(req, res, context, server => {
44
+ return server.moralisGetWalletTokenBalances(req);
45
+ });
46
+ });
47
+ router.post('/v1/moralis/moralisGetTokenAllowance', (0, cors_1.default)(moralisCorsOptions), (req, res) => {
48
+ respondWithPublicServer(req, res, context, server => {
49
+ return server.moralisGetTokenAllowance(req);
50
+ });
51
+ });
52
+ router.post('/v1/moralis/moralisGetNativeBalance', (0, cors_1.default)(moralisCorsOptions), (req, res) => {
53
+ respondWithPublicServer(req, res, context, server => {
54
+ return server.moralisGetNativeBalance(req);
55
+ });
56
+ });
57
+ router.post('/v1/moralis/GetTokenPrice', (0, cors_1.default)(moralisCorsOptions), (req, res) => {
58
+ respondWithPublicServer(req, res, context, server => {
59
+ return server.moralisGetTokenPrice(req);
60
+ });
61
+ });
62
+ router.post('/v1/moralis/getMultipleERC20TokenPrices', (0, cors_1.default)(moralisCorsOptions), (req, res) => {
63
+ respondWithPublicServer(req, res, context, server => {
64
+ return server.moralisGetMultipleERC20TokenPrices(req);
65
+ });
66
+ });
67
+ router.post('/v1/moralis/getERC20TokenBalancesWithPricesByWallet', (0, cors_1.default)(moralisCorsOptions), (req, res) => {
68
+ respondWithPublicServer(req, res, context, server => {
69
+ return server.moralisGetERC20TokenBalancesWithPricesByWallet(req);
70
+ });
71
+ });
72
+ router.post('/v1/moralis/getSolWalletPortfolio', (0, cors_1.default)(moralisCorsOptions), (req, res) => {
73
+ respondWithPublicServer(req, res, context, server => {
74
+ return server.moralisGetSolWalletPortfolio(req);
75
+ });
76
+ });
77
+ }
78
+ //# sourceMappingURL=moralis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moralis.js","sourceRoot":"","sources":["../../../../src/lib/routes/moralis.ts"],"names":[],"mappings":";;;;;AAmCA,sDAqDC;AAxFD,gDAAwB;AAExB,0DAAkC;AAWlC,SAAS,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAqB;IAC7D,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAqB,EAAE,OAAqB;IACrF,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,OAAO,CAAC,MAAM,CAAC;SACZ,IAAI,CAAC,QAAQ,CAAC,EAAE;QACf,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,CAAC,EAAE;QACX,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAsB,EAAE,OAAqB;IACjF,MAAM,kBAAkB,GAAG;QACzB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;YACrB,MAAM,gBAAgB,GAAG,gBAAM,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;YACzD,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC5C,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,IAAA,cAAI,EAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvF,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;YAClD,OAAO,MAAM,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,IAAA,cAAI,EAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACzF,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;YAClD,OAAO,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,IAAA,cAAI,EAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACxF,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;YAClD,OAAO,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAA,cAAI,EAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9E,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;YAClD,OAAO,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,IAAA,cAAI,EAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5F,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;YAClD,OAAO,MAAM,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE,IAAA,cAAI,EAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACxG,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;YAClD,OAAO,MAAM,CAAC,8CAA8C,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAA,cAAI,EAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACtF,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;YAClD,OAAO,MAAM,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ import express from 'express';
2
+ import type * as Types from '../../types/expressapp';
3
+ interface RouteContext {
4
+ getServerWithAuth: Types.GetServerWithAuthFn;
5
+ logDeprecated: Types.LogDeprecatedFn;
6
+ returnError: Types.ReturnErrorFn;
7
+ }
8
+ export declare function registerNotificationRoutes(router: express.Router, context: RouteContext): void;
9
+ export {};
10
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../../src/lib/routes/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAIrD,UAAU,YAAY;IACpB,iBAAiB,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAC7C,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC;IACrC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;CAClC;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,QA0HvF"}