quantumcoin 6.14.1 → 6.14.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 (141) hide show
  1. package/README.md +2 -0
  2. package/dist/quantumcoin.js +2697 -7812
  3. package/dist/quantumcoin.js.map +1 -1
  4. package/dist/quantumcoin.min.js +1 -1
  5. package/dist/quantumcoin.min.js'.gz' +0 -0
  6. package/dist/quantumcoin.umd.js +2698 -7835
  7. package/dist/quantumcoin.umd.js.map +1 -1
  8. package/dist/quantumcoin.umd.min.js +1 -1
  9. package/dist/quantumcoin.umd.min.js'.gz' +0 -0
  10. package/dist/wordlists-extra.min.js'.gz' +0 -0
  11. package/lib.commonjs/address/address.d.ts +1 -21
  12. package/lib.commonjs/address/address.d.ts.map +1 -1
  13. package/lib.commonjs/address/address.js +2 -30
  14. package/lib.commonjs/address/address.js.map +1 -1
  15. package/lib.commonjs/address/index.d.ts +1 -1
  16. package/lib.commonjs/address/index.d.ts.map +1 -1
  17. package/lib.commonjs/address/index.js +1 -2
  18. package/lib.commonjs/address/index.js.map +1 -1
  19. package/lib.commonjs/crypto/signature.d.ts +4 -17
  20. package/lib.commonjs/crypto/signature.d.ts.map +1 -1
  21. package/lib.commonjs/crypto/signature.js +57 -60
  22. package/lib.commonjs/crypto/signature.js.map +1 -1
  23. package/lib.commonjs/crypto/signing-key.d.ts +5 -64
  24. package/lib.commonjs/crypto/signing-key.d.ts.map +1 -1
  25. package/lib.commonjs/crypto/signing-key.js +27 -101
  26. package/lib.commonjs/crypto/signing-key.js.map +1 -1
  27. package/lib.commonjs/providers/default-provider.d.ts +0 -8
  28. package/lib.commonjs/providers/default-provider.d.ts.map +1 -1
  29. package/lib.commonjs/providers/default-provider.js +0 -108
  30. package/lib.commonjs/providers/default-provider.js.map +1 -1
  31. package/lib.commonjs/providers/index.d.ts +0 -9
  32. package/lib.commonjs/providers/index.d.ts.map +1 -1
  33. package/lib.commonjs/providers/index.js +1 -21
  34. package/lib.commonjs/providers/index.js.map +1 -1
  35. package/lib.commonjs/providers/network.js +1 -99
  36. package/lib.commonjs/providers/network.js.map +1 -1
  37. package/lib.commonjs/quantumcoin.d.ts +4 -4
  38. package/lib.commonjs/quantumcoin.d.ts.map +1 -1
  39. package/lib.commonjs/quantumcoin.js +4 -26
  40. package/lib.commonjs/quantumcoin.js.map +1 -1
  41. package/lib.commonjs/transaction/address.d.ts +1 -1
  42. package/lib.commonjs/transaction/address.d.ts.map +1 -1
  43. package/lib.commonjs/transaction/address.js +9 -5
  44. package/lib.commonjs/transaction/address.js.map +1 -1
  45. package/lib.commonjs/wallet/hdwallet.d.ts.map +1 -1
  46. package/lib.commonjs/wallet/hdwallet.js +4 -5
  47. package/lib.commonjs/wallet/hdwallet.js.map +1 -1
  48. package/lib.commonjs/wallet/index.d.ts +2 -6
  49. package/lib.commonjs/wallet/index.d.ts.map +1 -1
  50. package/lib.commonjs/wallet/index.js +1 -14
  51. package/lib.commonjs/wallet/index.js.map +1 -1
  52. package/lib.commonjs/wallet/json-keystore.d.ts +3 -52
  53. package/lib.commonjs/wallet/json-keystore.d.ts.map +1 -1
  54. package/lib.commonjs/wallet/json-keystore.js +41 -246
  55. package/lib.commonjs/wallet/json-keystore.js.map +1 -1
  56. package/lib.commonjs/wallet/seedwallet.d.ts +4 -0
  57. package/lib.commonjs/wallet/seedwallet.d.ts.map +1 -0
  58. package/lib.commonjs/wallet/seedwallet.js +8 -0
  59. package/lib.commonjs/wallet/seedwallet.js.map +1 -0
  60. package/lib.commonjs/wallet/wallet.d.ts +5 -14
  61. package/lib.commonjs/wallet/wallet.d.ts.map +1 -1
  62. package/lib.commonjs/wallet/wallet.js +12 -51
  63. package/lib.commonjs/wallet/wallet.js.map +1 -1
  64. package/lib.esm/address/address.d.ts +1 -21
  65. package/lib.esm/address/address.d.ts.map +1 -1
  66. package/lib.esm/address/address.js +1 -28
  67. package/lib.esm/address/address.js.map +1 -1
  68. package/lib.esm/address/index.d.ts +1 -1
  69. package/lib.esm/address/index.d.ts.map +1 -1
  70. package/lib.esm/address/index.js +1 -1
  71. package/lib.esm/address/index.js.map +1 -1
  72. package/lib.esm/crypto/signature.d.ts +4 -17
  73. package/lib.esm/crypto/signature.d.ts.map +1 -1
  74. package/lib.esm/crypto/signature.js +45 -46
  75. package/lib.esm/crypto/signature.js.map +1 -1
  76. package/lib.esm/crypto/signing-key.d.ts +5 -64
  77. package/lib.esm/crypto/signing-key.d.ts.map +1 -1
  78. package/lib.esm/crypto/signing-key.js +26 -102
  79. package/lib.esm/crypto/signing-key.js.map +1 -1
  80. package/lib.esm/providers/default-provider.d.ts +0 -8
  81. package/lib.esm/providers/default-provider.d.ts.map +1 -1
  82. package/lib.esm/providers/default-provider.js +0 -108
  83. package/lib.esm/providers/default-provider.js.map +1 -1
  84. package/lib.esm/providers/index.d.ts +0 -9
  85. package/lib.esm/providers/index.d.ts.map +1 -1
  86. package/lib.esm/providers/index.js +0 -9
  87. package/lib.esm/providers/index.js.map +1 -1
  88. package/lib.esm/providers/network.js +3 -101
  89. package/lib.esm/providers/network.js.map +1 -1
  90. package/lib.esm/quantumcoin.d.ts +4 -4
  91. package/lib.esm/quantumcoin.d.ts.map +1 -1
  92. package/lib.esm/quantumcoin.js +3 -3
  93. package/lib.esm/quantumcoin.js.map +1 -1
  94. package/lib.esm/transaction/address.d.ts +1 -1
  95. package/lib.esm/transaction/address.d.ts.map +1 -1
  96. package/lib.esm/transaction/address.js +7 -4
  97. package/lib.esm/transaction/address.js.map +1 -1
  98. package/lib.esm/wallet/hdwallet.d.ts.map +1 -1
  99. package/lib.esm/wallet/hdwallet.js +4 -5
  100. package/lib.esm/wallet/hdwallet.js.map +1 -1
  101. package/lib.esm/wallet/index.d.ts +2 -6
  102. package/lib.esm/wallet/index.d.ts.map +1 -1
  103. package/lib.esm/wallet/index.js +1 -4
  104. package/lib.esm/wallet/index.js.map +1 -1
  105. package/lib.esm/wallet/json-keystore.d.ts +3 -52
  106. package/lib.esm/wallet/json-keystore.d.ts.map +1 -1
  107. package/lib.esm/wallet/json-keystore.js +32 -241
  108. package/lib.esm/wallet/json-keystore.js.map +1 -1
  109. package/lib.esm/wallet/seedwallet.d.ts +4 -0
  110. package/lib.esm/wallet/seedwallet.d.ts.map +1 -0
  111. package/lib.esm/wallet/seedwallet.js +4 -0
  112. package/lib.esm/wallet/seedwallet.js.map +1 -0
  113. package/lib.esm/wallet/wallet.d.ts +5 -14
  114. package/lib.esm/wallet/wallet.d.ts.map +1 -1
  115. package/lib.esm/wallet/wallet.js +12 -53
  116. package/lib.esm/wallet/wallet.js.map +1 -1
  117. package/package.json +5 -2
  118. package/src.ts/address/address.ts +2 -27
  119. package/src.ts/address/index.ts +1 -1
  120. package/src.ts/crypto/signature.ts +31 -45
  121. package/src.ts/crypto/signing-key.ts +31 -109
  122. package/src.ts/providers/default-provider.ts +0 -106
  123. package/src.ts/providers/index.ts +0 -10
  124. package/src.ts/providers/network.ts +3 -111
  125. package/src.ts/quantumcoin.ts +7 -17
  126. package/src.ts/transaction/address.ts +8 -5
  127. package/src.ts/wallet/index.ts +2 -17
  128. package/src.ts/wallet/json-keystore.ts +42 -325
  129. package/src.ts/wallet/wallet.ts +23 -47
  130. package/src.ts/providers/provider-alchemy.ts +0 -166
  131. package/src.ts/providers/provider-ankr.ts +0 -153
  132. package/src.ts/providers/provider-blockscout.ts +0 -167
  133. package/src.ts/providers/provider-chainstack.ts +0 -113
  134. package/src.ts/providers/provider-cloudflare.ts +0 -24
  135. package/src.ts/providers/provider-etherscan.ts +0 -671
  136. package/src.ts/providers/provider-infura.ts +0 -220
  137. package/src.ts/providers/provider-pocket.ts +0 -121
  138. package/src.ts/providers/provider-quicknode.ts +0 -177
  139. package/src.ts/wallet/hdwallet.ts +0 -586
  140. package/src.ts/wallet/json-crowdsale.ts +0 -74
  141. package/src.ts/wallet/mnemonic.ts +0 -203
