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.
- package/dist/jcc-wallet.min.js +24 -45
- package/lib/{constant/index.js → constant.js} +8 -8
- package/lib/constant.js.map +1 -0
- package/lib/hd/constant.js +4 -4
- package/lib/hd/constant.js.map +1 -1
- package/lib/hd/eos.plugin.js +36 -39
- package/lib/hd/eos.plugin.js.map +1 -1
- package/lib/hd/ethereum.plugin.d.ts +1 -0
- package/lib/hd/ethereum.plugin.js +86 -67
- package/lib/hd/ethereum.plugin.js.map +1 -1
- package/lib/hd/index.d.ts +1 -1
- package/lib/hd/index.js +167 -179
- package/lib/hd/index.js.map +1 -1
- package/lib/hd/plugins.d.ts +9 -0
- package/lib/hd/plugins.js +26 -22
- package/lib/hd/plugins.js.map +1 -1
- package/lib/hd/swtc.plugin.d.ts +1 -5
- package/lib/hd/swtc.plugin.js +74 -60
- package/lib/hd/swtc.plugin.js.map +1 -1
- package/lib/hd/tron.plugin.js +28 -33
- package/lib/hd/tron.plugin.js.map +1 -1
- package/lib/index.d.ts +3 -4
- package/lib/index.js +5 -8
- package/lib/index.js.map +1 -1
- package/lib/{jingchangWallet/index.d.ts → jingchangWallet.d.ts} +1 -1
- package/lib/jingchangWallet.js +531 -0
- package/lib/jingchangWallet.js.map +1 -0
- package/lib/minify-ethereumjs-util/account.d.ts +1 -0
- package/lib/minify-ethereumjs-util/account.js +22 -0
- package/lib/minify-ethereumjs-util/account.js.map +1 -0
- package/lib/minify-ethereumjs-util/bytes.d.ts +7 -0
- package/lib/minify-ethereumjs-util/bytes.js +100 -0
- package/lib/minify-ethereumjs-util/bytes.js.map +1 -0
- package/lib/minify-ethereumjs-util/constants.d.ts +4 -0
- package/lib/minify-ethereumjs-util/constants.js +9 -0
- package/lib/minify-ethereumjs-util/constants.js.map +1 -0
- package/lib/minify-ethereumjs-util/helper.d.ts +5 -0
- package/lib/minify-ethereumjs-util/helper.js +16 -0
- package/lib/minify-ethereumjs-util/helper.js.map +1 -0
- package/lib/minify-ethereumjs-util/internal.d.ts +8 -0
- package/lib/minify-ethereumjs-util/internal.js +33 -0
- package/lib/minify-ethereumjs-util/internal.js.map +1 -0
- package/lib/minify-ethereumjs-util/signature.d.ts +13 -0
- package/lib/minify-ethereumjs-util/signature.js +45 -0
- package/lib/minify-ethereumjs-util/signature.js.map +1 -0
- package/lib/minify-swtc-keypair/address-codec.d.ts +16 -0
- package/lib/minify-swtc-keypair/address-codec.js +166 -0
- package/lib/minify-swtc-keypair/address-codec.js.map +1 -0
- package/lib/minify-swtc-keypair/index.d.ts +25 -0
- package/lib/minify-swtc-keypair/index.js +178 -0
- package/lib/minify-swtc-keypair/index.js.map +1 -0
- package/lib/minify-swtc-keypair/sha512.d.ts +9 -0
- package/lib/minify-swtc-keypair/sha512.js +33 -0
- package/lib/minify-swtc-keypair/sha512.js.map +1 -0
- package/lib/minify-swtc-keypair/utils.d.ts +13 -0
- package/lib/minify-swtc-keypair/utils.js +63 -0
- package/lib/minify-swtc-keypair/utils.js.map +1 -0
- package/lib/minify-tron/address.d.ts +6 -0
- package/lib/minify-tron/address.js +11 -0
- package/lib/minify-tron/address.js.map +1 -0
- package/lib/minify-tron/base58.d.ts +2 -0
- package/lib/minify-tron/base58.js +67 -0
- package/lib/minify-tron/base58.js.map +1 -0
- package/lib/minify-tron/bytes.d.ts +2 -0
- package/lib/minify-tron/bytes.js +23 -0
- package/lib/minify-tron/bytes.js.map +1 -0
- package/lib/minify-tron/code.d.ts +3 -0
- package/lib/minify-tron/code.js +56 -0
- package/lib/minify-tron/code.js.map +1 -0
- package/lib/minify-tron/crypto.d.ts +7 -0
- package/lib/minify-tron/crypto.js +83 -0
- package/lib/minify-tron/crypto.js.map +1 -0
- package/lib/minify-tron/message.d.ts +4 -0
- package/lib/minify-tron/message.js +42 -0
- package/lib/minify-tron/message.js.map +1 -0
- package/lib/{types/index.d.ts → types.d.ts} +16 -3
- package/lib/types.js +16 -0
- package/lib/types.js.map +1 -0
- package/lib/util/index.js +40 -30
- package/lib/util/index.js.map +1 -1
- package/package.json +21 -16
- package/lib/constant/index.js.map +0 -1
- package/lib/eth/index.d.ts +0 -37
- package/lib/eth/index.js +0 -98
- package/lib/eth/index.js.map +0 -1
- package/lib/jingchangWallet/index.js +0 -713
- package/lib/jingchangWallet/index.js.map +0 -1
- package/lib/moac/index.d.ts +0 -29
- package/lib/moac/index.js +0 -58
- package/lib/moac/index.js.map +0 -1
- package/lib/types/index.js +0 -3
- package/lib/types/index.js.map +0 -1
- package/lib/x-wallet/index.d.ts +0 -22
- package/lib/x-wallet/index.js +0 -86
- package/lib/x-wallet/index.js.map +0 -1
- /package/lib/{constant/index.d.ts → constant.d.ts} +0 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
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
|
-
|
|
4
|
+
const PASSWORD_IS_REQUIRED = "password is required";
|
|
5
5
|
exports.PASSWORD_IS_REQUIRED = PASSWORD_IS_REQUIRED;
|
|
6
|
-
|
|
6
|
+
const WALLET_IS_EMPTY = "wallet is empty";
|
|
7
7
|
exports.WALLET_IS_EMPTY = WALLET_IS_EMPTY;
|
|
8
|
-
|
|
8
|
+
const PASSWORD_IS_WRONG = "password is wrong";
|
|
9
9
|
exports.PASSWORD_IS_WRONG = PASSWORD_IS_WRONG;
|
|
10
|
-
|
|
10
|
+
const KEYSTORE_IS_INVALID = "keystore is invalid";
|
|
11
11
|
exports.KEYSTORE_IS_INVALID = KEYSTORE_IS_INVALID;
|
|
12
|
-
|
|
12
|
+
const ETH_PASSWORD_IS_WRONG = `ethereum ${PASSWORD_IS_WRONG}`;
|
|
13
13
|
exports.ETH_PASSWORD_IS_WRONG = ETH_PASSWORD_IS_WRONG;
|
|
14
|
-
|
|
14
|
+
const SECRET_IS_INVALID = `secret is invalid`;
|
|
15
15
|
exports.SECRET_IS_INVALID = SECRET_IS_INVALID;
|
|
16
|
-
|
|
16
|
+
const ADDRESS_IS_EXISTENT = `address is existent`;
|
|
17
17
|
exports.ADDRESS_IS_EXISTENT = ADDRESS_IS_EXISTENT;
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAYlD,oDAAoB;AAXtB,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAcxC,0CAAe;AAbjB,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAW5C,8CAAiB;AAVnB,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAQhD,kDAAmB;AAPrB,MAAM,qBAAqB,GAAG,YAAY,iBAAiB,EAAE,CAAC;AAM5D,sDAAqB;AALvB,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAS5C,8CAAiB;AARnB,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAGhD,kDAAmB"}
|
package/lib/hd/constant.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getBIP44Chain = exports.BIP44ChainMap = exports.BIP44Chain = void 0;
|
|
7
|
-
|
|
7
|
+
const bip44_constants_1 = __importDefault(require("bip44-constants"));
|
|
8
8
|
// BIP44 链常量定义
|
|
9
9
|
var BIP44Chain;
|
|
10
10
|
(function (BIP44Chain) {
|
|
@@ -31,11 +31,11 @@ var BIP44Chain;
|
|
|
31
31
|
* @param {number} chain chain index number
|
|
32
32
|
* @returns {number} bip44 chain constant
|
|
33
33
|
*/
|
|
34
|
-
|
|
35
|
-
return bip44_constants_1.default.filter(
|
|
34
|
+
const getBIP44Chain = (chain) => {
|
|
35
|
+
return bip44_constants_1.default.filter((e) => e[0] === chain);
|
|
36
36
|
};
|
|
37
37
|
exports.getBIP44Chain = getBIP44Chain;
|
|
38
|
-
|
|
38
|
+
const BIP44ChainMap = new Map([
|
|
39
39
|
[BIP44Chain.BITCOIN, "bitcoin"],
|
|
40
40
|
[BIP44Chain.BSC, "bsc"],
|
|
41
41
|
[BIP44Chain.EOS, "eos"],
|
package/lib/hd/constant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/hd/constant.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/hd/constant.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAwC;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,MAAM,aAAa,GAAG,CAAC,KAAa,EAAO,EAAE;IAC3C,OAAO,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AAoBkC,sCAAa;AAlBjD,MAAM,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"}
|
package/lib/hd/eos.plugin.js
CHANGED
|
@@ -1,49 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.plugin = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
const PublicKey = require("eosjs-ecc/lib/key_public");
|
|
5
|
+
const PrivateKey = require("eosjs-ecc/lib/key_private");
|
|
6
|
+
const Signature = require("eosjs-ecc/lib/signature");
|
|
7
|
+
const wif = require("wif");
|
|
8
|
+
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
9
|
+
const jcc_common_1 = require("jcc_common");
|
|
10
|
+
const sha256_1 = require("@noble/hashes/sha256");
|
|
9
11
|
exports.plugin = {
|
|
10
|
-
checkPrivateKey
|
|
12
|
+
checkPrivateKey(privateKey) {
|
|
11
13
|
// check and cut swtc keypair lib add prefix 00
|
|
12
14
|
return privateKey.length === 66 ? privateKey.substring(2) : privateKey;
|
|
13
15
|
},
|
|
14
|
-
address
|
|
16
|
+
address(key) {
|
|
15
17
|
if (key.privateKey) {
|
|
16
|
-
|
|
17
|
-
var buffer = Buffer.from(privateKey, "hex");
|
|
18
|
-
// const eosPrivateKey = wif.encode(128, buffer, false)
|
|
18
|
+
const privateKey = exports.plugin.checkPrivateKey(key.privateKey);
|
|
19
19
|
// TODO: secp256k1 version confict fixed, but need refactor later
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const rawPublicKey = Buffer.from(secp256k1_1.secp256k1.ProjectivePoint.fromPrivateKey(privateKey).toRawBytes(true));
|
|
21
|
+
const eosPublicKey = PublicKey(rawPublicKey).toString();
|
|
22
22
|
return eosPublicKey;
|
|
23
23
|
}
|
|
24
24
|
if (key.publicKey) {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const rawPublicKey = Buffer.from(key.publicKey, "hex");
|
|
26
|
+
const eosPublicKey = PublicKey(rawPublicKey).toString();
|
|
27
27
|
return eosPublicKey;
|
|
28
28
|
}
|
|
29
29
|
return null;
|
|
30
30
|
},
|
|
31
|
-
isValidAddress
|
|
32
|
-
return
|
|
31
|
+
isValidAddress(address) {
|
|
32
|
+
return PublicKey.isValid(address);
|
|
33
33
|
},
|
|
34
|
-
isValidSecret
|
|
34
|
+
isValidSecret(secret) {
|
|
35
35
|
try {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return
|
|
36
|
+
const privateKey = exports.plugin.checkPrivateKey((0, jcc_common_1.filterOx)(secret));
|
|
37
|
+
const buffer = Buffer.from(privateKey, "hex");
|
|
38
|
+
const eosPrivateKey = wif.encode(128, buffer, false);
|
|
39
|
+
return PrivateKey.isValid(eosPrivateKey);
|
|
40
40
|
}
|
|
41
|
-
catch (
|
|
41
|
+
catch (_) {
|
|
42
42
|
return false;
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
-
hash
|
|
46
|
-
return
|
|
45
|
+
hash(message) {
|
|
46
|
+
return Buffer.from(sha256_1.sha256
|
|
47
|
+
.create()
|
|
48
|
+
.update(message)
|
|
49
|
+
.digest()).toString("hex");
|
|
47
50
|
},
|
|
48
51
|
/**
|
|
49
52
|
*
|
|
@@ -51,23 +54,17 @@ exports.plugin = {
|
|
|
51
54
|
* @param privateKey private key
|
|
52
55
|
* @returns signature string
|
|
53
56
|
*/
|
|
54
|
-
sign
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return
|
|
57
|
+
sign(message, privateKey) {
|
|
58
|
+
const buffer = Buffer.from(exports.plugin.checkPrivateKey((0, jcc_common_1.filterOx)(privateKey)), "hex");
|
|
59
|
+
const eosPrivateKey = wif.encode(128, buffer, false);
|
|
60
|
+
return Signature.sign(message, eosPrivateKey, "utf8").toString();
|
|
58
61
|
},
|
|
59
|
-
verify
|
|
60
|
-
return
|
|
62
|
+
verify(message, signature, address) {
|
|
63
|
+
return exports.plugin.recover(message, signature) === address;
|
|
61
64
|
},
|
|
62
|
-
recover
|
|
63
|
-
|
|
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);
|
|
65
|
+
recover(message, signature) {
|
|
66
|
+
const s = Signature.from(signature);
|
|
67
|
+
return s.recover(message, "utf8").toString();
|
|
71
68
|
}
|
|
72
69
|
};
|
|
73
70
|
//# sourceMappingURL=eos.plugin.js.map
|
package/lib/hd/eos.plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eos.plugin.js","sourceRoot":"","sources":["../../src/hd/eos.plugin.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"eos.plugin.js","sourceRoot":"","sources":["../../src/hd/eos.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,68 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
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;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
4
|
};
|
|
25
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
6
|
exports.plugin = void 0;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
7
|
+
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
8
|
+
const keccak_js_1 = require("ethereum-cryptography/keccak.js");
|
|
9
|
+
const bytes_1 = require("../minify-ethereumjs-util/bytes");
|
|
10
|
+
const internal_1 = require("../minify-ethereumjs-util/internal");
|
|
11
|
+
const signature_1 = require("../minify-ethereumjs-util/signature");
|
|
12
|
+
const account_1 = require("../minify-ethereumjs-util/account");
|
|
13
|
+
const jcc_common_1 = require("jcc_common");
|
|
14
|
+
const constant_1 = require("../constant");
|
|
15
|
+
const scrypt_1 = require("@noble/hashes/scrypt");
|
|
16
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
17
|
+
const utils_1 = require("@noble/hashes/utils");
|
|
18
|
+
const isObject = (obj) => {
|
|
19
|
+
return Object.prototype.toString.call(obj) === "[object Object]";
|
|
20
|
+
};
|
|
31
21
|
exports.plugin = {
|
|
32
|
-
checkPrivateKey
|
|
22
|
+
checkPrivateKey(privateKey) {
|
|
33
23
|
// check and cut swtc keypair lib add prefix 00
|
|
34
24
|
return privateKey.length === 66 ? privateKey.substring(2) : privateKey;
|
|
35
25
|
},
|
|
36
|
-
address
|
|
26
|
+
address(key) {
|
|
37
27
|
if (key.privateKey) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var wallet = wallet_1.Wallet.fromPrivateKey(buffer);
|
|
41
|
-
// console.log("get public key:", wallet.getPublicKeyString());
|
|
42
|
-
return wallet.getAddressString();
|
|
28
|
+
const privateKey = exports.plugin.checkPrivateKey(key.privateKey);
|
|
29
|
+
return exports.plugin.getAddress(privateKey);
|
|
43
30
|
}
|
|
44
31
|
if (key.publicKey) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var wallet = wallet_1.Wallet.fromPublicKey(Buffer.from(key.publicKey, "hex"));
|
|
48
|
-
return wallet.getAddressString();
|
|
32
|
+
const address = (0, account_1.pubToAddress)(Buffer.from(key.publicKey, "hex"));
|
|
33
|
+
return (0, bytes_1.bytesToHex)(address);
|
|
49
34
|
}
|
|
50
35
|
return null;
|
|
51
36
|
},
|
|
52
|
-
isValidAddress
|
|
53
|
-
|
|
37
|
+
isValidAddress(address) {
|
|
38
|
+
if (typeof address !== "string") {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return /^(0x)?[0-9a-fA-F]{40}$/.test((0, internal_1.stripHexPrefix)(address));
|
|
54
42
|
},
|
|
55
|
-
|
|
43
|
+
getAddress(secret) {
|
|
44
|
+
if (!exports.plugin.isValidSecret(secret)) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const pk = secp256k1_1.secp256k1.ProjectivePoint.fromPrivateKey(Buffer.from((0, internal_1.stripHexPrefix)(secret), "hex")).toHex(false);
|
|
48
|
+
return (0, bytes_1.bytesToHex)((0, account_1.pubToAddress)(Buffer.from(pk.substring(2), "hex")));
|
|
49
|
+
},
|
|
50
|
+
isValidSecret(secret) {
|
|
56
51
|
try {
|
|
57
|
-
return
|
|
52
|
+
return secp256k1_1.secp256k1.utils.isValidPrivateKey(Buffer.from((0, internal_1.stripHexPrefix)(secret), "hex"));
|
|
58
53
|
}
|
|
59
|
-
catch (
|
|
54
|
+
catch (_) {
|
|
60
55
|
return false;
|
|
61
56
|
}
|
|
62
57
|
},
|
|
63
|
-
hash
|
|
64
|
-
|
|
65
|
-
return
|
|
58
|
+
hash(message) {
|
|
59
|
+
const hash = (0, bytes_1.bytesToHex)((0, keccak_js_1.keccak256)(Buffer.from(message, "utf-8")));
|
|
60
|
+
return (0, internal_1.stripHexPrefix)(hash);
|
|
66
61
|
},
|
|
67
62
|
/**
|
|
68
63
|
*
|
|
@@ -70,32 +65,56 @@ exports.plugin = {
|
|
|
70
65
|
* @param privateKey private key
|
|
71
66
|
* @returns signature string
|
|
72
67
|
*/
|
|
73
|
-
sign
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return (
|
|
78
|
-
ethUtil.stripHexPrefix(ethUtil.bytesToHex(signed.s)) +
|
|
79
|
-
signed.v.toString(16));
|
|
68
|
+
sign(message, privateKey) {
|
|
69
|
+
const key = exports.plugin.checkPrivateKey(privateKey).toLowerCase();
|
|
70
|
+
const hash = (0, keccak_js_1.keccak256)(Buffer.from(message, "utf-8"));
|
|
71
|
+
const signed = (0, signature_1.ecsign)(hash, Buffer.from(key, "hex"));
|
|
72
|
+
return (0, internal_1.stripHexPrefix)((0, bytes_1.bytesToHex)(signed.r)) + (0, internal_1.stripHexPrefix)((0, bytes_1.bytesToHex)(signed.s)) + signed.v.toString(16);
|
|
80
73
|
},
|
|
81
|
-
verify
|
|
82
|
-
return
|
|
74
|
+
verify(message, signature, address) {
|
|
75
|
+
return exports.plugin.recover(message, signature) === address;
|
|
83
76
|
},
|
|
84
|
-
recover
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return
|
|
77
|
+
recover(message, signature) {
|
|
78
|
+
const hash = (0, keccak_js_1.keccak256)(Buffer.from(message, "utf-8"));
|
|
79
|
+
const r = Buffer.from(Buffer.from(signature.substring(0, 64), "hex"));
|
|
80
|
+
const s = Buffer.from(Buffer.from(signature.substring(64, 128), "hex"));
|
|
81
|
+
const bytes = (0, bytes_1.hexToBytes)("0x" + signature.substring(128, 130));
|
|
82
|
+
const pk = (0, signature_1.ecrecover)(hash, (0, bytes_1.bytesToBigInt)(bytes), r, s);
|
|
83
|
+
const address = (0, account_1.pubToAddress)(Buffer.from(pk));
|
|
84
|
+
return (0, bytes_1.bytesToHex)(address);
|
|
92
85
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
86
|
+
decryptKeystore(password, encryptData) {
|
|
87
|
+
if (!isObject(encryptData)) {
|
|
88
|
+
throw new Error(constant_1.KEYSTORE_IS_INVALID);
|
|
89
|
+
}
|
|
90
|
+
const cryptoData = encryptData.Crypto || encryptData.crypto;
|
|
91
|
+
if ((0, jcc_common_1.isEmptyObject)(cryptoData) || (0, jcc_common_1.isEmptyObject)(cryptoData.cipherparams) || (0, jcc_common_1.isEmptyObject)(cryptoData.kdfparams)) {
|
|
92
|
+
throw new Error(constant_1.KEYSTORE_IS_INVALID);
|
|
97
93
|
}
|
|
98
|
-
|
|
94
|
+
const iv = Buffer.from(cryptoData.cipherparams.iv, "hex");
|
|
95
|
+
const kdfparams = cryptoData.kdfparams;
|
|
96
|
+
const derivedKey = (0, scrypt_1.scrypt)(Buffer.from(password), Buffer.from(kdfparams.salt, "hex"), {
|
|
97
|
+
N: kdfparams.n,
|
|
98
|
+
r: kdfparams.r,
|
|
99
|
+
p: kdfparams.p,
|
|
100
|
+
dkLen: kdfparams.dklen
|
|
101
|
+
});
|
|
102
|
+
const ciphertext = Buffer.from(cryptoData.ciphertext, "hex");
|
|
103
|
+
const mac = keccak_js_1.keccak256
|
|
104
|
+
.create()
|
|
105
|
+
.update(Buffer.concat([derivedKey.slice(16, 32), ciphertext]))
|
|
106
|
+
.digest();
|
|
107
|
+
if (Buffer.from(mac).toString("hex") !== cryptoData.mac) {
|
|
108
|
+
throw new Error(constant_1.ETH_PASSWORD_IS_WRONG);
|
|
109
|
+
}
|
|
110
|
+
const decipher = crypto_1.default.createDecipheriv("aes-128-ctr", derivedKey.slice(0, 16), iv);
|
|
111
|
+
const seed = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
112
|
+
return seed.toString("hex");
|
|
113
|
+
},
|
|
114
|
+
createWallet() {
|
|
115
|
+
const priv = (0, utils_1.randomBytes)(32);
|
|
116
|
+
const address = exports.plugin.getAddress((0, bytes_1.bytesToHex)(priv));
|
|
117
|
+
return { address, secret: (0, bytes_1.bytesToHex)(priv) };
|
|
99
118
|
}
|
|
100
119
|
};
|
|
101
120
|
//# sourceMappingURL=ethereum.plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum.plugin.js","sourceRoot":"","sources":["../../src/hd/ethereum.plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ethereum.plugin.js","sourceRoot":"","sources":["../../src/hd/ethereum.plugin.ts"],"names":[],"mappings":"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"}
|
package/lib/hd/index.d.ts
CHANGED
|
@@ -201,7 +201,7 @@ export declare class HDWallet {
|
|
|
201
201
|
*
|
|
202
202
|
* @returns {string} return address
|
|
203
203
|
*/
|
|
204
|
-
recover: (messgae: string, signature: string) => string;
|
|
204
|
+
recover: (messgae: string, signature: string) => string | void;
|
|
205
205
|
/**
|
|
206
206
|
* get specified chain wallet api
|
|
207
207
|
*
|