jcc_wallet 3.0.0 → 3.0.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 (47) hide show
  1. package/dist/jcc-wallet.min.js +78 -0
  2. package/lib/constant/index.d.ts +8 -0
  3. package/lib/constant/index.js +18 -0
  4. package/lib/constant/index.js.map +1 -0
  5. package/lib/eth/index.d.ts +37 -0
  6. package/lib/eth/index.js +98 -0
  7. package/lib/eth/index.js.map +1 -0
  8. package/lib/hd/constant.d.ts +26 -0
  9. package/lib/hd/constant.js +56 -0
  10. package/lib/hd/constant.js.map +1 -0
  11. package/lib/hd/eos.plugin.d.ts +5 -0
  12. package/lib/hd/eos.plugin.js +73 -0
  13. package/lib/hd/eos.plugin.js.map +1 -0
  14. package/lib/hd/ethereum.plugin.d.ts +5 -0
  15. package/lib/hd/ethereum.plugin.js +101 -0
  16. package/lib/hd/ethereum.plugin.js.map +1 -0
  17. package/lib/hd/index.d.ts +228 -0
  18. package/lib/hd/index.js +394 -0
  19. package/lib/hd/index.js.map +1 -0
  20. package/lib/hd/plugins.d.ts +2 -0
  21. package/lib/hd/plugins.js +35 -0
  22. package/lib/hd/plugins.js.map +1 -0
  23. package/lib/hd/swtc.plugin.d.ts +6 -0
  24. package/lib/hd/swtc.plugin.js +72 -0
  25. package/lib/hd/swtc.plugin.js.map +1 -0
  26. package/lib/hd/tron.plugin.d.ts +5 -0
  27. package/lib/hd/tron.plugin.js +67 -0
  28. package/lib/hd/tron.plugin.js.map +1 -0
  29. package/lib/index.d.ts +26 -0
  30. package/lib/index.js +62 -0
  31. package/lib/index.js.map +1 -0
  32. package/lib/jingchangWallet/index.d.ts +273 -0
  33. package/lib/jingchangWallet/index.js +713 -0
  34. package/lib/jingchangWallet/index.js.map +1 -0
  35. package/lib/moac/index.d.ts +29 -0
  36. package/lib/moac/index.js +58 -0
  37. package/lib/moac/index.js.map +1 -0
  38. package/lib/types/index.d.ts +90 -0
  39. package/lib/types/index.js +3 -0
  40. package/lib/types/index.js.map +1 -0
  41. package/lib/util/index.d.ts +22 -0
  42. package/lib/util/index.js +90 -0
  43. package/lib/util/index.js.map +1 -0
  44. package/lib/x-wallet/index.d.ts +22 -0
  45. package/lib/x-wallet/index.js +86 -0
  46. package/lib/x-wallet/index.js.map +1 -0
  47. package/package.json +2 -2