@@ -8,14 +8,14 @@
8
8
  *
9
9
  * @_subsection: api/wallet:JSON Wallets [json-wallets]
10
10
  */
11
- import { CTR } from "aes-js";
12
- import { getAddress } from "../address/index.js";
13
- import { keccak256, pbkdf2, randomBytes, scrypt, scryptSync } from "../crypto/index.js";
14
- import { computeAddress } from "../transaction/index.js";
15
- import { concat, getBytes, hexlify, uuidV4, assert, assertArgument } from "../utils/index.js";
16
- import { getPassword, spelunk, zpad } from "./utils.js";
17
- import { version } from "../_version.js";
18
- const defaultPath = "m/44'/60'/0'/0/0";
11
+ //import { CTR } from "aes-js";
12
+ //import { getAddress } from "../address/index.js";
13
+ //randomBytes, scrypt, scryptSync, uuidV4
14
+ //import { keccak256 } from "../crypto/index.js";
15
+ //import { computeAddress } from "../transaction/index.js";
16
+ //concat, assert, assertArgument,
17
+ import { getBytes, hexlify, toUtf8String } from "../utils/index.js";
18
+ import { SigningKey } from "../crypto/signing-key";
19
19
  /**
20
20
  * Returns true if %%json%% is a valid JSON Keystore Wallet.
21
21
  */
