jcc_wallet 1.0.5 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -30
- package/lib/constant/index.js.map +1 -1
- package/lib/eth/index.d.ts +0 -1
- package/lib/eth/index.js +16 -13
- package/lib/eth/index.js.map +1 -1
- package/lib/index.d.ts +2 -6
- package/lib/index.js +17 -13
- package/lib/index.js.map +1 -1
- package/lib/jingchangWallet/index.d.ts +4 -3
- package/lib/jingchangWallet/index.js +31 -26
- package/lib/jingchangWallet/index.js.map +1 -1
- package/lib/moac/index.d.ts +0 -1
- package/lib/moac/index.js +9 -6
- package/lib/moac/index.js.map +1 -1
- package/lib/types/index.d.ts +12 -12
- package/lib/types/index.js +0 -2
- package/lib/util/index.d.ts +0 -1
- package/lib/util/index.js +15 -12
- package/lib/util/index.js.map +1 -1
- package/lib/x-wallet/index.d.ts +21 -0
- package/lib/x-wallet/index.js +82 -0
- package/lib/x-wallet/index.js.map +1 -0
- package/package.json +15 -19
- package/CHANGELOG.md +0 -124
- package/dist/jcc-wallet.min.js +0 -38
- package/lib/bvcadt/index.d.ts +0 -30
- package/lib/bvcadt/index.js +0 -59
- package/lib/bvcadt/index.js.map +0 -1
- package/lib/call/index.d.ts +0 -30
- package/lib/call/index.js +0 -59
- package/lib/call/index.js.map +0 -1
- package/lib/jingtum/index.d.ts +0 -37
- package/lib/jingtum/index.js +0 -62
- package/lib/jingtum/index.js.map +0 -1
- package/lib/ripple/index.d.ts +0 -30
- package/lib/ripple/index.js +0 -57
- package/lib/ripple/index.js.map +0 -1
- package/lib/stm/index.d.ts +0 -29
- package/lib/stm/index.js +0 -50
- package/lib/stm/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
# jcc_wallet
|
|
4
4
|
|
|
5
5
|

