@ckb-ccc/core 0.0.8-alpha.4 → 0.0.9-alpha.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/dist/signer/signer/index.d.ts +12 -0
- package/dist/signer/signer/index.d.ts.map +1 -1
- package/dist/signer/signer/index.js +18 -0
- package/dist.commonjs/signer/signer/index.d.ts +12 -0
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/signer/index.js +18 -0
- package/package.json +2 -2
- package/src/signer/signer/index.ts +45 -0
|
@@ -20,6 +20,11 @@ export declare enum SignerType {
|
|
|
20
20
|
CKB = "CKB",
|
|
21
21
|
Nostr = "Nostr"
|
|
22
22
|
}
|
|
23
|
+
export type NetworkPreference = {
|
|
24
|
+
addressPrefix: string;
|
|
25
|
+
signerType: SignerType;
|
|
26
|
+
network: string;
|
|
27
|
+
};
|
|
23
28
|
export declare class Signature {
|
|
24
29
|
signature: string;
|
|
25
30
|
identity: string;
|
|
@@ -36,6 +41,7 @@ export declare abstract class Signer {
|
|
|
36
41
|
abstract get type(): SignerType;
|
|
37
42
|
abstract get signType(): SignerSignType;
|
|
38
43
|
get client(): Client;
|
|
44
|
+
matchNetworkPreference(preferences: NetworkPreference[], currentNetwork: string): NetworkPreference | undefined;
|
|
39
45
|
static verifyMessage(message: string | BytesLike, signature: Signature): Promise<boolean>;
|
|
40
46
|
/**
|
|
41
47
|
* Replace the current client.
|
|
@@ -48,6 +54,12 @@ export declare abstract class Signer {
|
|
|
48
54
|
* @returns A promise that resolves when the connection is complete.
|
|
49
55
|
*/
|
|
50
56
|
abstract connect(): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Disconnects to the signer.
|
|
59
|
+
*
|
|
60
|
+
* @returns A promise that resolves when the signer is disconnected.
|
|
61
|
+
*/
|
|
62
|
+
disconnect(): Promise<void>;
|
|
51
63
|
/**
|
|
52
64
|
* Check if the signer is connected.
|
|
53
65
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAMhC,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,KAAK,UAAU;CAChB;AAED,qBAAa,SAAS;IAEX,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,cAAc;gBAFxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc;CAElC;AAED;;;GAGG;AACH,8BAAsB,MAAM;IACd,SAAS,CAAC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAErC,QAAQ,KAAK,IAAI,IAAI,UAAU,CAAC;IAChC,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC;IAExC,IAAI,MAAM,IAAI,MAAM,CAEnB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,18 @@ export class Signer {
|
|
|
38
38
|
get client() {
|
|
39
39
|
return this.client_;
|
|
40
40
|
}
|
|
41
|
+
// Returns the preference if we need to switch network
|
|
42
|
+
// undefined otherwise
|
|
43
|
+
matchNetworkPreference(preferences, currentNetwork) {
|
|
44
|
+
if (preferences.some(({ signerType, addressPrefix, network }) => {
|
|
45
|
+
signerType === this.type &&
|
|
46
|
+
addressPrefix === this.client.addressPrefix &&
|
|
47
|
+
network === currentNetwork;
|
|
48
|
+
})) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
return preferences.find(({ signerType, addressPrefix }) => signerType === this.type && addressPrefix === this.client.addressPrefix);
|
|
52
|
+
}
|
|
41
53
|
static async verifyMessage(message, signature) {
|
|
42
54
|
switch (signature.signType) {
|
|
43
55
|
case SignerSignType.EvmPersonal:
|
|
@@ -60,6 +72,12 @@ export class Signer {
|
|
|
60
72
|
this.client_ = client;
|
|
61
73
|
return true;
|
|
62
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Disconnects to the signer.
|
|
77
|
+
*
|
|
78
|
+
* @returns A promise that resolves when the signer is disconnected.
|
|
79
|
+
*/
|
|
80
|
+
async disconnect() { }
|
|
63
81
|
/**
|
|
64
82
|
* Gets the identity for verifying signature, usually it's address
|
|
65
83
|
*
|
|
@@ -20,6 +20,11 @@ export declare enum SignerType {
|
|
|
20
20
|
CKB = "CKB",
|
|
21
21
|
Nostr = "Nostr"
|
|
22
22
|
}
|
|
23
|
+
export type NetworkPreference = {
|
|
24
|
+
addressPrefix: string;
|
|
25
|
+
signerType: SignerType;
|
|
26
|
+
network: string;
|
|
27
|
+
};
|
|
23
28
|
export declare class Signature {
|
|
24
29
|
signature: string;
|
|
25
30
|
identity: string;
|
|
@@ -36,6 +41,7 @@ export declare abstract class Signer {
|
|
|
36
41
|
abstract get type(): SignerType;
|
|
37
42
|
abstract get signType(): SignerSignType;
|
|
38
43
|
get client(): Client;
|
|
44
|
+
matchNetworkPreference(preferences: NetworkPreference[], currentNetwork: string): NetworkPreference | undefined;
|
|
39
45
|
static verifyMessage(message: string | BytesLike, signature: Signature): Promise<boolean>;
|
|
40
46
|
/**
|
|
41
47
|
* Replace the current client.
|
|
@@ -48,6 +54,12 @@ export declare abstract class Signer {
|
|
|
48
54
|
* @returns A promise that resolves when the connection is complete.
|
|
49
55
|
*/
|
|
50
56
|
abstract connect(): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Disconnects to the signer.
|
|
59
|
+
*
|
|
60
|
+
* @returns A promise that resolves when the signer is disconnected.
|
|
61
|
+
*/
|
|
62
|
+
disconnect(): Promise<void>;
|
|
51
63
|
/**
|
|
52
64
|
* Check if the signer is connected.
|
|
53
65
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAMhC,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,KAAK,UAAU;CAChB;AAED,qBAAa,SAAS;IAEX,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,cAAc;gBAFxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc;CAElC;AAED;;;GAGG;AACH,8BAAsB,MAAM;IACd,SAAS,CAAC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAErC,QAAQ,KAAK,IAAI,IAAI,UAAU,CAAC;IAChC,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC;IAExC,IAAI,MAAM,IAAI,MAAM,CAEnB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,18 @@ class Signer {
|
|
|
42
42
|
get client() {
|
|
43
43
|
return this.client_;
|
|
44
44
|
}
|
|
45
|
+
// Returns the preference if we need to switch network
|
|
46
|
+
// undefined otherwise
|
|
47
|
+
matchNetworkPreference(preferences, currentNetwork) {
|
|
48
|
+
if (preferences.some(({ signerType, addressPrefix, network }) => {
|
|
49
|
+
signerType === this.type &&
|
|
50
|
+
addressPrefix === this.client.addressPrefix &&
|
|
51
|
+
network === currentNetwork;
|
|
52
|
+
})) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
return preferences.find(({ signerType, addressPrefix }) => signerType === this.type && addressPrefix === this.client.addressPrefix);
|
|
56
|
+
}
|
|
45
57
|
static async verifyMessage(message, signature) {
|
|
46
58
|
switch (signature.signType) {
|
|
47
59
|
case SignerSignType.EvmPersonal:
|
|
@@ -64,6 +76,12 @@ class Signer {
|
|
|
64
76
|
this.client_ = client;
|
|
65
77
|
return true;
|
|
66
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Disconnects to the signer.
|
|
81
|
+
*
|
|
82
|
+
* @returns A promise that resolves when the signer is disconnected.
|
|
83
|
+
*/
|
|
84
|
+
async disconnect() { }
|
|
67
85
|
/**
|
|
68
86
|
* Gets the identity for verifying signature, usually it's address
|
|
69
87
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckb-ccc/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9-alpha.0",
|
|
4
4
|
"description": "Core of CCC - CKBer's Codebase",
|
|
5
5
|
"author": "Hanssen0 <hanssen0@hanssen0.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"cross-fetch": "^4.0.0",
|
|
69
69
|
"ethers": "^6.13.1"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "ac4435006da9c9e48b3b66fc329e6f539156b252"
|
|
72
72
|
}
|
|
@@ -27,6 +27,23 @@ export enum SignerType {
|
|
|
27
27
|
Nostr = "Nostr",
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
export type NetworkPreference = {
|
|
31
|
+
addressPrefix: string;
|
|
32
|
+
signerType: SignerType;
|
|
33
|
+
network: string;
|
|
34
|
+
/*
|
|
35
|
+
Wallet signers should check if the wallet is using preferred networks.
|
|
36
|
+
If not, try to switch to the first preferred network.
|
|
37
|
+
If non preferred, let users choose what they want.
|
|
38
|
+
|
|
39
|
+
BTC: // They made a mess...
|
|
40
|
+
btc
|
|
41
|
+
btcTestnet
|
|
42
|
+
btcSignet // OKX
|
|
43
|
+
fractalBtc // UniSat
|
|
44
|
+
*/
|
|
45
|
+
};
|
|
46
|
+
|
|
30
47
|
export class Signature {
|
|
31
48
|
constructor(
|
|
32
49
|
public signature: string,
|
|
@@ -49,6 +66,27 @@ export abstract class Signer {
|
|
|
49
66
|
return this.client_;
|
|
50
67
|
}
|
|
51
68
|
|
|
69
|
+
// Returns the preference if we need to switch network
|
|
70
|
+
// undefined otherwise
|
|
71
|
+
matchNetworkPreference(
|
|
72
|
+
preferences: NetworkPreference[],
|
|
73
|
+
currentNetwork: string,
|
|
74
|
+
) {
|
|
75
|
+
if (
|
|
76
|
+
preferences.some(({ signerType, addressPrefix, network }) => {
|
|
77
|
+
signerType === this.type &&
|
|
78
|
+
addressPrefix === this.client.addressPrefix &&
|
|
79
|
+
network === currentNetwork;
|
|
80
|
+
})
|
|
81
|
+
) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
return preferences.find(
|
|
85
|
+
({ signerType, addressPrefix }) =>
|
|
86
|
+
signerType === this.type && addressPrefix === this.client.addressPrefix,
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
52
90
|
static async verifyMessage(
|
|
53
91
|
message: string | BytesLike,
|
|
54
92
|
signature: Signature,
|
|
@@ -99,6 +137,13 @@ export abstract class Signer {
|
|
|
99
137
|
*/
|
|
100
138
|
abstract connect(): Promise<void>;
|
|
101
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Disconnects to the signer.
|
|
142
|
+
*
|
|
143
|
+
* @returns A promise that resolves when the signer is disconnected.
|
|
144
|
+
*/
|
|
145
|
+
async disconnect(): Promise<void> {}
|
|
146
|
+
|
|
102
147
|
/**
|
|
103
148
|
* Check if the signer is connected.
|
|
104
149
|
*
|