@ckb-ccc/uni-sat 0.0.9-alpha.1 → 0.0.10-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.d.ts CHANGED
@@ -13,7 +13,7 @@ export declare class Signer extends ccc.SignerBtc {
13
13
  * @param {ccc.Client} client - The client instance.
14
14
  * @param {Provider} provider - The provider instance.
15
15
  */
16
- constructor(client: ccc.Client, provider: Provider, preferredNetworks: ccc.NetworkPreference[]);
16
+ constructor(client: ccc.Client, provider: Provider, preferredNetworks?: ccc.NetworkPreference[]);
17
17
  /**
18
18
  * Ensure the BTC network is the same as CKB network.
19
19
  */
@@ -33,7 +33,7 @@ export declare class Signer extends ccc.SignerBtc {
33
33
  * @returns {Promise<void>} A promise that resolves when the connection is established.
34
34
  */
35
35
  connect(): Promise<void>;
36
- replaceClient(client: ccc.Client): Promise<boolean>;
36
+ onReplaced(listener: () => void): () => void;
37
37
  /**
38
38
  * Checks if the signer is connected.
39
39
  * @returns {Promise<boolean>} A promise that resolves to true if connected, false otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,GAAG,CAAC,SAAS;aAQrB,QAAQ,EAAE,QAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IARpC;;;;OAIG;gBAED,MAAM,EAAE,GAAG,CAAC,MAAM,EACF,QAAQ,EAAE,QAAQ,EACjB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,EAAE;IAK7D;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CpC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAIzC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQzD;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAMvE"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,GAAG,CAAC,SAAS;aAQrB,QAAQ,EAAE,QAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IARpC;;;;OAIG;gBAED,MAAM,EAAE,GAAG,CAAC,MAAM,EACF,QAAQ,EAAE,QAAQ,EACjB,iBAAiB,GAAE,GAAG,CAAC,iBAAiB,EAWxD;IAKH;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CpC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAIzC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAiB5C;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAMvE"}
package/dist/signer.js CHANGED
@@ -10,7 +10,18 @@ export class Signer extends ccc.SignerBtc {
10
10
  * @param {ccc.Client} client - The client instance.
11
11
  * @param {Provider} provider - The provider instance.
12
12
  */
13
- constructor(client, provider, preferredNetworks) {
13
+ constructor(client, provider, preferredNetworks = [
14
+ {
15
+ addressPrefix: "ckb",
16
+ signerType: ccc.SignerType.BTC,
17
+ network: "btc",
18
+ },
19
+ {
20
+ addressPrefix: "ckt",
21
+ signerType: ccc.SignerType.BTC,
22
+ network: "btcTestnet",
23
+ },
24
+ ]) {
14
25
  super(client);
15
26
  this.provider = provider;
16
27
  this.preferredNetworks = preferredNetworks;
@@ -73,18 +84,26 @@ export class Signer extends ccc.SignerBtc {
73
84
  await this.provider.requestAccounts();
74
85
  await this.ensureNetwork();
75
86
  }
76
- async replaceClient(client) {
77
- if (await super.replaceClient(client)) {
78
- await this.ensureNetwork();
79
- return true;
80
- }
81
- return false;
87
+ onReplaced(listener) {
88
+ const stop = [];
89
+ const replacer = async () => {
90
+ listener();
91
+ stop[0]?.();
92
+ };
93
+ stop.push(() => {
94
+ this.provider.removeListener("accountsChanged", replacer);
95
+ this.provider.removeListener("networkChanged", replacer);
96
+ });
97
+ this.provider.on("accountsChanged", replacer);
98
+ this.provider.on("networkChanged", replacer);
99
+ return stop[0];
82
100
  }
83
101
  /**
84
102
  * Checks if the signer is connected.
85
103
  * @returns {Promise<boolean>} A promise that resolves to true if connected, false otherwise.
86
104
  */
87
105
  async isConnected() {
106
+ await this.ensureNetwork();
88
107
  return (await this.provider.getAccounts()).length !== 0;
89
108
  }
90
109
  /**
@@ -13,7 +13,7 @@ export declare class Signer extends ccc.SignerBtc {
13
13
  * @param {ccc.Client} client - The client instance.
14
14
  * @param {Provider} provider - The provider instance.
15
15
  */
16
- constructor(client: ccc.Client, provider: Provider, preferredNetworks: ccc.NetworkPreference[]);
16
+ constructor(client: ccc.Client, provider: Provider, preferredNetworks?: ccc.NetworkPreference[]);
17
17
  /**
18
18
  * Ensure the BTC network is the same as CKB network.
19
19
  */
@@ -33,7 +33,7 @@ export declare class Signer extends ccc.SignerBtc {
33
33
  * @returns {Promise<void>} A promise that resolves when the connection is established.
34
34
  */
35
35
  connect(): Promise<void>;
36
- replaceClient(client: ccc.Client): Promise<boolean>;
36
+ onReplaced(listener: () => void): () => void;
37
37
  /**
38
38
  * Checks if the signer is connected.
39
39
  * @returns {Promise<boolean>} A promise that resolves to true if connected, false otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,GAAG,CAAC,SAAS;aAQrB,QAAQ,EAAE,QAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IARpC;;;;OAIG;gBAED,MAAM,EAAE,GAAG,CAAC,MAAM,EACF,QAAQ,EAAE,QAAQ,EACjB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,EAAE;IAK7D;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CpC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAIzC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQzD;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAMvE"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,GAAG,CAAC,SAAS;aAQrB,QAAQ,EAAE,QAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IARpC;;;;OAIG;gBAED,MAAM,EAAE,GAAG,CAAC,MAAM,EACF,QAAQ,EAAE,QAAQ,EACjB,iBAAiB,GAAE,GAAG,CAAC,iBAAiB,EAWxD;IAKH;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CpC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAIzC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAiB5C;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAMvE"}
@@ -13,7 +13,18 @@ class Signer extends core_1.ccc.SignerBtc {
13
13
  * @param {ccc.Client} client - The client instance.
14
14
  * @param {Provider} provider - The provider instance.
15
15
  */
16
- constructor(client, provider, preferredNetworks) {
16
+ constructor(client, provider, preferredNetworks = [
17
+ {
18
+ addressPrefix: "ckb",
19
+ signerType: core_1.ccc.SignerType.BTC,
20
+ network: "btc",
21
+ },
22
+ {
23
+ addressPrefix: "ckt",
24
+ signerType: core_1.ccc.SignerType.BTC,
25
+ network: "btcTestnet",
26
+ },
27
+ ]) {
17
28
  super(client);
18
29
  this.provider = provider;
19
30
  this.preferredNetworks = preferredNetworks;
@@ -76,18 +87,26 @@ class Signer extends core_1.ccc.SignerBtc {
76
87
  await this.provider.requestAccounts();
77
88
  await this.ensureNetwork();
78
89
  }
79
- async replaceClient(client) {
80
- if (await super.replaceClient(client)) {
81
- await this.ensureNetwork();
82
- return true;
83
- }
84
- return false;
90
+ onReplaced(listener) {
91
+ const stop = [];
92
+ const replacer = async () => {
93
+ listener();
94
+ stop[0]?.();
95
+ };
96
+ stop.push(() => {
97
+ this.provider.removeListener("accountsChanged", replacer);
98
+ this.provider.removeListener("networkChanged", replacer);
99
+ });
100
+ this.provider.on("accountsChanged", replacer);
101
+ this.provider.on("networkChanged", replacer);
102
+ return stop[0];
85
103
  }
86
104
  /**
87
105
  * Checks if the signer is connected.
88
106
  * @returns {Promise<boolean>} A promise that resolves to true if connected, false otherwise.
89
107
  */
90
108
  async isConnected() {
109
+ await this.ensureNetwork();
91
110
  return (await this.provider.getAccounts()).length !== 0;
92
111
  }
93
112
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckb-ccc/uni-sat",
3
- "version": "0.0.9-alpha.1",
3
+ "version": "0.0.10-alpha.0",
4
4
  "description": "CCC - CKBer's Codebase. Common Chains Connector's support for UniSat",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",
@@ -50,7 +50,7 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@ckb-ccc/core": "0.0.9-alpha.1"
53
+ "@ckb-ccc/core": "0.0.10-alpha.0"
54
54
  },
55
- "gitHead": "d708cbabd48a160d7608a0b86093b16f35451f79"
55
+ "gitHead": "8a4c789419f5e12e1f230cead213c59373834a1a"
56
56
  }
package/src/signer.ts CHANGED
@@ -15,7 +15,18 @@ export class Signer extends ccc.SignerBtc {
15
15
  constructor(
16
16
  client: ccc.Client,
17
17
  public readonly provider: Provider,
18
- private readonly preferredNetworks: ccc.NetworkPreference[],
18
+ private readonly preferredNetworks: ccc.NetworkPreference[] = [
19
+ {
20
+ addressPrefix: "ckb",
21
+ signerType: ccc.SignerType.BTC,
22
+ network: "btc",
23
+ },
24
+ {
25
+ addressPrefix: "ckt",
26
+ signerType: ccc.SignerType.BTC,
27
+ network: "btcTestnet",
28
+ },
29
+ ],
19
30
  ) {
20
31
  super(client);
21
32
  }
@@ -90,12 +101,21 @@ export class Signer extends ccc.SignerBtc {
90
101
  await this.ensureNetwork();
91
102
  }
92
103
 
93
- async replaceClient(client: ccc.Client): Promise<boolean> {
94
- if (await super.replaceClient(client)) {
95
- await this.ensureNetwork();
96
- return true;
97
- }
98
- return false;
104
+ onReplaced(listener: () => void): () => void {
105
+ const stop: (() => void)[] = [];
106
+ const replacer = async () => {
107
+ listener();
108
+ stop[0]?.();
109
+ };
110
+ stop.push(() => {
111
+ this.provider.removeListener("accountsChanged", replacer);
112
+ this.provider.removeListener("networkChanged", replacer);
113
+ });
114
+
115
+ this.provider.on("accountsChanged", replacer);
116
+ this.provider.on("networkChanged", replacer);
117
+
118
+ return stop[0];
99
119
  }
100
120
 
101
121
  /**
@@ -103,6 +123,7 @@ export class Signer extends ccc.SignerBtc {
103
123
  * @returns {Promise<boolean>} A promise that resolves to true if connected, false otherwise.
104
124
  */
105
125
  async isConnected(): Promise<boolean> {
126
+ await this.ensureNetwork();
106
127
  return (await this.provider.getAccounts()).length !== 0;
107
128
  }
108
129