jcc_wallet 3.0.2 → 4.0.1

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 (96) hide show
  1. package/dist/jcc-wallet.min.js +24 -45
  2. package/lib/{constant/index.js → constant.js} +8 -8
  3. package/lib/constant.js.map +1 -0
  4. package/lib/hd/constant.js +4 -4
  5. package/lib/hd/constant.js.map +1 -1
  6. package/lib/hd/eos.plugin.js +36 -39
  7. package/lib/hd/eos.plugin.js.map +1 -1
  8. package/lib/hd/ethereum.plugin.d.ts +1 -0
  9. package/lib/hd/ethereum.plugin.js +86 -67
  10. package/lib/hd/ethereum.plugin.js.map +1 -1
  11. package/lib/hd/index.d.ts +1 -1
  12. package/lib/hd/index.js +167 -179
  13. package/lib/hd/index.js.map +1 -1
  14. package/lib/hd/plugins.d.ts +9 -0
  15. package/lib/hd/plugins.js +26 -22
  16. package/lib/hd/plugins.js.map +1 -1
  17. package/lib/hd/swtc.plugin.d.ts +1 -5
  18. package/lib/hd/swtc.plugin.js +74 -60
  19. package/lib/hd/swtc.plugin.js.map +1 -1
  20. package/lib/hd/tron.plugin.js +28 -33
  21. package/lib/hd/tron.plugin.js.map +1 -1
  22. package/lib/index.d.ts +3 -4
  23. package/lib/index.js +5 -8
  24. package/lib/index.js.map +1 -1
  25. package/lib/{jingchangWallet/index.d.ts → jingchangWallet.d.ts} +1 -1
  26. package/lib/jingchangWallet.js +531 -0
  27. package/lib/jingchangWallet.js.map +1 -0
  28. package/lib/minify-ethereumjs-util/account.d.ts +1 -0
  29. package/lib/minify-ethereumjs-util/account.js +22 -0
  30. package/lib/minify-ethereumjs-util/account.js.map +1 -0
  31. package/lib/minify-ethereumjs-util/bytes.d.ts +7 -0
  32. package/lib/minify-ethereumjs-util/bytes.js +100 -0
  33. package/lib/minify-ethereumjs-util/bytes.js.map +1 -0
  34. package/lib/minify-ethereumjs-util/constants.d.ts +4 -0
  35. package/lib/minify-ethereumjs-util/constants.js +9 -0
  36. package/lib/minify-ethereumjs-util/constants.js.map +1 -0
  37. package/lib/minify-ethereumjs-util/helper.d.ts +5 -0
  38. package/lib/minify-ethereumjs-util/helper.js +16 -0
  39. package/lib/minify-ethereumjs-util/helper.js.map +1 -0
  40. package/lib/minify-ethereumjs-util/internal.d.ts +8 -0
  41. package/lib/minify-ethereumjs-util/internal.js +33 -0
  42. package/lib/minify-ethereumjs-util/internal.js.map +1 -0
  43. package/lib/minify-ethereumjs-util/signature.d.ts +13 -0
  44. package/lib/minify-ethereumjs-util/signature.js +45 -0
  45. package/lib/minify-ethereumjs-util/signature.js.map +1 -0
  46. package/lib/minify-swtc-keypair/address-codec.d.ts +16 -0
  47. package/lib/minify-swtc-keypair/address-codec.js +166 -0
  48. package/lib/minify-swtc-keypair/address-codec.js.map +1 -0
  49. package/lib/minify-swtc-keypair/index.d.ts +25 -0
  50. package/lib/minify-swtc-keypair/index.js +178 -0
  51. package/lib/minify-swtc-keypair/index.js.map +1 -0
  52. package/lib/minify-swtc-keypair/sha512.d.ts +9 -0
  53. package/lib/minify-swtc-keypair/sha512.js +33 -0
  54. package/lib/minify-swtc-keypair/sha512.js.map +1 -0
  55. package/lib/minify-swtc-keypair/utils.d.ts +13 -0
  56. package/lib/minify-swtc-keypair/utils.js +63 -0
  57. package/lib/minify-swtc-keypair/utils.js.map +1 -0
  58. package/lib/minify-tron/address.d.ts +6 -0
  59. package/lib/minify-tron/address.js +11 -0
  60. package/lib/minify-tron/address.js.map +1 -0
  61. package/lib/minify-tron/base58.d.ts +2 -0
  62. package/lib/minify-tron/base58.js +67 -0
  63. package/lib/minify-tron/base58.js.map +1 -0
  64. package/lib/minify-tron/bytes.d.ts +2 -0
  65. package/lib/minify-tron/bytes.js +23 -0
  66. package/lib/minify-tron/bytes.js.map +1 -0
  67. package/lib/minify-tron/code.d.ts +3 -0
  68. package/lib/minify-tron/code.js +56 -0
  69. package/lib/minify-tron/code.js.map +1 -0
  70. package/lib/minify-tron/crypto.d.ts +7 -0
  71. package/lib/minify-tron/crypto.js +83 -0
  72. package/lib/minify-tron/crypto.js.map +1 -0
  73. package/lib/minify-tron/message.d.ts +4 -0
  74. package/lib/minify-tron/message.js +42 -0
  75. package/lib/minify-tron/message.js.map +1 -0
  76. package/lib/{types/index.d.ts → types.d.ts} +16 -3
  77. package/lib/types.js +16 -0
  78. package/lib/types.js.map +1 -0
  79. package/lib/util/index.js +40 -30
  80. package/lib/util/index.js.map +1 -1
  81. package/package.json +21 -16
  82. package/lib/constant/index.js.map +0 -1
  83. package/lib/eth/index.d.ts +0 -37
  84. package/lib/eth/index.js +0 -98
  85. package/lib/eth/index.js.map +0 -1
  86. package/lib/jingchangWallet/index.js +0 -713
  87. package/lib/jingchangWallet/index.js.map +0 -1
  88. package/lib/moac/index.d.ts +0 -29
  89. package/lib/moac/index.js +0 -58
  90. package/lib/moac/index.js.map +0 -1
  91. package/lib/types/index.js +0 -3
  92. package/lib/types/index.js.map +0 -1
  93. package/lib/x-wallet/index.d.ts +0 -22
  94. package/lib/x-wallet/index.js +0 -86
  95. package/lib/x-wallet/index.js.map +0 -1
  96. /package/lib/{constant/index.d.ts → constant.d.ts} +0 -0
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // forked from https://github.com/tronprotocol/tronweb/blob/5.x/src/utils/message.js
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TRON_MESSAGE_PREFIX = void 0;
5
+ exports.hashMessage = hashMessage;
6
+ exports.signMessage = signMessage;
7
+ exports.verifyMessage = verifyMessage;
8
+ const address_1 = require("./address");
9
+ const crypto_1 = require("./crypto");
10
+ const code_1 = require("./code");
11
+ const { keccak256, SigningKey, Signature } = require("ethers/crypto");
12
+ const { recoverAddress } = require("ethers/transaction");
13
+ const { toUtf8Bytes, concat } = require("ethers/utils");
14
+ const joinSignature = (splitSig) => Signature.from(splitSig).serialized;
15
+ exports.TRON_MESSAGE_PREFIX = "\x19TRON Signed Message:\n";
16
+ function hashMessage(message) {
17
+ if (typeof message === "string") {
18
+ message = toUtf8Bytes(message);
19
+ }
20
+ if (Array.isArray(message)) {
21
+ message = new Uint8Array(message);
22
+ }
23
+ return keccak256(concat([toUtf8Bytes(exports.TRON_MESSAGE_PREFIX), toUtf8Bytes(String(message.length)), message]));
24
+ }
25
+ function signMessage(message, privateKey) {
26
+ if (!privateKey.match(/^0x/)) {
27
+ privateKey = "0x" + privateKey;
28
+ }
29
+ const signingKey = new SigningKey(privateKey);
30
+ const messageDigest = hashMessage(message);
31
+ const signature = signingKey.sign(messageDigest);
32
+ return joinSignature(signature);
33
+ }
34
+ function verifyMessage(message, signature) {
35
+ if (!signature.match(/^0x/)) {
36
+ signature = "0x" + signature;
37
+ }
38
+ const recovered = recoverAddress(hashMessage(message), signature);
39
+ const base58Address = (0, crypto_1.getBase58CheckAddress)((0, code_1.hexStr2byteArray)(recovered.replace(/^0x/, address_1.ADDRESS_PREFIX)));
40
+ return base58Address;
41
+ }
42
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/minify-tron/message.ts"],"names":[],"mappings":";AAAA,oFAAoF;;;AAapF,kCAUC;AAED,kCAUC;AAED,sCAQC;AA3CD,uCAA2C;AAC3C,qCAAiD;AACjD,iCAA0C;AAC1C,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACtE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AACzD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAExD,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC;AAE3D,QAAA,mBAAmB,GAAG,4BAA4B,CAAC;AAEhE,SAAgB,WAAW,CAAC,OAAO;IACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,2BAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7G,CAAC;AAED,SAAgB,WAAW,CAAC,OAAO,EAAE,UAAU;IAC7C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,GAAG,IAAI,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEjD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,aAAa,CAAC,OAAO,EAAE,SAAS;IAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,IAAA,8BAAqB,EAAC,IAAA,uBAAgB,EAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAc,CAAC,CAAC,CAAC,CAAC;IAExG,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -39,7 +39,7 @@ export interface IWalletModel {
39
39
  secret: string;
40
40
  }