@@ -30,104 +30,6 @@ export function isKeystoreJson(json) {
30
30
  catch (error) { }
31
31
  return false;
32
32
  }
33
- function decrypt(data, key, ciphertext) {
34
- const cipher = spelunk(data, "crypto.cipher:string");
35
- if (cipher === "aes-128-ctr") {
36
- const iv = spelunk(data, "crypto.cipherparams.iv:data!");
37
- const aesCtr = new CTR(key, iv);
38
- return hexlify(aesCtr.decrypt(ciphertext));
39
- }
40
- assert(false, "unsupported cipher", "UNSUPPORTED_OPERATION", {
41
- operation: "decrypt"
42
- });
43
- }
44
- function getAccount(data, _key) {
45
- const key = getBytes(_key);
46
- const ciphertext = spelunk(data, "crypto.ciphertext:data!");
47
- const computedMAC = hexlify(keccak256(concat([key.slice(16, 32), ciphertext]))).substring(2);
48
- assertArgument(computedMAC === spelunk(data, "crypto.mac:string!").toLowerCase(), "incorrect password", "password", "[ REDACTED ]");
49
- const privateKey = decrypt(data, key.slice(0, 16), ciphertext);
50
- const address = computeAddress(privateKey);
51
- if (data.address) {
52
- let check = data.address.toLowerCase();
53
- if (!check.startsWith("0x")) {
54
- check = "0x" + check;
55
- }
56
- assertArgument(getAddress(check) === address, "keystore address/privateKey mismatch", "address", data.address);
57
- }
58
- const account = { address, privateKey };
59
- // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase
60
- const version = spelunk(data, "x-ethers.version:string");
61
- if (version === "0.1") {
62
- const mnemonicKey = key.slice(32, 64);
63
- const mnemonicCiphertext = spelunk(data, "x-ethers.mnemonicCiphertext:data!");
64
- const mnemonicIv = spelunk(data, "x-ethers.mnemonicCounter:data!");
65
- const mnemonicAesCtr = new CTR(mnemonicKey, mnemonicIv);
66
- account.mnemonic = {
67
- path: (spelunk(data, "x-ethers.path:string") || defaultPath),
68
- locale: (spelunk(data, "x-ethers.locale:string") || "en"),
69
- entropy: hexlify(getBytes(mnemonicAesCtr.decrypt(mnemonicCiphertext)))
70
- };
71
- }
72
- return account;
73
- }
74
- function getDecryptKdfParams(data) {
75
- const kdf = spelunk(data, "crypto.kdf:string");
76
- if (kdf && typeof (kdf) === "string") {
77
- if (kdf.toLowerCase() === "scrypt") {
78
- const salt = spelunk(data, "crypto.kdfparams.salt:data!");
79
- const N = spelunk(data, "crypto.kdfparams.n:int!");
80
- const r = spelunk(data, "crypto.kdfparams.r:int!");
81
- const p = spelunk(data, "crypto.kdfparams.p:int!");
82
- // Make sure N is a power of 2
83
- assertArgument(N > 0 && (N & (N - 1)) === 0, "invalid kdf.N", "kdf.N", N);
84
- assertArgument(r > 0 && p > 0, "invalid kdf", "kdf", kdf);
85
- const dkLen = spelunk(data, "crypto.kdfparams.dklen:int!");
86
- assertArgument(dkLen === 32, "invalid kdf.dklen", "kdf.dflen", dkLen);
87
- return { name: "scrypt", salt, N, r, p, dkLen: 64 };
88
- }
89
- else if (kdf.toLowerCase() === "pbkdf2") {
90
- const salt = spelunk(data, "crypto.kdfparams.salt:data!");
91
- const prf = spelunk(data, "crypto.kdfparams.prf:string!");
92
- const algorithm = prf.split("-").pop();
93
- assertArgument(algorithm === "sha256" || algorithm === "sha512", "invalid kdf.pdf", "kdf.pdf", prf);
94
- const count = spelunk(data, "crypto.kdfparams.c:int!");
95
- const dkLen = spelunk(data, "crypto.kdfparams.dklen:int!");
96
- assertArgument(dkLen === 32, "invalid kdf.dklen", "kdf.dklen", dkLen);
97
- return { name: "pbkdf2", salt, count, dkLen, algorithm };
98
- }
99
- }
100
- assertArgument(false, "unsupported key-derivation function", "kdf", kdf);
101
- }
102
- /**
103
- * Returns the account details for the JSON Keystore Wallet %%json%%
104
- * using %%password%%.
105
- *
106
- * It is preferred to use the [async version](decryptKeystoreJson)
107
- * instead, which allows a [[ProgressCallback]] to keep the user informed
108
- * as to the decryption status.
109
- *
110
- * This method will block the event loop (freezing all UI) until decryption
111
- * is complete, which can take quite some time, depending on the wallet
112
- * paramters and platform.
113
- */
114
- export function decryptKeystoreJsonSync(json, _password) {
115
- const data = JSON.parse(json);
116
- const password = getPassword(_password);
117
- const params = getDecryptKdfParams(data);
118
- if (params.name === "pbkdf2") {
119
- const { salt, count, dkLen, algorithm } = params;
120
- const key = pbkdf2(password, salt, count, dkLen, algorithm);
121
- return getAccount(data, key);
122
- }
123
- assert(params.name === "scrypt", "cannot be reached", "UNKNOWN_ERROR", { params });
124
- const { salt, N, r, p, dkLen } = params;
125
- const key = scryptSync(password, salt, N, r, p, dkLen);
126
- return getAccount(data, key);
127
- }
128
- function stall(duration) {
129
- return new Promise((resolve) => { setTimeout(() => { resolve(); }, duration); });
130
- }
131
33
  /**
132
34
  * Resolves to the decrypted JSON Keystore Wallet %%json%% using the
133
35
  * %%password%%.
@@ -135,136 +37,22 @@ function stall(duration) {
135
37
  * If provided, %%progress%% will be called periodically during the
136
38
  * decrpytion to provide feedback, and if the function returns
137
39
  * ``false`` will halt decryption.
138
- *
139
- * The %%progressCallback%% will **always** receive ``0`` before
140
- * decryption begins and ``1`` when complete.
141
40
  */
