jcc_wallet 1.1.1 → 1.2.0
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 +33 -0
- package/dist/jcc-wallet.min.js +44 -0
- package/lib/constant/index.js +1 -0
- package/lib/constant/index.js.map +1 -1
- package/lib/eth/index.d.ts +1 -1
- package/lib/eth/index.js +1 -0
- package/lib/eth/index.js.map +1 -1
- package/lib/hd/constant.d.ts +25 -0
- package/lib/hd/constant.js +55 -0
- package/lib/hd/constant.js.map +1 -0
- package/lib/hd/ethereum.plugin.d.ts +4 -0
- package/lib/hd/ethereum.plugin.js +94 -0
- package/lib/hd/ethereum.plugin.js.map +1 -0
- package/lib/hd/index.d.ts +227 -0
- package/lib/hd/index.js +390 -0
- package/lib/hd/index.js.map +1 -0
- package/lib/hd/plugins.d.ts +1 -0
- package/lib/hd/plugins.js +31 -0
- package/lib/hd/plugins.js.map +1 -0
- package/lib/hd/swtc.plugin.d.ts +5 -0
- package/lib/hd/swtc.plugin.js +72 -0
- package/lib/hd/swtc.plugin.js.map +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +21 -6
- package/lib/index.js.map +1 -1
- package/lib/jingchangWallet/index.d.ts +10 -0
- package/lib/jingchangWallet/index.js +31 -0
- package/lib/jingchangWallet/index.js.map +1 -1
- package/lib/moac/index.d.ts +1 -1
- package/lib/moac/index.js +1 -0
- package/lib/moac/index.js.map +1 -1
- package/lib/types/index.d.ts +20 -0
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/x-wallet/index.js +1 -0
- package/lib/x-wallet/index.js.map +1 -1
- package/package.json +7 -3
package/lib/hd/index.js
ADDED
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.HDWallet = exports.getBIP44Chain = exports.BIP44ChainMap = exports.BIP44Chain = void 0;
|
|
26
|
+
var wallet_1 = require("@swtc/wallet");
|
|
27
|
+
var BIP39 = __importStar(require("bip39"));
|
|
28
|
+
var bip32_1 = __importDefault(require("bip32"));
|
|
29
|
+
var ecc = __importStar(require("tiny-secp256k1"));
|
|
30
|
+
var constant_1 = require("./constant");
|
|
31
|
+
Object.defineProperty(exports, "BIP44Chain", { enumerable: true, get: function () { return constant_1.BIP44Chain; } });
|
|
32
|
+
Object.defineProperty(exports, "BIP44ChainMap", { enumerable: true, get: function () { return constant_1.BIP44ChainMap; } });
|
|
33
|
+
Object.defineProperty(exports, "getBIP44Chain", { enumerable: true, get: function () { return constant_1.getBIP44Chain; } });
|
|
34
|
+
var plugins_1 = require("./plugins");
|
|
35
|
+
var addressCodec = wallet_1.KeyPair.addressCodec;
|
|
36
|
+
var HDWallet = /** @class */ (function () {
|
|
37
|
+
/**
|
|
38
|
+
* generate hd wallet
|
|
39
|
+
*
|
|
40
|
+
* @param {any} opt options of generate, like:
|
|
41
|
+
* {
|
|
42
|
+
* mnemonic: "world list", // optional
|
|
43
|
+
* // see also:bip39 https://github.com/bitcoinjs/bip39/tree/master/ts_src/wordlists
|
|
44
|
+
* // language attribute appears with mnemonic attribute
|
|
45
|
+
* language: english default/chinese_simplified/...
|
|
46
|
+
* secret: "secret string", // optional, default this coding rules of SWTC chain
|
|
47
|
+
* keypair: {privateKey: "xxxx", publicKey: "xxxx"}
|
|
48
|
+
* }
|
|
49
|
+
* way of create hd wallet
|
|
50
|
+
* 1. {mnemonic: "xxx", language:"english"}
|
|
51
|
+
* 2. {secret: "xxxx"}
|
|
52
|
+
* 3. {keypair: {....}, path:{....}}
|
|
53
|
+
* @returns {object} return hd wallet object
|
|
54
|
+
*/
|
|
55
|
+
function HDWallet(opt) {
|
|
56
|
+
var _this = this;
|
|
57
|
+
/**
|
|
58
|
+
* hd wallet is root or not
|
|
59
|
+
*
|
|
60
|
+
* @returns {boolean} return hd wallet root or not
|
|
61
|
+
*/
|
|
62
|
+
this.isRoot = function () {
|
|
63
|
+
return _this._path.chain + _this._path.account + _this._path.change + _this._path.index === 0;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* generate hd wallet by derive path, obey BIP44 protocol
|
|
67
|
+
*
|
|
68
|
+
* @param {any} opt options of derive, like:
|
|
69
|
+
* {
|
|
70
|
+
* chain: BIP44Chain.ETH, //chain code defined in bip44
|
|
71
|
+
* account: 0, // account for what purpose
|
|
72
|
+
* change: 0, // optional attrube,default always 0, for change account after transfer
|
|
73
|
+
* index: 0, // accout index
|
|
74
|
+
* }
|
|
75
|
+
* @returns {object} return hd wallet object
|
|
76
|
+
*/
|
|
77
|
+
this.deriveWallet = function (opt) {
|
|
78
|
+
if (isNaN(opt.chain) || isNaN(opt.account) || isNaN(opt.index)) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
var hdKeypair = HDWallet.getHDKeypair(_this._secret, opt.chain, opt.account, opt.index);
|
|
82
|
+
return new HDWallet({
|
|
83
|
+
keypair: hdKeypair,
|
|
84
|
+
path: { chain: opt.chain, account: opt.account, change: 0, index: opt.index }
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* get wallet secret
|
|
89
|
+
*
|
|
90
|
+
* @returns {string} return wallet secret
|
|
91
|
+
*/
|
|
92
|
+
this.secret = function () {
|
|
93
|
+
return _this._secret;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* get wallet mnemonic
|
|
97
|
+
*
|
|
98
|
+
* @returns {IMnemonic} return IMnemonic object
|
|
99
|
+
*/
|
|
100
|
+
this.mnemonic = function () {
|
|
101
|
+
return _this._mnemonic;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* get chain of hd wallet
|
|
105
|
+
*
|
|
106
|
+
* @returns {string} return chain of hd wallet
|
|
107
|
+
*/
|
|
108
|
+
this.chain = function () {
|
|
109
|
+
return _this.isRoot() ? constant_1.BIP44ChainMap.get(constant_1.BIP44Chain.SWTC) : constant_1.BIP44ChainMap.get(_this._path.chain);
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* get address of hd wallet
|
|
113
|
+
*
|
|
114
|
+
* @returns {string} return address of hd wallet
|
|
115
|
+
*/
|
|
116
|
+
this.address = function () {
|
|
117
|
+
if (!_this._address) {
|
|
118
|
+
var chain = _this.chain();
|
|
119
|
+
_this._address = plugins_1.getPluginByType(chain).address(_this._secret ? _this._secret : _this._keypair, chain);
|
|
120
|
+
}
|
|
121
|
+
return _this._address;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* check address valid or not
|
|
125
|
+
* @param {string} address
|
|
126
|
+
* @returns {boolean} true valid, false invalid
|
|
127
|
+
*/
|
|
128
|
+
this.isValidAddress = function (address) {
|
|
129
|
+
return plugins_1.getPluginByType(_this.chain()).isValidAddress(address);
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* check secret valid or not
|
|
133
|
+
*
|
|
134
|
+
* @param {string} secret
|
|
135
|
+
* @returns {boolean} true valid, false invalid
|
|
136
|
+
*/
|
|
137
|
+
this.isValidSecret = function (address) {
|
|
138
|
+
return plugins_1.getPluginByType(_this.chain()).isValidSecret(address);
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* hash message
|
|
142
|
+
*
|
|
143
|
+
* @param {string} message
|
|
144
|
+
* @returns {string} return hash of message
|
|
145
|
+
*/
|
|
146
|
+
this.hash = function (message) {
|
|
147
|
+
return plugins_1.getPluginByType(_this.chain()).hash(message);
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* sign message
|
|
151
|
+
* @notice how to operate message(raw or hashed) is different in native sdk of different chain
|
|
152
|
+
* to avoid confusion, we assume that native sdk will automatically hashed message
|
|
153
|
+
* if not the case of native sdk, we hash this message in lower level(plugin), for example ethereum sdk
|
|
154
|
+
* @param {string} message
|
|
155
|
+
* @returns {string} return signature string
|
|
156
|
+
*/
|
|
157
|
+
this.sign = function (message) {
|
|
158
|
+
return plugins_1.getPluginByType(_this.chain()).sign(message, _this._keypair.privateKey);
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* verify signature valid or not
|
|
162
|
+
*
|
|
163
|
+
* @param {string} message origin message
|
|
164
|
+
* @param {string} signature signature
|
|
165
|
+
* @param {string} address account which sign
|
|
166
|
+
* @param {IKeyPair} keypair keypair object, usually to provide public key, private key not required
|
|
167
|
+
*
|
|
168
|
+
* @returns {boolean} true valid, false invalid
|
|
169
|
+
*/
|
|
170
|
+
this.verify = function (messgae, signature, address, keypair) {
|
|
171
|
+
if (!address) {
|
|
172
|
+
address = _this.address();
|
|
173
|
+
}
|
|
174
|
+
if (!keypair) {
|
|
175
|
+
keypair = _this._keypair;
|
|
176
|
+
}
|
|
177
|
+
return plugins_1.getPluginByType(_this.chain()).verify(messgae, signature, address, keypair);
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* recover address/account from signature
|
|
181
|
+
*
|
|
182
|
+
* @param {string} message origin message
|
|
183
|
+
* @param {string} signature signature
|
|
184
|
+
*
|
|
185
|
+
* @returns {string} return address
|
|
186
|
+
*/
|
|
187
|
+
this.recover = function (messgae, signature) {
|
|
188
|
+
return plugins_1.getPluginByType(_this.chain()).recover(messgae, signature);
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* get specified chain wallet api
|
|
192
|
+
*
|
|
193
|
+
* @returns {IHDPlugin} return hd plugin object
|
|
194
|
+
*/
|
|
195
|
+
this.getWalletApi = function () {
|
|
196
|
+
return plugins_1.getPluginByType(_this.chain());
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* get keypair of hd wallet
|
|
200
|
+
*
|
|
201
|
+
* @returns {IKeyPair} return keypair of message
|
|
202
|
+
*/
|
|
203
|
+
this.keypair = function () {
|
|
204
|
+
return _this._keypair;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* get path of hd wallet
|
|
208
|
+
*
|
|
209
|
+
* @returns {IBIP44Path} return path of wallet
|
|
210
|
+
*/
|
|
211
|
+
this.path = function () {
|
|
212
|
+
return _this._path;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* set keypair
|
|
216
|
+
* @param {IKeyPair} keypair
|
|
217
|
+
*/
|
|
218
|
+
this.setKeypair = function (keypair) {
|
|
219
|
+
_this._keypair = keypair;
|
|
220
|
+
};
|
|
221
|
+
if (!opt) {
|
|
222
|
+
throw new Error("undefined parameters: " + opt);
|
|
223
|
+
}
|
|
224
|
+
this._path = {
|
|
225
|
+
chain: 0,
|
|
226
|
+
account: 0,
|
|
227
|
+
change: 0,
|
|
228
|
+
index: 0
|
|
229
|
+
};
|
|
230
|
+
if (opt.mnemonic) {
|
|
231
|
+
this._secret = HDWallet.getSecretFromMnemonic(opt.mnemonic, opt.language);
|
|
232
|
+
this._keypair = HDWallet.getKeypairFromSecret(this._secret);
|
|
233
|
+
this._mnemonic = { mnemonic: opt.mnemonic, language: opt.language };
|
|
234
|
+
return this;
|
|
235
|
+
}
|
|
236
|
+
if (opt.secret) {
|
|
237
|
+
this._secret = opt.secret;
|
|
238
|
+
this._keypair = HDWallet.getKeypairFromSecret(this._secret);
|
|
239
|
+
this._mnemonic = { mnemonic: HDWallet.getMnemonicFromSecret(this._secret, opt.language), language: opt.language };
|
|
240
|
+
return this;
|
|
241
|
+
}
|
|
242
|
+
// wallet create by keypair, which only for sign message and tx
|
|
243
|
+
if (opt.keypair) {
|
|
244
|
+
if (opt.path) {
|
|
245
|
+
this._keypair = opt.keypair;
|
|
246
|
+
this._mnemonic = null;
|
|
247
|
+
this._secret = null;
|
|
248
|
+
this._path = opt.path;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
this._keypair = opt.keypair;
|
|
252
|
+
this._mnemonic = null;
|
|
253
|
+
this._secret = null;
|
|
254
|
+
}
|
|
255
|
+
return this;
|
|
256
|
+
}
|
|
257
|
+
// parameter error;
|
|
258
|
+
throw new Error("invalid parameters: " + opt);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* generate mnemonic
|
|
262
|
+
*
|
|
263
|
+
* @static
|
|
264
|
+
* @param {number} len strength of random bytes, default 128
|
|
265
|
+
* @param {string} language localized word list, default is english. see also https://github.com/bitcoinjs/BIP39
|
|
266
|
+
* @returns {string} return mnemonic string, spilt by blank
|
|
267
|
+
*/
|
|
268
|
+
HDWallet.generateMnemonic = function (len, language) {
|
|
269
|
+
if (len === void 0) { len = 128; }
|
|
270
|
+
if (language === void 0) { language = "english"; }
|
|
271
|
+
BIP39.setDefaultWordlist(language);
|
|
272
|
+
return BIP39.generateMnemonic(len);
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* get secret from mnemonic, obey encode rule base58 for jingtum
|
|
276
|
+
*
|
|
277
|
+
* @static
|
|
278
|
+
* @param {string} mnemonic mnemonic words
|
|
279
|
+
* @param {string} language localized word list, default is english. see also https://github.com/bitcoinjs/BIP39
|
|
280
|
+
* @returns {string} return secret string
|
|
281
|
+
*/
|
|
282
|
+
HDWallet.getSecretFromMnemonic = function (mnemonic, language) {
|
|
283
|
+
if (language === void 0) { language = "english"; }
|
|
284
|
+
BIP39.setDefaultWordlist(language);
|
|
285
|
+
var entropy = BIP39.mnemonicToEntropy(mnemonic);
|
|
286
|
+
return addressCodec.encodeSeed(Buffer.from(entropy, "hex"));
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* get mnemonic from secret, obey encode rule base58 for jingtum
|
|
290
|
+
*
|
|
291
|
+
* @static
|
|
292
|
+
* @param {string} secret secret string
|
|
293
|
+
* @param {string} language localized word list, default is english. see also https://github.com/bitcoinjs/BIP39
|
|
294
|
+
* @returns {string} return mnemonic word list
|
|
295
|
+
*/
|
|
296
|
+
HDWallet.getMnemonicFromSecret = function (secret, language) {
|
|
297
|
+
if (language === void 0) { language = "english"; }
|
|
298
|
+
BIP39.setDefaultWordlist(language);
|
|
299
|
+
var entropy = addressCodec.decodeSeed(secret).bytes;
|
|
300
|
+
return BIP39.entropyToMnemonic(entropy);
|
|
301
|
+
};
|
|
302
|
+
/**
|
|
303
|
+
* get keypair from secret
|
|
304
|
+
*
|
|
305
|
+
* @static
|
|
306
|
+
* @param {string} secret secret string
|
|
307
|
+
* @returns {object} return keypair object
|
|
308
|
+
*/
|
|
309
|
+
HDWallet.getKeypairFromSecret = function (secret) {
|
|
310
|
+
return wallet_1.KeyPair.deriveKeypair(secret);
|
|
311
|
+
};
|
|
312
|
+
/**
|
|
313
|
+
* get hd wallet key pair
|
|
314
|
+
*
|
|
315
|
+
* @static
|
|
316
|
+
* @param {string} rootSecret root secret
|
|
317
|
+
* @param {number} chain chain index number
|
|
318
|
+
* @param {number} account bip44 account index for purpose
|
|
319
|
+
* @param {number} index bip44 last level index
|
|
320
|
+
* @returns {IKeyPair} return keypair object
|
|
321
|
+
*/
|
|
322
|
+
HDWallet.getHDKeypair = function (rootSecret, chain, account, index) {
|
|
323
|
+
if (account === void 0) { account = 0; }
|
|
324
|
+
var bip44Chain = constant_1.getBIP44Chain(chain);
|
|
325
|
+
if (bip44Chain.length === 0) {
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
/* tslint:disable:no-bitwise */
|
|
329
|
+
var chainIdx = (bip44Chain[0][0] << 1) >> 1;
|
|
330
|
+
var mnemonic = HDWallet.getMnemonicFromSecret(rootSecret);
|
|
331
|
+
var seed = BIP39.mnemonicToSeedSync(mnemonic);
|
|
332
|
+
var bip32 = bip32_1.default(ecc);
|
|
333
|
+
var b32 = bip32.fromSeed(seed);
|
|
334
|
+
var privateKey = b32.derivePath("m/44'/" + chainIdx + "'/" + account + "'/0/" + index).privateKey;
|
|
335
|
+
return wallet_1.KeyPair.deriveKeypair(privateKey.toString("hex"));
|
|
336
|
+
};
|
|
337
|
+
/**
|
|
338
|
+
* generate hd wallet
|
|
339
|
+
*
|
|
340
|
+
* @static
|
|
341
|
+
* @param {any} opt options of generate, like:
|
|
342
|
+
* {
|
|
343
|
+
* len: 128/160/192/224/256, default is 128, determines number of mnemonic word
|
|
344
|
+
* language: english default/chinese_simplified/chinese_traditional/czech/korean/french/japanese/... see also:bip39 https://github.com/bitcoinjs/bip39/tree/master/ts_src/wordlists
|
|
345
|
+
* }
|
|
346
|
+
* @returns {object} return hd wallet object
|
|
347
|
+
*/
|
|
348
|
+
HDWallet.generate = function (opt) {
|
|
349
|
+
if (!opt) {
|
|
350
|
+
opt = {};
|
|
351
|
+
}
|
|
352
|
+
var mnemonic = HDWallet.generateMnemonic(opt.len, opt.language);
|
|
353
|
+
return new HDWallet({ mnemonic: mnemonic, language: opt.language });
|
|
354
|
+
};
|
|
355
|
+
/**
|
|
356
|
+
* create hd wallet from secret
|
|
357
|
+
*
|
|
358
|
+
* @static
|
|
359
|
+
* @param {string} secret secret string
|
|
360
|
+
* @returns {object} return hd wallet object
|
|
361
|
+
*/
|
|
362
|
+
HDWallet.fromSecret = function (secret) {
|
|
363
|
+
return new HDWallet({ secret: secret });
|
|
364
|
+
};
|
|
365
|
+
/**
|
|
366
|
+
* create hd wallet from mnemonic
|
|
367
|
+
*
|
|
368
|
+
* @static
|
|
369
|
+
* @param {IMnemonic} mnemonic object like
|
|
370
|
+
* {mnemonic: "abc abc ...", language: "english"}
|
|
371
|
+
* @returns {object} return hd wallet object
|
|
372
|
+
*/
|
|
373
|
+
HDWallet.fromMnemonic = function (mnemonic) {
|
|
374
|
+
return new HDWallet({ mnemonic: mnemonic.mnemonic, language: mnemonic.language });
|
|
375
|
+
};
|
|
376
|
+
/**
|
|
377
|
+
* create hd wallet from keypair
|
|
378
|
+
*
|
|
379
|
+
* @static
|
|
380
|
+
* @param {IKeyPair} keypair object like
|
|
381
|
+
* {publicKey: "public key...", privateKey: "private key..."}
|
|
382
|
+
* @returns {object} return hd wallet object
|
|
383
|
+
*/
|
|
384
|
+
HDWallet.fromKeypair = function (keypair) {
|
|
385
|
+
return new HDWallet({ keypair: keypair });
|
|
386
|
+
};
|
|
387
|
+
return HDWallet;
|
|
388
|
+
}());
|
|
389
|
+
exports.HDWallet = HDWallet;
|
|
390
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hd/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getPluginByType<T extends IHDPlugin>(type: string): T;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPluginByType = void 0;
|
|
4
|
+
var ethereum_plugin_1 = require("./ethereum.plugin");
|
|
5
|
+
var ethereum_plugin_2 = require("./ethereum.plugin");
|
|
6
|
+
var ethereum_plugin_3 = require("./ethereum.plugin");
|
|
7
|
+
var ethereum_plugin_4 = require("./ethereum.plugin");
|
|
8
|
+
// import { plugin as swtcPlugin } from "./swtc.plugin";
|
|
9
|
+
// import { plugin as bvcadtPlugin } from "./swtc.plugin";
|
|
10
|
+
// import { plugin as callPlugin } from "./swtc.plugin";
|
|
11
|
+
// import { plugin as ripplePlugin } from "./ripple.plugin";
|
|
12
|
+
// import { plugin as streamPlugin } from "./swtc.plugin";
|
|
13
|
+
// import { plugin as bizainPlugin } from "./swtc.plugin";
|
|
14
|
+
var swtc_plugin_1 = require("./swtc.plugin");
|
|
15
|
+
var pluginMap = {
|
|
16
|
+
ethereum: ethereum_plugin_1.plugin,
|
|
17
|
+
bsc: ethereum_plugin_2.plugin,
|
|
18
|
+
heco: ethereum_plugin_3.plugin,
|
|
19
|
+
polygon: ethereum_plugin_4.plugin,
|
|
20
|
+
bvcadt: swtc_plugin_1.XWallet("bvcadt"),
|
|
21
|
+
call: swtc_plugin_1.XWallet("call"),
|
|
22
|
+
ripple: swtc_plugin_1.XWallet("ripple"),
|
|
23
|
+
stream: swtc_plugin_1.XWallet("stream"),
|
|
24
|
+
bizain: swtc_plugin_1.XWallet("bizain"),
|
|
25
|
+
jingtum: swtc_plugin_1.XWallet("jingtum")
|
|
26
|
+
};
|
|
27
|
+
function getPluginByType(type) {
|
|
28
|
+
return pluginMap[type];
|
|
29
|
+
}
|
|
30
|
+
exports.getPluginByType = getPluginByType;
|
|
31
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/hd/plugins.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAC7D,qDAAwD;AACxD,qDAAyD;AACzD,qDAA4D;AAC5D,wDAAwD;AACxD,0DAA0D;AAC1D,wDAAwD;AACxD,4DAA4D;AAC5D,0DAA0D;AAC1D,0DAA0D;AAC1D,6CAAwC;AAMxC,IAAM,SAAS,GAAe;IAC5B,QAAQ,EAAE,wBAAc;IACxB,GAAG,EAAE,wBAAS;IACd,IAAI,EAAE,wBAAU;IAChB,OAAO,EAAE,wBAAa;IACtB,MAAM,EAAE,qBAAO,CAAC,QAAQ,CAAC;IACzB,IAAI,EAAE,qBAAO,CAAC,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAO,CAAC,QAAQ,CAAC;IACzB,MAAM,EAAE,qBAAO,CAAC,QAAQ,CAAC;IACzB,MAAM,EAAE,qBAAO,CAAC,QAAQ,CAAC;IACzB,OAAO,EAAE,qBAAO,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,SAAgB,eAAe,CAAsB,IAAY;IAC/D,OAAO,SAAS,CAAC,IAAI,CAAM,CAAC;AAC9B,CAAC;AAFD,0CAEC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XWallet = void 0;
|
|
4
|
+
var wallet_1 = require("@swtc/wallet");
|
|
5
|
+
// import { KeyPair } from "@swtc/wallet";
|
|
6
|
+
var common_1 = require("@swtc/common");
|
|
7
|
+
var XWallet = function (chain) {
|
|
8
|
+
return {
|
|
9
|
+
wallet: wallet_1.Factory(chain),
|
|
10
|
+
/**
|
|
11
|
+
* get address of wallet
|
|
12
|
+
*
|
|
13
|
+
* @param {IKeyPair | string} key is a keypair object or secret
|
|
14
|
+
*
|
|
15
|
+
* @returns {string} return address of wallet, return null if failed
|
|
16
|
+
*/
|
|
17
|
+
address: function (key) {
|
|
18
|
+
try {
|
|
19
|
+
if (typeof key === "string") {
|
|
20
|
+
var wallet = this.wallet.fromSecret(key);
|
|
21
|
+
return wallet.address;
|
|
22
|
+
}
|
|
23
|
+
var keypair = this.wallet.KeyPair;
|
|
24
|
+
if (key.privateKey) {
|
|
25
|
+
return keypair.deriveAddress(keypair.deriveKeyPair(key.privateKey).publicKey);
|
|
26
|
+
}
|
|
27
|
+
if (key.publicKey) {
|
|
28
|
+
return keypair.deriveAddress(key.publicKey);
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
isValidAddress: function (address) {
|
|
37
|
+
return this.wallet.isValidAddress(address);
|
|
38
|
+
},
|
|
39
|
+
isValidSecret: function (secret) {
|
|
40
|
+
return this.wallet.isValidSecret(secret);
|
|
41
|
+
},
|
|
42
|
+
hash: function (message) {
|
|
43
|
+
return common_1.funcBytesToHex(this.wallet.hash(message));
|
|
44
|
+
},
|
|
45
|
+
sign: function (message, privateKey) {
|
|
46
|
+
return this.wallet.KeyPair.sign(message, privateKey);
|
|
47
|
+
},
|
|
48
|
+
verify: function (message, signature, address, keypair) {
|
|
49
|
+
if (address !== this.address(keypair)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
// check public key
|
|
53
|
+
if (!keypair.publicKey) {
|
|
54
|
+
keypair = this.wallet.KeyPair.deriveKeyPair(keypair.privateKey);
|
|
55
|
+
}
|
|
56
|
+
return this.wallet.KeyPair.verify(message, signature, keypair.publicKey);
|
|
57
|
+
},
|
|
58
|
+
recover: function () {
|
|
59
|
+
return "swtclib does not support.";
|
|
60
|
+
},
|
|
61
|
+
proxy: function (functionName) {
|
|
62
|
+
var _a;
|
|
63
|
+
var args = [];
|
|
64
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
65
|
+
args[_i - 1] = arguments[_i];
|
|
66
|
+
}
|
|
67
|
+
return (_a = this.wallet)[functionName].apply(_a, args);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
exports.XWallet = XWallet;
|
|
72
|
+
//# sourceMappingURL=swtc.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swtc.plugin.js","sourceRoot":"","sources":["../../src/hd/swtc.plugin.ts"],"names":[],"mappings":";;;AAAA,uCAAwD;AACxD,0CAA0C;AAC1C,uCAA4D;AAM5D,IAAM,OAAO,GAAG,UAAC,KAAa;IAC5B,OAAO;QACL,MAAM,EAAE,gBAAa,CAAC,KAAK,CAAC;QAC5B;;;;;;WAMG;QACH,OAAO,EAAP,UAAQ,GAAsB;YAC5B,IAAI;gBACF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;oBAC3B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC3C,OAAO,MAAM,CAAC,OAAO,CAAC;iBACvB;gBAED,IAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpC,IAAI,GAAG,CAAC,UAAU,EAAE;oBAClB,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;iBAC/E;gBACD,IAAI,GAAG,CAAC,SAAS,EAAE;oBACjB,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBAC7C;gBAED,OAAO,IAAI,CAAC;aACb;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,IAAI,CAAC;aACb;QACH,CAAC;QAED,cAAc,EAAd,UAAe,OAAe;YAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,aAAa,EAAb,UAAc,MAAc;YAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,EAAJ,UAAK,OAAe;YAClB,OAAO,uBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,EAAJ,UAAK,OAAe,EAAE,UAAkB;YACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,EAAN,UAAO,OAAe,EAAE,SAAiB,EAAE,OAAe,EAAE,OAAiB;YAC3E,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACrC,OAAO,KAAK,CAAC;aACd;YACD,mBAAmB;YACnB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACtB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aACjE;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,EAAP;YACE,OAAO,2BAA2B,CAAC;QACrC,CAAC;QACD,KAAK,EAAL,UAAM,YAAY;;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YACzB,OAAO,CAAA,KAAA,IAAI,CAAC,MAAM,CAAA,CAAC,YAAY,CAAC,WAAI,IAAI,EAAE;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEO,0BAAO"}
|
package/lib/index.d.ts
CHANGED
|
@@ -21,5 +21,6 @@
|
|
|
21
21
|
import * as ethWallet from "./eth";
|
|
22
22
|
import JingchangWallet from "./jingchangWallet";
|
|
23
23
|
import * as moacWallet from "./moac";
|
|
24
|
+
import * as hdWallet from "./hd";
|
|
24
25
|
export * from "./x-wallet";
|
|
25
|
-
export { ethWallet, JingchangWallet, moacWallet };
|
|
26
|
+
export { ethWallet, JingchangWallet, moacWallet, hdWallet };
|
package/lib/index.js
CHANGED
|
@@ -19,25 +19,40 @@
|
|
|
19
19
|
* SOFTWARE.
|
|
20
20
|
* @author https://github.com/GinMu
|
|
21
21
|
*/
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
}
|
|
22
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
25
|
+
}) : (function(o, m, k, k2) {
|
|
26
|
+
if (k2 === undefined) k2 = k;
|
|
27
|
+
o[k2] = m[k];
|
|
28
|
+
}));
|
|
29
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
30
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
31
|
+
}) : function(o, v) {
|
|
32
|
+
o["default"] = v;
|
|
33
|
+
});
|
|
25
34
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
35
|
if (mod && mod.__esModule) return mod;
|
|
27
36
|
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result
|
|
29
|
-
result
|
|
37
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
30
39
|
return result;
|
|
31
40
|
};
|
|
41
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
42
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
43
|
+
};
|
|
32
44
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
46
|
};
|
|
35
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.hdWallet = exports.moacWallet = exports.JingchangWallet = exports.ethWallet = void 0;
|
|
36
49
|
var ethWallet = __importStar(require("./eth"));
|
|
37
50
|
exports.ethWallet = ethWallet;
|
|
38
51
|
var jingchangWallet_1 = __importDefault(require("./jingchangWallet"));
|
|
39
52
|
exports.JingchangWallet = jingchangWallet_1.default;
|
|
40
53
|
var moacWallet = __importStar(require("./moac"));
|
|
41
54
|
exports.moacWallet = moacWallet;
|
|
42
|
-
|
|
55
|
+
var hdWallet = __importStar(require("./hd"));
|
|
56
|
+
exports.hdWallet = hdWallet;
|
|
57
|
+
__exportStar(require("./x-wallet"), exports);
|
|
43
58
|
//# 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;AAO1B,8BAAS;AANlB,sEAAgD;AAM5B,0BANb,yBAAe,CAMa;AALnC,iDAAqC;AAKA,gCAAU;AAJ/C,6CAAiC;AAIgB,4BAAQ;AAFzD,6CAA2B"}
|
|
@@ -193,6 +193,16 @@ export default class JingchangWallet {
|
|
|
193
193
|
* @memberof JingchangWallet
|
|
194
194
|
*/
|
|
195
195
|
changePasswordWithAddress(address: string, oldPassword: string, newPassword: string): Promise<IJingchangWalletModel>;
|
|
196
|
+
/**
|
|
197
|
+
* replace keystore, if forget password
|
|
198
|
+
*
|
|
199
|
+
* @param {string} secret
|
|
200
|
+
* @param {string} password
|
|
201
|
+
* @param {(secret: string) => string} retriveSecret
|
|
202
|
+
* @returns {Promise<IJingchangWalletModel>}
|
|
203
|
+
* @memberof JingchangWallet
|
|
204
|
+
*/
|
|
205
|
+
replaceKeystore(secret: string, password: string, retriveSecret: (secret: string) => string): Promise<IJingchangWalletModel>;
|
|
196
206
|
/**
|
|
197
207
|
* remove default wallet keystore of the given type
|
|
198
208
|
*
|
|
@@ -498,6 +498,37 @@ var JingchangWallet = /** @class */ (function () {
|
|
|
498
498
|
});
|
|
499
499
|
}); });
|
|
500
500
|
};
|
|
501
|
+
/**
|
|
502
|
+
* replace keystore, if forget password
|
|
503
|
+
*
|
|
504
|
+
* @param {string} secret
|
|
505
|
+
* @param {string} password
|
|
506
|
+
* @param {(secret: string) => string} retriveSecret
|
|
507
|
+
* @returns {Promise<IJingchangWalletModel>}
|
|
508
|
+
* @memberof JingchangWallet
|
|
509
|
+
*/
|
|
510
|
+
JingchangWallet.prototype.replaceKeystore = function (secret, password, retriveSecret) {
|
|
511
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
512
|
+
var address, wallet, keypairs, newWallet;
|
|
513
|
+
return __generator(this, function (_a) {
|
|
514
|
+
address = retriveSecret(secret);
|
|
515
|
+
wallet = this.findWallet(function (w) { return w.address === address; });
|
|
516
|
+
keypairs = {
|
|
517
|
+
address: wallet.address,
|
|
518
|
+
alias: wallet.alias,
|
|
519
|
+
default: wallet.default,
|
|
520
|
+
secret: secret,
|
|
521
|
+
type: wallet.type
|
|
522
|
+
};
|
|
523
|
+
newWallet = this.getEncryptData(password, keypairs);
|
|
524
|
+
// shadow copy
|
|
525
|
+
wallet.ciphertext = newWallet.ciphertext;
|
|
526
|
+
wallet.crypto = newWallet.crypto;
|
|
527
|
+
wallet.mac = newWallet.mac;
|
|
528
|
+
return [2 /*return*/, this._jingchangWallet];
|
|
529
|
+
});
|
|
530
|
+
});
|
|
531
|
+
};
|
|
501
532
|
/**
|
|
502
533
|
* remove default wallet keystore of the given type
|
|
503
534
|
*
|