quantumcoin 6.14.2 → 6.14.4

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 (161) hide show
  1. package/README.md +12 -22
  2. package/dist/README.md +1 -1
  3. package/lib.commonjs/_version.js +1 -1
  4. package/lib.commonjs/crypto/signing-key.d.ts +1 -1
  5. package/lib.commonjs/crypto/signing-key.d.ts.map +1 -1
  6. package/lib.commonjs/crypto/signing-key.js +14 -8
  7. package/lib.commonjs/crypto/signing-key.js.map +1 -1
  8. package/lib.commonjs/quantumcoin.d.ts +2 -0
  9. package/lib.commonjs/quantumcoin.d.ts.map +1 -1
  10. package/lib.commonjs/quantumcoin.js +11 -5
  11. package/lib.commonjs/quantumcoin.js.map +1 -1
  12. package/lib.commonjs/transaction/address.d.ts.map +1 -1
  13. package/lib.commonjs/transaction/address.js +8 -3
  14. package/lib.commonjs/transaction/address.js.map +1 -1
  15. package/lib.commonjs/wallet/json-keystore.d.ts.map +1 -1
  16. package/lib.commonjs/wallet/json-keystore.js +7 -7
  17. package/lib.commonjs/wallet/json-keystore.js.map +1 -1
  18. package/lib.commonjs/wallet/wallet.d.ts.map +1 -1
  19. package/lib.commonjs/wallet/wallet.js +2 -2
  20. package/lib.commonjs/wallet/wallet.js.map +1 -1
  21. package/lib.esm/_version.js +1 -1
  22. package/lib.esm/crypto/signing-key.d.ts +1 -1
  23. package/lib.esm/crypto/signing-key.d.ts.map +1 -1
  24. package/lib.esm/crypto/signing-key.js +15 -8
  25. package/lib.esm/crypto/signing-key.js.map +1 -1
  26. package/lib.esm/quantumcoin.d.ts +2 -0
  27. package/lib.esm/quantumcoin.d.ts.map +1 -1
  28. package/lib.esm/quantumcoin.js +6 -0
  29. package/lib.esm/quantumcoin.js.map +1 -1
  30. package/lib.esm/transaction/address.d.ts.map +1 -1
  31. package/lib.esm/transaction/address.js +8 -2
  32. package/lib.esm/transaction/address.js.map +1 -1
  33. package/lib.esm/wallet/json-keystore.d.ts.map +1 -1
  34. package/lib.esm/wallet/json-keystore.js +11 -5
  35. package/lib.esm/wallet/json-keystore.js.map +1 -1
  36. package/lib.esm/wallet/wallet.d.ts.map +1 -1
  37. package/lib.esm/wallet/wallet.js +3 -1
  38. package/lib.esm/wallet/wallet.js.map +1 -1
  39. package/package.json +6 -5
  40. package/src.ts/_version.ts +1 -1
  41. package/src.ts/crypto/signing-key.ts +14 -9
  42. package/src.ts/quantumcoin.ts +10 -2
  43. package/src.ts/transaction/address.ts +7 -3
  44. package/src.ts/wallet/json-keystore.ts +8 -6
  45. package/src.ts/wallet/wallet.ts +2 -3
  46. package/dist/quantumcoin.js +0 -21137
  47. package/dist/quantumcoin.js.map +0 -1
  48. package/dist/quantumcoin.min.js +0 -1
  49. package/dist/quantumcoin.min.js'.gz' +0 -0
  50. package/dist/quantumcoin.umd.js +0 -21316
  51. package/dist/quantumcoin.umd.js.map +0 -1
  52. package/dist/quantumcoin.umd.min.js +0 -1
  53. package/dist/quantumcoin.umd.min.js'.gz' +0 -0
  54. package/dist/wordlists-extra.js +0 -1500
  55. package/dist/wordlists-extra.js.map +0 -1
  56. package/dist/wordlists-extra.min.js +0 -1
  57. package/dist/wordlists-extra.min.js'.gz' +0 -0
  58. package/lib.commonjs/providers/provider-alchemy.d.ts +0 -50
  59. package/lib.commonjs/providers/provider-alchemy.d.ts.map +0 -1
  60. package/lib.commonjs/providers/provider-alchemy.js +0 -151
  61. package/lib.commonjs/providers/provider-alchemy.js.map +0 -1
  62. package/lib.commonjs/providers/provider-ankr.d.ts +0 -61
  63. package/lib.commonjs/providers/provider-ankr.d.ts.map +0 -1
  64. package/lib.commonjs/providers/provider-ankr.js +0 -137
  65. package/lib.commonjs/providers/provider-ankr.js.map +0 -1
  66. package/lib.commonjs/providers/provider-blockscout.d.ts +0 -59
  67. package/lib.commonjs/providers/provider-blockscout.d.ts.map +0 -1
  68. package/lib.commonjs/providers/provider-blockscout.js +0 -145
  69. package/lib.commonjs/providers/provider-blockscout.js.map +0 -1
  70. package/lib.commonjs/providers/provider-chainstack.d.ts +0 -46
  71. package/lib.commonjs/providers/provider-chainstack.d.ts.map +0 -1
  72. package/lib.commonjs/providers/provider-chainstack.js +0 -102
  73. package/lib.commonjs/providers/provider-chainstack.js.map +0 -1
  74. package/lib.commonjs/providers/provider-cloudflare.d.ts +0 -14
  75. package/lib.commonjs/providers/provider-cloudflare.d.ts.map +0 -1
  76. package/lib.commonjs/providers/provider-cloudflare.js +0 -26
  77. package/lib.commonjs/providers/provider-cloudflare.js.map +0 -1
  78. package/lib.commonjs/providers/provider-etherscan.d.ts +0 -147
  79. package/lib.commonjs/providers/provider-etherscan.d.ts.map +0 -1
  80. package/lib.commonjs/providers/provider-etherscan.js +0 -587
  81. package/lib.commonjs/providers/provider-etherscan.js.map +0 -1
  82. package/lib.commonjs/providers/provider-infura.d.ts +0 -101
  83. package/lib.commonjs/providers/provider-infura.d.ts.map +0 -1
  84. package/lib.commonjs/providers/provider-infura.js +0 -206
  85. package/lib.commonjs/providers/provider-infura.js.map +0 -1
  86. package/lib.commonjs/providers/provider-pocket.d.ts +0 -54
  87. package/lib.commonjs/providers/provider-pocket.d.ts.map +0 -1
  88. package/lib.commonjs/providers/provider-pocket.js +0 -109
  89. package/lib.commonjs/providers/provider-pocket.js.map +0 -1
  90. package/lib.commonjs/providers/provider-quicknode.d.ts +0 -59
  91. package/lib.commonjs/providers/provider-quicknode.d.ts.map +0 -1
  92. package/lib.commonjs/providers/provider-quicknode.js +0 -163
  93. package/lib.commonjs/providers/provider-quicknode.js.map +0 -1
  94. package/lib.commonjs/wallet/hdwallet.d.ts +0 -248
  95. package/lib.commonjs/wallet/hdwallet.d.ts.map +0 -1
  96. package/lib.commonjs/wallet/hdwallet.js +0 -505
  97. package/lib.commonjs/wallet/hdwallet.js.map +0 -1
  98. package/lib.commonjs/wallet/json-crowdsale.d.ts +0 -27
  99. package/lib.commonjs/wallet/json-crowdsale.d.ts.map +0 -1
  100. package/lib.commonjs/wallet/json-crowdsale.js +0 -60
  101. package/lib.commonjs/wallet/json-crowdsale.js.map +0 -1
  102. package/lib.commonjs/wallet/mnemonic.d.ts +0 -65
  103. package/lib.commonjs/wallet/mnemonic.d.ts.map +0 -1
  104. package/lib.commonjs/wallet/mnemonic.js +0 -169
  105. package/lib.commonjs/wallet/mnemonic.js.map +0 -1
  106. package/lib.commonjs/wallet/seedwallet.d.ts +0 -4
  107. package/lib.commonjs/wallet/seedwallet.d.ts.map +0 -1
  108. package/lib.commonjs/wallet/seedwallet.js +0 -8
  109. package/lib.commonjs/wallet/seedwallet.js.map +0 -1
  110. package/lib.esm/providers/provider-alchemy.d.ts +0 -50
  111. package/lib.esm/providers/provider-alchemy.d.ts.map +0 -1
  112. package/lib.esm/providers/provider-alchemy.js +0 -147
  113. package/lib.esm/providers/provider-alchemy.js.map +0 -1
  114. package/lib.esm/providers/provider-ankr.d.ts +0 -61
  115. package/lib.esm/providers/provider-ankr.d.ts.map +0 -1
  116. package/lib.esm/providers/provider-ankr.js +0 -133
  117. package/lib.esm/providers/provider-ankr.js.map +0 -1
  118. package/lib.esm/providers/provider-blockscout.d.ts +0 -59
  119. package/lib.esm/providers/provider-blockscout.d.ts.map +0 -1
  120. package/lib.esm/providers/provider-blockscout.js +0 -141
  121. package/lib.esm/providers/provider-blockscout.js.map +0 -1
  122. package/lib.esm/providers/provider-chainstack.d.ts +0 -46
  123. package/lib.esm/providers/provider-chainstack.d.ts.map +0 -1
  124. package/lib.esm/providers/provider-chainstack.js +0 -98
  125. package/lib.esm/providers/provider-chainstack.js.map +0 -1
  126. package/lib.esm/providers/provider-cloudflare.d.ts +0 -14
  127. package/lib.esm/providers/provider-cloudflare.d.ts.map +0 -1
  128. package/lib.esm/providers/provider-cloudflare.js +0 -22
  129. package/lib.esm/providers/provider-cloudflare.js.map +0 -1
  130. package/lib.esm/providers/provider-etherscan.d.ts +0 -147
  131. package/lib.esm/providers/provider-etherscan.d.ts.map +0 -1
  132. package/lib.esm/providers/provider-etherscan.js +0 -584
  133. package/lib.esm/providers/provider-etherscan.js.map +0 -1
  134. package/lib.esm/providers/provider-infura.d.ts +0 -101
  135. package/lib.esm/providers/provider-infura.d.ts.map +0 -1
  136. package/lib.esm/providers/provider-infura.js +0 -201
  137. package/lib.esm/providers/provider-infura.js.map +0 -1
  138. package/lib.esm/providers/provider-pocket.d.ts +0 -54
  139. package/lib.esm/providers/provider-pocket.d.ts.map +0 -1
  140. package/lib.esm/providers/provider-pocket.js +0 -105
  141. package/lib.esm/providers/provider-pocket.js.map +0 -1
  142. package/lib.esm/providers/provider-quicknode.d.ts +0 -59
  143. package/lib.esm/providers/provider-quicknode.d.ts.map +0 -1
  144. package/lib.esm/providers/provider-quicknode.js +0 -159
  145. package/lib.esm/providers/provider-quicknode.js.map +0 -1
  146. package/lib.esm/wallet/hdwallet.d.ts +0 -248
  147. package/lib.esm/wallet/hdwallet.d.ts.map +0 -1
  148. package/lib.esm/wallet/hdwallet.js +0 -498
  149. package/lib.esm/wallet/hdwallet.js.map +0 -1
  150. package/lib.esm/wallet/json-crowdsale.d.ts +0 -27
  151. package/lib.esm/wallet/json-crowdsale.d.ts.map +0 -1
  152. package/lib.esm/wallet/json-crowdsale.js +0 -55
  153. package/lib.esm/wallet/json-crowdsale.js.map +0 -1
  154. package/lib.esm/wallet/mnemonic.d.ts +0 -65
  155. package/lib.esm/wallet/mnemonic.d.ts.map +0 -1
  156. package/lib.esm/wallet/mnemonic.js +0 -165
  157. package/lib.esm/wallet/mnemonic.js.map +0 -1
  158. package/lib.esm/wallet/seedwallet.d.ts +0 -4
  159. package/lib.esm/wallet/seedwallet.d.ts.map +0 -1
  160. package/lib.esm/wallet/seedwallet.js +0 -4
  161. package/lib.esm/wallet/seedwallet.js.map +0 -1
