utils.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. 'use strict'
  2. var CryptoJS = require("crypto-js");
  3. require('dotenv').config()
  4. const logger = require('./logger')
  5. function toJson(code_, obj_, errMsg_) {
  6. var code = code_
  7. var data = obj_
  8. var errMsg = errMsg_
  9. let jopt = { code, data, errMsg };
  10. return JSON.stringify(jopt)
  11. }
  12. /**
  13. *
  14. * @param {*} crypt_key 密文
  15. * @param {*} message 待解密的内容 U2FsdGVkX18zHfDE3lO2yVxk2lMCEiwjrzYo1ZbHqfriFapZWXqLhczs9J0cN9EnvQR64GLRzYDgzMuAr9U1C0LZjA5mV4cSAZeBOrY8KNY09+BhTDetb2/43bIwiFR6
  16. */
  17. function decryptPrivityKey(message) {
  18. // var encrypted = 'Zc4v3uJgPY+BVg/IrDLA4aIk9ko/UrgjAtBTLqymdMAvmqdp1GttRjkBgNNNTyxA+3ThbIGlM0INeeHGicYVbLea4ymkty8gd30rZXQ4yYQ='; //python is base64 ECB
  19. // var key = '0IPmaec1o9FQCqGN'//key used in Python
  20. // var iv = 'Zh4A7bOY2ksp9oIn'
  21. var encrypted = message; //python is base64 ECB
  22. var key = process.env.DENET_CRYPT_KEY //key used in Python
  23. var iv = process.env.DENET_CRYPT_IV
  24. if(!key || !iv)
  25. {
  26. logger.error('decryptPrivityKey key or iv is empty?');
  27. return null;
  28. }
  29. logger.log('encrypted=', encrypted);
  30. // logger.log('decryptPrivityKey key= iv=', key, iv);
  31. key = CryptoJS.enc.Utf8.parse(key);
  32. // var decrypted = CryptoJS.AES.decrypt(encrypted, key, {mode:CryptoJS.mode.ECB});
  33. iv = CryptoJS.enc.Utf8.parse(iv)
  34. var decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv: iv, mode: CryptoJS.mode.CBC });
  35. var de_pk = decrypted.toString(CryptoJS.enc.Utf8);
  36. // logger.log('decrypted==', de_pk);
  37. return de_pk
  38. }
  39. const CHAIN_NAME = {
  40. eth: 'eth',
  41. bsc_testnet: 'bsc testnet',
  42. bsc_mainnet: 'bsc'
  43. }
  44. const CHAIN_ID = {
  45. eth: '0x1',
  46. bsc_testnet: '0x61',
  47. bsc_mainnet: '0x38'
  48. }
  49. function getChainName(key) {
  50. return CHAIN_NAME[key];
  51. }
  52. function getChainId(key) {
  53. return CHAIN_ID[key];
  54. }
  55. function sleep (time) {
  56. return new Promise((resolve) => setTimeout(resolve, time));
  57. }
  58. module.exports = {
  59. toJson,
  60. decryptPrivityKey,
  61. getChainName,
  62. getChainId,
  63. CHAIN_NAME,
  64. CHAIN_ID,
  65. sleep,
  66. }