@ckb-ccc/connector 0.0.4-alpha.10 → 0.0.4-alpha.11

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.
@@ -1,3 +1,4 @@
1
1
  export * from "@ckb-ccc/ccc/advancedBarrel";
2
2
  export * from "./scenes";
3
+ export * from "./types";
3
4
  //# sourceMappingURL=advancedBarrel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"advancedBarrel.d.ts","sourceRoot":"","sources":["../src/advancedBarrel.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"advancedBarrel.d.ts","sourceRoot":"","sources":["../src/advancedBarrel.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "@ckb-ccc/ccc/advancedBarrel";
2
2
  export * from "./scenes";
3
+ export * from "./types";
@@ -16,6 +16,7 @@ export declare class WebComponentConnector extends LitElement {
16
16
  addSigner(name: string, icon: string, type: ccc.SignerType, signer: ccc.Signer): void;
17
17
  render(): import("lit").TemplateResult<1>;
18
18
  private onClose;
19
+ private onReset;
19
20
  private onWalletSelected;
20
21
  private onSignerSelected;
21
22
  static styles: import("lit").CSSResult;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAW5D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,qBACa,qBAAsB,SAAQ,UAAU;IAEnD,OAAO,CAAC,OAAO,CAAoB;IAEnC,OAAO,CAAC,cAAc,CAAsB;IAGrC,MAAM,EAAE,OAAO,CAAS;IAGxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAiC;IAEnD,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAExB,MAAM,EAAE,eAAe,CAAmC;IAEjE,iBAAiB,IAAI,IAAI;IAKzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAOzD,cAAc;IA6Bd,KAAK;IAWL,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,MAAM,EAAE,GAAG,CAAC,MAAM;IAkBpB,MAAM;IAmDN,OAAO,CAAC,OAAO,CAGb;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,gBAAgB,CAStB;IAEF,MAAM,CAAC,MAAM,0BAqIX;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAW5D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,qBACa,qBAAsB,SAAQ,UAAU;IAEnD,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,cAAc,CAAsB;IAGrC,MAAM,EAAE,OAAO,CAAS;IAGxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAiC;IAEnD,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAExB,MAAM,EAAE,eAAe,CAAmC;IAEjE,iBAAiB,IAAI,IAAI;IAKzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAOzD,cAAc;IA6Bd,KAAK;IAwBL,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,MAAM,EAAE,GAAG,CAAC,MAAM;IAkBpB,MAAM;IAyDN,OAAO,CAAC,OAAO,CAKb;IAEF,OAAO,CAAC,OAAO,CAGb;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,gBAAgB,CAetB;IAEF,MAAM,CAAC,MAAM,0BAqIX;CACH"}
@@ -22,17 +22,25 @@ let WebComponentConnector = class WebComponentConnector extends LitElement {
22
22
  this.client = new ccc.ClientPublicTestnet();
23
23
  this.status = ConnectorStatus.SelectingSigner;
24
24
  this.onClose = () => {
25
- this.dispatchEvent(new SignerChangedEvent());
25
+ if (this.status === ConnectorStatus.SelectingSigner) {
26
+ this.onReset();
27
+ }
26
28
  this.dispatchEvent(new CloseEvent());
27
29
  };
30
+ this.onReset = () => {
31
+ this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.SelectingSigner));
32
+ this.dispatchEvent(new SignerChangedEvent());
33
+ };
28
34
  this.onWalletSelected = (wallet) => {
29
35
  this.dispatchEvent(new SignerChangedEvent(wallet, this.signer));
30
36
  };
31
37
  this.onSignerSelected = (wallet, signer) => {
32
- this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.Connecting));
33
- this.dispatchEvent(new SignerChangedEvent(wallet, signer));
34
38
  (async () => {
35
- await signer.signer.connect();
39
+ this.dispatchEvent(new SignerChangedEvent(wallet, signer));
40
+ if (!(await signer.signer.isConnected())) {
41
+ this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.Connecting));
42
+ await signer.signer.connect();
43
+ }
36
44
  this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.Idle));
37
45
  this.dispatchEvent(new CloseEvent());
38
46
  })();
@@ -64,8 +72,21 @@ let WebComponentConnector = class WebComponentConnector extends LitElement {
64
72
  }