@@ -0,0 +1,8 @@
1
+ declare const PASSWORD_IS_REQUIRED = "password is required";
2
+ declare const WALLET_IS_EMPTY = "wallet is empty";
3
+ declare const PASSWORD_IS_WRONG = "password is wrong";
4
+ declare const KEYSTORE_IS_INVALID = "keystore is invalid";
5
+ declare const ETH_PASSWORD_IS_WRONG = "ethereum password is wrong";
6
+ declare const SECRET_IS_INVALID = "secret is invalid";
7
+ declare const ADDRESS_IS_EXISTENT = "address is existent";
8
+ export { ADDRESS_IS_EXISTENT, ETH_PASSWORD_IS_WRONG, KEYSTORE_IS_INVALID, PASSWORD_IS_REQUIRED, PASSWORD_IS_WRONG, SECRET_IS_INVALID, WALLET_IS_EMPTY };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WALLET_IS_EMPTY = exports.SECRET_IS_INVALID = exports.PASSWORD_IS_WRONG = exports.PASSWORD_IS_REQUIRED = exports.KEYSTORE_IS_INVALID = exports.ETH_PASSWORD_IS_WRONG = exports.ADDRESS_IS_EXISTENT = void 0;
4
+ var PASSWORD_IS_REQUIRED = "password is required";
5
+ exports.PASSWORD_IS_REQUIRED = PASSWORD_IS_REQUIRED;
6
+ var WALLET_IS_EMPTY = "wallet is empty";
7
+ exports.WALLET_IS_EMPTY = WALLET_IS_EMPTY;
8
+ var PASSWORD_IS_WRONG = "password is wrong";
9
+ exports.PASSWORD_IS_WRONG = PASSWORD_IS_WRONG;
10
+ var KEYSTORE_IS_INVALID = "keystore is invalid";
11
+ exports.KEYSTORE_IS_INVALID = KEYSTORE_IS_INVALID;
12
+ var ETH_PASSWORD_IS_WRONG = "ethereum ".concat(PASSWORD_IS_WRONG);
13
+ exports.ETH_PASSWORD_IS_WRONG = ETH_PASSWORD_IS_WRONG;
14
+ var SECRET_IS_INVALID = "secret is invalid";
15
+ exports.SECRET_IS_INVALID = SECRET_IS_INVALID;
16
+ var ADDRESS_IS_EXISTENT = "address is existent";
17
+ exports.ADDRESS_IS_EXISTENT = ADDRESS_IS_EXISTENT;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,37 @@
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 };
@@ -0,0 +1,98 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ declare enum BIP44Chain {
2
+ BITCOIN = 2147483648,
3
+ BSC = 2147492654,
4
+ EOS = 2147483842,
5
+ TRON = 2147483843,
6
+ ETC = 2147483709,
7
+ ETH = 2147483708,
8
+ HECO = 2147484658,
9
+ MOAC = 2147483962,
10
+ POLYGON = 2147484614,
11
+ RIPPLE = 2147483792,
12
+ SWTC = 2147483963,
13
+ CALL = 2147484281,
14
+ BVCADT = 2399141888,
15
+ STREAM = 2399141889,
16
+ BIZAIN = 2399141890
17
+ }
18
+ /**
19
+ * get bip44 chain constant
20
+ *
21
+ * @param {number} chain chain index number
22
+ * @returns {number} bip44 chain constant
23
+ */
24
+ declare const getBIP44Chain: (chain: number) => any;
25
+ declare const BIP44ChainMap: Map<BIP44Chain, string>;
26
+ export { BIP44Chain, BIP44ChainMap, getBIP44Chain };
@@ -0,0 +1,56 @@
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.getBIP44Chain = exports.BIP44ChainMap = exports.BIP44Chain = void 0;
7
+ var bip44_constants_1 = __importDefault(require("bip44-constants"));
8
+ // BIP44 链常量定义
9
+ var BIP44Chain;
10
+ (function (BIP44Chain) {
11
+ BIP44Chain[BIP44Chain["BITCOIN"] = 2147483648] = "BITCOIN";
12
+ BIP44Chain[BIP44Chain["BSC"] = 2147492654] = "BSC";
13
+ BIP44Chain[BIP44Chain["EOS"] = 2147483842] = "EOS";
14
+ BIP44Chain[BIP44Chain["TRON"] = 2147483843] = "TRON";
15
+ BIP44Chain[BIP44Chain["ETC"] = 2147483709] = "ETC";
16
+ BIP44Chain[BIP44Chain["ETH"] = 2147483708] = "ETH";
17
+ BIP44Chain[BIP44Chain["HECO"] = 2147484658] = "HECO";
18
+ BIP44Chain[BIP44Chain["MOAC"] = 2147483962] = "MOAC";
19
+ BIP44Chain[BIP44Chain["POLYGON"] = 2147484614] = "POLYGON";
20
+ BIP44Chain[BIP44Chain["RIPPLE"] = 2147483792] = "RIPPLE";
21
+ BIP44Chain[BIP44Chain["SWTC"] = 2147483963] = "SWTC";
22
+ BIP44Chain[BIP44Chain["CALL"] = 2147484281] = "CALL";
23
+ // not register in bip44, customize setting range: 0x8f000000-0x8fffffff
24
+ BIP44Chain[BIP44Chain["BVCADT"] = 2399141888] = "BVCADT";
25
+ BIP44Chain[BIP44Chain["STREAM"] = 2399141889] = "STREAM";
26
+ BIP44Chain[BIP44Chain["BIZAIN"] = 2399141890] = "BIZAIN";
27
+ })(BIP44Chain || (exports.BIP44Chain = BIP44Chain = {}));
28
+ /**
29
+ * get bip44 chain constant
30
+ *
31
+ * @param {number} chain chain index number
32
+ * @returns {number} bip44 chain constant
33
+ */
34
+ var getBIP44Chain = function (chain) {
35
+ return bip44_constants_1.default.filter(function (e) { return e[0] === chain; });
36
+ };
37
+ exports.getBIP44Chain = getBIP44Chain;
38
+ var BIP44ChainMap = new Map([
39
+ [BIP44Chain.BITCOIN, "bitcoin"],
40
+ [BIP44Chain.BSC, "bsc"],
41
+ [BIP44Chain.EOS, "eos"],
42
+ [BIP44Chain.TRON, "tron"],
43
+ [BIP44Chain.ETC, "etc"],
44
+ [BIP44Chain.ETH, "ethereum"],
45
+ [BIP44Chain.HECO, "heco"],
46
+ [BIP44Chain.MOAC, "moac"],
47
+ [BIP44Chain.POLYGON, "polygon"],
48
+ [BIP44Chain.RIPPLE, "ripple"],
49
+ [BIP44Chain.SWTC, "jingtum"],
50
+ [BIP44Chain.CALL, "call"],
51
+ [BIP44Chain.BVCADT, "bvcadt"],
52
+ [BIP44Chain.STREAM, "stream"],
53
+ [BIP44Chain.BIZAIN, "bizain"]
54
+ ]);
55
+ exports.BIP44ChainMap = BIP44ChainMap;
56
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/hd/constant.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAwC;AAExC,cAAc;AACd,IAAK,UAkBJ;AAlBD,WAAK,UAAU;IACb,0DAAoB,CAAA;IACpB,kDAAgB,CAAA;IAChB,kDAAgB,CAAA;IAChB,oDAAiB,CAAA;IACjB,kDAAgB,CAAA;IAChB,kDAAgB,CAAA;IAChB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IACjB,0DAAoB,CAAA;IACpB,wDAAmB,CAAA;IACnB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IAEjB,wEAAwE;IACxE,wDAAmB,CAAA;IACnB,wDAAmB,CAAA;IACnB,wDAAmB,CAAA;AACrB,CAAC,EAlBI,UAAU,0BAAV,UAAU,QAkBd;AAED;;;;;GAKG;AACH,IAAM,aAAa,GAAG,UAAC,KAAa;IAClC,OAAO,yBAAS,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAd,CAAc,CAAC,CAAC;AACjD,CAAC,CAAC;AAoBkC,sCAAa;AAlBjD,IAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/B,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC;IAC5B,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;IAC5B,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC9B,CAAC,CAAC;AAEkB,sCAAa"}
@@ -0,0 +1,5 @@
1
+ import { IHDPlugin } from "../types";
2
+ export interface IEosPlugin extends IHDPlugin {
3
+ checkPrivateKey(privateKey: string): string;
4
+ }
5
+ export declare const plugin: IEosPlugin;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plugin = void 0;
4
+ var EosJs = require("eosjs");
5
+ var ecc = require("eosjs-ecc");
6
+ var wif = require("wif");
7
+ var secp256k1 = require("secp256k1");
8
+ var jcc_common_1 = require("jcc_common");
9
+ exports.plugin = {
10
+ checkPrivateKey: function (privateKey) {
11
+ // check and cut swtc keypair lib add prefix 00
12
+ return privateKey.length === 66 ? privateKey.substring(2) : privateKey;
13
+ },
14
+ address: function (key) {
15
+ if (key.privateKey) {
16
+ var privateKey = this.checkPrivateKey(key.privateKey);
17
+ var buffer = Buffer.from(privateKey, "hex");
18
+ // const eosPrivateKey = wif.encode(128, buffer, false)
19
+ // TODO: secp256k1 version confict fixed, but need refactor later
20
+ var rawPublicKey = Buffer.from(secp256k1.publicKeyCreate(buffer, true));
21
+ var eosPublicKey = ecc.PublicKey(rawPublicKey).toString();
22
+ return eosPublicKey;
23
+ }
24
+ if (key.publicKey) {
25
+ var rawPublicKey = Buffer.from(key.publicKey, "hex");
26
+ var eosPublicKey = ecc.PublicKey(rawPublicKey).toString();
27
+ return eosPublicKey;
28
+ }
29
+ return null;
30
+ },
31
+ isValidAddress: function (address) {
32
+ return ecc.isValidPublic(address);
33
+ },
34
+ isValidSecret: function (secret) {
35
+ try {
36
+ var privateKey = this.checkPrivateKey((0, jcc_common_1.filterOx)(secret));
37
+ var buffer = Buffer.from(privateKey, "hex");
38
+ var eosPrivateKey = wif.encode(128, buffer, false);
39
+ return ecc.isValidPrivate(eosPrivateKey);
40
+ }
41
+ catch (error) {
42
+ return false;
43
+ }
44
+ },
45
+ hash: function (message) {
46
+ return ecc.sha256(message);
47
+ },
48
+ /**
49
+ *
50
+ * @param message message content, let message is "\x19Ethereum Signed Message:\n" + message.length + message, match web3.accounts.sign function
51
+ * @param privateKey private key
52
+ * @returns signature string
53
+ */
54
+ sign: function (message, privateKey) {
55
+ var buffer = Buffer.from(this.checkPrivateKey((0, jcc_common_1.filterOx)(privateKey)), "hex");
56
+ var eosPrivateKey = wif.encode(128, buffer, false);
57
+ return ecc.sign(message, eosPrivateKey, "utf8");
58
+ },
59
+ verify: function (message, signature, address) {
60
+ return this.recover(message, signature) === address;
61
+ },
62
+ recover: function (message, signature) {
63
+ return ecc.recover(signature, message, "utf8");
64
+ },
65
+ proxy: function (functionName) {
66
+ var args = [];
67
+ for (var _i = 1; _i < arguments.length; _i++) {
68
+ args[_i - 1] = arguments[_i];
69
+ }
70
+ return EosJs[functionName].apply(EosJs, args);
71
+ }
72
+ };
73
+ //# sourceMappingURL=eos.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eos.plugin.js","sourceRoot":"","sources":["../../src/hd/eos.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { IHDPlugin } from "../types";
2
+ export interface IEthereumPlugin extends IHDPlugin {
3
+ checkPrivateKey(privateKey: string): string;
4
+ }
5
+ export declare const plugin: IEthereumPlugin;
@@ -0,0 +1,101 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.plugin = void 0;
27
+ var wallet_1 = require("@ethereumjs/wallet");
28
+ var ethUtil = __importStar(require("@ethereumjs/util"));
29
+ var keccak_js_1 = require("ethereum-cryptography/keccak.js");
30
+ var jcc_common_1 = require("jcc_common");
31
+ exports.plugin = {
32
+ checkPrivateKey: function (privateKey) {
33
+ // check and cut swtc keypair lib add prefix 00
34
+ return privateKey.length === 66 ? privateKey.substring(2) : privateKey;
35
+ },
36
+ address: function (key) {
37
+ if (key.privateKey) {
38
+ var privateKey = this.checkPrivateKey(key.privateKey);
39
+ var buffer = Buffer.from(privateKey, "hex");
40
+ var wallet = wallet_1.Wallet.fromPrivateKey(buffer);
41
+ // console.log("get public key:", wallet.getPublicKeyString());
42
+ return wallet.getAddressString();
43
+ }
44
+ if (key.publicKey) {
45
+ // TODO: length of ethereum publick key of keypaire is 128, but swtc lib keypair is 64
46
+ // so, if you want get address from public key, get it from private first
47
+ var wallet = wallet_1.Wallet.fromPublicKey(Buffer.from(key.publicKey, "hex"));
48
+ return wallet.getAddressString();
49
+ }
50
+ return null;
51
+ },
52
+ isValidAddress: function (address) {
53
+ return ethUtil.isValidAddress(address);
54
+ },
55
+ isValidSecret: function (secret) {
56
+ try {
57
+ return ethUtil.isValidPrivate(Buffer.from((0, jcc_common_1.filterOx)(secret), "hex"));
58
+ }
59
+ catch (error) {
60
+ return false;
61
+ }
62
+ },
63
+ hash: function (message) {
64
+ var hash = ethUtil.bytesToHex((0, keccak_js_1.keccak256)(Buffer.from(message, "utf-8")));
65
+ return ethUtil.stripHexPrefix(hash);
66
+ },
67
+ /**
68
+ *
69
+ * @param message message content, let message is "\x19Ethereum Signed Message:\n" + message.length + message, match web3.accounts.sign function
70
+ * @param privateKey private key
71
+ * @returns signature string
72
+ */
73
+ sign: function (message, privateKey) {
74
+ var key = this.checkPrivateKey(privateKey).toLowerCase();
75
+ var hash = (0, keccak_js_1.keccak256)(Buffer.from(message, "utf-8"));
76
+ var signed = ethUtil.ecsign(hash, Buffer.from(key, "hex"));
77
+ return (ethUtil.stripHexPrefix(ethUtil.bytesToHex(signed.r)) +
78
+ ethUtil.stripHexPrefix(ethUtil.bytesToHex(signed.s)) +
79
+ signed.v.toString(16));
80
+ },
81
+ verify: function (message, signature, address) {
82
+ return this.recover(message, signature) === address;
83
+ },
84
+ recover: function (message, signature) {
85
+ var hash = (0, keccak_js_1.keccak256)(Buffer.from(message, "utf-8"));
86
+ var r = Buffer.from(Buffer.from(signature.substring(0, 64), "hex"));
87
+ var s = Buffer.from(Buffer.from(signature.substring(64, 128), "hex"));
88
+ var bytes = ethUtil.hexToBytes("0x" + signature.substring(128, 130));
89
+ var pk = ethUtil.ecrecover(hash, ethUtil.bytesToBigInt(bytes), r, s);
90
+ var wallet = wallet_1.Wallet.fromPublicKey(pk);
91
+ return wallet.getAddressString();
92
+ },
93
+ proxy: function (functionName) {
94
+ var args = [];
95
+ for (var _i = 1; _i < arguments.length; _i++) {
96
+ args[_i - 1] = arguments[_i];
97
+ }
98
+ return ethUtil[functionName].apply(ethUtil, args);
99
+ }
100
+ };
101
+ //# sourceMappingURL=ethereum.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethereum.plugin.js","sourceRoot":"","sources":["../../src/hd/ethereum.plugin.ts"],"names":[],"mappings":"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"}