jcc_wallet 1.1.0 → 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 -14
- 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 -27
- package/lib/jingchangWallet/index.js.map +1 -1
- package/lib/moac/index.js +9 -7
- package/lib/moac/index.js.map +1 -1
- package/lib/util/index.d.ts +0 -1
- package/lib/util/index.js +15 -13
- 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 +7 -11
- package/dist/jcc-wallet.min.js +0 -1
- package/lib/bvcadt/index.d.ts +0 -30
- package/lib/bvcadt/index.js +0 -60
- package/lib/bvcadt/index.js.map +0 -1
- package/lib/call/index.d.ts +0 -30
- package/lib/call/index.js +0 -60
- package/lib/call/index.js.map +0 -1
- package/lib/jingtum/index.d.ts +0 -37
- package/lib/jingtum/index.js +0 -63
- package/lib/jingtum/index.js.map +0 -1
- package/lib/ripple/index.d.ts +0 -30
- package/lib/ripple/index.js +0 -58
- package/lib/ripple/index.js.map +0 -1
- package/lib/stm/index.d.ts +0 -28
- package/lib/stm/index.js +0 -51
- 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,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
3
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
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"));
|
|
7
9
|
var jcc_common_1 = require("jcc_common");
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
+
var keccak_1 = __importDefault(require("keccak"));
|
|
11
|
+
var scryptsy_1 = __importDefault(require("scryptsy"));
|
|
10
12
|
var constant_1 = require("../constant");
|
|
11
13
|
var isObject = function (obj) {
|
|
12
14
|
return Object.prototype.toString.call(obj) === "[object Object]";
|
|
@@ -20,7 +22,7 @@ var isObject = function (obj) {
|
|
|
20
22
|
var isValidSecret = function (secret) {
|
|
21
23
|
secret = jcc_common_1.filterOx(secret);
|
|
22
24
|
try {
|
|
23
|
-
return
|
|
25
|
+
return ethereumjs_util_1.isValidPrivate(Buffer.from(secret, "hex"));
|
|
24
26
|
}
|
|
25
27
|
catch (error) {
|
|
26
28
|
return false;
|
|
@@ -34,7 +36,7 @@ exports.isValidSecret = isValidSecret;
|
|
|
34
36
|
* @returns {boolean} return true if valid
|
|
35
37
|
*/
|
|
36
38
|
var isValidAddress = function (address) {
|
|
37
|
-
return
|
|
39
|
+
return ethereumjs_util_1.isValidAddress(address);
|
|
38
40
|
};
|
|
39
41
|
exports.isValidAddress = isValidAddress;
|
|
40
42
|
/**
|
|
@@ -47,8 +49,8 @@ var getAddress = function (secret) {
|
|
|
47
49
|
if (!isValidSecret(secret)) {
|
|
48
50
|
return null;
|
|
49
51
|
}
|
|
50
|
-
var buffer =
|
|
51
|
-
var decodeAddress =
|
|
52
|
+
var buffer = ethereumjs_util_1.privateToAddress(Buffer.from(secret, "hex"));
|
|
53
|
+
var decodeAddress = ethereumjs_util_1.bufferToHex(buffer);
|
|
52
54
|
return decodeAddress;
|
|
53
55
|
};
|
|
54
56
|
exports.getAddress = getAddress;
|
|
@@ -70,15 +72,15 @@ var decryptKeystore = function (password, encryptData) {
|
|
|
70
72
|
}
|
|
71
73
|
var iv = Buffer.from(cryptoData.cipherparams.iv, "hex");
|
|
72
74
|
var kdfparams = cryptoData.kdfparams;
|
|
73
|
-
var derivedKey =
|
|
75
|
+
var derivedKey = scryptsy_1.default(Buffer.from(password), Buffer.from(kdfparams.salt, "hex"), kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen);
|
|
74
76
|
var ciphertext = Buffer.from(cryptoData.ciphertext, "hex");
|
|
75
|
-
var mac =
|
|
77
|
+
var mac = keccak_1.default("keccak256")
|
|
76
78
|
.update(Buffer.concat([derivedKey.slice(16, 32), ciphertext]))
|
|
77
79
|
.digest();
|
|
78
80
|
if (mac.toString("hex") !== cryptoData.mac) {
|
|
79
81
|
throw new Error(constant_1.ETH_PASSWORD_IS_WRONG);
|
|
80
82
|
}
|
|
81
|
-
var decipher =
|
|
83
|
+
var decipher = crypto_1.default.createDecipheriv("aes-128-ctr", derivedKey.slice(0, 16), iv);
|
|
82
84
|
var seed = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
83
85
|
return seed.toString("hex");
|
|
84
86
|
};
|
|
@@ -89,7 +91,7 @@ exports.decryptKeystore = decryptKeystore;
|
|
|
89
91
|
* @returns {IWalletModel}
|
|
90
92
|
*/
|
|
91
93
|
var createWallet = function () {
|
|
92
|
-
var _w =
|
|
94
|
+
var _w = ethereumjs_wallet_1.default.generate();
|
|
93
95
|
return { address: _w.getAddressString(), secret: _w.getPrivateKeyString() };
|
|
94
96
|
};
|
|
95
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
|
-
/// <reference path="../types/index.d.ts" />
|
|
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
|
*
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/// <reference path = "../types/index.ts" />
|
|
3
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -36,18 +35,21 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
37
36
|
}
|
|
38
37
|
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
39
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
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"));
|
|
44
46
|
var jcc_common_1 = require("jcc_common");
|
|
45
|
-
var
|
|
47
|
+
var lockr_1 = __importDefault(require("lockr"));
|
|
46
48
|
var keypairs_1 = require("@swtc/keypairs");
|
|
47
49
|
var constant_1 = require("../constant");
|
|
48
|
-
var
|
|
50
|
+
var x_wallet_1 = require("../x-wallet");
|
|
49
51
|
var util_1 = require("../util");
|
|
50
|
-
|
|
52
|
+
lockr_1.default.prefix = "jingchang_";
|
|
51
53
|
/**
|
|
52
54
|
* api of jingchang wallet
|
|
53
55
|
*
|
|
@@ -96,27 +98,28 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
96
98
|
* @static
|
|
97
99
|
* @param {string} password password for keystore
|
|
98
100
|
* @param {string} [secret] swtc chain's secret
|
|
101
|
+
* @param {string} [alias] wallet name
|
|
99
102
|
* @returns {Promise<IJingchangWalletModel>} resolve jingchang wallet if success.
|
|
100
103
|
* @memberof JingchangWallet
|
|
101
104
|
*/
|
|
102
|
-
JingchangWallet.generate = function (password, secret) {
|
|
105
|
+
JingchangWallet.generate = function (password, secret, alias) {
|
|
103
106
|
return new Promise(function (resolve, reject) {
|
|
104
107
|
var keypairs = {};
|
|
105
108
|
if (secret === undefined) {
|
|
106
|
-
var wallet =
|
|
109
|
+
var wallet = x_wallet_1.jtWallet.createWallet();
|
|
107
110
|
secret = wallet.secret;
|
|
108
111
|
keypairs.address = wallet.address;
|
|
109
112
|
}
|
|
110
113
|
else {
|
|
111
|
-
if (!
|
|
114
|
+
if (!x_wallet_1.jtWallet.isValidSecret(secret)) {
|
|
112
115
|
return reject(new Error(constant_1.SECRET_IS_INVALID));
|
|
113
116
|
}
|
|
114
|
-
keypairs.address =
|
|
117
|
+
keypairs.address = x_wallet_1.jtWallet.getAddress(secret);
|
|
115
118
|
}
|
|
116
119
|
keypairs.secret = secret;
|
|
117
120
|
keypairs.type = "swt";
|
|
118
121
|
keypairs.default = true;
|
|
119
|
-
keypairs.alias = "swt wallet";
|
|
122
|
+
keypairs.alias = alias || "swt wallet";
|
|
120
123
|
var jcWallet = {};
|
|
121
124
|
var walletObj = util_1.encryptWallet(password, keypairs);
|
|
122
125
|
jcWallet.version = JingchangWallet.version;
|
|
@@ -135,7 +138,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
135
138
|
* @memberof JingchangWallet
|
|
136
139
|
*/
|
|
137
140
|
JingchangWallet.get = function () {
|
|
138
|
-
var jcWallet =
|
|
141
|
+
var jcWallet = lockr_1.default.get(JingchangWallet._walletID);
|
|
139
142
|
if (!JingchangWallet.isValid(jcWallet)) {
|
|
140
143
|
return null;
|
|
141
144
|
}
|
|
@@ -148,7 +151,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
148
151
|
* @memberof JingchangWallet
|
|
149
152
|
*/
|
|
150
153
|
JingchangWallet.clear = function () {
|
|
151
|
-
|
|
154
|
+
lockr_1.default.set(JingchangWallet._walletID, {});
|
|
152
155
|
};
|
|
153
156
|
/**
|
|
154
157
|
* save jingchang wallet to local storage.
|
|
@@ -158,7 +161,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
158
161
|
* @memberof JingchangWallet
|
|
159
162
|
*/
|
|
160
163
|
JingchangWallet.save = function (wallet) {
|
|
161
|
-
|
|
164
|
+
lockr_1.default.set(JingchangWallet._walletID, wallet);
|
|
162
165
|
};
|
|
163
166
|
/**
|
|
164
167
|
* derive key pair with secret
|
|
@@ -193,7 +196,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
193
196
|
var encode;
|
|
194
197
|
return __generator(this, function (_a) {
|
|
195
198
|
switch (_a.label) {
|
|
196
|
-
case 0: return [4 /*yield*/,
|
|
199
|
+
case 0: return [4 /*yield*/, eccrypto_1.default.encrypt(Buffer.from(publicKey, "hex"), Buffer.from(message))];
|
|
197
200
|
case 1:
|
|
198
201
|
encode = _a.sent();
|
|
199
202
|
return [2 /*return*/, {
|
|
@@ -227,7 +230,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
227
230
|
iv: Buffer.from(message.iv, "hex"),
|
|
228
231
|
mac: Buffer.from(message.mac, "hex")
|
|
229
232
|
};
|
|
230
|
-
return [4 /*yield*/,
|
|
233
|
+
return [4 /*yield*/, eccrypto_1.default.decrypt(Buffer.from(privateKey, "hex"), encode)];
|
|
231
234
|
case 1:
|
|
232
235
|
decode = _a.sent();
|
|
233
236
|
return [2 /*return*/, decode.toString()];
|
|
@@ -407,8 +410,8 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
407
410
|
if (!this._samePassword) {
|
|
408
411
|
return [2 /*return*/, reject(new Error("the property of _samePassword is false, so please don't call this function!"))];
|
|
409
412
|
}
|
|
410
|
-
jcWallet =
|
|
411
|
-
|
|
413
|
+
jcWallet = clone_deep_1.default(this._jingchangWallet);
|
|
414
|
+
assert_1.default.notEqual(jcWallet, this._jingchangWallet);
|
|
412
415
|
wallets = JingchangWallet.getWallets(jcWallet);
|
|
413
416
|
_a.label = 1;
|
|
414
417
|
case 1:
|
|
@@ -537,8 +540,8 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
537
540
|
JingchangWallet.prototype.removeWalletWithAddress = function (address) {
|
|
538
541
|
var _this = this;
|
|
539
542
|
return new Promise(function (resolve, reject) {
|
|
540
|
-
var jcWallet =
|
|
541
|
-
|
|
543
|
+
var jcWallet = clone_deep_1.default(_this._jingchangWallet);
|
|
544
|
+
assert_1.default.notEqual(_this._jingchangWallet, jcWallet);
|
|
542
545
|
var wallets = JingchangWallet.getWallets(jcWallet);
|
|
543
546
|
try {
|
|
544
547
|
var wallet_1 = _this.findWallet(function (w) { return w.address === address; });
|
|
@@ -598,10 +601,11 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
598
601
|
* @param {string} password
|
|
599
602
|
* @param {string} type
|
|
600
603
|
* @param {(secret: string) => string} retriveSecret
|
|
604
|
+
* @param {string} [alias] wallet name
|
|
601
605
|
* @returns {Promise<IJingchangWalletModel>} resolve new jingchang wallet if success
|
|
602
606
|
* @memberof JingchangWallet
|
|
603
607
|
*/
|
|
604
|
-
JingchangWallet.prototype.importSecret = function (secret, password, type, retriveSecret) {
|
|
608
|
+
JingchangWallet.prototype.importSecret = function (secret, password, type, retriveSecret, alias) {
|
|
605
609
|
var _this = this;
|
|
606
610
|
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
607
611
|
var address_1, wallets, wallet, keypairs, error_6;
|
|
@@ -628,7 +632,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
628
632
|
}
|
|
629
633
|
keypairs = {
|
|
630
634
|
address: address_1,
|
|
631
|
-
alias: type + " wallet",
|
|
635
|
+
alias: alias || type + " wallet",
|
|
632
636
|
secret: secret,
|
|
633
637
|
type: type
|
|
634
638
|
};
|
|
@@ -693,8 +697,8 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
693
697
|
// support type: ethereum, stream, jingtum, call and moac
|
|
694
698
|
keypairs.default = _this._multiple ? !_this.hasDefault(keypairs.type) : true;
|
|
695
699
|
var encryptData = _this.getEncryptData(password, keypairs);
|
|
696
|
-
var jcWallet =
|
|
697
|
-
|
|
700
|
+
var jcWallet = clone_deep_1.default(_this._jingchangWallet);
|
|
701
|
+
assert_1.default.notEqual(_this._jingchangWallet, jcWallet);
|
|
698
702
|
var wallets = jcWallet.wallets;
|
|
699
703
|
var pre = wallets.findIndex(function (w) { return w.type.toLowerCase() === keypairs.type.toLowerCase(); });
|
|
700
704
|
if (_this._multiple) {
|
|
@@ -713,7 +717,7 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
713
717
|
};
|
|
714
718
|
JingchangWallet.version = "1.0";
|
|
715
719
|
JingchangWallet._name = "wallets";
|
|
716
|
-
JingchangWallet._walletID =
|
|
720
|
+
JingchangWallet._walletID = crypto_1.default
|
|
717
721
|
.createHash("sha256")
|
|
718
722
|
.update(JingchangWallet._name.toLowerCase())
|
|
719
723
|
.digest("hex");
|