@bitpay-labs/bitcore-wallet-service 11.8.1 → 11.9.0
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.
- package/bws.example.config.js +4 -2
- package/package.json +4 -4
- package/src/bws.ts +2 -0
- package/src/config.ts +4 -2
- package/src/externalservices/moonpay.ts +85 -1
- package/src/lib/blockchainexplorers/v8.ts +1 -1
- package/src/lib/common/utils.ts +18 -5
- package/src/lib/expressapp.ts +63 -2378
- package/src/lib/model/txproposal.ts +14 -10
- package/src/lib/routes/advertisements.ts +151 -0
- package/src/lib/routes/blockchain.ts +151 -0
- package/src/lib/routes/context.ts +149 -0
- package/src/lib/routes/maintenance.ts +114 -0
- package/src/lib/routes/moralis.ts +89 -0
- package/src/lib/routes/notifications.ts +135 -0
- package/src/lib/routes/services.ts +540 -0
- package/src/lib/routes/setup.ts +86 -0
- package/src/lib/routes/transactions.ts +196 -0
- package/src/lib/routes/walletdata.ts +166 -0
- package/src/lib/routes/wallets.ts +288 -0
- package/src/lib/server.ts +24 -1
- package/src/lib/storage.ts +3 -0
- package/test/integration/externalservices/moonpay.test.ts +149 -0
- package/test/utils.test.ts +29 -0
- package/ts_build/package.json +4 -4
- package/ts_build/src/bws.js +3 -0
- package/ts_build/src/bws.js.map +1 -1
- package/ts_build/src/config.d.ts.map +1 -1
- package/ts_build/src/config.js.map +1 -1
- package/ts_build/src/externalservices/moonpay.d.ts +4 -0
- package/ts_build/src/externalservices/moonpay.d.ts.map +1 -1
- package/ts_build/src/externalservices/moonpay.js +68 -1
- package/ts_build/src/externalservices/moonpay.js.map +1 -1
- package/ts_build/src/lib/blockchainexplorers/v8.js +1 -1
- package/ts_build/src/lib/common/index.d.ts +1 -0
- package/ts_build/src/lib/common/index.d.ts.map +1 -1
- package/ts_build/src/lib/common/utils.d.ts +1 -0
- package/ts_build/src/lib/common/utils.d.ts.map +1 -1
- package/ts_build/src/lib/common/utils.js +20 -9
- package/ts_build/src/lib/common/utils.js.map +1 -1
- package/ts_build/src/lib/expressapp.d.ts.map +1 -1
- package/ts_build/src/lib/expressapp.js +64 -2224
- package/ts_build/src/lib/expressapp.js.map +1 -1
- package/ts_build/src/lib/model/txproposal.d.ts +1 -4
- package/ts_build/src/lib/model/txproposal.d.ts.map +1 -1
- package/ts_build/src/lib/model/txproposal.js +13 -9
- package/ts_build/src/lib/model/txproposal.js.map +1 -1
- package/ts_build/src/lib/routes/advertisements.d.ts +11 -0
- package/ts_build/src/lib/routes/advertisements.d.ts.map +1 -0
- package/ts_build/src/lib/routes/advertisements.js +119 -0
- package/ts_build/src/lib/routes/advertisements.js.map +1 -0
- package/ts_build/src/lib/routes/blockchain.d.ts +13 -0
- package/ts_build/src/lib/routes/blockchain.d.ts.map +1 -0
- package/ts_build/src/lib/routes/blockchain.js +125 -0
- package/ts_build/src/lib/routes/blockchain.js.map +1 -0
- package/ts_build/src/lib/routes/context.d.ts +12 -0
- package/ts_build/src/lib/routes/context.d.ts.map +1 -0
- package/ts_build/src/lib/routes/context.js +115 -0
- package/ts_build/src/lib/routes/context.js.map +1 -0
- package/ts_build/src/lib/routes/maintenance.d.ts +10 -0
- package/ts_build/src/lib/routes/maintenance.d.ts.map +1 -0
- package/ts_build/src/lib/routes/maintenance.js +101 -0
- package/ts_build/src/lib/routes/maintenance.js.map +1 -0
- package/ts_build/src/lib/routes/moralis.d.ts +9 -0
- package/ts_build/src/lib/routes/moralis.d.ts.map +1 -0
- package/ts_build/src/lib/routes/moralis.js +78 -0
- package/ts_build/src/lib/routes/moralis.js.map +1 -0
- package/ts_build/src/lib/routes/notifications.d.ts +10 -0
- package/ts_build/src/lib/routes/notifications.d.ts.map +1 -0
- package/ts_build/src/lib/routes/notifications.js +120 -0
- package/ts_build/src/lib/routes/notifications.js.map +1 -0
- package/ts_build/src/lib/routes/services.d.ts +11 -0
- package/ts_build/src/lib/routes/services.d.ts.map +1 -0
- package/ts_build/src/lib/routes/services.js +440 -0
- package/ts_build/src/lib/routes/services.js.map +1 -0
- package/ts_build/src/lib/routes/setup.d.ts +4 -0
- package/ts_build/src/lib/routes/setup.d.ts.map +1 -0
- package/ts_build/src/lib/routes/setup.js +79 -0
- package/ts_build/src/lib/routes/setup.js.map +1 -0
- package/ts_build/src/lib/routes/transactions.d.ts +9 -0
- package/ts_build/src/lib/routes/transactions.d.ts.map +1 -0
- package/ts_build/src/lib/routes/transactions.js +188 -0
- package/ts_build/src/lib/routes/transactions.js.map +1 -0
- package/ts_build/src/lib/routes/walletdata.d.ts +10 -0
- package/ts_build/src/lib/routes/walletdata.d.ts.map +1 -0
- package/ts_build/src/lib/routes/walletdata.js +152 -0
- package/ts_build/src/lib/routes/walletdata.js.map +1 -0
- package/ts_build/src/lib/routes/wallets.d.ts +13 -0
- package/ts_build/src/lib/routes/wallets.d.ts.map +1 -0
- package/ts_build/src/lib/routes/wallets.js +291 -0
- package/ts_build/src/lib/routes/wallets.js.map +1 -0
- package/ts_build/src/lib/server.d.ts.map +1 -1
- package/ts_build/src/lib/server.js +19 -1
- package/ts_build/src/lib/server.js.map +1 -1
- package/ts_build/src/lib/storage.d.ts.map +1 -1
- package/ts_build/src/lib/storage.js +3 -0
- package/ts_build/src/lib/storage.js.map +1 -1
- package/ts_build/test/integration/externalservices/moonpay.test.js +139 -0
- package/ts_build/test/integration/externalservices/moonpay.test.js.map +1 -1
- package/ts_build/test/utils.test.js +23 -0
- package/ts_build/test/utils.test.js.map +1 -1
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerBlockchainRoutes = registerBlockchainRoutes;
|
|
4
|
+
const ONE_MINUTE = 60;
|
|
5
|
+
function callbackResult(fn) {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
fn((err, data) => {
|
|
8
|
+
if (err)
|
|
9
|
+
return reject(err);
|
|
10
|
+
return resolve(data);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function getServerOrReturnError(req, res, context) {
|
|
15
|
+
try {
|
|
16
|
+
return context.getServer(req, res);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
context.returnError(err, res, req);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function respondWithPublicServer(req, res, context, handler) {
|
|
24
|
+
const server = getServerOrReturnError(req, res, context);
|
|
25
|
+
if (!server)
|
|
26
|
+
return;
|
|
27
|
+
Promise.resolve()
|
|
28
|
+
.then(() => handler(server))
|
|
29
|
+
.then(response => {
|
|
30
|
+
res.json(response);
|
|
31
|
+
})
|
|
32
|
+
.catch(err => {
|
|
33
|
+
context.returnError(err ?? 'unknown', res, req);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function respondWithAuthServer(req, res, context, handler) {
|
|
37
|
+
context.getServerWithAuth(req, res, server => {
|
|
38
|
+
Promise.resolve()
|
|
39
|
+
.then(() => handler(server))
|
|
40
|
+
.then(response => {
|
|
41
|
+
res.json(response);
|
|
42
|
+
})
|
|
43
|
+
.catch(err => {
|
|
44
|
+
context.returnError(err ?? 'unknown', res, req);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function registerBlockchainRoutes(router, context) {
|
|
49
|
+
const { estimateFeeLimiter, logDeprecated, setPublicCache } = context;
|
|
50
|
+
router.get('/v1/feelevels/', estimateFeeLimiter, (req, res) => {
|
|
51
|
+
setPublicCache(res, 1 * ONE_MINUTE);
|
|
52
|
+
logDeprecated(req);
|
|
53
|
+
respondWithPublicServer(req, res, context, server => callbackResult(resolve => {
|
|
54
|
+
const opts = {};
|
|
55
|
+
if (req.query.network)
|
|
56
|
+
opts.network = req.query.network;
|
|
57
|
+
server.getFeeLevels(opts, resolve);
|
|
58
|
+
}).then((feeLevels) => {
|
|
59
|
+
for (const feeLevel of feeLevels) {
|
|
60
|
+
feeLevel.feePerKB = feeLevel.feePerKb;
|
|
61
|
+
delete feeLevel.feePerKb;
|
|
62
|
+
}
|
|
63
|
+
return feeLevels;
|
|
64
|
+
}));
|
|
65
|
+
});
|
|
66
|
+
router.get('/v2/feelevels/', (req, res) => {
|
|
67
|
+
setPublicCache(res, 1 * ONE_MINUTE);
|
|
68
|
+
respondWithPublicServer(req, res, context, server => callbackResult(resolve => {
|
|
69
|
+
const opts = {};
|
|
70
|
+
if (req.query.coin)
|
|
71
|
+
opts.coin = req.query.coin;
|
|
72
|
+
if (req.query.chain || req.query.coin)
|
|
73
|
+
opts.chain = (req.query.chain || req.query.coin);
|
|
74
|
+
if (req.query.network)
|
|
75
|
+
opts.network = req.query.network;
|
|
76
|
+
server.getFeeLevels(opts, resolve);
|
|
77
|
+
}));
|
|
78
|
+
});
|
|
79
|
+
router.post('/v3/estimateGas/', (req, res) => {
|
|
80
|
+
respondWithAuthServer(req, res, context, server => {
|
|
81
|
+
return server.estimateGas(req.body);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
router.post('/v1/ethmultisig/', (req, res) => {
|
|
85
|
+
respondWithAuthServer(req, res, context, server => {
|
|
86
|
+
return server.getMultisigContractInstantiationInfo(req.body);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
router.post('/v1/ethmultisig/info', (req, res) => {
|
|
90
|
+
respondWithAuthServer(req, res, context, server => {
|
|
91
|
+
return server.getMultisigContractInfo(req.body);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
router.post('/v1/multisig/', (req, res) => {
|
|
95
|
+
respondWithAuthServer(req, res, context, server => {
|
|
96
|
+
return server.getMultisigContractInstantiationInfo(req.body);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
router.post('/v1/multisig/info', (req, res) => {
|
|
100
|
+
respondWithAuthServer(req, res, context, server => {
|
|
101
|
+
return server.getMultisigContractInfo(req.body);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
router.post('/v1/token/info', (req, res) => {
|
|
105
|
+
respondWithAuthServer(req, res, context, server => {
|
|
106
|
+
return server.getTokenContractInfo(req.body);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
router.post('/v1/token/allowance', (req, res) => {
|
|
110
|
+
respondWithPublicServer(req, res, context, server => {
|
|
111
|
+
return server.getTokenAllowance(req.body);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
router.get('/v1/nonce/:address', (req, res) => {
|
|
115
|
+
respondWithAuthServer(req, res, context, server => {
|
|
116
|
+
return server.getNonce({
|
|
117
|
+
coin: req.query.coin || 'eth',
|
|
118
|
+
chain: req.query.chain,
|
|
119
|
+
network: req.query.network || 'livenet',
|
|
120
|
+
address: req.params['address']
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# 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;AAG9B,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,QAoGtF"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerMaintenanceRoutes = registerMaintenanceRoutes;
|
|
4
|
+
const server_1 = require("../server");
|
|
5
|
+
const stats_1 = require("../stats");
|
|
6
|
+
const ONE_MINUTE = 60;
|
|
7
|
+
function registerMaintenanceRoutes(router, context) {
|
|
8
|
+
const { getServerWithAuth, setPublicCache, returnError } = context;
|
|
9
|
+
router.post('/v1/addresses/scan/', (req, res) => {
|
|
10
|
+
getServerWithAuth(req, res, server => {
|
|
11
|
+
req.body = req.body || {};
|
|
12
|
+
req.body.startIdx = server.copayerIsSupportStaff ? Number(req.body.startIdx) : null;
|
|
13
|
+
server.startScan(req.body, (err, started) => {
|
|
14
|
+
if (err)
|
|
15
|
+
return returnError(err, res, req);
|
|
16
|
+
res.json(started);
|
|
17
|
+
res.end();
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
router.get('/v1/stats/', (req, res) => {
|
|
22
|
+
setPublicCache(res, 1 * ONE_MINUTE);
|
|
23
|
+
const opts = {};
|
|
24
|
+
if (req.query.network)
|
|
25
|
+
opts.network = req.query.network;
|
|
26
|
+
if (req.query.coin)
|
|
27
|
+
opts.coin = req.query.coin;
|
|
28
|
+
if (req.query.from)
|
|
29
|
+
opts.from = req.query.from;
|
|
30
|
+
if (req.query.to)
|
|
31
|
+
opts.to = req.query.to;
|
|
32
|
+
const stats = new stats_1.Stats(opts);
|
|
33
|
+
stats.run((err, data) => {
|
|
34
|
+
if (err)
|
|
35
|
+
return returnError(err, res, req);
|
|
36
|
+
res.json(data);
|
|
37
|
+
res.end();
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
router.get('/v1/version/', (req, res) => {
|
|
41
|
+
setPublicCache(res, 1 * ONE_MINUTE);
|
|
42
|
+
res.json({
|
|
43
|
+
serviceVersion: server_1.WalletService.getServiceVersion()
|
|
44
|
+
});
|
|
45
|
+
res.end();
|
|
46
|
+
});
|
|
47
|
+
router.get('/v1/txnotes/:txid', (req, res) => {
|
|
48
|
+
getServerWithAuth(req, res, server => {
|
|
49
|
+
server.getTxNote({
|
|
50
|
+
txid: req.params['txid']
|
|
51
|
+
}, (err, note) => {
|
|
52
|
+
if (err)
|
|
53
|
+
return returnError(err, res, req);
|
|
54
|
+
res.json(note);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
router.put('/v1/txnotes/:txid/', (req, res) => {
|
|
59
|
+
req.body.txid = req.params['txid'];
|
|
60
|
+
getServerWithAuth(req, res, server => {
|
|
61
|
+
server.editTxNote(req.body, (err, note) => {
|
|
62
|
+
if (err)
|
|
63
|
+
return returnError(err, res, req);
|
|
64
|
+
res.json(note);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
router.get('/v1/txnotes/', (req, res) => {
|
|
69
|
+
getServerWithAuth(req, res, server => {
|
|
70
|
+
const opts = {};
|
|
71
|
+
const rawMinTs = req.query.minTs;
|
|
72
|
+
if (typeof rawMinTs === 'string' && rawMinTs.trim() !== '') {
|
|
73
|
+
const minTs = Number(rawMinTs);
|
|
74
|
+
if (Number.isFinite(minTs)) {
|
|
75
|
+
opts.minTs = minTs;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
server.getTxNotes(opts, (err, notes) => {
|
|
79
|
+
if (err)
|
|
80
|
+
return returnError(err, res, req);
|
|
81
|
+
res.json(notes);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
router.post('/v1/clearcache/', (req, res) => {
|
|
86
|
+
getServerWithAuth(req, res, server => {
|
|
87
|
+
server
|
|
88
|
+
.clearWalletCache(req.query)
|
|
89
|
+
.then(val => {
|
|
90
|
+
if (val) {
|
|
91
|
+
res.sendStatus(200);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
res.sendStatus(500);
|
|
95
|
+
}
|
|
96
|
+
})
|
|
97
|
+
.catch(err => returnError(err, res, req));
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
//# 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":"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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
|
+
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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerNotificationRoutes = registerNotificationRoutes;
|
|
4
|
+
const common_1 = require("../common");
|
|
5
|
+
const { Defaults } = common_1.Common;
|
|
6
|
+
function registerNotificationRoutes(router, context) {
|
|
7
|
+
const { getServerWithAuth, logDeprecated, returnError } = context;
|
|
8
|
+
router.post('/v1/login/', (req, res) => {
|
|
9
|
+
getServerWithAuth(req, res, server => {
|
|
10
|
+
server.login({}, (err, session) => {
|
|
11
|
+
if (err)
|
|
12
|
+
return returnError(err, res, req);
|
|
13
|
+
res.json(session);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
router.post('/v1/logout/', (req, res) => {
|
|
18
|
+
getServerWithAuth(req, res, server => {
|
|
19
|
+
server.logout({}, err => {
|
|
20
|
+
if (err)
|
|
21
|
+
return returnError(err, res, req);
|
|
22
|
+
res.end();
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
router.get('/v1/notifications/', (req, res) => {
|
|
27
|
+
getServerWithAuth(req, res, {
|
|
28
|
+
allowSession: true
|
|
29
|
+
}, server => {
|
|
30
|
+
const timeSpan = req.query.timeSpan
|
|
31
|
+
? Math.min(+req.query.timeSpan || 0, Defaults.MAX_NOTIFICATIONS_TIMESPAN)
|
|
32
|
+
: Defaults.NOTIFICATIONS_TIMESPAN;
|
|
33
|
+
const opts = {
|
|
34
|
+
minTs: +Date.now() - timeSpan * 1000,
|
|
35
|
+
notificationId: req.query.notificationId
|
|
36
|
+
};
|
|
37
|
+
server.getNotifications(opts, (err, notifications) => {
|
|
38
|
+
if (err)
|
|
39
|
+
return returnError(err, res, req);
|
|
40
|
+
res.json(notifications);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
router.post('/v1/pushnotifications/subscriptions/', (req, res) => {
|
|
45
|
+
getServerWithAuth(req, res, server => {
|
|
46
|
+
server.pushNotificationsSubscribe(req.body, (err, response) => {
|
|
47
|
+
if (err)
|
|
48
|
+
return returnError(err, res, req);
|
|
49
|
+
res.json(response);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
router.post('/v2/pushnotifications/subscriptions/', (req, res) => {
|
|
54
|
+
getServerWithAuth(req, res, server => {
|
|
55
|
+
server.pushNotificationsBrazeSubscribe(req.body, (err, response) => {
|
|
56
|
+
if (err)
|
|
57
|
+
return returnError(err, res, req);
|
|
58
|
+
res.json(response);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
router.delete('/v1/pushnotifications/subscriptions/', (req, res) => {
|
|
63
|
+
logDeprecated(req);
|
|
64
|
+
getServerWithAuth(req, res, server => {
|
|
65
|
+
server.pushNotificationsUnsubscribe({
|
|
66
|
+
token: 'dummy'
|
|
67
|
+
}, (err, response) => {
|
|
68
|
+
if (err)
|
|
69
|
+
return returnError(err, res, req);
|
|
70
|
+
res.json(response);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
router.delete('/v2/pushnotifications/subscriptions/:token', (req, res) => {
|
|
75
|
+
const opts = {
|
|
76
|
+
token: req.params['token']
|
|
77
|
+
};
|
|
78
|
+
getServerWithAuth(req, res, server => {
|
|
79
|
+
server.pushNotificationsUnsubscribe(opts, (err, response) => {
|
|
80
|
+
if (err)
|
|
81
|
+
return returnError(err, res, req);
|
|
82
|
+
res.json(response);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
router.delete('/v3/pushnotifications/subscriptions/:externalUserId', (req, res) => {
|
|
87
|
+
const opts = {
|
|
88
|
+
externalUserId: req.params['externalUserId']
|
|
89
|
+
};
|
|
90
|
+
getServerWithAuth(req, res, server => {
|
|
91
|
+
server.pushNotificationsBrazeUnsubscribe(opts, (err, response) => {
|
|
92
|
+
if (err)
|
|
93
|
+
return returnError(err, res, req);
|
|
94
|
+
res.json(response);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
router.post('/v1/txconfirmations/', (req, res) => {
|
|
99
|
+
getServerWithAuth(req, res, server => {
|
|
100
|
+
server.txConfirmationSubscribe(req.body, (err, response) => {
|
|
101
|
+
if (err)
|
|
102
|
+
return returnError(err, res, req);
|
|
103
|
+
res.json(response);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
router.delete('/v1/txconfirmations/:txid', (req, res) => {
|
|
108
|
+
const opts = {
|
|
109
|
+
txid: req.params['txid']
|
|
110
|
+
};
|
|
111
|
+
getServerWithAuth(req, res, server => {
|
|
112
|
+
server.txConfirmationUnsubscribe(opts, (err, response) => {
|
|
113
|
+
if (err)
|
|
114
|
+
return returnError(err, res, req);
|
|
115
|
+
res.json(response);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../src/lib/routes/notifications.ts"],"names":[],"mappings":"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"}
|