41
41
  export interface ICreateOptionsModel {
42
- algorithm?: "ed25519" | "ecdsa-secp256k1";
42
+ algorithm?: "ed25519" | "secp256k1";
43
43
  entropy?: Uint8Array;
44
44
  }
45
45
  export interface IEncryptModel {
@@ -85,6 +85,19 @@ export interface IHDPlugin {
85
85
  hash(message: string, ...args: any[]): string;
86
86
  sign(message: string, ...args: any[]): string;
87
87
  verify(messgae: string, signature: string, address: string, ...args: any[]): boolean;
88
- recover(message: string, signature: string, ...args: any[]): string;
89
- proxy(functionName: string, ...args: any[]): any;
88
+ recover(message: string, signature: string, ...args: any[]): string | void;
89
+ getAddress?(secret: string): string;
90
+ createWallet?(opts?: ICreateOptionsModel): IWalletModel;
91
+ proxy?(functionName: string, ...args: any[]): any;
92
+ }
93
+ export declare enum Alphabet {
94
+ JINGTUM = "jpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65rkm8oFqi1tuvAxyz",
95
+ SWT = "jpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65rkm8oFqi1tuvAxyz",
96
+ RIPPLE = "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz",
97
+ CALL = "cpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2brdeCg65jkm8oFqi1tuvAxyz",
98
+ STREAM = "vpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1turAxyz",
99
+ BVCADT = "bpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2rcdeCg65jkm8oFqi1tuvAxyz",
100
+ BIZAIN = "bpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2jcdeCg65rkm8oFqi1tuvAxyz",
101
+ XRP = "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz",
102
+ SWTC = "jpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65rkm8oFqi1tuvAxyz"
90
103
  }
package/lib/types.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Alphabet = void 0;
4
+ var Alphabet;
5
+ (function (Alphabet) {
6
+ Alphabet["JINGTUM"] = "jpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65rkm8oFqi1tuvAxyz";
7
+ Alphabet["SWT"] = "jpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65rkm8oFqi1tuvAxyz";
8
+ Alphabet["RIPPLE"] = "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz";
9
+ Alphabet["CALL"] = "cpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2brdeCg65jkm8oFqi1tuvAxyz";
10
+ Alphabet["STREAM"] = "vpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1turAxyz";
11
+ Alphabet["BVCADT"] = "bpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2rcdeCg65jkm8oFqi1tuvAxyz";
12
+ Alphabet["BIZAIN"] = "bpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2jcdeCg65rkm8oFqi1tuvAxyz";
13
+ Alphabet["XRP"] = "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz";
14
+ Alphabet["SWTC"] = "jpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65rkm8oFqi1tuvAxyz";
15
+ })(Alphabet || (exports.Alphabet = Alphabet = {}));
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAwGA,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,kFAAsE,CAAA;IACtE,8EAAkE,CAAA;IAClE,iFAAqE,CAAA;IACrE,+EAAmE,CAAA;IACnE,iFAAqE,CAAA;IACrE,iFAAqE,CAAA;IACrE,iFAAqE,CAAA;IACrE,8EAAkE,CAAA;IAClE,+EAAmE,CAAA;AACrE,CAAC,EAVW,QAAQ,wBAAR,QAAQ,QAUnB"}
package/lib/util/index.js CHANGED
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.encryptWallet = exports.encryptContact = exports.encrypt = exports.decrypt = void 0;
7
- var crypto_1 = __importDefault(require("crypto"));
8
- var jcc_common_1 = require("jcc_common");
9
- var keccak_1 = __importDefault(require("keccak"));
10
- var randombytes_1 = __importDefault(require("randombytes"));
11
- var scryptsy_1 = __importDefault(require("scryptsy"));
12
- var constant_1 = require("../constant");
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const jcc_common_1 = require("jcc_common");
9
+ const keccak_js_1 = require("ethereum-cryptography/keccak.js");
10
+ const randombytes_1 = __importDefault(require("randombytes"));
11
+ const scrypt_1 = require("@noble/hashes/scrypt");
12
+ const constant_1 = require("../constant");
13
13
  /**
14
14
  * decrypt wallet with password
15
15
  *
@@ -18,22 +18,28 @@ var constant_1 = require("../constant");
18
18
  * @returns {(string)} return secret if success, otherwise throws `keystore is invalid` if the keystore is invalid or
19
19
  * throws `password is wrong` if the password is wrong
20
20
  */
21
- var decrypt = function (password, encryptData) {
21
+ const decrypt = (password, encryptData) => {
22
22
  if ((0, jcc_common_1.isEmptyObject)(encryptData) || (0, jcc_common_1.isEmptyObject)(encryptData.crypto) || (0, jcc_common_1.isEmptyObject)(encryptData.crypto.kdfparams)) {
23
23
  throw new Error(constant_1.KEYSTORE_IS_INVALID);
24
24
  }
25
- var iv = Buffer.from(encryptData.crypto.iv, "hex");
26
- var kdfparams = encryptData.crypto.kdfparams;
27
- var derivedKey = (0, scryptsy_1.default)(Buffer.from(password), Buffer.from(kdfparams.salt, "hex"), kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen);
28
- var ciphertext = Buffer.from(encryptData.ciphertext, "hex");
29
- var mac = (0, keccak_1.default)("keccak256")
25
+ const iv = Buffer.from(encryptData.crypto.iv, "hex");
26
+ const kdfparams = encryptData.crypto.kdfparams;
27
+ const derivedKey = (0, scrypt_1.scrypt)(Buffer.from(password), Buffer.from(kdfparams.salt, "hex"), {
28
+ N: kdfparams.n,
29
+ r: kdfparams.r,
30
+ p: kdfparams.p,
31
+ dkLen: kdfparams.dklen
32
+ });
33
+ const ciphertext = Buffer.from(encryptData.ciphertext, "hex");
34
+ const mac = keccak_js_1.keccak256
35
+ .create()
30
36
  .update(Buffer.concat([derivedKey.slice(16, 32), ciphertext]))
31
37
  .digest();
32
- if (mac.toString("hex") !== encryptData.mac) {
38
+ if (Buffer.from(mac).toString("hex") !== encryptData.mac) {
33
39
  throw new Error(constant_1.PASSWORD_IS_WRONG);
34
40
  }
35
- var decipher = crypto_1.default.createDecipheriv("aes-128-ctr", derivedKey.slice(0, 16), iv);
36
- var seed = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
41
+ const decipher = crypto_1.default.createDecipheriv("aes-128-ctr", derivedKey.slice(0, 16), iv);
42
+ const seed = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
37
43
  return seed.toString();
38
44
  };
39
45
  exports.decrypt = decrypt;
@@ -45,41 +51,45 @@ exports.decrypt = decrypt;
45
51
  * @param {IEncryptModel} [opts={}]
46
52
  * @returns {IKeystoreModel}
47
53
  */
48
- var encrypt = function (password, data, opts) {
49
- var iv = opts.iv || (0, randombytes_1.default)(16).toString("hex");
50
- var kdfparams = {
54
+ const encrypt = (password, data, opts) => {
55
+ const iv = opts.iv || (0, randombytes_1.default)(16).toString("hex");
56
+ const kdfparams = {
51
57
  dklen: opts.dklen || 32,
52
58
  n: opts.n || 4096,
53
59
  p: opts.p || 1,
54
60
  r: opts.r || 8,
55
61
  salt: opts.salt || (0, randombytes_1.default)(32).toString("hex")
56
62
  };
57
- var derivedKey = (0, scryptsy_1.default)(Buffer.from(password), Buffer.from(kdfparams.salt, "hex"), kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen);
58
- var cipher = crypto_1.default.createCipheriv(opts.cipher || "aes-128-ctr", derivedKey.slice(0, 16), Buffer.from(iv, "hex"));
59
- var ciphertext = Buffer.concat([cipher.update(Buffer.from(data)), cipher.final()]);
60
- var mac = (0, keccak_1.default)("keccak256")
63
+ const derivedKey = (0, scrypt_1.scrypt)(Buffer.from(password), Buffer.from(kdfparams.salt, "hex"), {
64
+ N: kdfparams.n,
65
+ r: kdfparams.r,
66
+ p: kdfparams.p,
67
+ dkLen: kdfparams.dklen
68
+ });
69
+ const cipher = crypto_1.default.createCipheriv(opts.cipher || "aes-128-ctr", derivedKey.slice(0, 16), Buffer.from(iv, "hex"));
70
+ const ciphertext = Buffer.concat([cipher.update(Buffer.from(data)), cipher.final()]);
71
+ const mac = keccak_js_1.keccak256
72
+ .create()
61
73
  .update(Buffer.concat([derivedKey.slice(16, 32), ciphertext]))
62
74
  .digest();
63
75
  return {
64
76
  ciphertext: ciphertext.toString("hex"),
65
77
  crypto: {
66
78
  cipher: opts.cipher || "aes-128-ctr",
67
- iv: iv,
79
+ iv,
68
80
  kdf: "scrypt",
69
- kdfparams: kdfparams
81
+ kdfparams
70
82
  },
71
- mac: mac.toString("hex")
83
+ mac: Buffer.from(mac).toString("hex")
72
84
  };
73
85
  };
74
86
  exports.encrypt = encrypt;
75
- var encryptContact = function (password, contacts, opts) {
76
- if (opts === void 0) { opts = {}; }
87
+ const encryptContact = (password, contacts, opts = {}) => {
77
88
  return encrypt(password, JSON.stringify(contacts), opts);
78
89
  };
79
90
  exports.encryptContact = encryptContact;
80
- var encryptWallet = function (password, keypairs, opts) {
81
- if (opts === void 0) { opts = {}; }
82
- var data = encrypt(password, keypairs.secret, opts);
91
+ const encryptWallet = (password, keypairs, opts = {}) => {
92
+ const data = encrypt(password, keypairs.secret, opts);
83
93
  data.type = keypairs.type || "swt";
84
94
  data.address = keypairs.address;
85
95
  data.default = typeof keypairs.default === "boolean" ? keypairs.default : true;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,2CAA2C;AAC3C,+DAA4D;AAE5D,8DAAsC;AACtC,iDAA8C;AAC9C,0CAAqE;AAGrE;;;;;;;GAOG;AACH,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,WAA2B,EAAU,EAAE;IACxE,IAAI,IAAA,0BAAa,EAAC,WAAW,CAAC,IAAI,IAAA,0BAAa,EAAC,WAAW,CAAC,MAAM,CAAC,IAAI,IAAA,0BAAa,EAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACnH,MAAM,IAAI,KAAK,CAAC,8BAAmB,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;QACnF,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,KAAK,EAAE,SAAS,CAAC,KAAK;KACvB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,qBAAS;SAClB,MAAM,EAAE;SACR,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;SAC7D,MAAM,EAAE,CAAC;IACZ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,4BAAiB,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,QAAQ,GAAG,gBAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC,CAAC;AAwDO,0BAAO;AAtDhB;;;;;;;GAOG;AACH,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAmB,EAAkB,EAAE;IACtF,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAA,qBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI;QACjB,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;QACd,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAA,qBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KACnD,CAAC;IACF,MAAM,UAAU,GAAG,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;QACnF,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,KAAK,EAAE,SAAS,CAAC,KAAK;KACvB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACpH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrF,MAAM,GAAG,GAAG,qBAAS;SAClB,MAAM,EAAE;SACR,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;SAC7D,MAAM,EAAE,CAAC;IACZ,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtC,MAAM,EAAE;YACN,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,aAAa;YACpC,EAAE;YACF,GAAG,EAAE,QAAQ;YACb,SAAS;SACV;QACD,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KACtC,CAAC;AACJ,CAAC,CAAC;AAegB,0BAAO;AAbzB,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,QAAa,EAAE,OAAsB,EAAE,EAAkB,EAAE;IACnG,OAAO,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC,CAAC;AAWyB,wCAAc;AATzC,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,QAAwB,EAAE,OAAsB,EAAE,EAAkB,EAAE;IAC7G,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC;IACnC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEyC,sCAAa"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jcc_wallet",
3
- "version": "3.0.2",
3
+ "version": "4.0.1",
4
4
  "description": "Toolkit of wallet to manage multiple chains & support multiple keystores for each chain",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -19,7 +19,8 @@
19
19
  "test:browser": "npm run build && karma start karma.conf.js",
20
20
  "eslint": "./node_modules/.bin/eslint src",
21
21
  "compile": "./compile.sh",
22
- "pretty": "pretty-quick --staged"
22
+ "pretty": "pretty-quick --staged",
23
+ "analyzer": "cross-env REPORT=true webpack"
23
24
  },
24
25
  "repository": {
25
26
  "type": "git",
@@ -50,17 +51,18 @@
50
51
  "@babel/preset-env": "^7.23.2",
51
52
  "@babel/preset-typescript": "^7.22.15",
52
53
  "@types/eslint": "^8",
53
- "@typescript-eslint/eslint-plugin": "^6.11.0",
54
- "@typescript-eslint/parser": "^6.11.0",
54
+ "@typescript-eslint/eslint-plugin": "^7.12.0",
55
+ "@typescript-eslint/parser": "^7.12.0",
55
56
  "babel-loader": "^8.3.0",
56
57
  "browserify": "^16.5.0",
57
58
  "chai": "^4.2.0",
58
59
  "coveralls": "^3.1.1",
59
60
  "cross-env": "^7.0.0",
60
61
  "duplicate-package-checker-webpack-plugin": "^3.0.0",
61
- "eslint": "^8.54.0",
62
+ "eslint": "^9.4.0",
62
63
  "eslint-plugin-jsdoc": "^46.9.0",
63
64
  "eslint-plugin-prefer-arrow": "^1.2.3",
65
+ "globals": "^15.8.0",
64
66
  "husky": "^7.0.4",
65
67
  "jsdom": "^22.1.0",
66
68
  "karma": "^6.4.2",
@@ -78,32 +80,35 @@
78
80
  "sinon": "^17.0.1",
79
81
  "ts-loader": "^6.2.1",
80
82
  "typescript": "^5.2.2",
83
+ "typescript-eslint": "^7.16.0",
81
84
  "webpack": "^5.89.0",
82
85
  "webpack-bundle-analyzer": "^4.10.1",
83
86
  "webpack-cli": "^5.1.4"
84
87
  },
88
+ "resolutions": {
89
+ "@noble/curves": "^1.4.2",
90
+ "@noble/hashes": "^1.4.0",
91
+ "randombytes": "^2.1.0",
92
+ "create-hmac": "^1.1.7",
93
+ "create-hash": "^1.2.0",
94
+ "browserify-aes": "^1.2.0",
95
+ "elliptic": "^6.5.5",
96
+ "buffer": "^6.0.3"
97
+ },
85
98
  "dependencies": {
86
- "@ethereumjs/util": "^9.0.0",
87
- "@ethereumjs/wallet": "^2.0.0",
88
- "@swtc/wallet": "^1.1.1",
99
+ "@scure/bip32": "^1.4.0",
89
100
  "@types/node": "^16.11.6",
90
- "bip32": "^4.0.0",
91
101
  "bip39": "^3.0.4",
92
102
  "bip44-constants": "^123.0.0",
93
103
  "bn.js": "^5.2.1",
94
104
  "clone-deep": "^4.0.1",
95
105
  "eccrypto": "^1.1.6",
96
- "elliptic": "^6.5.4",
97
- "eosjs": "^22.1.0",
98
106
  "eosjs-ecc": "^4.0.1",
107
+ "ethereum-cryptography": "^2.2.1",
108
+ "ethers": "^6.13.1",
99
109
  "jcc_common": "^0.1.0",
100
- "keccak": "^3.0.3",
101
110
  "lockr": "^0.8.5",
102
111
  "node-polyfill-webpack-plugin": "^2.0.1",
103
- "scryptsy": "^2.1.0",
104
- "secp256k1": "^5.0.0",
105
- "tiny-secp256k1": "^1.1.6",
106
- "tronweb": "^5.3.1",
107
112
  "wif": "^4.0.0"
108
113
  },
109
114
  "nyc": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constant/index.ts"],"names":[],"mappings":";;;AAAA,IAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAYlD,oDAAoB;AAXtB,IAAM,eAAe,GAAG,iBAAiB,CAAC;AAcxC,0CAAe;AAbjB,IAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAW5C,8CAAiB;AAVnB,IAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAQhD,kDAAmB;AAPrB,IAAM,qBAAqB,GAAG,mBAAY,iBAAiB,CAAE,CAAC;AAM5D,sDAAqB;AALvB,IAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAS5C,8CAAiB;AARnB,IAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAGhD,kDAAmB"}
@@ -1,37 +0,0 @@
1
- import { IWalletModel } from "../types";
2
- /**
3
- * check eth secret is valid or not
4
- *
5
- * @param {string} secret
6
- * @returns {boolean} return true if valid
7
- */
8
- declare const isValidSecret: (secret: string) => boolean;
9
- /**
10
- * check eth address is valid or not
11
- *
12
- * @param {string} address
13
- * @returns {boolean} return true if valid
14
- */
15
- declare const isValidAddress: (address: string) => boolean;
16
- /**
17
- * get eth address with secret
18
- * @param {string} secret
19
- * @returns {string | null} return address if valid, otherwise return null
20
- */
21
- declare const getAddress: (secret: string) => string | null;
22
- /**
23
- * decrypt ethereum keystore file with ethereum password
24
- *
25
- * @param {string} password
26
- * @param {*} encryptData
27
- * @returns {string} return secret if success, otherwise throws `keystore is invalid` if the keystore is invalid or
28
- * throws `ethereum password is wrong` if the password is wrong
29
- */
30
- declare const decryptKeystore: (password: string, encryptData: any) => string;
31
- /**
32
- * create eth wallet
33
- *
34
- * @returns {IWalletModel}
35
- */
36
- declare const createWallet: () => IWalletModel;
37
- export { isValidSecret, isValidAddress, getAddress, decryptKeystore, createWallet };
package/lib/eth/index.js DELETED
@@ -1,98 +0,0 @@
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.createWallet = exports.decryptKeystore = exports.getAddress = exports.isValidAddress = exports.isValidSecret = void 0;
7
- var crypto_1 = __importDefault(require("crypto"));
8
- var util_1 = require("@ethereumjs/util");
9
- var wallet_1 = require("@ethereumjs/wallet");
10
- var jcc_common_1 = require("jcc_common");
11
- var keccak_1 = __importDefault(require("keccak"));
12
- var scryptsy_1 = __importDefault(require("scryptsy"));
13
- var constant_1 = require("../constant");
14
- var isObject = function (obj) {
15
- return Object.prototype.toString.call(obj) === "[object Object]";
16
- };
17
- /**
18
- * check eth secret is valid or not
19
- *
20
- * @param {string} secret
21
- * @returns {boolean} return true if valid
22
- */
23
- var isValidSecret = function (secret) {
24
- secret = (0, jcc_common_1.filterOx)(secret);
25
- try {
26
- return (0, util_1.isValidPrivate)(Buffer.from(secret, "hex"));
27
- }
28
- catch (error) {
29
- return false;
30
- }
31
- };
32
- exports.isValidSecret = isValidSecret;
33
- /**
34
- * check eth address is valid or not
35
- *
36
- * @param {string} address
37
- * @returns {boolean} return true if valid
38
- */
39
- var isValidAddress = function (address) {
40
- return (0, util_1.isValidAddress)(address);
41
- };
42
- exports.isValidAddress = isValidAddress;
43
- /**
44
- * get eth address with secret
45
- * @param {string} secret
46
- * @returns {string | null} return address if valid, otherwise return null
47
- */
48
- var getAddress = function (secret) {
49
- secret = (0, jcc_common_1.filterOx)(secret);
50
- if (!isValidSecret(secret)) {
51
- return null;
52
- }
53
- var wallet = wallet_1.Wallet.fromPrivateKey(Buffer.from(secret, "hex"));
54
- return wallet.getAddressString();
55
- };
56
- exports.getAddress = getAddress;
57
- /**
58
- * decrypt ethereum keystore file with ethereum password
59
- *
60
- * @param {string} password
61
- * @param {*} encryptData
62
- * @returns {string} return secret if success, otherwise throws `keystore is invalid` if the keystore is invalid or
63
- * throws `ethereum password is wrong` if the password is wrong
64
- */
65
- var decryptKeystore = function (password, encryptData) {
66
- if (!isObject(encryptData)) {
67
- throw new Error(constant_1.KEYSTORE_IS_INVALID);
68
- }
69
- var cryptoData = encryptData.Crypto || encryptData.crypto;
70
- if ((0, jcc_common_1.isEmptyObject)(cryptoData) || (0, jcc_common_1.isEmptyObject)(cryptoData.cipherparams) || (0, jcc_common_1.isEmptyObject)(cryptoData.kdfparams)) {
71
- throw new Error(constant_1.KEYSTORE_IS_INVALID);
72
- }
73
- var iv = Buffer.from(cryptoData.cipherparams.iv, "hex");
74
- var kdfparams = cryptoData.kdfparams;
75
- var derivedKey = (0, scryptsy_1.default)(Buffer.from(password), Buffer.from(kdfparams.salt, "hex"), kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen);
76
- var ciphertext = Buffer.from(cryptoData.ciphertext, "hex");
77
- var mac = (0, keccak_1.default)("keccak256")
78
- .update(Buffer.concat([derivedKey.slice(16, 32), ciphertext]))
79
- .digest();
80
- if (mac.toString("hex") !== cryptoData.mac) {
81
- throw new Error(constant_1.ETH_PASSWORD_IS_WRONG);
82
- }
83
- var decipher = crypto_1.default.createDecipheriv("aes-128-ctr", derivedKey.slice(0, 16), iv);
84
- var seed = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
85
- return seed.toString("hex");
86
- };
87
- exports.decryptKeystore = decryptKeystore;
88
- /**
89
- * create eth wallet
90
- *
91
- * @returns {IWalletModel}
92
- */
93
- var createWallet = function () {
94
- var _w = wallet_1.Wallet.generate();
95
- return { address: _w.getAddressString(), secret: _w.getPrivateKeyString() };
96
- };
97
- exports.createWallet = createWallet;
98
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"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"}