65
73
  reset() {
66
74
  this.wallets = [];
67
- this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.SelectingSigner));
68
- this.dispatchEvent(new SignerChangedEvent(undefined, undefined));
75
+ (async () => {
76
+ if (!this.signer) {
77
+ return;
78
+ }
79
+ const newSigner = await this.signer.signer.replaceClient(this.client);
80
+ if (newSigner) {
81
+ this.onSignerSelected(this.wallet, {
82
+ ...this.signer,
83
+ signer: newSigner,
84
+ });
85
+ }
86
+ else {
87
+ this.onReset();
88
+ }
89
+ })();
69
90
  const resetListeners = this.resetListeners;
70
91
  this.resetListeners = [];
71
92
  resetListeners.forEach((listener) => listener());
@@ -89,13 +110,14 @@ let WebComponentConnector = class WebComponentConnector extends LitElement {
89
110
  }
90
111
  render() {
91
112
  const [title, body] = (() => {
92
- if (!this.wallet) {
113
+ const wallet = ccc.apply((wallet) => this.wallets.find((w) => w.name === wallet.name), this.wallet);
114
+ if (!wallet) {
93
115
  return generateWalletsScene(this.wallets, this.onWalletSelected, this.onSignerSelected);
94
116
  }
95
117
  if (!this.signer) {
96
- return generateSignersScene(this.wallet, this.onSignerSelected);
118
+ return generateSignersScene(wallet, this.onSignerSelected);
97
119
  }
98
- return generateConnectingScene(this.wallet, this.signer, this.onSignerSelected);
120
+ return generateConnectingScene(wallet, this.signer, this.onSignerSelected);
99
121
  })();
100
122
  return html `<style>
101
123
  :host {
@@ -1,3 +1,3 @@
1
1
  import { ccc } from "@ckb-ccc/ccc";
2
- export declare function generateConnectingScene(wallet: ccc.Wallet, signer: ccc.SignerInfo, onSignerSelected: (wallet: ccc.Wallet, signer: ccc.SignerInfo) => unknown): (string | import("lit").TemplateResult<1>)[];
2
+ export declare function generateConnectingScene(wallet: ccc.Wallet, signer: ccc.SignerInfo, onSignerSelected: (wallet: ccc.Wallet | undefined, signer: ccc.SignerInfo) => unknown): (string | import("lit").TemplateResult<1>)[];
3
3
  //# sourceMappingURL=connecting.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connecting.d.ts","sourceRoot":"","sources":["../../src/scenes/connecting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,MAAM,EAAE,GAAG,CAAC,UAAU,EACtB,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,OAAO,gDAqB1E"}
1
+ {"version":3,"file":"connecting.d.ts","sourceRoot":"","sources":["../../src/scenes/connecting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,MAAM,EAAE,GAAG,CAAC,UAAU,EACtB,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,OAAO,gDAqBtF"}
@@ -1,4 +1,5 @@
1
1
  import { ccc } from "@ckb-ccc/ccc";
2
+ import { WalletWithSigners } from "../types";
2
3
  export declare function signerTypeToIcon(type: ccc.SignerType): string;
3
- export declare function generateSignersScene(wallet: ccc.Wallet, onSignerSelected: (wallet: ccc.Wallet, signer: ccc.SignerInfo) => unknown): (string | import("lit").TemplateResult<1>)[];
4
+ export declare function generateSignersScene(wallet: WalletWithSigners, onSignerSelected: (wallet: ccc.Wallet | undefined, signer: ccc.SignerInfo) => unknown): (string | import("lit").TemplateResult<1>)[];
4
5
  //# sourceMappingURL=signers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../src/scenes/signers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAKnC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAK7D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,OAAO,gDAyB1E"}
1
+ {"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../src/scenes/signers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAK7D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,OAAO,gDAyBtF"}
@@ -1,3 +1,4 @@
1
1
  import { ccc } from "@ckb-ccc/ccc";
2
- export declare function generateWalletsScene(wallets: ccc.Wallet[], onWalletSelected: (wallet: ccc.Wallet) => unknown, onSignerSelected: (wallet: ccc.Wallet, signer: ccc.SignerInfo) => unknown): unknown[];
2
+ import { WalletWithSigners } from "../types";
3
+ export declare function generateWalletsScene(wallets: WalletWithSigners[], onWalletSelected: (wallet: ccc.Wallet) => unknown, onSignerSelected: (wallet: ccc.Wallet | undefined, signer: ccc.SignerInfo) => unknown): unknown[];
3
4
  //# sourceMappingURL=wallets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/scenes/wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,EACrB,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,EACjD,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,OAAO,aAwB1E"}
1
+ {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/scenes/wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,EAAE,EAC5B,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,EACjD,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,OAAO,aAwBtF"}
@@ -0,0 +1,5 @@
1
+ import { ccc } from "@ckb-ccc/ccc";
2
+ export type WalletWithSigners = ccc.Wallet & {
3
+ signers: ccc.SignerInfo[];
4
+ };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,GAAG;IAC3C,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;CAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckb-ccc/connector",
3
- "version": "0.0.4-alpha.10",
3
+ "version": "0.0.4-alpha.11",
4
4
  "description": "Common Chains Connector UI",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",
@@ -37,8 +37,8 @@
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
- "@ckb-ccc/ccc": "0.0.4-alpha.10",
40
+ "@ckb-ccc/ccc": "0.0.4-alpha.11",
41
41
  "lit": "^3.1.3"
42
42
  },
43
- "gitHead": "dec13b260f57a1b244c69af5566e316a4c329e35"
43
+ "gitHead": "db0297c0753349e2650d2845f42f546316078d5d"
44
44
  }
@@ -1,2 +1,3 @@
1
1
  export * from "@ckb-ccc/ccc/advancedBarrel";
2
2
  export * from "./scenes";
3
+ export * from "./types";
@@ -11,11 +11,12 @@ import {
11
11
  generateWalletsScene,
12
12
  } from "../scenes";
13
13
  import { ConnectorStatus } from "../status";
14
+ import { WalletWithSigners } from "../types";
14
15
 
15
16
  @customElement("ccc-connector")
16
17
  export class WebComponentConnector extends LitElement {
17
18
  @state()
18
- private wallets: ccc.Wallet[] = [];
19
+ private wallets: WalletWithSigners[] = [];
19
20
 
20
21
  private resetListeners: (() => void)[] = [];
21
22
 
@@ -75,8 +76,21 @@ export class WebComponentConnector extends LitElement {
75
76
  reset() {
76
77
  this.wallets = [];
77
78
 
78
- this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.SelectingSigner));
79
- this.dispatchEvent(new SignerChangedEvent(undefined, undefined));
79
+ (async () => {
80
+ if (!this.signer) {
81
+ return;
82
+ }
83
+
84
+ const newSigner = await this.signer.signer.replaceClient(this.client);
85
+ if (newSigner) {
86
+ this.onSignerSelected(this.wallet, {
87
+ ...this.signer,
88
+ signer: newSigner,
89
+ });
90
+ } else {
91
+ this.onReset();
92
+ }
93
+ })();
80
94
 
81
95
  const resetListeners = this.resetListeners;
82
96
  this.resetListeners = [];
@@ -107,7 +121,13 @@ export class WebComponentConnector extends LitElement {
107
121
 
108
122
  render() {
109
123
  const [title, body] = (() => {
110
- if (!this.wallet) {
124
+ const wallet = ccc.apply(
125
+ (wallet: ccc.Wallet) =>
126
+ this.wallets.find((w) => w.name === wallet.name),
127
+ this.wallet,
128
+ );
129
+
130
+ if (!wallet) {
111
131
  return generateWalletsScene(
112
132
  this.wallets,
113
133
  this.onWalletSelected,
@@ -115,10 +135,10 @@ export class WebComponentConnector extends LitElement {
115
135
  );
116
136
  }
117
137
  if (!this.signer) {
118
- return generateSignersScene(this.wallet, this.onSignerSelected);
138
+ return generateSignersScene(wallet, this.onSignerSelected);
119
139
  }
120
140
  return generateConnectingScene(
121
- this.wallet,
141
+ wallet,
122
142
  this.signer,
123
143
  this.onSignerSelected,
124
144
  );
@@ -157,20 +177,33 @@ export class WebComponentConnector extends LitElement {
157
177
  }
158
178
 
159
179
  private onClose = () => {
160
- this.dispatchEvent(new SignerChangedEvent());
180
+ if (this.status === ConnectorStatus.SelectingSigner) {
181
+ this.onReset();
182
+ }
161
183
  this.dispatchEvent(new CloseEvent());
162
184
  };
163
185
 
186
+ private onReset = () => {
187
+ this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.SelectingSigner));
188
+ this.dispatchEvent(new SignerChangedEvent());
189
+ };
190
+
164
191
  private onWalletSelected = (wallet: ccc.Wallet) => {
165
192
  this.dispatchEvent(new SignerChangedEvent(wallet, this.signer));
166
193
  };
167
194
 
168
- private onSignerSelected = (wallet: ccc.Wallet, signer: ccc.SignerInfo) => {
169
- this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.Connecting));
170
- this.dispatchEvent(new SignerChangedEvent(wallet, signer));
171
-
195
+ private onSignerSelected = (
196
+ wallet: ccc.Wallet | undefined,
197
+ signer: ccc.SignerInfo,
198
+ ) => {
172
199
  (async () => {
173
- await signer.signer.connect();
200
+ this.dispatchEvent(new SignerChangedEvent(wallet, signer));
201
+
202
+ if (!(await signer.signer.isConnected())) {
203
+ this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.Connecting));
204
+ await signer.signer.connect();
205
+ }
206
+
174
207
  this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.Idle));
175
208
  this.dispatchEvent(new CloseEvent());
176
209
  })();
@@ -5,7 +5,7 @@ import { RETRY_SVG } from "../assets/retry.svg";
5
5
  export function generateConnectingScene(
6
6
  wallet: ccc.Wallet,
7
7
  signer: ccc.SignerInfo,
8
- onSignerSelected: (wallet: ccc.Wallet, signer: ccc.SignerInfo) => unknown,
8
+ onSignerSelected: (wallet: ccc.Wallet | undefined, signer: ccc.SignerInfo) => unknown,
9
9
  ) {
10
10
  return [
11
11
  wallet.name,
@@ -2,6 +2,7 @@ import { ccc } from "@ckb-ccc/ccc";
2
2
  import { html } from "lit";
3
3
  import { repeat } from "lit/directives/repeat.js";
4
4
  import { BTC_SVG, ETH_SVG } from "../assets/chains";
5
+ import { WalletWithSigners } from "../types";
5
6
 
6
7
  export function signerTypeToIcon(type: ccc.SignerType): string {
7
8
  return {
@@ -11,8 +12,8 @@ export function signerTypeToIcon(type: ccc.SignerType): string {
11
12
  }
12
13
 
13
14
  export function generateSignersScene(
14
- wallet: ccc.Wallet,
15
- onSignerSelected: (wallet: ccc.Wallet, signer: ccc.SignerInfo) => unknown,
15
+ wallet: WalletWithSigners,
16
+ onSignerSelected: (wallet: ccc.Wallet | undefined, signer: ccc.SignerInfo) => unknown,
16
17
  ) {
17
18
  return [
18
19
  "Select a Chain",
@@ -1,11 +1,12 @@
1
1
  import { ccc } from "@ckb-ccc/ccc";
2
2
  import { html } from "lit";
3
3
  import { repeat } from "lit/directives/repeat.js";
4
+ import { WalletWithSigners } from "../types";
4
5
 
5
6
  export function generateWalletsScene(
6
- wallets: ccc.Wallet[],
7
+ wallets: WalletWithSigners[],
7
8
  onWalletSelected: (wallet: ccc.Wallet) => unknown,
8
- onSignerSelected: (wallet: ccc.Wallet, signer: ccc.SignerInfo) => unknown,
9
+ onSignerSelected: (wallet: ccc.Wallet | undefined, signer: ccc.SignerInfo) => unknown,
9
10
  ) {
10
11
  return [
11
12
  "Connect Wallet",
@@ -0,0 +1,5 @@
1
+ import { ccc } from "@ckb-ccc/ccc";
2
+
3
+ export type WalletWithSigners = ccc.Wallet & {
4
+ signers: ccc.SignerInfo[];
5
+ };