@@ -1,505 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getIndexedAccountPath = exports.getAccountPath = exports.HDNodeVoidWallet = exports.HDNodeWallet = exports.defaultPath = void 0;
4
- /**
5
- * Explain HD Wallets..
6
- *
7
- * @_subsection: api/wallet:HD Wallets [hd-wallets]
8
- */
9
- const index_js_1 = require("../crypto/index.js");
10
- const index_js_2 = require("../providers/index.js");
11
- const index_js_3 = require("../transaction/index.js");
12
- const index_js_4 = require("../utils/index.js");
13
- const lang_en_js_1 = require("../wordlists/lang-en.js");
14
- const base_wallet_js_1 = require("./base-wallet.js");
15
- const mnemonic_js_1 = require("./mnemonic.js");
16
- const json_keystore_js_1 = require("./json-keystore.js");
17
- /**
18
- * The default derivation path for Ethereum HD Nodes. (i.e. ``"m/44'/60'/0'/0/0"``)
19
- */
20
- exports.defaultPath = "m/44'/60'/0'/0/0";
21
- // "Bitcoin seed"
22
- const MasterSecret = new Uint8Array([66, 105, 116, 99, 111, 105, 110, 32, 115, 101, 101, 100]);
23
- const HardenedBit = 0x80000000;
24
- const N = BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");
25
- const Nibbles = "0123456789abcdef";
26
- function zpad(value, length) {
27
- let result = "";
28
- while (value) {
29
- result = Nibbles[value % 16] + result;
30
- value = Math.trunc(value / 16);
31
- }
32
- while (result.length < length * 2) {
33
- result = "0" + result;
34
- }
35
- return "0x" + result;
36
- }
37
- function encodeBase58Check(_value) {
38
- const value = (0, index_js_4.getBytes)(_value);
39
- const check = (0, index_js_4.dataSlice)((0, index_js_1.sha256)((0, index_js_1.sha256)(value)), 0, 4);
40
- const bytes = (0, index_js_4.concat)([value, check]);
41
- return (0, index_js_4.encodeBase58)(bytes);
42
- }
43
- const _guard = {};
44
- function ser_I(index, chainCode, publicKey, privateKey) {
45
- const data = new Uint8Array(37);
46
- if (index & HardenedBit) {
47
- (0, index_js_4.assert)(privateKey != null, "cannot derive child of neutered node", "UNSUPPORTED_OPERATION", {
48
- operation: "deriveChild"
49
- });
50
- // Data = 0x00 || ser_256(k_par)
51
- data.set((0, index_js_4.getBytes)(privateKey), 1);
52
- }
53
- else {
54
- // Data = ser_p(point(k_par))
55
- data.set((0, index_js_4.getBytes)(publicKey));
56
- }
57
- // Data += ser_32(i)
58
- for (let i = 24; i >= 0; i -= 8) {
59
- data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff);
60
- }
61
- const I = (0, index_js_4.getBytes)((0, index_js_1.computeHmac)("sha512", chainCode, data));
62
- return { IL: I.slice(0, 32), IR: I.slice(32) };
63
- }
64
- function derivePath(node, path) {
65
- const components = path.split("/");
66
- (0, index_js_4.assertArgument)(components.length > 0, "invalid path", "path", path);
67
- if (components[0] === "m") {
68
- (0, index_js_4.assertArgument)(node.depth === 0, `cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${node.depth}`, "path", path);
69
- components.shift();
70
- }
71
- let result = node;
72
- for (let i = 0; i < components.length; i++) {
73
- const component = components[i];
74
- if (component.match(/^[0-9]+'$/)) {
75
- const index = parseInt(component.substring(0, component.length - 1));
76
- (0, index_js_4.assertArgument)(index < HardenedBit, "invalid path index", `path[${i}]`, component);
77
- result = result.deriveChild(HardenedBit + index);
78
- }
79
- else if (component.match(/^[0-9]+$/)) {
80
- const index = parseInt(component);
81
- (0, index_js_4.assertArgument)(index < HardenedBit, "invalid path index", `path[${i}]`, component);
82
- result = result.deriveChild(index);
83
- }
84
- else {
85
- (0, index_js_4.assertArgument)(false, "invalid path component", `path[${i}]`, component);
86
- }
87
- }
88
- return result;
89
- }
90
- /**
91
- * An **HDNodeWallet** is a [[Signer]] backed by the private key derived
92
- * from an HD Node using the [[link-bip-32]] stantard.
93
- *
94
- * An HD Node forms a hierarchal structure with each HD Node having a
95
- * private key and the ability to derive child HD Nodes, defined by
96
- * a path indicating the index of each child.
97
- */
98
- class HDNodeWallet extends base_wallet_js_1.BaseWallet {
99
- /**
100
- * The compressed public key.
101
- */
102
- publicKey;
103
- /**
104
- * The fingerprint.
105
- *
106
- * A fingerprint allows quick qay to detect parent and child nodes,
107
- * but developers should be prepared to deal with collisions as it
108
- * is only 4 bytes.
109
- */
110
- fingerprint;
111
- /**
112
- * The parent fingerprint.
113
- */
114
- parentFingerprint;
115
- /**
116
- * The mnemonic used to create this HD Node, if available.
117
- *
118
- * Sources such as extended keys do not encode the mnemonic, in
119
- * which case this will be ``null``.
120
- */
121
- mnemonic;
122
- /**
123
- * The chaincode, which is effectively a public key used
124
- * to derive children.
125
- */
126
- chainCode;
127
- /**
128
- * The derivation path of this wallet.
129
- *
130
- * Since extended keys do not provide full path details, this
131
- * may be ``null``, if instantiated from a source that does not
132
- * encode it.
133
- */
134
- path;
135
- /**
136
- * The child index of this wallet. Values over ``2 *\* 31`` indicate
137
- * the node is hardened.
138
- */
139
- index;
140
- /**
141
- * The depth of this wallet, which is the number of components
142
- * in its path.
143
- */
144
- depth;
145
- /**
146
- * @private
147
- */
148
- constructor(guard, signingKey, parentFingerprint, chainCode, path, index, depth, mnemonic, provider) {
149
- super(signingKey, provider);
150
- (0, index_js_4.assertPrivate)(guard, _guard, "HDNodeWallet");
151
- (0, index_js_4.defineProperties)(this, { publicKey: signingKey.publicKey });
152
- const fingerprint = (0, index_js_4.dataSlice)((0, index_js_1.ripemd160)((0, index_js_1.sha256)(this.publicKey)), 0, 4);
153
- (0, index_js_4.defineProperties)(this, {
154
- parentFingerprint, fingerprint,
155
- chainCode, path, index, depth
156
- });
157
- (0, index_js_4.defineProperties)(this, { mnemonic });
158
- }
159
- connect(provider) {
160
- return new HDNodeWallet(_guard, this.signingKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, this.mnemonic, provider);
161
- }
162
- #account() {
163
- const account = { address: this.address, privateKey: this.privateKey };
164
- const m = this.mnemonic;
165
- if (this.path && m && m.wordlist.locale === "en" && m.password === "") {
166
- account.mnemonic = {
167
- path: this.path,
168
- locale: "en",
169
- entropy: m.entropy
170
- };
171
- }
172
- return account;
173
- }
174
- /**
175
- * Resolves to a [JSON Keystore Wallet](json-wallets) encrypted with
176
- * %%password%%.
177
- *
178
- * If %%progressCallback%% is specified, it will receive periodic
179
- * updates as the encryption process progreses.
180
- */
181
- async encrypt(password, progressCallback) {
182
- return await (0, json_keystore_js_1.encryptKeystoreJson)(this.#account(), password, { progressCallback });
183
- }
184
- /**
185
- * Returns a [JSON Keystore Wallet](json-wallets) encryped with
186
- * %%password%%.
187
- *
188
- * It is preferred to use the [async version](encrypt) instead,
189
- * which allows a [[ProgressCallback]] to keep the user informed.
190
- *
191
- * This method will block the event loop (freezing all UI) until
192
- * it is complete, which may be a non-trivial duration.
193
- */
194
- encryptSync(password) {
195
- return (0, json_keystore_js_1.encryptKeystoreJsonSync)(this.#account(), password);
196
- }
197
- /**
198
- * The extended key.
199
- *
200
- * This key will begin with the prefix ``xpriv`` and can be used to
201
- * reconstruct this HD Node to derive its children.
202
- */
203
- get extendedKey() {
204
- // We only support the mainnet values for now, but if anyone needs
205
- // testnet values, let me know. I believe current sentiment is that
206
- // we should always use mainnet, and use BIP-44 to derive the network
207
- // - Mainnet: public=0x0488B21E, private=0x0488ADE4
208
- // - Testnet: public=0x043587CF, private=0x04358394
209
- (0, index_js_4.assert)(this.depth < 256, "Depth too deep", "UNSUPPORTED_OPERATION", { operation: "extendedKey" });
210
- return encodeBase58Check((0, index_js_4.concat)([
211
- "0x0488ADE4", zpad(this.depth, 1), this.parentFingerprint,
212
- zpad(this.index, 4), this.chainCode,
213
- (0, index_js_4.concat)(["0x00", this.privateKey])
214
- ]));
215
- }
216
- /**
217
- * Returns true if this wallet has a path, providing a Type Guard
218
- * that the path is non-null.
219
- */
220
- hasPath() { return (this.path != null); }
221
- /**
222
- * Returns a neutered HD Node, which removes the private details
223
- * of an HD Node.
224
- *
225
- * A neutered node has no private key, but can be used to derive
226
- * child addresses and other public data about the HD Node.
227
- */
228
- neuter() {
229
- return new HDNodeVoidWallet(_guard, this.address, this.publicKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, this.provider);
230
- }
231
- /**
232
- * Return the child for %%index%%.
233
- */
234
- deriveChild(_index) {
235
- const index = (0, index_js_4.getNumber)(_index, "index");
236
- (0, index_js_4.assertArgument)(index <= 0xffffffff, "invalid index", "index", index);
237
- // Base path
238
- let path = this.path;
239
- if (path) {
240
- path += "/" + (index & ~HardenedBit);
241
- if (index & HardenedBit) {
242
- path += "'";
243
- }
244
- }
245
- const { IR, IL } = ser_I(index, this.chainCode, this.publicKey, this.privateKey);
246
- const ki = new index_js_1.SigningKey((0, index_js_4.toBeHex)(((0, index_js_4.toBigInt)(IL) + BigInt(this.privateKey)) % N, 32));
247
- return new HDNodeWallet(_guard, ki, this.fingerprint, (0, index_js_4.hexlify)(IR), path, index, this.depth + 1, this.mnemonic, this.provider);
248
- }
249
- /**
250
- * Return the HDNode for %%path%% from this node.
251
- */
252
- derivePath(path) {
253
- return derivePath(this, path);
254
- }
255
- static #fromSeed(_seed, mnemonic) {
256
- (0, index_js_4.assertArgument)((0, index_js_4.isBytesLike)(_seed), "invalid seed", "seed", "[REDACTED]");
257
- const seed = (0, index_js_4.getBytes)(_seed, "seed");
258
- (0, index_js_4.assertArgument)(seed.length >= 16 && seed.length <= 64, "invalid seed", "seed", "[REDACTED]");
259
- const I = (0, index_js_4.getBytes)((0, index_js_1.computeHmac)("sha512", MasterSecret, seed));
260
- const signingKey = new index_js_1.SigningKey((0, index_js_4.hexlify)(I.slice(0, 32)));
261
- return new HDNodeWallet(_guard, signingKey, "0x00000000", (0, index_js_4.hexlify)(I.slice(32)), "m", 0, 0, mnemonic, null);
262
- }
263
- /**
264
- * Creates a new HD Node from %%extendedKey%%.
265
- *
266
- * If the %%extendedKey%% will either have a prefix or ``xpub`` or
267
- * ``xpriv``, returning a neutered HD Node ([[HDNodeVoidWallet]])
268
- * or full HD Node ([[HDNodeWallet) respectively.
269
- */
270
- static fromExtendedKey(extendedKey) {
271
- const bytes = (0, index_js_4.toBeArray)((0, index_js_4.decodeBase58)(extendedKey)); // @TODO: redact
272
- (0, index_js_4.assertArgument)(bytes.length === 82 || encodeBase58Check(bytes.slice(0, 78)) === extendedKey, "invalid extended key", "extendedKey", "[ REDACTED ]");
273
- const depth = bytes[4];
274
- const parentFingerprint = (0, index_js_4.hexlify)(bytes.slice(5, 9));
275
- const index = parseInt((0, index_js_4.hexlify)(bytes.slice(9, 13)).substring(2), 16);
276
- const chainCode = (0, index_js_4.hexlify)(bytes.slice(13, 45));
277
- const key = bytes.slice(45, 78);
278
- switch ((0, index_js_4.hexlify)(bytes.slice(0, 4))) {
279
- // Public Key
280
- case "0x0488b21e":
281
- case "0x043587cf": {
282
- const publicKey = (0, index_js_4.hexlify)(key);
283
- return new HDNodeVoidWallet(_guard, (0, index_js_3.computeAddress)(publicKey), publicKey, parentFingerprint, chainCode, null, index, depth, null);
284
- }
285
- // Private Key
286
- case "0x0488ade4":
287
- case "0x04358394 ":
288
- if (key[0] !== 0) {
289
- break;
290
- }
291
- return new HDNodeWallet(_guard, new index_js_1.SigningKey(key.slice(1)), parentFingerprint, chainCode, null, index, depth, null, null);
292
- }
293
- (0, index_js_4.assertArgument)(false, "invalid extended key prefix", "extendedKey", "[ REDACTED ]");
294
- }
295
- /**
296
- * Creates a new random HDNode.
297
- */
298
- static createRandom(password, path, wordlist) {
299
- if (password == null) {
300
- password = "";
301
- }
302
- if (path == null) {
303
- path = exports.defaultPath;
304
- }
305
- if (wordlist == null) {
306
- wordlist = lang_en_js_1.LangEn.wordlist();
307
- }
308
- const mnemonic = mnemonic_js_1.Mnemonic.fromEntropy((0, index_js_1.randomBytes)(16), password, wordlist);
309
- return HDNodeWallet.#fromSeed(mnemonic.computeSeed(), mnemonic).derivePath(path);
310
- }
311
- /**
312
- * Create an HD Node from %%mnemonic%%.
313
- */
314
- static fromMnemonic(mnemonic, path) {
315
- if (!path) {
316
- path = exports.defaultPath;
317
- }
318
- return HDNodeWallet.#fromSeed(mnemonic.computeSeed(), mnemonic).derivePath(path);
319
- }
320
- /**
321
- * Creates an HD Node from a mnemonic %%phrase%%.
322
- */
323
- static fromPhrase(phrase, password, path, wordlist) {
324
- if (password == null) {
325
- password = "";
326
- }
327
- if (path == null) {
328
- path = exports.defaultPath;
329
- }
330
- if (wordlist == null) {
331
- wordlist = lang_en_js_1.LangEn.wordlist();
332
- }
333
- const mnemonic = mnemonic_js_1.Mnemonic.fromPhrase(phrase, password, wordlist);
334
- return HDNodeWallet.#fromSeed(mnemonic.computeSeed(), mnemonic).derivePath(path);
335
- }
336
- /**
337
- * Creates an HD Node from a %%seed%%.
338
- */
339
- static fromSeed(seed) {
340
- return HDNodeWallet.#fromSeed(seed, null);
341
- }
342
- }
343
- exports.HDNodeWallet = HDNodeWallet;
344
- /**
345
- * A **HDNodeVoidWallet** cannot sign, but provides access to
346
- * the children nodes of a [[link-bip-32]] HD wallet addresses.
347
- *
348
- * The can be created by using an extended ``xpub`` key to
349
- * [[HDNodeWallet_fromExtendedKey]] or by
350
- * [nuetering](HDNodeWallet-neuter) a [[HDNodeWallet]].
351
- */
352
- class HDNodeVoidWallet extends index_js_2.VoidSigner {
353
- /**
354
- * The compressed public key.
355
- */
356
- publicKey;
357
- /**
358
- * The fingerprint.
359
- *
360
- * A fingerprint allows quick qay to detect parent and child nodes,
361
- * but developers should be prepared to deal with collisions as it
362
- * is only 4 bytes.
363
- */
364
- fingerprint;
365
- /**
366
- * The parent node fingerprint.
367
- */
368
- parentFingerprint;
369
- /**
370
- * The chaincode, which is effectively a public key used
371
- * to derive children.
372
- */
373
- chainCode;
374
- /**
375
- * The derivation path of this wallet.
376
- *
377
- * Since extended keys do not provider full path details, this
378
- * may be ``null``, if instantiated from a source that does not
379
- * enocde it.
380
- */
381
- path;
382
- /**
383
- * The child index of this wallet. Values over ``2 *\* 31`` indicate
384
- * the node is hardened.
385
- */
386
- index;
387
- /**
388
- * The depth of this wallet, which is the number of components
389
- * in its path.
390
- */
391
- depth;
392
- /**
393
- * @private
394
- */
395
- constructor(guard, address, publicKey, parentFingerprint, chainCode, path, index, depth, provider) {
396
- super(address, provider);
397
- (0, index_js_4.assertPrivate)(guard, _guard, "HDNodeVoidWallet");
398
- (0, index_js_4.defineProperties)(this, { publicKey });
399
- const fingerprint = (0, index_js_4.dataSlice)((0, index_js_1.ripemd160)((0, index_js_1.sha256)(publicKey)), 0, 4);
400
- (0, index_js_4.defineProperties)(this, {
401
- publicKey, fingerprint, parentFingerprint, chainCode, path, index, depth
402
- });
403
- }
404
- connect(provider) {
405
- return new HDNodeVoidWallet(_guard, this.address, this.publicKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, provider);
406
- }
407
- /**
408
- * The extended key.
409
- *
410
- * This key will begin with the prefix ``xpub`` and can be used to
411
- * reconstruct this neutered key to derive its children addresses.
412
- */
413
- get extendedKey() {
414
- // We only support the mainnet values for now, but if anyone needs
415
- // testnet values, let me know. I believe current sentiment is that
416
- // we should always use mainnet, and use BIP-44 to derive the network
417
- // - Mainnet: public=0x0488B21E, private=0x0488ADE4
418
- // - Testnet: public=0x043587CF, private=0x04358394
419
- (0, index_js_4.assert)(this.depth < 256, "Depth too deep", "UNSUPPORTED_OPERATION", { operation: "extendedKey" });
420
- return encodeBase58Check((0, index_js_4.concat)([
421
- "0x0488B21E",
422
- zpad(this.depth, 1),
423
- this.parentFingerprint,
424
- zpad(this.index, 4),
425
- this.chainCode,
426
- this.publicKey,
427
- ]));
428
- }
429
- /**
430
- * Returns true if this wallet has a path, providing a Type Guard
431
- * that the path is non-null.
432
- */
433
- hasPath() { return (this.path != null); }
434
- /**
435
- * Return the child for %%index%%.
436
- */
437
- deriveChild(_index) {
438
- const index = (0, index_js_4.getNumber)(_index, "index");
439
- (0, index_js_4.assertArgument)(index <= 0xffffffff, "invalid index", "index", index);
440
- // Base path
441
- let path = this.path;
442
- if (path) {
443
- path += "/" + (index & ~HardenedBit);
444
- if (index & HardenedBit) {
445
- path += "'";
446
- }
447
- }
448
- const Ki = "";
449
- const address = "";
450
- return new HDNodeVoidWallet(_guard, address, Ki, this.fingerprint, (0, index_js_4.hexlify)(""), path, index, this.depth + 1, this.provider);
451
- }
452
- /**
453
- * Return the signer for %%path%% from this node.
454
- */
455
- derivePath(path) {
456
- return derivePath(this, path);
457
- }
458
- }
459
- exports.HDNodeVoidWallet = HDNodeVoidWallet;
460
- /*
461
- export class HDNodeWalletManager {
462
- #root: HDNodeWallet;
463
-
464
- constructor(phrase: string, password?: null | string, path?: null | string, locale?: null | Wordlist) {
465
- if (password == null) { password = ""; }
466
- if (path == null) { path = "m/44'/60'/0'/0"; }
467
- if (locale == null) { locale = LangEn.wordlist(); }
468
- this.#root = HDNodeWallet.fromPhrase(phrase, password, path, locale);
469
- }
470
-
471
- getSigner(index?: number): HDNodeWallet {
472
- return this.#root.deriveChild((index == null) ? 0: index);
473
- }
474
- }
475
- */
476
- /**
477
- * Returns the [[link-bip-32]] path for the account at %%index%%.
478
- *
479
- * This is the pattern used by wallets like Ledger.
480
- *
481
- * There is also an [alternate pattern](getIndexedAccountPath) used by
482
- * some software.
483
- */
484
- function getAccountPath(_index) {
485
- const index = (0, index_js_4.getNumber)(_index, "index");
486
- (0, index_js_4.assertArgument)(index >= 0 && index < HardenedBit, "invalid account index", "index", index);
487
- return `m/44'/60'/${index}'/0/0`;
488
- }
489
- exports.getAccountPath = getAccountPath;
490
- /**
491
- * Returns the path using an alternative pattern for deriving accounts,
492
- * at %%index%%.
493
- *
494
- * This derivation path uses the //index// component rather than the
495
- * //account// component to derive sequential accounts.
496
- *
497
- * This is the pattern used by wallets like MetaMask.
498
- */
499
- function getIndexedAccountPath(_index) {
500
- const index = (0, index_js_4.getNumber)(_index, "index");
501
- (0, index_js_4.assertArgument)(index >= 0 && index < HardenedBit, "invalid account index", "index", index);
502
- return `m/44'/60'/0'/0/${index}`;
503
- }
504
- exports.getIndexedAccountPath = getIndexedAccountPath;
505
- //# sourceMappingURL=hdwallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hdwallet.js","sourceRoot":"","sources":["../../src.ts/wallet/hdwallet.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * @_subsection: api/wallet:JSON Wallets [json-wallets]
3
- */
4
- /**
5
- * The data stored within a JSON Crowdsale wallet is fairly
6
- * minimal.
7
- */
8
- export type CrowdsaleAccount = {
9
- privateKey: string;
10
- address: string;
11
- };
12
- /**
13
- * Returns true if %%json%% is a valid JSON Crowdsale wallet.
14
- */
15
- export declare function isCrowdsaleJson(json: string): boolean;
16
- /**
17
- * Before Ethereum launched, it was necessary to create a wallet
18
- * format for backers to use, which would be used to receive ether
19
- * as a reward for contributing to the project.
20
- *
21
- * The [[link-crowdsale]] format is now obsolete, but it is still
22
- * useful to support and the additional code is fairly trivial as
23
- * all the primitives required are used through core portions of
24
- * the library.
25
- */
26
- export declare function decryptCrowdsaleJson(json: string, _password: string | Uint8Array): CrowdsaleAccount;
27
- //# sourceMappingURL=json-crowdsale.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-crowdsale.d.ts","sourceRoot":"","sources":["../../src.ts/wallet/json-crowdsale.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMrD;AAID;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,gBAAgB,CA2BnG"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- /**
3
- * @_subsection: api/wallet:JSON Wallets [json-wallets]
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.decryptCrowdsaleJson = exports.isCrowdsaleJson = void 0;
7
- const aes_js_1 = require("aes-js");
8
- const index_js_1 = require("../address/index.js");
9
- const index_js_2 = require("../crypto/index.js");
10
- const index_js_3 = require("../hash/index.js");
11
- const index_js_4 = require("../utils/index.js");
12
- const utils_js_1 = require("./utils.js");
13
- /**
14
- * Returns true if %%json%% is a valid JSON Crowdsale wallet.
15
- */
16
- function isCrowdsaleJson(json) {
17
- try {
18
- const data = JSON.parse(json);
19
- if (data.encseed) {
20
- return true;
21
- }
22
- }
23
- catch (error) { }
24
- return false;
25
- }
26
- exports.isCrowdsaleJson = isCrowdsaleJson;
27
- // See: https://github.com/ethereum/pyethsaletool
28
- /**
29
- * Before Ethereum launched, it was necessary to create a wallet
30
- * format for backers to use, which would be used to receive ether
31
- * as a reward for contributing to the project.
32
- *
33
- * The [[link-crowdsale]] format is now obsolete, but it is still
34
- * useful to support and the additional code is fairly trivial as
35
- * all the primitives required are used through core portions of
36
- * the library.
37
- */
38
- function decryptCrowdsaleJson(json, _password) {
39
- const data = JSON.parse(json);
40
- const password = (0, utils_js_1.getPassword)(_password);
41
- // Ethereum Address
42
- const address = (0, index_js_1.getAddress)((0, utils_js_1.spelunk)(data, "ethaddr:string!"));
43
- // Encrypted Seed
44
- const encseed = (0, utils_js_1.looseArrayify)((0, utils_js_1.spelunk)(data, "encseed:string!"));
45
- (0, index_js_4.assertArgument)(encseed && (encseed.length % 16) === 0, "invalid encseed", "json", json);
46
- const key = (0, index_js_4.getBytes)((0, index_js_2.pbkdf2)(password, password, 2000, 32, "sha256")).slice(0, 16);
47
- const iv = encseed.slice(0, 16);
48
- const encryptedSeed = encseed.slice(16);
49
- // Decrypt the seed
50
- const aesCbc = new aes_js_1.CBC(key, iv);
51
- const seed = (0, aes_js_1.pkcs7Strip)((0, index_js_4.getBytes)(aesCbc.decrypt(encryptedSeed)));
52
- // This wallet format is weird... Convert the binary encoded hex to a string.
53
- let seedHex = "";
54
- for (let i = 0; i < seed.length; i++) {
55
- seedHex += String.fromCharCode(seed[i]);
56
- }
57
- return { address, privateKey: (0, index_js_3.id)(seedHex) };
58
- }
59
- exports.decryptCrowdsaleJson = decryptCrowdsaleJson;
60
- //# sourceMappingURL=json-crowdsale.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-crowdsale.js","sourceRoot":"","sources":["../../src.ts/wallet/json-crowdsale.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mCAAyC;AAEzC,kDAAiD;AACjD,iDAA4C;AAC5C,+CAAsC;AACtC,gDAA6D;AAE7D,yCAAiE;AAYjE;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAY;IACxC,IAAI;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO,IAAI,CAAC;SAAE;KACrC;IAAC,OAAO,KAAK,EAAE,GAAG;IACnB,OAAO,KAAK,CAAC;AACjB,CAAC;AAND,0CAMC;AAED,iDAAiD;AAEjD;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAAC,IAAY,EAAE,SAA8B;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAA,sBAAW,EAAC,SAAS,CAAC,CAAC;IAExC,mBAAmB;IACnB,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAA,kBAAO,EAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE7D,iBAAiB;IACjB,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,IAAA,kBAAO,EAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAChE,IAAA,yBAAc,EAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAExF,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,IAAA,iBAAM,EAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElF,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAExC,mBAAmB;IACnB,MAAM,MAAM,GAAG,IAAI,YAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,IAAA,mBAAQ,EAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjE,6EAA6E;IAC7E,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3C;IAED,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAA,aAAE,EAAC,OAAO,CAAC,EAAE,CAAC;AAChD,CAAC;AA3BD,oDA2BC"}