142
- export async function decryptKeystoreJson(json, _password, progress) {
143
- const data = JSON.parse(json);
144
- const password = getPassword(_password);
145
- const params = getDecryptKdfParams(data);
146
- if (params.name === "pbkdf2") {
147
- if (progress) {
148
- progress(0);
149
- await stall(0);
150
- }
151
- const { salt, count, dkLen, algorithm } = params;
152
- const key = pbkdf2(password, salt, count, dkLen, algorithm);
153
- if (progress) {
154
- progress(1);
155
- await stall(0);
156
- }
157
- return getAccount(data, key);
41
+ export function decryptKeystoreJsonSync(json, _password) {
42
+ let pass;
43
+ if (typeof _password === 'string') {
44
+ pass = _password;
158
45
  }
159
- assert(params.name === "scrypt", "cannot be reached", "UNKNOWN_ERROR", { params });
160
- const { salt, N, r, p, dkLen } = params;
161
- const key = await scrypt(password, salt, N, r, p, dkLen, progress);
162
- return getAccount(data, key);
163
- }
164
- function getEncryptKdfParams(options) {
165
- // Check/generate the salt
166
- const salt = (options.salt != null) ? getBytes(options.salt, "options.salt") : randomBytes(32);
167
- // Override the scrypt password-based key derivation function parameters
168
- let N = (1 << 17), r = 8, p = 1;
169
- if (options.scrypt) {
170
- if (options.scrypt.N) {
171
- N = options.scrypt.N;
172
- }
173
- if (options.scrypt.r) {
174
- r = options.scrypt.r;
175
- }
176
- if (options.scrypt.p) {
177
- p = options.scrypt.p;
178
- }
46
+ else {
47
+ pass = toUtf8String(_password);
179
48
  }
180
- assertArgument(typeof (N) === "number" && N > 0 && Number.isSafeInteger(N) && (BigInt(N) & BigInt(N - 1)) === BigInt(0), "invalid scrypt N parameter", "options.N", N);
181
- assertArgument(typeof (r) === "number" && r > 0 && Number.isSafeInteger(r), "invalid scrypt r parameter", "options.r", r);
182
- assertArgument(typeof (p) === "number" && p > 0 && Number.isSafeInteger(p), "invalid scrypt p parameter", "options.p", p);
183
- return { name: "scrypt", dkLen: 32, salt, N, r, p };
184
- }
185
- function _encryptKeystore(key, kdf, account, options) {
186
- const privateKey = getBytes(account.privateKey, "privateKey");
187
- // Override initialization vector
188
- const iv = (options.iv != null) ? getBytes(options.iv, "options.iv") : randomBytes(16);
189
- assertArgument(iv.length === 16, "invalid options.iv length", "options.iv", options.iv);
190
- // Override the uuid
191
- const uuidRandom = (options.uuid != null) ? getBytes(options.uuid, "options.uuid") : randomBytes(16);
192
- assertArgument(uuidRandom.length === 16, "invalid options.uuid length", "options.uuid", options.iv);
193
- // This will be used to encrypt the wallet (as per Web3 secret storage)
194
- // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)
195
- // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)
196
- const derivedKey = key.slice(0, 16);
197
- const macPrefix = key.slice(16, 32);
198
- // Encrypt the private key
199
- const aesCtr = new CTR(derivedKey, iv);
200
- const ciphertext = getBytes(aesCtr.encrypt(privateKey));
201
- // Compute the message authentication code, used to check the password
202
- const mac = keccak256(concat([macPrefix, ciphertext]));
203
- // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
204
- const data = {
205
- address: account.address.substring(2).toLowerCase(),
206
- id: uuidV4(uuidRandom),
207
- version: 3,
208
- Crypto: {
209
- cipher: "aes-128-ctr",
210
- cipherparams: {
211
- iv: hexlify(iv).substring(2),
212
- },
213
- ciphertext: hexlify(ciphertext).substring(2),
214
- kdf: "scrypt",
215
- kdfparams: {
216
- salt: hexlify(kdf.salt).substring(2),
217
- n: kdf.N,
218
- dklen: 32,
219
- p: kdf.p,
220
- r: kdf.r
221
- },
222
- mac: mac.substring(2)
223
- }
49
+ let wal = qcsdk.deserializeEncryptedWallet(json, pass);
50
+ let privKey = wal.privateKey;
51
+ let ks = {
52
+ address: wal.address,
53
+ privateKey: hexlify(privKey)
224
54
  };
225
- // If we have a mnemonic, encrypt it into the JSON wallet
226
- if (account.mnemonic) {
227
- const client = (options.client != null) ? options.client : `ethers/${version}`;
228
- const path = account.mnemonic.path || defaultPath;
229
- const locale = account.mnemonic.locale || "en";
230
- const mnemonicKey = key.slice(32, 64);
231
- const entropy = getBytes(account.mnemonic.entropy, "account.mnemonic.entropy");
232
- const mnemonicIv = randomBytes(16);
233
- const mnemonicAesCtr = new CTR(mnemonicKey, mnemonicIv);
234
- const mnemonicCiphertext = getBytes(mnemonicAesCtr.encrypt(entropy));
235
- const now = new Date();
236
- const timestamp = (now.getUTCFullYear() + "-" +
237
- zpad(now.getUTCMonth() + 1, 2) + "-" +
238
- zpad(now.getUTCDate(), 2) + "T" +
239
- zpad(now.getUTCHours(), 2) + "-" +
240
- zpad(now.getUTCMinutes(), 2) + "-" +
241
- zpad(now.getUTCSeconds(), 2) + ".0Z");
242
- const gethFilename = ("UTC--" + timestamp + "--" + data.address);
243
- data["x-ethers"] = {
244
- client, gethFilename, path, locale,
245
- mnemonicCounter: hexlify(mnemonicIv).substring(2),
246
- mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),
247
- version: "0.1"
248
- };
249
- }
250
- return JSON.stringify(data);
251
- }
252
- /**
253
- * Return the JSON Keystore Wallet for %%account%% encrypted with
254
- * %%password%%.
255
- *
256
- * The %%options%% can be used to tune the password-based key
257
- * derivation function parameters, explicitly set the random values
258
- * used. Any provided [[ProgressCallback]] is ignord.
259
- */
260
- export function encryptKeystoreJsonSync(account, password, options) {
261
- if (options == null) {
262
- options = {};
263
- }
264
- const passwordBytes = getPassword(password);
265
- const kdf = getEncryptKdfParams(options);
266
- const key = scryptSync(passwordBytes, kdf.salt, kdf.N, kdf.r, kdf.p, 64);
267
- return _encryptKeystore(getBytes(key), kdf, account, options);
55
+ return ks;
268
56
  }
269
57
  /**
270
58
  * Resolved to the JSON Keystore Wallet for %%account%% encrypted
@@ -272,16 +60,19 @@ export function encryptKeystoreJsonSync(account, password, options) {
272
60
  *
273
61
  * The %%options%% can be used to tune the password-based key
274
62
  * derivation function parameters, explicitly set the random values
275
- * used and provide a [[ProgressCallback]] to receive periodic updates
276
- * on the completion status..
63
+ * used.
277
64
  */
278
- export async function encryptKeystoreJson(account, password, options) {
279
- if (options == null) {
280
- options = {};
65
+ export function encryptKeystoreJsonSync(account, password) {
66
+ const signingKey = new SigningKey(account.privateKey);
67
+ const privateKey = getBytes(signingKey.privateKey);
68
+ const publicKey = getBytes(signingKey.publicKey);
69
+ const wal = new qcsdk.Wallet(account.address, privateKey, publicKey);
70
+ if (typeof password === 'string') {
71
+ return qcsdk.serializeEncryptedWallet(wal, password);
72
+ }
73
+ else {
74
+ let passPhrase = toUtf8String(password);
75
+ return qcsdk.serializeEncryptedWallet(wal, passPhrase);
281
76
  }
282
- const passwordBytes = getPassword(password);
283
- const kdf = getEncryptKdfParams(options);
284
- const key = await scrypt(passwordBytes, kdf.salt, kdf.N, kdf.r, kdf.p, 64, options.progressCallback);
285
- return _encryptKeystore(getBytes(key), kdf, account, options);
286
77
  }
287
78
  //# sourceMappingURL=json-keystore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-keystore.js","sourceRoot":"","sources":["../../src.ts/wallet/json-keystore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-keystore.js","sourceRoot":"","sources":["../../src.ts/wallet/json-keystore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+BAA+B;AAE/B,mDAAmD;AACnD,yCAAyC;AACzC,kDAAkD;AAClD,2DAA2D;AAC3D,iCAAiC;AACjC,OAAO,EACH,QAAQ,EAAE,OAAO,EAAE,YAAY,EAClC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAuBhD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACvC,IAAI;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,OAAO,KAAK,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;SAAE;KACtC;IAAC,OAAO,KAAK,EAAE,GAAG;IACnB,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,SAA8B;IAChF,IAAI,IAAY,CAAC;IACjB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QAC/B,IAAI,GAAG,SAAS,CAAC;KACpB;SAAM;QACH,IAAI,GAAI,YAAY,CAAC,SAAS,CAAC,CAAC;KACnC;IAED,IAAI,GAAG,GAAG,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,OAAO,GAAQ,GAAG,CAAC,UAAU,CAAC;IAElC,IAAI,EAAE,GAAoB;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC;KAC/B,CAAC;IAEF,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAwB,EAAE,QAA6B;IAC3F,MAAM,UAAU,GAAe,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,UAAU,GAAQ,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,SAAS,GAAQ,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAErE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAC9B,OAAO,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KACxD;SAAM;QACH,IAAI,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;KAC1D;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BaseWallet } from "./base-wallet.js";
2
+ export declare class HDNodeWallet extends BaseWallet {
3
+ }
4
+ //# sourceMappingURL=seedwallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seedwallet.d.ts","sourceRoot":"","sources":["../../src.ts/wallet/seedwallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,YAAa,SAAQ,UAAU;CAE3C"}
@@ -0,0 +1,4 @@
1
+ import { BaseWallet } from "./base-wallet.js";
2
+ export class HDNodeWallet extends BaseWallet {
3
+ }
4
+ //# sourceMappingURL=seedwallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seedwallet.js","sourceRoot":"","sources":["../../src.ts/wallet/seedwallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,YAAa,SAAQ,UAAU;CAE3C"}
@@ -1,7 +1,5 @@
1
1
  import { SigningKey } from "../crypto/index.js";
2
2
  import { BaseWallet } from "./base-wallet.js";
3
- import { HDNodeWallet } from "./hdwallet.js";
4
- import type { ProgressCallback } from "../crypto/index.js";
5
3
  import type { Provider } from "../providers/index.js";
6
4
  /**
7
5
  * A **Wallet** manages a single private key which is used to sign
@@ -28,7 +26,7 @@ export declare class Wallet extends BaseWallet {
28
26
  * If %%progressCallback%% is specified, it will receive periodic
29
27
  * updates as the encryption process progreses.
30
28
  */
31
- encrypt(password: Uint8Array | string, progressCallback?: ProgressCallback): Promise<string>;
29
+ encrypt(password: Uint8Array | string): Promise<string>;
32
30
  /**
33
31
  * Returns a [JSON Keystore Wallet](json-wallets) encryped with
34
32
  * %%password%%.
@@ -43,11 +41,8 @@ export declare class Wallet extends BaseWallet {
43
41
  /**
44
42
  * Creates (asynchronously) a **Wallet** by decrypting the %%json%%
45
43
  * with %%password%%.
46
- *
47
- * If %%progress%% is provided, it is called periodically during
48
- * decryption so that any UI can be updated.
49
44
  */
50
- static fromEncryptedJson(json: string, password: Uint8Array | string, progress?: ProgressCallback): Promise<HDNodeWallet | Wallet>;
45
+ static fromEncryptedJson(json: string, password: Uint8Array | string): Promise<Wallet>;
51
46
  /**
52
47
  * Creates a **Wallet** by decrypting the %%json%% with %%password%%.
53
48
  *
@@ -55,17 +50,13 @@ export declare class Wallet extends BaseWallet {
55
50
  * will lock up and freeze the UI during decryption, which may take
56
51
  * some time.
57
52
  */
58
- static fromEncryptedJsonSync(json: string, password: Uint8Array | string): HDNodeWallet | Wallet;
53
+ static fromEncryptedJsonSync(json: string, password: Uint8Array | string): Wallet;
59
54
  /**
60
- * Creates a new random [[HDNodeWallet]] using the available
55
+ * Creates a new random [[Wallet]] using the available
61
56
  * [cryptographic random source](randomBytes).
62
57
  *
63
58
  * If there is no crytographic random source, this will throw.
64
59
  */
65
- static createRandom(provider?: null | Provider): HDNodeWallet;
66
- /**
67
- * Creates a [[HDNodeWallet]] for %%phrase%%.
68
- */
69
- static fromPhrase(phrase: string, provider?: Provider): HDNodeWallet;
60
+ static createRandom(provider?: null | Provider): Wallet;
70
61
  }
71
62
  //# sourceMappingURL=wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src.ts/wallet/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAS7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAUtD;;;;;;;;;GASG;AACH,qBAAa,MAAO,SAAQ,UAAU;;IAElC;;;OAGG;gBACS,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,QAAQ;IAShE,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM;IAI1C;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlG;;;;;;;;;OASG;IACH,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IAyBlD;;;;;;OAMG;WACU,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;IAexI;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM;IAahG;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,YAAY;IAM7D;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY;CAKvE"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src.ts/wallet/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAW9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtD;;;;;;;;;GASG;AACH,qBAAa,MAAO,SAAQ,UAAU;;IAElC;;;OAGG;gBACS,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,QAAQ;IAShE,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM;IAI1C;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7D;;;;;;;;;OASG;IACH,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IAgBlD;;;OAGG;WACU,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5F;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IAWjF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM;CAc1D"}
@@ -1,13 +1,9 @@
1
1
  import { SigningKey } from "../crypto/index.js";
2
- import { assertArgument } from "../utils/index.js";
2
+ import { assertArgument, hexlify } from "../utils/index.js";
3
3
  import { BaseWallet } from "./base-wallet.js";
4
- import { HDNodeWallet } from "./hdwallet.js";
5
- import { decryptCrowdsaleJson, isCrowdsaleJson } from "./json-crowdsale.js";
6
- import { decryptKeystoreJson, decryptKeystoreJsonSync, encryptKeystoreJson, encryptKeystoreJsonSync, isKeystoreJson } from "./json-keystore.js";
7
- import { Mnemonic } from "./mnemonic.js";
8
- function stall(duration) {
9
- return new Promise((resolve) => { setTimeout(() => { resolve(); }, duration); });
10
- }
4
+ //import { decryptCrowdsaleJson, isCrowdsaleJson } from "./json-crowdsale.js";
5
+ import { decryptKeystoreJsonSync, encryptKeystoreJsonSync, isKeystoreJson } from "./json-keystore.js";
6
+ //import {newWallet} from "quantum-coin-js-sdk";
11
7
  /**
12
8
  * A **Wallet** manages a single private key which is used to sign
13
9
  * transactions, messages and other common payloads.
@@ -40,9 +36,9 @@ export class Wallet extends BaseWallet {
40
36
  * If %%progressCallback%% is specified, it will receive periodic
41
37
  * updates as the encryption process progreses.
42
38
  */
43
- async encrypt(password, progressCallback) {
39
+ async encrypt(password) {
44
40
  const account = { address: this.address, privateKey: this.privateKey };
45
- return await encryptKeystoreJson(account, password, { progressCallback });
41
+ return encryptKeystoreJsonSync(account, password);
46
42
  }
47
43
  /**
48
44
  * Returns a [JSON Keystore Wallet](json-wallets) encryped with
@@ -60,14 +56,6 @@ export class Wallet extends BaseWallet {
60
56
  }
61
57
  static #fromAccount(account) {
62
58
  assertArgument(account, "invalid JSON wallet", "json", "[ REDACTED ]");
63
- if ("mnemonic" in account && account.mnemonic && account.mnemonic.locale === "en") {
64
- const mnemonic = Mnemonic.fromEntropy(account.mnemonic.entropy);
65
- const wallet = HDNodeWallet.fromMnemonic(mnemonic, account.mnemonic.path);
66
- if (wallet.address === account.address && wallet.privateKey === account.privateKey) {
67
- return wallet;
68
- }
69
- console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key");
70
- }
71
59
  const wallet = new Wallet(account.privateKey);
72
60
  assertArgument(wallet.address === account.address, "address/privateKey mismatch", "json", "[ REDACTED ]");
73
61
  return wallet;
@@ -75,25 +63,11 @@ export class Wallet extends BaseWallet {
75
63
  /**
76
64
  * Creates (asynchronously) a **Wallet** by decrypting the %%json%%
77
65
  * with %%password%%.
78
- *
79
- * If %%progress%% is provided, it is called periodically during
80
- * decryption so that any UI can be updated.
81
66
  */
82
- static async fromEncryptedJson(json, password, progress) {
67
+ static async fromEncryptedJson(json, password) {
83
68
  let account = null;
84
69
  if (isKeystoreJson(json)) {
85
- account = await decryptKeystoreJson(json, password, progress);
86
- }
87
- else if (isCrowdsaleJson(json)) {
88
- if (progress) {
89
- progress(0);
90
- await stall(0);
91
- }
92
- account = decryptCrowdsaleJson(json, password);
93
- if (progress) {
94
- progress(1);
95
- await stall(0);
96
- }
70
+ account = decryptKeystoreJsonSync(json, password);
97
71
  }
98
72
  return Wallet.#fromAccount(account);
99
73
  }
@@ -109,36 +83,21 @@ export class Wallet extends BaseWallet {
109
83
  if (isKeystoreJson(json)) {
110
84
  account = decryptKeystoreJsonSync(json, password);
111
85
  }
112
- else if (isCrowdsaleJson(json)) {
113
- account = decryptCrowdsaleJson(json, password);
114
- }
115
86
  else {
116
87
  assertArgument(false, "invalid JSON wallet", "json", "[ REDACTED ]");
117
88
  }
118
89
  return Wallet.#fromAccount(account);
119
90
  }
120
91
  /**
121
- * Creates a new random [[HDNodeWallet]] using the available
92
+ * Creates a new random [[Wallet]] using the available
122
93
  * [cryptographic random source](randomBytes).
123
94
  *
124
95
  * If there is no crytographic random source, this will throw.
125
96
  */
126
97
  static createRandom(provider) {
127
- const wallet = HDNodeWallet.createRandom();
128
- if (provider) {
129
- return wallet.connect(provider);
130
- }
131
- return wallet;
132
- }
133
- /**
134
- * Creates a [[HDNodeWallet]] for %%phrase%%.
135
- */
136
- static fromPhrase(phrase, provider) {
137
- const wallet = HDNodeWallet.fromPhrase(phrase);
138
- if (provider) {
139
- return wallet.connect(provider);
140
- }
141
- return wallet;
98
+ let wal = qcsdk.newWallet();
99
+ let privKey = wal.privateKey;
100
+ return new Wallet(hexlify(privKey));
142
101
  }
143
102
  }
144
103
  //# sourceMappingURL=wallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src.ts/wallet/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src.ts/wallet/wallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -14,6 +14,7 @@
14
14
  "@noble/hashes": "1.3.2",
15
15
  "@types/node": "22.7.5",
16
16
  "aes-js": "4.0.0-beta.5",
17
+ "seed-words": "^1.0.2",
17
18
  "tslib": "2.7.0",
18
19
  "ws": "8.17.1"
19
20
  },
@@ -24,6 +25,8 @@
24
25
  "@types/semver": "7.5.8",
25
26
  "c8": "7.12.0",
26
27
  "mocha": "10.7.3",
28
+ "quantum-coin-pqc-js-sdk": "^1.0.5",
29
+ "quantum-coin-js-sdk": "^1.0.20",
27
30
  "rollup": "4.24.0",
28
31
  "semver": "7.6.3",
29
32
  "typescript": "5.0.4",
@@ -105,7 +108,7 @@
105
108
  },
106
109
  "scripts": {
107
110
  "_build-dist": "rollup -c && uglifyjs ./dist/quantumcoin.js -o ./dist/quantumcoin.min.js && uglifyjs ./dist/quantumcoin.umd.js -o ./dist/quantumcoin.umd.min.js && uglifyjs ./dist/wordlists-extra.js -o ./dist/wordlists-extra.min.js",
108
- "_dist-stats": "gzip -k9f -S '.gz' ./dist/quantumcoin.min.js && gzip -k9f -S '.gz' ./dist/quantumcoin.umd.min.js && gzip -k9f -S '.gz' ./dist/wordlists-extra.min.js && du -hs ./dist/*.gz && echo '' && du -hs ./dist/*.js",
111
+ "_dist-stats": "gzip -k9f -S '.gz' ./dist/quantumcoin.min.js && gzip -k9f -S '.gz' ./dist/quantumcoin.umd.min.js && gzip -k9f -S '.gz' ./dist/wordlists-extra.min.js",
109
112
  "auto-build": "npm run build -- -w",
110
113
  "build": "tsc --project tsconfig.esm.json",
111
114
  "build-all": "npm run build && npm run build-commonjs",
@@ -122,5 +125,5 @@
122
125
  "test-esm": "mocha --trace-warnings --reporter ./reporter.cjs ./lib.esm/_tests/test-*.js"
123
126
  },
124
127
  "sideEffects": false,
125
- "version": "6.14.1"
128
+ "version": "6.14.2"
126
129
  }
@@ -1,7 +1,6 @@
1
1
  import { keccak256 } from "../crypto/index.js";
2
2
  import { getBytes, assertArgument } from "../utils/index.js";
3
3
 
4
-
5
4
  const BN_0 = BigInt(0);
6
5
  const BN_36 = BigInt(36);
7
6
 
@@ -83,8 +82,7 @@ function fromBase36(value: string): bigint {
83
82
 
84
83
  /**
85
84
  * Returns a normalized and checksumed address for %%address%%.
86
- * This accepts non-checksum addresses, checksum addresses and
87
- * [[getIcapAddress]] formats.
85
+ * This accepts non-checksum addresses, checksum addresses formats.
88
86
  *
89
87
  * The checksum in Ethereum uses the capitalization (upper-case
90
88
  * vs lower-case) of the characters within an address to encode
@@ -147,27 +145,4 @@ export function getAddress(address: string): string {
147
145
  assertArgument(false, "invalid address", "address", address);
148
146
  }
149
147
 
150
- /**
151
- * The [ICAP Address format](link-icap) format is an early checksum
152
- * format which attempts to be compatible with the banking
153
- * industry [IBAN format](link-wiki-iban) for bank accounts.
154
- *
155
- * It is no longer common or a recommended format.
156
- *
157
- * @example:
158
- * getIcapAddress("0x8ba1f109551bd432803012645ac136ddd64dba72");
159
- * //_result:
160
- *
161
- * getIcapAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36");
162
- * //_result:
163
- *
164
- * // Throws an error if the ICAP checksum is wrong
165
- * getIcapAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK37");
166
- * //_error:
167
- */
168
- export function getIcapAddress(address: string): string {
169
- //let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();
170
- let base36 = BigInt(getAddress(address)).toString(36).toUpperCase();
171
- while (base36.length < 30) { base36 = "0" + base36; }
172
- return "XE" + ibanChecksum("XE00" + base36) + base36;
173
- }
148
+
@@ -49,7 +49,7 @@ export interface NameResolver {
49
49
  resolveName(name: string): Promise<null | string>;
50
50
  }
51
51
 
52
- export { getAddress, getIcapAddress } from "./address.js";
52
+ export { getAddress } from "./address.js";
53
53
 
54
54
  export { getCreateAddress, getCreate2Address } from "./contract-address.js";
55
55