From 29175d3ca903629582b1ada33420a17351ebc951 Mon Sep 17 00:00:00 2001 From: hichri-louay Date: Fri, 17 Mar 2023 17:39:20 +0100 Subject: [PATCH 1/2] api exports keystore --- controllers/wallet.controller.js | 141 +++++++++++++++++++++++++++++++ routes/wallet.routes.js | 103 ++++++++++++++++++++++ 2 files changed, 244 insertions(+) diff --git a/controllers/wallet.controller.js b/controllers/wallet.controller.js index 338ab1969..f0f6d6e9f 100644 --- a/controllers/wallet.controller.js +++ b/controllers/wallet.controller.js @@ -1544,3 +1544,144 @@ exports.exportKeyStore = async (req, res) => { ) } } + + + + +exports.exportBtc = async (req, res) => { + try { + res.attachment() + if (req.user.hasWallet == true) { + var cred = await unlock(req, res) + if (!cred) return + + let ret = await exportkeyBtc(req, res) + + res.status(200).send({ ret }) + } else { + return responseHandler.makeResponseError( + res, + 204, + 'Wallet not found' + ) + } + } catch (err) {} +} + + + +exports.exportEth = async (req, res) => { + try { + res.attachment() + if (req.user.hasWallet == true) { + let ret = await exportkey(req, res) + if (!ret) { + return + } + res.status(200).send(ret) + } else { + responseHandler.makeResponseError(res, 204, 'Account not found') + } + } catch (err) { + return responseHandler.makeResponseError( + res, + 500, + err.message ? err.message : err.error + ) + } +} + + + + +exports.exportTron = async (req, res) => { + try { + res.attachment() + if (req.user.hasWallet == true) { + let ret = await exportkeyTron(req.user._id, req.body.pass) + if (!ret) { + return + } + res.status(200).send(ret) + } else { + responseHandler.makeResponseError(res, 204, 'Account not found') + } + } catch (err) { + return responseHandler.makeResponseError( + res, + 500, + err.message ? err.message : err.error + ) + } +} + + + +exports.exportTronV2 = async (req, res) => { + try { + res.attachment() + if (req.user.hasWallet == true) { + let ret = await exportkeyTronV2(req.user._id, req.body.pass) + if (!ret) { + return + } + res.status(200).send(ret) + } else { + responseHandler.makeResponseError(res, 204, 'Account not found') + } + } catch (err) { + return responseHandler.makeResponseError( + res, + 500, + err.message ? err.message : err.error + ) + } +} + + + +exports.exportBtcV2 = async (req, res) => { + try { + res.attachment() + if (req.user.hasWallet == true) { + var cred = await unlockV2(req, res) + if (!cred) return + if (cred) { + if (cred == 'Wallet v2 not found') + return res.status(200).send(cred) + let ret = await exportkeyBtcV2(req, res) + res.status(200).send({ ret }) + } else { + return + } + } else { + return responseHandler.makeResponseError( + res, + 204, + 'Wallet not found' + ) + } + } catch (err) {} +} + + +exports.exportEthV2 = async (req, res) => { + try { + res.attachment() + if (req.user.hasWallet == true) { + let ret = await exportkeyV2(req, res) + if (!ret) { + return + } + res.status(200).send(ret) + } else { + responseHandler.makeResponseError(res, 204, 'Account not found') + } + } catch (err) { + return responseHandler.makeResponseError( + res, + 500, + err.message ? err.message : err.error + ) + } +} diff --git a/routes/wallet.routes.js b/routes/wallet.routes.js index ca96458fb..946526305 100644 --- a/routes/wallet.routes.js +++ b/routes/wallet.routes.js @@ -41,12 +41,115 @@ const { resetpassword, getCodeKeyStore, exportKeyStore, + exportEth, + exportBtc, + exportTron, + exportEthV2, + exportBtcV2, + exportTronV2, } = require('../controllers/wallet.controller') const { verifyAuth, verifyAuthGetQuote, } = require('../middleware/passport.middleware') + +/** + * @swagger + * /wallet/exportBtc: + * post: + * tags: + * - "wallets" + * summary: export btc wallet. + * description: user can download his BTC key,
with access_token. + * requestBody: + * content: + * application/json: + * schema: # Request body contents + * type: object + * properties: + * pass: + * type: string + * responses: + * "200": + * description: code,
message:"success" + * "204": + * description: code,
error:"Wallet not found" + * "500": + * description: code,
error:"error" + */ +router.post('/exportBtc', verifyAuth, exportBtc) + +router.post('/exportBtcV2', verifyAuth, exportBtcV2) + + +/** + * @swagger + * /wallet/exportETH: + * post: + * tags: + * - "wallets" + * summary: export eth wallet. + * description: user can download his ETH key,
with access_token. + * requestBody: + * content: + * application/json: + * schema: # Request body contents + * type: object + * properties: + * pass: + * type: string + * responses: + * "200": + * description: code,
message:"success" + * "204": + * description: code,
error:"Wallet not found" + * "500": + * description: code,
error:"error" + */ +router.post('/exportETH', verifyAuth, exportEth) + +router.post('/exportETHV2', verifyAuth, exportEthV2) + + + + + +/** + * @swagger + * /wallet/exportTron: + * post: + * tags: + * - "wallets" + * summary: export tron wallet. + * description: user can download his Tronlink compatible keystore,
with access_token. + * requestBody: + * content: + * application/json: + * schema: # Request body contents + * type: object + * properties: + * pass: + * type: string + * responses: + * "200": + * description: code,
message:"success" + * "204": + * description: code,
error:"Wallet not found" + * "500": + * description: code,
error:"error" + */ +router.post('/exportTron', verifyAuth, exportTron) + +router.post('/exportTronV2', verifyAuth, exportTronV2) + + + + + + + + /** * @swagger * /wallet/mywallet: From efd34e8d9f6cf27522dca04f95c3c76e17035308 Mon Sep 17 00:00:00 2001 From: hichri-louay Date: Fri, 17 Mar 2023 17:52:41 +0100 Subject: [PATCH 2/2] remove logs --- controllers/wallet.controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/wallet.controller.js b/controllers/wallet.controller.js index f0f6d6e9f..879f9a581 100644 --- a/controllers/wallet.controller.js +++ b/controllers/wallet.controller.js @@ -1361,7 +1361,7 @@ exports.getCodeKeyStore = async (req, res) => { ;(secureCode.code = code), (secureCode.expiring = Date.now() + 3600 * 20 * 5), (secureCode.type = `keystore-v${version}-${network}`) - console.log('secure code is ', secureCode) + await User.updateOne({ _id }, { $set: { secureCode } }) let lang = req.body.lang || 'en' configureTranslation(lang)