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,178 @@
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.Factory = void 0;
7
+ const address_codec_1 = require("./address-codec");
8
+ const utils_1 = require("./utils");
9
+ const utils_2 = require("@noble/curves/abstract/utils");
10
+ const sha512_1 = require("@noble/hashes/sha512");
11
+ const sha256_1 = require("@noble/hashes/sha256");
12
+ const ripemd160_1 = require("@noble/hashes/ripemd160");
13
+ const ed25519_1 = require("@noble/curves/ed25519");
14
+ const secp256k1_1 = require("@noble/curves/secp256k1");
15
+ const brorand_1 = __importDefault(require("brorand"));
16
+ const assert = require("assert");
17
+ const hash = (message) => {
18
+ return sha512_1.sha512
19
+ .create()
20
+ .update(message)
21
+ .digest()
22
+ .slice(0, 32);
23
+ };
24
+ const funcHexToBytes = (hex) => {
25
+ const bytes = [];
26
+ for (let c = 0; c < hex.length; c += 2) {
27
+ bytes.push(parseInt(hex.substr(c, 2), 16));
28
+ }
29
+ return bytes;
30
+ };
31
+ const SECP256K1_PREFIX = "00";
32
+ const ED25519_PREFIX = "ED";
33
+ const computePublicKeyHash = (publicKeyBytes) => {
34
+ const hash256 = sha256_1.sha256
35
+ .create()
36
+ .update(publicKeyBytes)
37
+ .digest();
38
+ const hash160 = ripemd160_1.ripemd160
39
+ .create()
40
+ .update(hash256)
41
+ .digest();
42
+ return hash160;
43
+ };
44
+ const Factory = (alphabet) => {
45
+ const addressCodec = (0, address_codec_1.Factory)(alphabet);
46
+ const secp256k1 = {
47
+ deriveKeypair: (entropy, options) => {
48
+ const derived = (0, utils_1.derivePrivateKey)(entropy, options);
49
+ const privateKey = (0, utils_2.bytesToHex)((0, utils_2.numberToBytesBE)(derived, 32));
50
+ return {
51
+ privateKey: SECP256K1_PREFIX + privateKey,
52
+ publicKey: secp256k1_1.secp256k1.ProjectivePoint.fromPrivateKey(privateKey).toHex(true)
53
+ };
54
+ },
55
+ deriveKeypairWithPrivateKey: (rawPrivateKey) => {
56
+ const privateKey = rawPrivateKey.toUpperCase();
57
+ const publicKey = secp256k1_1.secp256k1.ProjectivePoint.fromPrivateKey(privateKey).toHex(true);
58
+ return { privateKey: SECP256K1_PREFIX + privateKey, publicKey };
59
+ },
60
+ sign(message, privateKey) {
61
+ const signHash = hash(Uint8Array.from(funcHexToBytes(message)));
62
+ return secp256k1_1.secp256k1.sign(signHash, privateKey, {
63
+ // "Canonical" signatures
64
+ lowS: true,
65
+ // Would fail tests if signatures aren't deterministic
66
+ extraEntropy: undefined
67
+ })
68
+ .toDERHex(true)
69
+ .toUpperCase();
70
+ },
71
+ verify(message, signature, publicKey) {
72
+ const signHash = hash(Uint8Array.from(funcHexToBytes(message)));
73
+ return secp256k1_1.secp256k1.verify(signature, signHash, publicKey);
74
+ }
75
+ };
76
+ const ed25519 = {
77
+ deriveKeypair: (entropy) => {
78
+ const rawPrivateKey = hash(entropy);
79
+ const privateKey = (0, utils_2.bytesToHex)(rawPrivateKey);
80
+ const pub = ed25519_1.ed25519.getPublicKey(privateKey);
81
+ return {
82
+ privateKey: ED25519_PREFIX + privateKey,
83
+ publicKey: ED25519_PREFIX + (0, utils_2.bytesToHex)(pub)
84
+ };
85
+ },
86
+ deriveKeypairWithPrivateKey: (rawPrivateKey) => {
87
+ const privateKey = rawPrivateKey.toUpperCase();
88
+ const pub = ed25519_1.ed25519.getPublicKey(privateKey);
89
+ return { privateKey: ED25519_PREFIX + privateKey, publicKey: ED25519_PREFIX + (0, utils_2.bytesToHex)(pub) };
90
+ },
91
+ sign(message, privateKey) {
92
+ const buf = ed25519_1.ed25519.sign(message, privateKey);
93
+ return (0, utils_2.bytesToHex)(buf).toUpperCase();
94
+ },
95
+ verify(message, signature, publicKey) {
96
+ return ed25519_1.ed25519.verify(message, Buffer.from(signature, "hex"), publicKey);
97
+ }
98
+ };
99
+ const deriveKeyPair = (seed, algorithm) => {
100
+ if (seed.startsWith("s")) {
101
+ const decoded = addressCodec.decodeSeed(seed);
102
+ if (decoded.type === "secp256k1") {
103
+ return secp256k1.deriveKeypair(decoded.bytes);
104
+ }
105
+ return ed25519.deriveKeypair(decoded.bytes);
106
+ }
107
+ if (seed.length === 64) {
108
+ if (algorithm === "ed25519") {
109
+ return ed25519.deriveKeypairWithPrivateKey(seed);
110
+ }
111
+ return secp256k1.deriveKeypairWithPrivateKey(seed);
112
+ }
113
+ if (seed.length === 66) {
114
+ if (seed.startsWith(ED25519_PREFIX)) {
115
+ return ed25519.deriveKeypairWithPrivateKey(seed.substring(2));
116
+ }
117
+ return secp256k1.deriveKeypairWithPrivateKey(seed.substring(2));
118
+ }
119
+ throw new Error("deriving keypair requires valid private key");
120
+ };
121
+ const isValidSecret = (secret) => {
122
+ try {
123
+ deriveKeyPair(secret);
124
+ }
125
+ catch (_) {
126
+ return false;
127
+ }
128
+ return true;
129
+ };
130
+ const deriveAddress = (pk) => {
131
+ return addressCodec.encodeAccountID(Buffer.from(computePublicKeyHash(Buffer.from((0, utils_2.hexToBytes)(pk)))));
132
+ };
133
+ const fromSecret = (secret, algorithm) => {
134
+ const keypair = deriveKeyPair(secret, algorithm);
135
+ const address = deriveAddress(keypair.publicKey);
136
+ return {
137
+ secret,
138
+ address
139
+ };
140
+ };
141
+ const generate = (options) => {
142
+ assert(!options.entropy || options.entropy.length >= 16, "entropy too short");
143
+ const entropy = options.entropy ? options.entropy.slice(0, 16) : (0, brorand_1.default)(16);
144
+ const type = options.algorithm === "ed25519" ? "ed25519" : "secp256k1";
145
+ const secret = addressCodec.encodeSeed(entropy, type);
146
+ const keypair = deriveKeyPair(secret);
147
+ const address = deriveAddress(keypair.publicKey);
148
+ return {
149
+ secret,
150
+ address
151
+ };
152
+ };
153
+ return {
154
+ deriveKeyPair,
155
+ isValidSecret,
156
+ isValidAddress: addressCodec.isValidAddress,
157
+ deriveAddress,
158
+ generate,
159
+ fromSecret,
160
+ addressCodec,
161
+ hash,
162
+ sign: (message, privateKey) => {
163
+ const keypair = deriveKeyPair(privateKey);
164
+ if (privateKey.startsWith(ED25519_PREFIX)) {
165
+ return ed25519.sign(message, keypair.privateKey.substring(2));
166
+ }
167
+ return secp256k1.sign(message, keypair.privateKey.substring(2));
168
+ },
169
+ verify: (message, signature, publicKey) => {
170
+ if (publicKey.length === 66 && publicKey.startsWith(ED25519_PREFIX)) {
171
+ return ed25519.verify(message, signature, publicKey.substring(2));
172
+ }
173
+ return secp256k1.verify(message, signature, publicKey);
174
+ }
175
+ };
176
+ };
177
+ exports.Factory = Factory;
178
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/minify-swtc-keypair/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export default class Sha512 {
2
+ hash: import("@noble/hashes/utils").Hash<import("@noble/hashes/sha512").SHA512>;
3
+ static half(input: any): Uint8Array;
4
+ add(bytes: any): this;
5
+ addU32(i: number): this;
6
+ finish(): Uint8Array;
7
+ first256(): Uint8Array;
8
+ first256BigInt(): bigint;
9
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@noble/curves/abstract/utils");
4
+ const sha512_1 = require("@noble/hashes/sha512");
5
+ class Sha512 {
6
+ constructor() {
7
+ // instantiate empty sha512 hash
8
+ this.hash = sha512_1.sha512.create();
9
+ }
10
+ static half(input) {
11
+ return new Sha512().add(input).first256();
12
+ }
13
+ add(bytes) {
14
+ this.hash.update(bytes);
15
+ return this;
16
+ }
17
+ addU32(i) {
18
+ const buffer = new Uint8Array(4);
19
+ new DataView(buffer.buffer).setUint32(0, i);
20
+ return this.add(buffer);
21
+ }
22
+ finish() {
23
+ return this.hash.digest();
24
+ }
25
+ first256() {
26
+ return this.finish().slice(0, 32);
27
+ }
28
+ first256BigInt() {
29
+ return (0, utils_1.bytesToNumberBE)(this.first256());
30
+ }
31
+ }
32
+ exports.default = Sha512;
33
+ //# sourceMappingURL=sha512.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sha512.js","sourceRoot":"","sources":["../../src/minify-swtc-keypair/sha512.ts"],"names":[],"mappings":";;AAAA,wDAA+D;AAC/D,iDAA8C;AAE9C,MAAqB,MAAM;IAA3B;QACE,gCAAgC;QAChC,SAAI,GAAG,eAAM,CAAC,MAAM,EAAE,CAAC;IA4BzB,CAAC;IA1BC,MAAM,CAAC,IAAI,CAAC,KAAK;QACf,OAAO,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED,GAAG,CAAC,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,CAAS;QACd,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,cAAc;QACZ,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AA9BD,yBA8BC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @param seed - Bytes.
3
+ * @param [opts] - Object.
4
+ * @param [opts.accountIndex=0] - The account number to generate.
5
+ * @param [opts.validator=false] - Generate root key-pair,
6
+ * as used by validators.
7
+ * @returns {bigint} 256 bit scalar value.
8
+ *
9
+ */
10
+ export declare function derivePrivateKey(seed: Uint8Array, opts?: {
11
+ validator?: boolean;
12
+ accountIndex?: number;
13
+ }): bigint;
@@ -0,0 +1,63 @@
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.derivePrivateKey = derivePrivateKey;
7
+ const secp256k1_1 = require("@noble/curves/secp256k1");
8
+ const sha512_1 = __importDefault(require("./sha512"));
9
+ const ZERO = BigInt(0);
10
+ function deriveScalar(bytes, discrim) {
11
+ const order = secp256k1_1.secp256k1.CURVE.n;
12
+ for (let i = 0; i <= 4294967295; i++) {
13
+ // We hash the bytes to find a 256-bit number, looping until we are sure it
14
+ // is less than the order of the curve.
15
+ const hasher = new sha512_1.default().add(bytes);
16
+ // If the optional discriminator index was passed in, update the hash.
17
+ if (discrim !== undefined) {
18
+ hasher.addU32(discrim);
19
+ }
20
+ hasher.addU32(i);
21
+ const key = hasher.first256BigInt();
22
+ /* istanbul ignore else */
23
+ if (key > ZERO && key < order) {
24
+ return key;
25
+ }
26
+ }
27
+ // This error is practically impossible to reach.
28
+ // The order of the curve describes the (finite) amount of points on the curve
29
+ // https://github.com/indutny/elliptic/blob/master/lib/elliptic/curves.js#L182
30
+ // How often will an (essentially) random number generated by Sha512 be larger than that?
31
+ // There's 2^32 chances (the for loop) to get a number smaller than the order,
32
+ // and it's rare that you'll even get past the first loop iteration.
33
+ // Note that in TypeScript we actually need the throw, otherwise the function signature would be bigint | undefined
34
+ //
35
+ /* istanbul ignore next */
36
+ throw new Error("impossible unicorn ;)");
37
+ }
38
+ /**
39
+ * @param seed - Bytes.
40
+ * @param [opts] - Object.
41
+ * @param [opts.accountIndex=0] - The account number to generate.
42
+ * @param [opts.validator=false] - Generate root key-pair,
43
+ * as used by validators.
44
+ * @returns {bigint} 256 bit scalar value.
45
+ *
46
+ */
47
+ function derivePrivateKey(seed, opts = {}) {
48
+ const root = opts.validator;
49
+ const order = secp256k1_1.secp256k1.CURVE.n;
50
+ // This private generator represents the `root` private key, and is what's
51
+ // used by validators for signing when a keypair is generated from a seed.
52
+ const privateGen = deriveScalar(seed);
53
+ if (root) {
54
+ // As returned by validation_create for a given seed
55
+ return privateGen;
56
+ }
57
+ const publicGen = secp256k1_1.secp256k1.ProjectivePoint.BASE.multiply(privateGen).toRawBytes(true);
58
+ // A seed can generate many keypairs as a function of the seed and a uint32.
59
+ // Almost everyone just uses the first account, `0`.
60
+ const accountIndex = opts.accountIndex || 0;
61
+ return (deriveScalar(publicGen, accountIndex) + privateGen) % order;
62
+ }
63
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/minify-swtc-keypair/utils.ts"],"names":[],"mappings":";;;;;AA4CA,4CAsBC;AAlED,uDAAoD;AAEpD,sDAA8B;AAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEvB,SAAS,YAAY,CAAC,KAAiB,EAAE,OAAgB;IACvD,MAAM,KAAK,GAAG,qBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,2EAA2E;QAC3E,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,sEAAsE;QACtE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QACpC,0BAA0B;QAC1B,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,iDAAiD;IACjD,8EAA8E;IAC9E,8EAA8E;IAC9E,yFAAyF;IACzF,8EAA8E;IAC9E,oEAAoE;IACpE,mHAAmH;IACnH,EAAE;IACF,0BAA0B;IAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,IAAgB,EAChB,OAGI,EAAE;IAEN,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;IAC5B,MAAM,KAAK,GAAG,qBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhC,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC;QACT,oDAAoD;QACpD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,SAAS,GAAG,qBAAS,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvF,4EAA4E;IAC5E,oDAAoD;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC;AACtE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const ADDRESS_SIZE = 34;
2
+ export declare const ADDRESS_PREFIX = "41";
3
+ export declare const ADDRESS_PREFIX_BYTE = 65;
4
+ export declare const ADDRESS_PREFIX_REGEX: RegExp;
5
+ export declare const TRON_BIP39_PATH_PREFIX = "m/44'/195'";
6
+ export declare const TRON_BIP39_PATH_INDEX_0: string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // forked from https://github.com/tronprotocol/tronweb/blob/5.x/src/utils/address.js
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TRON_BIP39_PATH_INDEX_0 = exports.TRON_BIP39_PATH_PREFIX = exports.ADDRESS_PREFIX_REGEX = exports.ADDRESS_PREFIX_BYTE = exports.ADDRESS_PREFIX = exports.ADDRESS_SIZE = void 0;
5
+ exports.ADDRESS_SIZE = 34;
6
+ exports.ADDRESS_PREFIX = "41";
7
+ exports.ADDRESS_PREFIX_BYTE = 0x41;
8
+ exports.ADDRESS_PREFIX_REGEX = /^(41)/;
9
+ exports.TRON_BIP39_PATH_PREFIX = "m/44'/195'";
10
+ exports.TRON_BIP39_PATH_INDEX_0 = exports.TRON_BIP39_PATH_PREFIX + "/0'/0/0";
11
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/minify-tron/address.ts"],"names":[],"mappings":";AAAA,oFAAoF;;;AAEvE,QAAA,YAAY,GAAG,EAAE,CAAC;AAClB,QAAA,cAAc,GAAG,IAAI,CAAC;AACtB,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAC3B,QAAA,oBAAoB,GAAG,OAAO,CAAC;AAE/B,QAAA,sBAAsB,GAAG,YAAY,CAAC;AACtC,QAAA,uBAAuB,GAAG,8BAAsB,GAAG,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function encode58(buffer: any): string;
2
+ export declare function decode58(string: any): number[];
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ // forked from https://github.com/tronprotocol/tronweb/blob/5.x/src/utils/base58.js
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.encode58 = encode58;
5
+ exports.decode58 = decode58;
6
+ const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
7
+ const ALPHABET_MAP = {};
8
+ for (let i = 0; i < ALPHABET.length; i++)
9
+ ALPHABET_MAP[ALPHABET.charAt(i)] = i;
10
+ const BASE = 58;
11
+ function encode58(buffer) {
12
+ if (buffer.length === 0)
13
+ return "";
14
+ let i;
15
+ let j;
16
+ const digits = [0];
17
+ for (i = 0; i < buffer.length; i++) {
18
+ for (j = 0; j < digits.length; j++)
19
+ digits[j] <<= 8;
20
+ digits[0] += buffer[i];
21
+ let carry = 0;
22
+ for (j = 0; j < digits.length; ++j) {
23
+ digits[j] += carry;
24
+ carry = (digits[j] / BASE) | 0;
25
+ digits[j] %= BASE;
26
+ }
27
+ while (carry) {
28
+ digits.push(carry % BASE);
29
+ carry = (carry / BASE) | 0;
30
+ }
31
+ }
32
+ for (i = 0; buffer[i] === 0 && i < buffer.length - 1; i++)
33
+ digits.push(0);
34
+ return digits
35
+ .reverse()
36
+ .map((digit) => ALPHABET[digit])
37
+ .join("");
38
+ }
39
+ function decode58(string) {
40
+ if (string.length === 0)
41
+ return [];
42
+ let i;
43
+ let j;
44
+ const bytes = [0];
45
+ for (i = 0; i < string.length; i++) {
46
+ const c = string[i];
47
+ if (!(c in ALPHABET_MAP))
48
+ throw new Error("Non-base58 character");
49
+ for (j = 0; j < bytes.length; j++)
50
+ bytes[j] *= BASE;
51
+ bytes[0] += ALPHABET_MAP[c];
52
+ let carry = 0;
53
+ for (j = 0; j < bytes.length; ++j) {
54
+ bytes[j] += carry;
55
+ carry = bytes[j] >> 8;
56
+ bytes[j] &= 0xff;
57
+ }
58
+ while (carry) {
59
+ bytes.push(carry & 0xff);
60
+ carry >>= 8;
61
+ }
62
+ }
63
+ for (i = 0; string[i] === "1" && i < string.length - 1; i++)
64
+ bytes.push(0);
65
+ return bytes.reverse();
66
+ }
67
+ //# sourceMappingURL=base58.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base58.js","sourceRoot":"","sources":["../../src/minify-tron/base58.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function byteArray2hexStr(byteArray: any): string;
2
+ export declare function byte2hexStr(byte: any): string;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // forked from https://github.com/tronprotocol/tronweb/blob/5.x/src/utils/bytes.js
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.byteArray2hexStr = byteArray2hexStr;
5
+ exports.byte2hexStr = byte2hexStr;
6
+ function byteArray2hexStr(byteArray) {
7
+ let str = "";
8
+ for (let i = 0; i < byteArray.length; i++)
9
+ str += byte2hexStr(byteArray[i]);
10
+ return str;
11
+ }
12
+ function byte2hexStr(byte) {
13
+ if (typeof byte !== "number")
14
+ throw new Error("Input must be a number");
15
+ if (byte < 0 || byte > 255)
16
+ throw new Error("Input must be a byte");
17
+ const hexByteMap = "0123456789ABCDEF";
18
+ let str = "";
19
+ str += hexByteMap.charAt(byte >> 4);
20
+ str += hexByteMap.charAt(byte & 0x0f);
21
+ return str;
22
+ }
23
+ //# sourceMappingURL=bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/minify-tron/bytes.ts"],"names":[],"mappings":";AAAA,kFAAkF;;AAElF,4CAMC;AAED,kCAYC;AApBD,SAAgB,gBAAgB,CAAC,SAAS;IACxC,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,IAAI;IAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAExE,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,kBAAkB,CAAC;IAEtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACpC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAEtC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function isHexChar(c: any): 1 | 0;
2
+ export declare function hexChar2byte(c: any): number;
3
+ export declare function hexStr2byteArray(str: any, strict?: boolean): any[];
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ // forked from https://github.com/tronprotocol/tronweb/blob/5.x/src/utils/code.js
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.isHexChar = isHexChar;
5
+ exports.hexChar2byte = hexChar2byte;
6
+ exports.hexStr2byteArray = hexStr2byteArray;
7
+ function isHexChar(c) {
8
+ if ((c >= "A" && c <= "F") || (c >= "a" && c <= "f") || (c >= "0" && c <= "9")) {
9
+ return 1;
10
+ }
11
+ return 0;
12
+ }
13
+ function hexChar2byte(c) {
14
+ let d;
15
+ if (c >= "A" && c <= "F")
16
+ d = c.charCodeAt(0) - "A".charCodeAt(0) + 10;
17
+ else if (c >= "a" && c <= "f")
18
+ d = c.charCodeAt(0) - "a".charCodeAt(0) + 10;
19
+ else if (c >= "0" && c <= "9")
20
+ d = c.charCodeAt(0) - "0".charCodeAt(0);
21
+ if (typeof d === "number")
22
+ return d;
23
+ else
24
+ throw new Error("The passed hex char is not a valid hex char");
25
+ }
26
+ function hexStr2byteArray(str, strict = false) {
27
+ if (typeof str !== "string")
28
+ throw new Error("The passed string is not a string");
29
+ let len = str.length;
30
+ if (strict) {
31
+ if (len % 2) {
32
+ str = `0${str}`;
33
+ len++;
34
+ }
35
+ }
36
+ const byteArray = [];
37
+ let d = 0;
38
+ let j = 0;
39
+ let k = 0;
40
+ for (let i = 0; i < len; i++) {
41
+ const c = str.charAt(i);
42
+ if (isHexChar(c)) {
43
+ d <<= 4;
44
+ d += hexChar2byte(c);
45
+ j++;
46
+ if (0 === j % 2) {
47
+ byteArray[k++] = d;
48
+ d = 0;
49
+ }
50
+ }
51
+ else
52
+ throw new Error("The passed hex char is not a valid hex string");
53
+ }
54
+ return byteArray;
55
+ }
56
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/minify-tron/code.ts"],"names":[],"mappings":";AAAA,iFAAiF;;AAEjF,8BAMC;AACD,oCASC;AAED,4CAgCC;AAlDD,SAAgB,SAAS,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AACD,SAAgB,YAAY,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAC;IAEN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;QAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;QAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SACvE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;QAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEvE,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;;QAC/B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAClD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAElF,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IAErB,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,GAAG,EAAE,CAAC;QACR,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,CAAC,KAAK,CAAC,CAAC;YACR,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC,EAAE,CAAC;YAEJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChB,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,GAAG,CAAC,CAAC;YACR,CAAC;QACH,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function getBase58CheckAddress(addressBytes: any): string;
2
+ export declare function isAddressValid(base58Str: any): boolean;
3
+ export declare function computeAddress(pubBytes: any): any[];
4
+ export declare function getAddressFromPriKey(priKeyBytes: any): any[];
5
+ export declare function getPubKeyFromPriKey(priKeyBytes: any): any[];
6
+ export declare function SHA256(msgBytes: any): any[];
7
+ export declare function pkToAddress(privateKey: any, strict?: boolean): string;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ // forked from https://github.com/tronprotocol/tronweb/blob/5.x/src/utils/crypto.js
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getBase58CheckAddress = getBase58CheckAddress;
5
+ exports.isAddressValid = isAddressValid;
6
+ exports.computeAddress = computeAddress;
7
+ exports.getAddressFromPriKey = getAddressFromPriKey;
8
+ exports.getPubKeyFromPriKey = getPubKeyFromPriKey;
9
+ exports.SHA256 = SHA256;
10
+ exports.pkToAddress = pkToAddress;
11
+ const address_1 = require("./address");
12
+ const code_1 = require("./code");
13
+ const base58_1 = require("./base58");
14
+ const bytes_1 = require("./bytes");
15
+ const secp256k1_1 = require("@noble/curves/secp256k1");
16
+ const { keccak256, sha256 } = require("ethers/crypto");
17
+ function normalizePrivateKeyBytes(priKeyBytes) {
18
+ return (0, code_1.hexStr2byteArray)((0, bytes_1.byteArray2hexStr)(priKeyBytes).padStart(64, "0"));
19
+ }
20
+ function getBase58CheckAddress(addressBytes) {
21
+ const hash0 = SHA256(addressBytes);
22
+ const hash1 = SHA256(hash0);
23
+ let checkSum = hash1.slice(0, 4);
24
+ checkSum = addressBytes.concat(checkSum);
25
+ return (0, base58_1.encode58)(checkSum);
26
+ }
27
+ function isAddressValid(base58Str) {
28
+ if (typeof base58Str !== "string")
29
+ return false;
30
+ if (base58Str.length !== address_1.ADDRESS_SIZE)
31
+ return false;
32
+ let address = (0, base58_1.decode58)(base58Str);
33
+ if (address.length !== 25)
34
+ return false;
35
+ if (address[0] !== address_1.ADDRESS_PREFIX_BYTE)
36
+ return false;
37
+ const checkSum = address.slice(21);
38
+ address = address.slice(0, 21);
39
+ const hash0 = SHA256(address);
40
+ const hash1 = SHA256(hash0);
41
+ const checkSum1 = hash1.slice(0, 4);
42
+ if (checkSum[0] == checkSum1[0] &&
43
+ checkSum[1] == checkSum1[1] &&
44
+ checkSum[2] == checkSum1[2] &&
45
+ checkSum[3] == checkSum1[3]) {
46
+ return true;
47
+ }
48
+ return false;
49
+ }
50
+ function computeAddress(pubBytes) {
51
+ if (pubBytes.length === 65)
52
+ pubBytes = pubBytes.slice(1);
53
+ const hash = keccak256(new Uint8Array(pubBytes))
54
+ .toString()
55
+ .substring(2);
56
+ const addressHex = address_1.ADDRESS_PREFIX + hash.substring(24);
57
+ return (0, code_1.hexStr2byteArray)(addressHex);
58
+ }
59
+ function getAddressFromPriKey(priKeyBytes) {
60
+ const pubBytes = getPubKeyFromPriKey(priKeyBytes);
61
+ return computeAddress(pubBytes);
62
+ }
63
+ function getPubKeyFromPriKey(priKeyBytes) {
64
+ const pubkey = secp256k1_1.secp256k1.ProjectivePoint.fromPrivateKey(new Uint8Array(normalizePrivateKeyBytes(priKeyBytes)));
65
+ const x = pubkey.x;
66
+ const y = pubkey.y;
67
+ const xHex = x.toString(16).padStart(64, "0");
68
+ const yHex = y.toString(16).padStart(64, "0");
69
+ const pubkeyHex = `04${xHex}${yHex}`;
70
+ const pubkeyBytes = (0, code_1.hexStr2byteArray)(pubkeyHex);
71
+ return pubkeyBytes;
72
+ }
73
+ function SHA256(msgBytes) {
74
+ const msgHex = (0, bytes_1.byteArray2hexStr)(msgBytes);
75
+ const hashHex = sha256("0x" + msgHex).replace(/^0x/, "");
76
+ return (0, code_1.hexStr2byteArray)(hashHex);
77
+ }
78
+ function pkToAddress(privateKey, strict = false) {
79
+ const com_priKeyBytes = (0, code_1.hexStr2byteArray)(privateKey, strict);
80
+ const com_addressBytes = getAddressFromPriKey(com_priKeyBytes);
81
+ return getBase58CheckAddress(com_addressBytes);
82
+ }
83
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/minify-tron/crypto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const TRON_MESSAGE_PREFIX = "\u0019TRON Signed Message:\n";
2
+ export declare function hashMessage(message: any): any;
3
+ export declare function signMessage(message: any, privateKey: any): any;
4
+ export declare function verifyMessage(message: any, signature: any): string;