@ocap/wallet 1.17.2 → 1.17.3
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/lib/index.d.ts +27 -45
- package/lib/index.js +8 -40
- package/package.json +5 -5
package/lib/index.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { EncodingType, BytesType } from '@ocap/util';
|
2
3
|
import { DidType, DIDType, DIDTypeStr, DIDTypeArg } from '@arcblock/did';
|
3
4
|
declare type KeyPairType = {
|
4
5
|
sk?: BytesType;
|
@@ -11,41 +12,43 @@ export declare type SerializedWallet = {
|
|
11
12
|
sk: string;
|
12
13
|
address: string;
|
13
14
|
};
|
14
|
-
export
|
15
|
+
export interface WalletObject {
|
15
16
|
type: DIDType;
|
16
17
|
secretKey: BytesType;
|
17
18
|
publicKey: BytesType;
|
18
19
|
address: string;
|
19
|
-
hash
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
hash(data: BytesType, round?: number, encoding?: 'hex'): string;
|
21
|
+
hash(data: BytesType, round?: number, encoding?: 'base16'): string;
|
22
|
+
hash(data: BytesType, round?: number, encoding?: 'base58'): string;
|
23
|
+
hash(data: BytesType, round?: number, encoding?: 'base64'): string;
|
24
|
+
hash(data: BytesType, round?: number, encoding?: 'buffer'): Buffer;
|
25
|
+
hash(data: BytesType, round?: number, encoding?: 'Uint8Array'): Uint8Array;
|
26
|
+
hash(data: BytesType, round?: number, encoding?: EncodingType): BytesType;
|
27
|
+
sign(data: BytesType, hashBeforeSign?: boolean, encoding?: 'hex'): string;
|
28
|
+
sign(data: BytesType, hashBeforeSign?: boolean, encoding?: 'base16'): string;
|
29
|
+
sign(data: BytesType, hashBeforeSign?: boolean, encoding?: 'base58'): string;
|
30
|
+
sign(data: BytesType, hashBeforeSign?: boolean, encoding?: 'base64'): string;
|
31
|
+
sign(data: BytesType, hashBeforeSign?: boolean, encoding?: 'buffer'): Buffer;
|
32
|
+
sign(data: BytesType, hashBeforeSign?: boolean, encoding?: 'Uint8Array'): Uint8Array;
|
33
|
+
sign(data: BytesType, hashBeforeSign?: boolean, encoding?: EncodingType): BytesType;
|
34
|
+
verify(data: BytesType, signature: BytesType, hashBeforeVerify?: boolean): boolean;
|
35
|
+
ethHash(data: string): string;
|
36
|
+
ethSign(data: string, hashBeforeSign?: boolean): string;
|
37
|
+
ethVerify(data: string, signature: string, hashBeforeVerify?: boolean): boolean;
|
38
|
+
toJSON(): SerializedWallet;
|
39
|
+
/**
|
40
|
+
* @deprecated ES6: use `wallet.address` instead
|
41
|
+
*/
|
42
|
+
toAddress(): string;
|
43
|
+
}
|
28
44
|
export declare const WalletType: typeof DidType;
|
29
45
|
/**
|
30
46
|
* Generate an wallet instance that can be used to sign a message or verify a signature
|
31
|
-
*
|
32
|
-
* @public
|
33
|
-
* @static
|
34
|
-
* @param {object} keyPair - the key pair
|
35
|
-
* @param {string} keyPair.sk - the secretKey
|
36
|
-
* @param {string} keyPair.pk - the wallet publicKey
|
37
|
-
* @param {DIDTypeArg} [type='default'] - wallet type
|
38
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
39
47
|
*/
|
40
48
|
export declare function Wallet(keyPair: KeyPairType, t?: DIDTypeArg): WalletObject;
|
41
49
|
/**
|
42
50
|
* Generate a wallet from secretKey
|
43
51
|
*
|
44
|
-
* @public
|
45
|
-
* @static
|
46
|
-
* @param {string} sk - the secret key, `hex encoded string`
|
47
|
-
* @param {DIDTypeArg} [type='default'] - wallet type
|
48
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
49
52
|
* @example
|
50
53
|
* const assert = require('assert');
|
51
54
|
* const { fromSecretKey } = require('@ocap/wallet');
|
@@ -64,32 +67,16 @@ export declare function Wallet(keyPair: KeyPairType, t?: DIDTypeArg): WalletObje
|
|
64
67
|
export declare function fromSecretKey(sk: BytesType, _type?: DIDTypeArg): WalletObject;
|
65
68
|
/**
|
66
69
|
* Generate a wallet from publicKey
|
67
|
-
*
|
68
|
-
* @public
|
69
|
-
* @static
|
70
|
-
* @param {string} pk - the public key, `hex encoded string`
|
71
|
-
* @param {DIDTypeArg} [type='default'] - wallet type
|
72
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
73
70
|
*/
|
74
71
|
export declare function fromPublicKey(pk: BytesType, _type?: DIDTypeArg): WalletObject;
|
75
72
|
/**
|
76
73
|
* Generate a wallet from address (did)
|
77
74
|
*
|
78
75
|
* Since we do not know the publicKey and secretKey, this kind of wallet cannot be used for signing and verifying
|
79
|
-
*
|
80
|
-
* @public
|
81
|
-
* @static
|
82
|
-
* @param {string} address - the wallet address
|
83
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
84
76
|
*/
|
85
77
|
export declare function fromAddress(address: string): WalletObject;
|
86
78
|
/**
|
87
79
|
* Generate a wallet by generating a random secretKey
|
88
|
-
*
|
89
|
-
* @public
|
90
|
-
* @static
|
91
|
-
* @param {DIDTypeArg} [type='default'] - wallet type
|
92
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
93
80
|
*/
|
94
81
|
export declare function fromRandom(_type?: DIDTypeArg): WalletObject;
|
95
82
|
/**
|
@@ -98,11 +85,6 @@ export declare function fromRandom(_type?: DIDTypeArg): WalletObject;
|
|
98
85
|
export declare function fromJSON(json: SerializedWallet): WalletObject;
|
99
86
|
/**
|
100
87
|
* Check if an object is valid wallet object
|
101
|
-
*
|
102
|
-
* @public
|
103
|
-
* @static
|
104
|
-
* @param {object} wallet
|
105
|
-
* @param {boolean} canSign - should the wallet support sign
|
106
88
|
*/
|
107
89
|
export declare function isValid(wallet: WalletObject, canSign?: boolean): boolean;
|
108
90
|
export {};
|
package/lib/index.js
CHANGED
@@ -7,14 +7,6 @@ const did_1 = require("@arcblock/did");
|
|
7
7
|
exports.WalletType = did_1.DidType;
|
8
8
|
/**
|
9
9
|
* Generate an wallet instance that can be used to sign a message or verify a signature
|
10
|
-
*
|
11
|
-
* @public
|
12
|
-
* @static
|
13
|
-
* @param {object} keyPair - the key pair
|
14
|
-
* @param {string} keyPair.sk - the secretKey
|
15
|
-
* @param {string} keyPair.pk - the wallet publicKey
|
16
|
-
* @param {DIDTypeArg} [type='default'] - wallet type
|
17
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
18
10
|
*/
|
19
11
|
function Wallet(keyPair, t = 'default') {
|
20
12
|
const type = (0, did_1.DidType)(t);
|
@@ -25,10 +17,12 @@ function Wallet(keyPair, t = 'default') {
|
|
25
17
|
secretKey: keyPair.sk,
|
26
18
|
publicKey: keyPair.pk,
|
27
19
|
address: keyPair.pk ? (0, did_1.fromPublicKey)(keyPair.pk, type) : keyPair.address,
|
28
|
-
|
29
|
-
|
20
|
+
// @ts-ignore
|
21
|
+
hash(data, round = 1, encoding = 'hex') {
|
22
|
+
return hasher(data, round, encoding);
|
30
23
|
},
|
31
|
-
|
24
|
+
// @ts-ignore
|
25
|
+
sign(data, hashBeforeSign = true, encoding = 'hex') {
|
32
26
|
if (!keyPair.sk) {
|
33
27
|
throw new Error('Cannot sign data without a secretKey');
|
34
28
|
}
|
@@ -36,7 +30,7 @@ function Wallet(keyPair, t = 'default') {
|
|
36
30
|
const hash = hasher(data, 1);
|
37
31
|
return signer.sign(hash, keyPair.sk);
|
38
32
|
}
|
39
|
-
return signer.sign(data, keyPair.sk);
|
33
|
+
return signer.sign(data, keyPair.sk, encoding);
|
40
34
|
},
|
41
35
|
verify(data, signature, hashBeforeVerify = true) {
|
42
36
|
if (!keyPair.pk) {
|
@@ -59,9 +53,9 @@ function Wallet(keyPair, t = 'default') {
|
|
59
53
|
throw new Error('ethSign is not supported by signer');
|
60
54
|
}
|
61
55
|
if (hashBeforeSign) {
|
62
|
-
return signer.ethSign(signer.ethHash(data), keyPair.sk);
|
56
|
+
return signer.ethSign(signer.ethHash(data), (0, util_1.toHex)(keyPair.sk));
|
63
57
|
}
|
64
|
-
return signer.ethSign(data, keyPair.sk);
|
58
|
+
return signer.ethSign(data, (0, util_1.toHex)(keyPair.sk));
|
65
59
|
},
|
66
60
|
ethVerify(data, signature, hashBeforeVerify = true) {
|
67
61
|
if (typeof signer.ethHash !== 'function') {
|
@@ -88,11 +82,6 @@ exports.Wallet = Wallet;
|
|
88
82
|
/**
|
89
83
|
* Generate a wallet from secretKey
|
90
84
|
*
|
91
|
-
* @public
|
92
|
-
* @static
|
93
|
-
* @param {string} sk - the secret key, `hex encoded string`
|
94
|
-
* @param {DIDTypeArg} [type='default'] - wallet type
|
95
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
96
85
|
* @example
|
97
86
|
* const assert = require('assert');
|
98
87
|
* const { fromSecretKey } = require('@ocap/wallet');
|
@@ -116,12 +105,6 @@ function fromSecretKey(sk, _type = 'default') {
|
|
116
105
|
exports.fromSecretKey = fromSecretKey;
|
117
106
|
/**
|
118
107
|
* Generate a wallet from publicKey
|
119
|
-
*
|
120
|
-
* @public
|
121
|
-
* @static
|
122
|
-
* @param {string} pk - the public key, `hex encoded string`
|
123
|
-
* @param {DIDTypeArg} [type='default'] - wallet type
|
124
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
125
108
|
*/
|
126
109
|
function fromPublicKey(pk, _type = 'default') {
|
127
110
|
return Wallet({ pk }, (0, did_1.DidType)(_type));
|
@@ -131,11 +114,6 @@ exports.fromPublicKey = fromPublicKey;
|
|
131
114
|
* Generate a wallet from address (did)
|
132
115
|
*
|
133
116
|
* Since we do not know the publicKey and secretKey, this kind of wallet cannot be used for signing and verifying
|
134
|
-
*
|
135
|
-
* @public
|
136
|
-
* @static
|
137
|
-
* @param {string} address - the wallet address
|
138
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
139
117
|
*/
|
140
118
|
function fromAddress(address) {
|
141
119
|
return Wallet({ address: (0, did_1.toAddress)(address) }, (0, did_1.toTypeInfo)(address));
|
@@ -143,11 +121,6 @@ function fromAddress(address) {
|
|
143
121
|
exports.fromAddress = fromAddress;
|
144
122
|
/**
|
145
123
|
* Generate a wallet by generating a random secretKey
|
146
|
-
*
|
147
|
-
* @public
|
148
|
-
* @static
|
149
|
-
* @param {DIDTypeArg} [type='default'] - wallet type
|
150
|
-
* @returns {WalletObject} wallet object that can be used to sign/verify/getAddress
|
151
124
|
*/
|
152
125
|
function fromRandom(_type = 'default') {
|
153
126
|
const type = (0, did_1.DidType)(_type);
|
@@ -166,11 +139,6 @@ function fromJSON(json) {
|
|
166
139
|
exports.fromJSON = fromJSON;
|
167
140
|
/**
|
168
141
|
* Check if an object is valid wallet object
|
169
|
-
*
|
170
|
-
* @public
|
171
|
-
* @static
|
172
|
-
* @param {object} wallet
|
173
|
-
* @param {boolean} canSign - should the wallet support sign
|
174
142
|
*/
|
175
143
|
function isValid(wallet, canSign = true) {
|
176
144
|
if (!wallet || typeof wallet !== 'object') {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ocap/wallet",
|
3
|
-
"version": "1.17.
|
3
|
+
"version": "1.17.3",
|
4
4
|
"description": "Utility function to create and use an forge compatible crypto wallet",
|
5
5
|
"keywords": [
|
6
6
|
"crypto",
|
@@ -52,9 +52,9 @@
|
|
52
52
|
"url": "https://github.com/ArcBlock/asset-chain/issues"
|
53
53
|
},
|
54
54
|
"dependencies": {
|
55
|
-
"@arcblock/did": "1.17.
|
56
|
-
"@ocap/mcrypto": "1.17.
|
57
|
-
"@ocap/util": "1.17.
|
55
|
+
"@arcblock/did": "1.17.3",
|
56
|
+
"@ocap/mcrypto": "1.17.3",
|
57
|
+
"@ocap/util": "1.17.3"
|
58
58
|
},
|
59
|
-
"gitHead": "
|
59
|
+
"gitHead": "7a74e4e2b362a6e6ea8d14617f0480966c3363d5"
|
60
60
|
}
|