|
|
6
|
-
[](https://www.codacy.com/app/GinMu/jcc_wallet?utm_source=github.com&utm_medium=referral&utm_content=JCCDex/jcc_wallet&utm_campaign=Badge_Grade)
|
|
6
|
+
[](https://github.com/JCCDex/jcc_wallet/actions/workflows/node.js.yml)
|
|
8
7
|
[](https://coveralls.io/github/JCCDex/jcc_wallet?branch=master)
|
|
9
|
-
[](https://david-dm.org/JCCDex/jcc_wallet)
|
|
10
8
|
[](http://npm-stat.com/charts.html?package=jcc_wallet)
|
|
11
9
|
[](http://makeapullrequest.com)
|
|
12
10
|
|
|
@@ -14,9 +12,9 @@
|
|
|
14
12
|
|
|
15
13
|
[jcc_wallet](https://github.com/JCCDex/jcc_wallet) is a wallet toolkit of JCCDex. At present, it can handle the creation and verification of [jingtum](http://swtc.top/index.html), [moac](https://www.moac.io/), [ethereum](https://ethereum.org/), [stm](https://labs.stream/en/), [call](http://www.callchain.live/) & [bizain](https://bizain.net/) wallet, import and export wallet with keystore file, and set password for wallet.
|
|
16
14
|
|
|
17
|
-
[jcc_wallet](https://github.com/JCCDex/jcc_wallet)是井畅交换平台的钱包处理工具,目前可以处理[jingtum](http://swtc.top/index.html), [moac](https://www.moac.io/), [ethereum](https://ethereum.org/), [stm](https://labs.stream/en/), [call](http://www.callchain.live/)以及[bizain](https://bizain.net/)钱包的创建和校验,以keystore形式导入和导出钱包,设置钱包交易密码。
|
|
15
|
+
[jcc_wallet](https://github.com/JCCDex/jcc_wallet)是井畅交换平台的钱包处理工具,目前可以处理[jingtum](http://swtc.top/index.html), [moac](https://www.moac.io/), [ethereum](https://ethereum.org/), [stm](https://labs.stream/en/), [call](http://www.callchain.live/)以及[bizain](https://bizain.net/)钱包的创建和校验,以 keystore 形式导入和导出钱包,设置钱包交易密码。
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
**_[jcc_wallet](https://github.com/JCCDex/jcc_walle) Support running in browsers_**
|
|
20
18
|
|
|
21
19
|
井畅应用交流群: 557524730
|
|
22
20
|
|
|
@@ -63,7 +61,7 @@ Support multiple wallet keystore for each type.
|
|
|
63
61
|
### Usage
|
|
64
62
|
|
|
65
63
|
```javascript
|
|
66
|
-
const JingchangWallet = require(
|
|
64
|
+
const JingchangWallet = require("jcc_wallet").JingchangWallet;
|
|
67
65
|
// import { JingchangWallet } from 'jcc_wallet'
|
|
68
66
|
```
|
|
69
67
|
|
|
@@ -78,7 +76,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
78
76
|
* @param {boolean} [samePassword=true] if the value is true, use the default swt keystore's password
|
|
79
77
|
* which be generated in the beginning as password for other type.
|
|
80
78
|
* @memberof JingchangWallet
|
|
81
|
-
*/
|
|
79
|
+
*/
|
|
82
80
|
```
|
|
83
81
|
|
|
84
82
|
### generate
|
|
@@ -92,7 +90,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
92
90
|
* @param {string} [secret] swtc chain's secret
|
|
93
91
|
* @returns {Promise<IJingchangWalletModel>} resolve jingchang wallet if success.
|
|
94
92
|
* @memberof JingchangWallet
|
|
95
|
-
*/
|
|
93
|
+
*/
|
|
96
94
|
```
|
|
97
95
|
|
|
98
96
|
### isValid
|
|
@@ -105,7 +103,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
105
103
|
* @param {*} wallet
|
|
106
104
|
* @returns {boolean} return true if valid.
|
|
107
105
|
* @memberof JingchangWallet
|
|
108
|
-
*/
|
|
106
|
+
*/
|
|
109
107
|
```
|
|
110
108
|
|
|
111
109
|
### get
|
|
@@ -117,7 +115,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
117
115
|
* @static
|
|
118
116
|
* @returns {(IJingchangWalletModel | null)} return jingchang wallet or null.
|
|
119
117
|
* @memberof JingchangWallet
|
|
120
|
-
*/
|
|
118
|
+
*/
|
|
121
119
|
```
|
|
122
120
|
|
|
123
121
|
### clear
|
|
@@ -128,7 +126,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
128
126
|
*
|
|
129
127
|
* @static
|
|
130
128
|
* @memberof JingchangWallet
|
|
131
|
-
*/
|
|
129
|
+
*/
|
|
132
130
|
```
|
|
133
131
|
|
|
134
132
|
### save
|
|
@@ -140,7 +138,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
140
138
|
* @static
|
|
141
139
|
* @param {IJingchangWalletModel} wallet
|
|
142
140
|
* @memberof JingchangWallet
|
|
143
|
-
*/
|
|
141
|
+
*/
|
|
144
142
|
```
|
|
145
143
|
|
|
146
144
|
### deriveKeyPair
|
|
@@ -196,7 +194,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
196
194
|
* @param {IJingchangWalletModel} jcWallet
|
|
197
195
|
* @returns {Array<IKeystoreModel>} return wallets if valid, otherwise return empty array.
|
|
198
196
|
* @memberof JingchangWallet
|
|
199
|
-
*/
|
|
197
|
+
*/
|
|
200
198
|
```
|
|
201
199
|
|
|
202
200
|
### setJingchangWallet
|
|
@@ -207,7 +205,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
207
205
|
*
|
|
208
206
|
* @param {IJingchangWalletModel} wallet
|
|
209
207
|
* @memberof JingchangWallet
|
|
210
|
-
*/
|
|
208
|
+
*/
|
|
211
209
|
```
|
|
212
210
|
|
|
213
211
|
### getAddress
|
|
@@ -219,7 +217,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
219
217
|
* @param {string} [type="swt"]
|
|
220
218
|
* @returns {Promise<string>} resolve address if success
|
|
221
219
|
* @memberof JingchangWallet
|
|
222
|
-
*/
|
|
220
|
+
*/
|
|
223
221
|
```
|
|
224
222
|
|
|
225
223
|
### getWalletWithType
|
|
@@ -231,7 +229,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
231
229
|
* @param {string} [type="swt"]
|
|
232
230
|
* @returns {Promise<IKeystoreModel>} resolve default wallet keystore if success.
|
|
233
231
|
* @memberof JingchangWallet
|
|
234
|
-
*/
|
|
232
|
+
*/
|
|
235
233
|
```
|
|
236
234
|
|
|
237
235
|
### getWalletWithAddress
|
|
@@ -243,7 +241,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
243
241
|
* @param {string} address
|
|
244
242
|
* @returns {Promise<IKeystoreModel>} resolve wallet keystore if success.
|
|
245
243
|
* @memberof JingchangWallet
|
|
246
|
-
*/
|
|
244
|
+
*/
|
|
247
245
|
```
|
|
248
246
|
|
|
249
247
|
### hasDefault
|
|
@@ -255,7 +253,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
255
253
|
* @param {string} [type="swt"]
|
|
256
254
|
* @returns {boolean} return true if has default.
|
|
257
255
|
* @memberof JingchangWallet
|
|
258
|
-
*/
|
|
256
|
+
*/
|
|
259
257
|
```
|
|
260
258
|
|
|
261
259
|
### getSecretWithType
|
|
@@ -268,7 +266,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
268
266
|
* @param {string} [type="swt"]
|
|
269
267
|
* @returns {Promise<string>} resolve secret if success.
|
|
270
268
|
* @memberof JingchangWallet
|
|
271
|
-
*/
|
|
269
|
+
*/
|
|
272
270
|
```
|
|
273
271
|
|
|
274
272
|
### getSecretWithAddress
|
|
@@ -281,7 +279,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
281
279
|
* @param {string} address
|
|
282
280
|
* @returns {Promise<string>} resolve secret if success.
|
|
283
281
|
* @memberof JingchangWallet
|
|
284
|
-
*/
|
|
282
|
+
*/
|
|
285
283
|
```
|
|
286
284
|
|
|
287
285
|
### changeWholePassword
|
|
@@ -295,7 +293,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
295
293
|
* @param {string} newPassword
|
|
296
294
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
297
295
|
* @memberof JingchangWallet
|
|
298
|
-
*/
|
|
296
|
+
*/
|
|
299
297
|
```
|
|
300
298
|
|
|
301
299
|
### changePasswordWithAddress
|
|
@@ -310,7 +308,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
310
308
|
* @param {string} newPassword
|
|
311
309
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
312
310
|
* @memberof JingchangWallet
|
|
313
|
-
*/
|
|
311
|
+
*/
|
|
314
312
|
```
|
|
315
313
|
|
|
316
314
|
### removeWalletWithType
|
|
@@ -321,7 +319,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
321
319
|
* @param {string} [type="swt"]
|
|
322
320
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
323
321
|
* @memberof JingchangWallet
|
|
324
|
-
*/
|
|
322
|
+
*/
|
|
325
323
|
```
|
|
326
324
|
|
|
327
325
|
### removeWalletWithAddress
|
|
@@ -333,7 +331,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
333
331
|
* @param {string} address
|
|
334
332
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
335
333
|
* @memberof JingchangWallet
|
|
336
|
-
*/
|
|
334
|
+
*/
|
|
337
335
|
```
|
|
338
336
|
|
|
339
337
|
### setDefaultWallet
|
|
@@ -345,7 +343,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
345
343
|
* @param {string} address
|
|
346
344
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
347
345
|
* @memberof JingchangWallet
|
|
348
|
-
*/
|
|
346
|
+
*/
|
|
349
347
|
```
|
|
350
348
|
|
|
351
349
|
### importSecret
|
|
@@ -360,7 +358,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
360
358
|
* @param {(secret: string) => string} retriveSecret
|
|
361
359
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
362
360
|
* @memberof JingchangWallet
|
|
363
|
-
*/
|
|
361
|
+
*/
|
|
364
362
|
```
|
|
365
363
|
|
|
366
364
|
### findWallet
|
|
@@ -374,7 +372,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
374
372
|
* @returns {IKeystoreModel} return wallet keystore if existent, otherwise throw `keystore is invalid`
|
|
375
373
|
* if the jingchang wallet is invalid or throw `wallet is empty` if the wallet isn't existent
|
|
376
374
|
* @memberof JingchangWallet
|
|
377
|
-
*/
|
|
375
|
+
*/
|
|
378
376
|
```
|
|
379
377
|
|
|
380
378
|
### getEncryptData
|
|
@@ -388,7 +386,7 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
388
386
|
* @param {IKeypairsModel} keypairs
|
|
389
387
|
* @returns {IKeystoreModel}
|
|
390
388
|
* @memberof JingchangWallet
|
|
391
|
-
*/
|
|
389
|
+
*/
|
|
392
390
|
```
|
|
393
391
|
|
|
394
392
|
### saveWallet
|
|
@@ -402,11 +400,11 @@ const JingchangWallet = require('jcc_wallet').JingchangWallet
|
|
|
402
400
|
* @param {IKeypairsModel} keypairs
|
|
403
401
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
404
402
|
* @memberof JingchangWallet
|
|
405
|
-
*/
|
|
403
|
+
*/
|
|
406
404
|
```
|
|
407
405
|
|
|
408
406
|
## Deprecated API
|
|
409
407
|
|
|
410
|
-
|
|
408
|
+
**_Deprecated api will be removed after 2020.1.1, please update asap._**
|
|
411
409
|
|
|
412
410
|
For more see [deprecatedAPI](https://github.com/JCCDex/jcc_wallet/blob/master/deprecatedAPI.md).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constant/index.ts"],"names":[],"mappings":";;AAAA,IAAM,oBAAoB,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constant/index.ts"],"names":[],"mappings":";;AAAA,IAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAYlD,oDAAoB;AAXtB,IAAM,eAAe,GAAG,iBAAiB,CAAC;AAcxC,0CAAe;AAbjB,IAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAW5C,8CAAiB;AAVnB,IAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAQhD,kDAAmB;AAPrB,IAAM,qBAAqB,GAAG,cAAY,iBAAmB,CAAC;AAM5D,sDAAqB;AALvB,IAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAS5C,8CAAiB;AARnB,IAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAGhD,kDAAmB"}
|
package/lib/eth/index.d.ts
CHANGED
package/lib/eth/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
+
var crypto_1 = __importDefault(require("crypto"));
|
|
7
|
+
var ethereumjs_util_1 = require("ethereumjs-util");
|
|
8
|
+
var ethereumjs_wallet_1 = __importDefault(require("ethereumjs-wallet"));
|
|
6
9
|
var jcc_common_1 = require("jcc_common");
|
|
7
|
-
var
|
|
8
|
-
var
|
|
10
|
+
var keccak_1 = __importDefault(require("keccak"));
|
|
11
|
+
var scryptsy_1 = __importDefault(require("scryptsy"));
|
|
9
12
|
var constant_1 = require("../constant");
|
|
10
13
|
var isObject = function (obj) {
|
|
11
14
|
return Object.prototype.toString.call(obj) === "[object Object]";
|
|
@@ -19,7 +22,7 @@ var isObject = function (obj) {
|
|
|
19
22
|
var isValidSecret = function (secret) {
|
|
20
23
|
secret = jcc_common_1.filterOx(secret);
|
|
21
24
|
try {
|
|
22
|
-
return
|
|
25
|
+
return ethereumjs_util_1.isValidPrivate(Buffer.from(secret, "hex"));
|
|
23
26
|
}
|
|
24
27
|
catch (error) {
|
|
25
28
|
return false;
|
|
@@ -33,7 +36,7 @@ exports.isValidSecret = isValidSecret;
|
|
|
33
36
|
* @returns {boolean} return true if valid
|
|
34
37
|
*/
|
|
35
38
|
var isValidAddress = function (address) {
|
|
36
|
-
return
|
|
39
|
+
return ethereumjs_util_1.isValidAddress(address);
|
|
37
40
|
};
|
|
38
41
|
exports.isValidAddress = isValidAddress;
|
|
39
42
|
/**
|
|
@@ -46,8 +49,8 @@ var getAddress = function (secret) {
|
|
|
46
49
|
if (!isValidSecret(secret)) {
|
|
47
50
|
return null;
|
|
48
51
|
}
|
|
49
|
-
var buffer =
|
|
50
|
-
var decodeAddress =
|
|
52
|
+
var buffer = ethereumjs_util_1.privateToAddress(Buffer.from(secret, "hex"));
|
|
53
|
+
var decodeAddress = ethereumjs_util_1.bufferToHex(buffer);
|
|
51
54
|
return decodeAddress;
|
|
52
55
|
};
|
|
53
56
|
exports.getAddress = getAddress;
|
|
@@ -69,15 +72,15 @@ var decryptKeystore = function (password, encryptData) {
|
|
|
69
72
|
}
|
|
70
73
|
var iv = Buffer.from(cryptoData.cipherparams.iv, "hex");
|
|
71
74
|
var kdfparams = cryptoData.kdfparams;
|
|
72
|
-
var derivedKey =
|
|
75
|
+
var derivedKey = scryptsy_1.default(Buffer.from(password), Buffer.from(kdfparams.salt, "hex"), kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen);
|
|
73
76
|
var ciphertext = Buffer.from(cryptoData.ciphertext, "hex");
|
|
74
|
-
var mac =
|
|
77
|
+
var mac = keccak_1.default("keccak256")
|
|
75
78
|
.update(Buffer.concat([derivedKey.slice(16, 32), ciphertext]))
|
|
76
79
|
.digest();
|
|
77
80
|
if (mac.toString("hex") !== cryptoData.mac) {
|
|
78
81
|
throw new Error(constant_1.ETH_PASSWORD_IS_WRONG);
|
|
79
82
|
}
|
|
80
|
-
var decipher =
|
|
83
|
+
var decipher = crypto_1.default.createDecipheriv("aes-128-ctr", derivedKey.slice(0, 16), iv);
|
|
81
84
|
var seed = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
82
85
|
return seed.toString("hex");
|
|
83
86
|
};
|
|
@@ -88,7 +91,7 @@ exports.decryptKeystore = decryptKeystore;
|
|
|
88
91
|
* @returns {IWalletModel}
|
|
89
92
|
*/
|
|
90
93
|
var createWallet = function () {
|
|
91
|
-
var _w =
|
|
94
|
+
var _w = ethereumjs_wallet_1.default.generate();
|
|
92
95
|
return { address: _w.getAddressString(), secret: _w.getPrivateKeyString() };
|
|
93
96
|
};
|
|
94
97
|
exports.createWallet = createWallet;
|
package/lib/eth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -18,12 +18,8 @@
|
|
|
18
18
|
* SOFTWARE.
|
|
19
19
|
* @author https://github.com/GinMu
|
|
20
20
|
*/
|
|
21
|
-
import * as bvcadtWallet from "./bvcadt";
|
|
22
|
-
import * as callWallet from "./call";
|
|
23
21
|
import * as ethWallet from "./eth";
|
|
24
22
|
import JingchangWallet from "./jingchangWallet";
|
|
25
|
-
import * as jtWallet from "./jingtum";
|
|
26
23
|
import * as moacWallet from "./moac";
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export { bvcadtWallet, callWallet, ethWallet, JingchangWallet, jtWallet, moacWallet, rippleWallet, stmWallet };
|
|
24
|
+
export * from "./x-wallet";
|
|
25
|
+
export { ethWallet, JingchangWallet, moacWallet };
|
package/lib/index.js
CHANGED
|
@@ -19,21 +19,25 @@
|
|
|
19
19
|
* SOFTWARE.
|
|
20
20
|
* @author https://github.com/GinMu
|
|
21
21
|
*/
|
|
22
|
+
function __export(m) {
|
|
23
|
+
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
|
24
|
+
}
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
|
29
|
+
result["default"] = mod;
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
|
+
};
|
|
22
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
var
|
|
24
|
-
exports.bvcadtWallet = bvcadtWallet;
|
|
25
|
-
var callWallet = require("./call");
|
|
26
|
-
exports.callWallet = callWallet;
|
|
27
|
-
var ethWallet = require("./eth");
|
|
36
|
+
var ethWallet = __importStar(require("./eth"));
|
|
28
37
|
exports.ethWallet = ethWallet;
|
|
29
|
-
var jingchangWallet_1 = require("./jingchangWallet");
|
|
38
|
+
var jingchangWallet_1 = __importDefault(require("./jingchangWallet"));
|
|
30
39
|
exports.JingchangWallet = jingchangWallet_1.default;
|
|
31
|
-
var
|
|
32
|
-
exports.jtWallet = jtWallet;
|
|
33
|
-
var moacWallet = require("./moac");
|
|
40
|
+
var moacWallet = __importStar(require("./moac"));
|
|
34
41
|
exports.moacWallet = moacWallet;
|
|
35
|
-
|
|
36
|
-
exports.rippleWallet = rippleWallet;
|
|
37
|
-
var stmWallet = require("./stm");
|
|
38
|
-
exports.stmWallet = stmWallet;
|
|
42
|
+
__export(require("./x-wallet"));
|
|
39
43
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;;;;;;;;;;;;;AAEH,+CAAmC;AAK1B,8BAAS;AAJlB,sEAAgD;AAI5B,0BAJb,yBAAe,CAIa;AAHnC,iDAAqC;AAGA,gCAAU;AAF/C,gCAA2B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { IEncrypt, IJingchangWalletModel, IKeyPair, IKeypairsModel, IKeystoreModel } from "../types";
|
|
2
1
|
/**
|
|
3
2
|
* api of jingchang wallet
|
|
4
3
|
*
|
|
@@ -50,10 +49,11 @@ export default class JingchangWallet {
|
|
|
50
49
|
* @static
|
|
51
50
|
* @param {string} password password for keystore
|
|
52
51
|
* @param {string} [secret] swtc chain's secret
|
|
52
|
+
* @param {string} [alias] wallet name
|
|
53
53
|
* @returns {Promise<IJingchangWalletModel>} resolve jingchang wallet if success.
|
|
54
54
|
* @memberof JingchangWallet
|
|
55
55
|
*/
|
|
56
|
-
static generate(password: string, secret?: string): Promise<IJingchangWalletModel>;
|
|
56
|
+
static generate(password: string, secret?: string, alias?: string): Promise<IJingchangWalletModel>;
|
|
57
57
|
/**
|
|
58
58
|
* get jingchang wallet from local storage
|
|
59
59
|
*
|
|
@@ -224,10 +224,11 @@ export default class JingchangWallet {
|
|
|
224
224
|
* @param {string} password
|
|
225
225
|
* @param {string} type
|
|
226
226
|
* @param {(secret: string) => string} retriveSecret
|
|
227
|
+
* @param {string} [alias] wallet name
|
|
227
228
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
228
229
|
* @memberof JingchangWallet
|
|
229
230
|
*/
|
|
230
|
-
importSecret(secret: string, password: string, type: string, retriveSecret: (secret: string) => string): Promise<IJingchangWalletModel>;
|
|
231
|
+
importSecret(secret: string, password: string, type: string, retriveSecret: (secret: string) => string, alias?: string): Promise<IJingchangWalletModel>;
|
|
231
232
|
/**
|
|
232
233
|
* find wallet keystore according to filter function
|
|
233
234
|
*
|
|
@@ -35,18 +35,21 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
38
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
42
|
+
var assert_1 = __importDefault(require("assert"));
|
|
43
|
+
var clone_deep_1 = __importDefault(require("clone-deep"));
|
|
44
|
+
var crypto_1 = __importDefault(require("crypto"));
|
|
45
|
+
var eccrypto_1 = __importDefault(require("eccrypto"));
|
|
43
46
|
var jcc_common_1 = require("jcc_common");
|
|
44
|
-
var
|
|
47
|
+
var lockr_1 = __importDefault(require("lockr"));
|
|
45
48
|
var keypairs_1 = require("@swtc/keypairs");
|
|
46
49
|
var constant_1 = require("../constant");
|
|
47
|
-
var
|
|
50
|
+
var x_wallet_1 = require("../x-wallet");
|
|
48
51
|
var util_1 = require("../util");
|
|
49
|
-
|
|
52
|
+
lockr_1.default.prefix = "jingchang_";
|
|
50
53
|
/**
|
|
51
54
|
* api of jingchang wallet
|
|
52
55
|
*
|
|
@@ -95,27 +98,28 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
95
98
|
* @static
|
|
96
99
|
* @param {string} password password for keystore
|
|
97
100
|
* @param {string} [secret] swtc chain's secret
|
|
101
|
+
* @param {string} [alias] wallet name
|
|
98
102
|
* @returns {Promise<IJingchangWalletModel>} resolve jingchang wallet if success.
|
|
99
103
|
* @memberof JingchangWallet
|
|
100
104
|
*/
|
|
101
|
-
JingchangWallet.generate = function (password, secret) {
|
|
105
|
+
JingchangWallet.generate = function (password, secret, alias) {
|
|
102
106
|
return new Promise(function (resolve, reject) {
|
|
103
107
|
var keypairs = {};
|
|
104
108
|
if (secret === undefined) {
|
|
105
|
-
var wallet =
|
|
109
|
+
var wallet = x_wallet_1.jtWallet.createWallet();
|
|
106
110
|
secret = wallet.secret;
|
|
107
111
|
keypairs.address = wallet.address;
|
|
108
112
|
}
|
|
109
113
|
else {
|
|
110
|
-
if (!
|
|
114
|
+
if (!x_wallet_1.jtWallet.isValidSecret(secret)) {
|
|
111
115
|
return reject(new Error(constant_1.SECRET_IS_INVALID));
|
|
112
116
|
}
|
|
113
|
-
keypairs.address =
|
|
117
|
+
keypairs.address = x_wallet_1.jtWallet.getAddress(secret);
|
|
114
118
|
}
|
|
115
119
|
keypairs.secret = secret;
|
|
116
120
|
keypairs.type = "swt";
|
|
117
121
|
keypairs.default = true;
|
|
118
|
-
keypairs.alias = "swt wallet";
|
|
122
|
+
keypairs.alias = alias || "swt wallet";
|
|
119
123
|
var jcWallet = {};
|
|
120
124
|
var walletObj = util_1.encryptWallet(password, keypairs);
|
|
121
125
|
jcWallet.version = JingchangWallet.version;
|
|
@@ -134,7 +138,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
134
138
|
* @memberof JingchangWallet
|
|
135
139
|
*/
|
|
136
140
|
JingchangWallet.get = function () {
|
|
137
|
-
var jcWallet =
|
|
141
|
+
var jcWallet = lockr_1.default.get(JingchangWallet._walletID);
|
|
138
142
|
if (!JingchangWallet.isValid(jcWallet)) {
|
|
139
143
|
return null;
|
|
140
144
|
}
|
|
@@ -147,7 +151,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
147
151
|
* @memberof JingchangWallet
|
|
148
152
|
*/
|
|
149
153
|
JingchangWallet.clear = function () {
|
|
150
|
-
|
|
154
|
+
lockr_1.default.set(JingchangWallet._walletID, {});
|
|
151
155
|
};
|
|
152
156
|
/**
|
|
153
157
|
* save jingchang wallet to local storage.
|
|
@@ -157,7 +161,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
157
161
|
* @memberof JingchangWallet
|
|
158
162
|
*/
|
|
159
163
|
JingchangWallet.save = function (wallet) {
|
|
160
|
-
|
|
164
|
+
lockr_1.default.set(JingchangWallet._walletID, wallet);
|
|
161
165
|
};
|
|
162
166
|
/**
|
|
163
167
|
* derive key pair with secret
|
|
@@ -192,7 +196,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
192
196
|
var encode;
|
|
193
197
|
return __generator(this, function (_a) {
|
|
194
198
|
switch (_a.label) {
|
|
195
|
-
case 0: return [4 /*yield*/,
|
|
199
|
+
case 0: return [4 /*yield*/, eccrypto_1.default.encrypt(Buffer.from(publicKey, "hex"), Buffer.from(message))];
|
|
196
200
|
case 1:
|
|
197
201
|
encode = _a.sent();
|
|
198
202
|
return [2 /*return*/, {
|
|
@@ -226,7 +230,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
226
230
|
iv: Buffer.from(message.iv, "hex"),
|
|
227
231
|
mac: Buffer.from(message.mac, "hex")
|
|
228
232
|
};
|
|
229
|
-
return [4 /*yield*/,
|
|
233
|
+
return [4 /*yield*/, eccrypto_1.default.decrypt(Buffer.from(privateKey, "hex"), encode)];
|
|
230
234
|
case 1:
|
|
231
235
|
decode = _a.sent();
|
|
232
236
|
return [2 /*return*/, decode.toString()];
|
|
@@ -406,8 +410,8 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
406
410
|
if (!this._samePassword) {
|
|
407
411
|
return [2 /*return*/, reject(new Error("the property of _samePassword is false, so please don't call this function!"))];
|
|
408
412
|
}
|
|
409
|
-
jcWallet =
|
|
410
|
-
|
|
413
|
+
jcWallet = clone_deep_1.default(this._jingchangWallet);
|
|
414
|
+
assert_1.default.notEqual(jcWallet, this._jingchangWallet);
|
|
411
415
|
wallets = JingchangWallet.getWallets(jcWallet);
|
|
412
416
|
_a.label = 1;
|
|
413
417
|
case 1:
|
|
@@ -536,8 +540,8 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
536
540
|
JingchangWallet.prototype.removeWalletWithAddress = function (address) {
|
|
537
541
|
var _this = this;
|
|
538
542
|
return new Promise(function (resolve, reject) {
|
|
539
|
-
var jcWallet =
|
|
540
|
-
|
|
543
|
+
var jcWallet = clone_deep_1.default(_this._jingchangWallet);
|
|
544
|
+
assert_1.default.notEqual(_this._jingchangWallet, jcWallet);
|
|
541
545
|
var wallets = JingchangWallet.getWallets(jcWallet);
|
|
542
546
|
try {
|
|
543
547
|
var wallet_1 = _this.findWallet(function (w) { return w.address === address; });
|
|
@@ -597,10 +601,11 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
597
601
|
* @param {string} password
|
|
598
602
|
* @param {string} type
|
|
599
603
|
* @param {(secret: string) => string} retriveSecret
|
|
604
|
+
* @param {string} [alias] wallet name
|
|
600
605
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
601
606
|
* @memberof JingchangWallet
|
|
602
607
|
*/
|
|
603
|
-
JingchangWallet.prototype.importSecret = function (secret, password, type, retriveSecret) {
|
|
608
|
+
JingchangWallet.prototype.importSecret = function (secret, password, type, retriveSecret, alias) {
|
|
604
609
|
var _this = this;
|
|
605
610
|
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
606
611
|
var address_1, wallets, wallet, keypairs, error_6;
|
|
@@ -627,7 +632,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
627
632
|
}
|
|
628
633
|
keypairs = {
|
|
629
634
|
address: address_1,
|
|
630
|
-
alias: type + " wallet",
|
|
635
|
+
alias: alias || type + " wallet",
|
|
631
636
|
secret: secret,
|
|
632
637
|
type: type
|
|
633
638
|
};
|
|
@@ -692,8 +697,8 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
692
697
|
// support type: ethereum, stream, jingtum, call and moac
|
|
693
698
|
keypairs.default = _this._multiple ? !_this.hasDefault(keypairs.type) : true;
|
|
694
699
|
var encryptData = _this.getEncryptData(password, keypairs);
|
|
695
|
-
var jcWallet =
|
|
696
|
-
|
|
700
|
+
var jcWallet = clone_deep_1.default(_this._jingchangWallet);
|
|
701
|
+
assert_1.default.notEqual(_this._jingchangWallet, jcWallet);
|
|
697
702
|
var wallets = jcWallet.wallets;
|
|
698
703
|
var pre = wallets.findIndex(function (w) { return w.type.toLowerCase() === keypairs.type.toLowerCase(); });
|
|
699
704
|
if (_this._multiple) {
|
|
@@ -712,7 +717,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
712
717
|
};
|
|
713
718
|
JingchangWallet.version = "1.0";
|
|
714
719
|
JingchangWallet._name = "wallets";
|
|
715
|
-
JingchangWallet._walletID =
|
|
720
|
+
JingchangWallet._walletID = crypto_1.default
|
|
716
721
|
.createHash("sha256")
|
|
717
722
|
.update(JingchangWallet._name.toLowerCase())
|
|
718
723
|
.digest("hex");
|