@ckb-ccc/connector 0.0.14-alpha.1 → 0.0.14-alpha.2
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/CHANGELOG.md +9 -0
- package/dist/assets/close.svg.d.ts +1 -1
- package/dist/assets/close.svg.d.ts.map +1 -1
- package/dist/assets/close.svg.js +15 -2
- package/dist/assets/diconnect.svg.d.ts +1 -1
- package/dist/assets/diconnect.svg.d.ts.map +1 -1
- package/dist/assets/diconnect.svg.js +16 -2
- package/dist/assets/left.svg.d.ts +1 -1
- package/dist/assets/left.svg.d.ts.map +1 -1
- package/dist/assets/left.svg.js +16 -2
- package/dist/assets/retry.svg.d.ts +1 -1
- package/dist/assets/retry.svg.d.ts.map +1 -1
- package/dist/assets/retry.svg.js +15 -2
- package/dist/assets/swap.svg.d.ts +2 -0
- package/dist/assets/swap.svg.d.ts.map +1 -0
- package/dist/assets/swap.svg.js +36 -0
- package/dist/components/button-pill.d.ts.map +1 -1
- package/dist/components/button-pill.js +2 -1
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +2 -1
- package/dist/components/dialog.d.ts.map +1 -1
- package/dist/components/dialog.js +15 -10
- package/dist/connector/index.d.ts +5 -0
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +5 -0
- package/dist/scenes/connected.d.ts +10 -0
- package/dist/scenes/connected.d.ts.map +1 -1
- package/dist/scenes/connected.js +108 -52
- package/dist/scenes/selecting/connecting.d.ts.map +1 -1
- package/dist/scenes/selecting/connecting.js +2 -1
- package/dist/scenes/selecting/index.d.ts.map +1 -1
- package/dist/scenes/selecting/index.js +4 -0
- package/package.json +2 -2
- package/src/assets/close.svg.ts +15 -4
- package/src/assets/diconnect.svg.ts +16 -4
- package/src/assets/left.svg.ts +16 -4
- package/src/assets/retry.svg.ts +15 -4
- package/src/assets/swap.svg.ts +37 -0
- package/src/components/button-pill.ts +2 -1
- package/src/components/button.ts +2 -1
- package/src/components/dialog.ts +15 -10
- package/src/connector/index.ts +6 -0
- package/src/scenes/connected.ts +108 -52
- package/src/scenes/selecting/connecting.ts +2 -1
- package/src/scenes/selecting/index.ts +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @ckb-ccc/connector
|
|
2
2
|
|
|
3
|
+
## 0.0.14-alpha.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#53](https://github.com/ckb-ecofund/ccc/pull/53) [`32bffff`](https://github.com/ckb-ecofund/ccc/commit/32bffff407934ec5d16bf7c5701b128d8b29c452) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(connector): select client
|
|
8
|
+
|
|
9
|
+
- Updated dependencies []:
|
|
10
|
+
- @ckb-ccc/ccc@0.0.14-alpha.2
|
|
11
|
+
|
|
3
12
|
## 0.0.14-alpha.1
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLOSE_SVG:
|
|
1
|
+
export declare const CLOSE_SVG: import("lit").TemplateResult;
|
|
2
2
|
//# sourceMappingURL=close.svg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.svg.d.ts","sourceRoot":"","sources":["../../src/assets/close.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"close.svg.d.ts","sourceRoot":"","sources":["../../src/assets/close.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,8BAarB,CAAC"}
|
package/dist/assets/close.svg.js
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const CLOSE_SVG =
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
|
+
export const CLOSE_SVG = html `
|
|
3
|
+
<svg
|
|
4
|
+
width="12"
|
|
5
|
+
height="12"
|
|
6
|
+
viewBox="0 0 12 12"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
class="primary-icon"
|
|
9
|
+
>
|
|
10
|
+
<path
|
|
11
|
+
d="M10.8989 1.0512C10.5085 0.660741 9.87543 0.660703 9.48493 1.05111L5.94897 4.58624L2.41397 1.05124C2.0235 0.660772 1.39043 0.660773 0.999968 1.05124C0.609503 1.4417 0.609503 2.07477 0.999969 2.46524L4.53497 6.00024L0.999968 9.53524C0.609503 9.9257 0.609503 10.5588 0.999968 10.9492C1.39043 11.3397 2.0235 11.3397 2.41397 10.9492L5.94897 7.41424L9.48493 10.9494C9.87543 11.3398 10.5085 11.3397 10.8989 10.9493C11.2894 10.5588 11.2894 9.92568 10.8989 9.5352L7.36397 6.00024L10.8989 2.46528C11.2894 2.07479 11.2894 1.44168 10.8989 1.0512Z"
|
|
12
|
+
fill="currentColor"
|
|
13
|
+
/>
|
|
14
|
+
</svg>
|
|
15
|
+
`;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const DISCONNECT_SVG:
|
|
1
|
+
export declare const DISCONNECT_SVG: import("lit").TemplateResult;
|
|
2
2
|
//# sourceMappingURL=diconnect.svg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diconnect.svg.d.ts","sourceRoot":"","sources":["../../src/assets/diconnect.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"diconnect.svg.d.ts","sourceRoot":"","sources":["../../src/assets/diconnect.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,8BAc1B,CAAC"}
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const DISCONNECT_SVG =
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
|
+
export const DISCONNECT_SVG = html `
|
|
3
|
+
<svg
|
|
4
|
+
width="32"
|
|
5
|
+
height="32"
|
|
6
|
+
viewBox="3 3 26 26"
|
|
7
|
+
fill="none"
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
class="primary-icon"
|
|
10
|
+
>
|
|
11
|
+
<path
|
|
12
|
+
d="M20.375 16.875H14.25V15.125H20.375L19.5 13.375H21.25L23 16L21.25 18.625H19.5L20.375 16.875ZM20.9509 11.051L19.7128 12.2886C19.226 11.8 18.6473 11.4125 18.0101 11.1484C17.3729 10.8844 16.6897 10.749 16 10.75C13.1006 10.75 10.75 13.1006 10.75 16C10.75 18.8994 13.1006 21.25 16 21.25C17.4107 21.25 18.7309 20.6923 19.71 19.7147L20.9462 20.9532C20.297 21.6031 19.5259 22.1184 18.6771 22.4696C17.8283 22.8209 16.9186 23.0011 16 23C12.1341 23 9 19.8659 9 16C9 12.1341 12.1341 9 16 9C17.8816 9 19.647 9.74667 20.9509 11.051Z"
|
|
13
|
+
fill="currentColor"
|
|
14
|
+
/>
|
|
15
|
+
</svg>
|
|
16
|
+
`;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const LEFT_SVG:
|
|
1
|
+
export declare const LEFT_SVG: import("lit").TemplateResult;
|
|
2
2
|
//# sourceMappingURL=left.svg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"left.svg.d.ts","sourceRoot":"","sources":["../../src/assets/left.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"left.svg.d.ts","sourceRoot":"","sources":["../../src/assets/left.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,8BAcpB,CAAC"}
|
package/dist/assets/left.svg.js
CHANGED
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const LEFT_SVG =
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
|
+
export const LEFT_SVG = html `
|
|
3
|
+
<svg
|
|
4
|
+
width="8"
|
|
5
|
+
height="14"
|
|
6
|
+
viewBox="0 0 8 14"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
class="primary-icon"
|
|
9
|
+
>
|
|
10
|
+
<path
|
|
11
|
+
d="M6.74554 13.5C6.54646 13.5 6.35454 13.4177 6.21275 13.2695L0.720203 7.55253C0.426599 7.24573 0.426599 6.75035 0.720203 6.44355L6.21275 0.725059C6.50779 0.422747 6.98185 0.42574 7.27402 0.729549C7.5662 1.03485 7.56763 1.52723 7.27832 1.83404L2.31999 6.99729L7.27975 12.162C7.49459 12.3865 7.55904 12.7233 7.44303 13.0166C7.32415 13.3084 7.0506 13.5 6.74554 13.5Z"
|
|
12
|
+
fill="currentColor"
|
|
13
|
+
stroke="currentColor"
|
|
14
|
+
/>
|
|
15
|
+
</svg>
|
|
16
|
+
`;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const RETRY_SVG:
|
|
1
|
+
export declare const RETRY_SVG: import("lit").TemplateResult;
|
|
2
2
|
//# sourceMappingURL=retry.svg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.svg.d.ts","sourceRoot":"","sources":["../../src/assets/retry.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"retry.svg.d.ts","sourceRoot":"","sources":["../../src/assets/retry.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,8BAarB,CAAC"}
|
package/dist/assets/retry.svg.js
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const RETRY_SVG =
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
|
+
export const RETRY_SVG = html `
|
|
3
|
+
<svg
|
|
4
|
+
width="12"
|
|
5
|
+
height="12"
|
|
6
|
+
viewBox="0 0 12 12"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
fill="currentColor"
|
|
9
|
+
class="primary-icon"
|
|
10
|
+
>
|
|
11
|
+
<path
|
|
12
|
+
d="M11.398 1.16864C11.0369 1.16864 10.7961 1.41021 10.7961 1.77256V2.37648C10.1941 1.531 9.35141 0.866684 8.38828 0.504333C5.37851 -0.82429 1.82699 0.564725 0.502691 3.58432C-0.821607 6.60392 0.562886 10.167 3.57265 11.4957C6.58242 12.8243 10.1339 11.4353 11.4582 8.41568H11.398C11.398 8.05333 11.1573 7.81176 10.7961 7.81176C10.4349 7.81176 10.1941 8.05333 10.1941 8.41568H10.1339C9.59219 9.32156 8.80965 10.0463 7.78633 10.469C5.31832 11.4957 2.54933 10.2878 1.52601 7.81176C0.502691 5.33569 1.7066 2.49727 4.17461 1.531C6.40183 0.564725 8.93004 1.531 10.1339 3.58432H8.99023C8.62906 3.58432 8.38828 3.82589 8.38828 4.18824C8.38828 4.55059 8.62906 4.79216 8.99023 4.79216H11.398C11.7592 4.79216 12 4.55059 12 4.18824V1.77256C12 1.41021 11.7592 1.16864 11.398 1.16864Z"
|
|
13
|
+
/>
|
|
14
|
+
</svg>
|
|
15
|
+
`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap.svg.d.ts","sourceRoot":"","sources":["../../src/assets/swap.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,8BAkCpB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
|
+
export const SWAP_SVG = html `
|
|
3
|
+
<svg
|
|
4
|
+
width="13"
|
|
5
|
+
height="12"
|
|
6
|
+
viewBox="0 0 13 12"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
class="secondary-icon"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
>
|
|
11
|
+
<path
|
|
12
|
+
d="M9.30688 5.22537L11.1669 3.36536L9.30688 1.50537"
|
|
13
|
+
stroke-width="1.33333"
|
|
14
|
+
stroke-linecap="round"
|
|
15
|
+
stroke-linejoin="round"
|
|
16
|
+
/>
|
|
17
|
+
<path
|
|
18
|
+
d="M2.16699 3.36523H11.167"
|
|
19
|
+
stroke-width="1.33333"
|
|
20
|
+
stroke-linecap="round"
|
|
21
|
+
stroke-linejoin="round"
|
|
22
|
+
/>
|
|
23
|
+
<path
|
|
24
|
+
d="M4.02698 6.77539L2.16699 8.63541L4.02698 10.4954"
|
|
25
|
+
stroke-width="1.33333"
|
|
26
|
+
stroke-linecap="round"
|
|
27
|
+
stroke-linejoin="round"
|
|
28
|
+
/>
|
|
29
|
+
<path
|
|
30
|
+
d="M11.167 8.63525H2.16699"
|
|
31
|
+
stroke-width="1.33333"
|
|
32
|
+
stroke-linecap="round"
|
|
33
|
+
stroke-linejoin="round"
|
|
34
|
+
/>
|
|
35
|
+
</svg>
|
|
36
|
+
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-pill.d.ts","sourceRoot":"","sources":["../../src/components/button-pill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,qBACa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"button-pill.d.ts","sourceRoot":"","sources":["../../src/components/button-pill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,qBACa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,MAAM,0BAkCX;IAEF,OAAO;IAIP,MAAM;CAGP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,qBACa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,qBACa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,MAAM,0BAwCX;IAEF,OAAO;IAIP,MAAM;CAGP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/components/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAK5C,qBACa,MAAO,SAAQ,UAAU;IAE7B,OAAO,EAAE,GAAG,GAAG,SAAS,CAAC;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEvB,MAAM;
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/components/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAK5C,qBACa,MAAO,SAAQ,UAAU;IAE7B,OAAO,EAAE,GAAG,GAAG,SAAS,CAAC;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEvB,MAAM;IA+BN,MAAM,CAAC,MAAM,0BA0DX;CACH"}
|
|
@@ -14,21 +14,23 @@ let Dialog = class Dialog extends LitElement {
|
|
|
14
14
|
<div
|
|
15
15
|
class="header text-bold fs-lg ${this.header ? "header-divider" : ""}"
|
|
16
16
|
>
|
|
17
|
-
<
|
|
17
|
+
<div
|
|
18
18
|
class="back ${this.canBack !== undefined ? "active" : ""}"
|
|
19
|
-
src=${LEFT_SVG}
|
|
20
19
|
@click=${() => {
|
|
21
20
|
this.dispatchEvent(new Event("back"));
|
|
22
21
|
}}
|
|
23
|
-
|
|
22
|
+
>
|
|
23
|
+
${LEFT_SVG}
|
|
24
|
+
</div>
|
|
24
25
|
${this.header}
|
|
25
|
-
<
|
|
26
|
+
<span
|
|
26
27
|
class="close active"
|
|
27
|
-
src=${CLOSE_SVG}
|
|
28
28
|
@click=${() => {
|
|
29
29
|
this.dispatchEvent(new Event("close", { bubbles: true, composed: true }));
|
|
30
30
|
}}
|
|
31
|
-
|
|
31
|
+
>
|
|
32
|
+
${CLOSE_SVG}
|
|
33
|
+
</span>
|
|
32
34
|
</div>
|
|
33
35
|
<div class="body">
|
|
34
36
|
<slot></slot>
|
|
@@ -37,6 +39,9 @@ let Dialog = class Dialog extends LitElement {
|
|
|
37
39
|
}
|
|
38
40
|
};
|
|
39
41
|
Dialog.styles = css `
|
|
42
|
+
.primary-icon {
|
|
43
|
+
color: var(--icon-primary);
|
|
44
|
+
}
|
|
40
45
|
.text-bold {
|
|
41
46
|
font-weight: bold;
|
|
42
47
|
}
|
|
@@ -68,16 +73,16 @@ Dialog.styles = css `
|
|
|
68
73
|
border-bottom: 1px solid var(--divider);
|
|
69
74
|
}
|
|
70
75
|
|
|
71
|
-
.close,
|
|
72
|
-
.back {
|
|
76
|
+
.close svg,
|
|
77
|
+
.back svg {
|
|
73
78
|
width: 0.8rem;
|
|
74
79
|
height: 0.8rem;
|
|
75
80
|
opacity: 0;
|
|
76
81
|
transition: opacity 0.15s ease-in-out;
|
|
77
82
|
}
|
|
78
83
|
|
|
79
|
-
.close.active,
|
|
80
|
-
.back.active {
|
|
84
|
+
.close.active svg,
|
|
85
|
+
.back.active svg {
|
|
81
86
|
opacity: 1;
|
|
82
87
|
cursor: pointer;
|
|
83
88
|
}
|
|
@@ -5,6 +5,11 @@ export declare class WebComponentConnector extends LitElement {
|
|
|
5
5
|
icon?: string;
|
|
6
6
|
preferredNetworks?: ccc.NetworkPreference[];
|
|
7
7
|
signersController?: ccc.SignersController;
|
|
8
|
+
clientOptions?: {
|
|
9
|
+
icon?: string;
|
|
10
|
+
client: ccc.Client;
|
|
11
|
+
name: string;
|
|
12
|
+
}[];
|
|
8
13
|
client: ccc.Client;
|
|
9
14
|
setClient(client: ccc.Client): void;
|
|
10
15
|
private signersControllerInner;
|
|
@@ -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;
|
|
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;AAO5D,qBACa,qBAAsB,SAAQ,UAAU;IAE5C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iBAAiB,CAAC,EAAE,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAE5C,iBAAiB,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC;IAE1C,aAAa,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAGtE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAiC;IACnD,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM;IAInC,OAAO,CAAC,sBAAsB,CAA+B;IAG7D,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B,OAAO,CAAC,UAAU,CAAC,CAAS;IAErB,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAE/B,OAAO,CAAC,wBAAwB,CAAC,CAAa;IAEvC,UAAU;IAQjB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,cAAc;IAUtB,iBAAiB,IAAI,IAAI;IAKzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAoBnD,aAAa;IAQP,YAAY,CAChB,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,EAC9B,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,SAAS;IAsBxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACV;IAEd,MAAM;IA0CN,OAAO;IASP,MAAM,CAAC,MAAM,0BAyBX;CACH"}
|
package/dist/connector/index.js
CHANGED
|
@@ -97,7 +97,9 @@ let WebComponentConnector = class WebComponentConnector extends LitElement {
|
|
|
97
97
|
<ccc-connected-scene
|
|
98
98
|
.wallet=${this.wallet}
|
|
99
99
|
.signer=${this.signer.signer}
|
|
100
|
+
.clientOptions=${this.clientOptions}
|
|
100
101
|
@disconnect=${() => this.disconnect()}
|
|
102
|
+
@select-client=${(e) => this.setClient(e.client)}
|
|
101
103
|
${ref(this.bodyRef)}
|
|
102
104
|
></ccc-connected-scene>
|
|
103
105
|
`
|
|
@@ -161,6 +163,9 @@ __decorate([
|
|
|
161
163
|
__decorate([
|
|
162
164
|
property()
|
|
163
165
|
], WebComponentConnector.prototype, "signersController", void 0);
|
|
166
|
+
__decorate([
|
|
167
|
+
state()
|
|
168
|
+
], WebComponentConnector.prototype, "clientOptions", void 0);
|
|
164
169
|
__decorate([
|
|
165
170
|
state()
|
|
166
171
|
], WebComponentConnector.prototype, "client", void 0);
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/ccc";
|
|
2
2
|
import { LitElement, PropertyValues } from "lit";
|
|
3
|
+
export declare class SelectClientEvent extends Event {
|
|
4
|
+
client: ccc.Client;
|
|
5
|
+
constructor(client: ccc.Client);
|
|
6
|
+
}
|
|
3
7
|
export declare function formatString(str: string | undefined, l?: number, r?: number): string | undefined;
|
|
4
8
|
export declare class ConnectedScene extends LitElement {
|
|
5
9
|
wallet?: ccc.Wallet;
|
|
6
10
|
signer?: ccc.Signer;
|
|
11
|
+
clientOptions?: {
|
|
12
|
+
icon?: string;
|
|
13
|
+
client: ccc.Client;
|
|
14
|
+
name: string;
|
|
15
|
+
}[];
|
|
7
16
|
private recommendedAddress?;
|
|
8
17
|
private internalAddress?;
|
|
9
18
|
private balance?;
|
|
19
|
+
private selectingClient;
|
|
10
20
|
willUpdate(changedProperties: PropertyValues<this>): void;
|
|
11
21
|
render(): import("lit").TemplateResult<1>;
|
|
12
22
|
static styles: import("lit").CSSResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connected.d.ts","sourceRoot":"","sources":["../../src/scenes/connected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"connected.d.ts","sourceRoot":"","sources":["../../src/scenes/connected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAQ5D,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAAlB,MAAM,EAAE,GAAG,CAAC,MAAM;CAGtC;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,CAAC,SAAI,EACL,CAAC,SAAI,GACJ,MAAM,GAAG,SAAS,CAKpB;AAED,qBACa,cAAe,SAAQ,UAAU;IAErC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;IAEpB,aAAa,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAG7E,OAAO,CAAC,kBAAkB,CAAC,CAAS;IAEpC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,OAAO,CAAC,OAAO,CAAC,CAAU;IAE1B,OAAO,CAAC,eAAe,CAAS;IAEhC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAgBzD,MAAM;IA8FN,MAAM,CAAC,MAAM,0BAmHX;IAEF,OAAO;CAGR"}
|
package/dist/scenes/connected.js
CHANGED
|
@@ -7,9 +7,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { ccc } from "@ckb-ccc/ccc";
|
|
8
8
|
import { css, html, LitElement } from "lit";
|
|
9
9
|
import { customElement, property, state } from "lit/decorators.js";
|
|
10
|
+
import { repeat } from "lit/directives/repeat.js";
|
|
10
11
|
import { CKB_SVG } from "../assets/chains/index.js";
|
|
11
12
|
import { DISCONNECT_SVG } from "../assets/diconnect.svg.js";
|
|
13
|
+
import { SWAP_SVG } from "../assets/swap.svg.js";
|
|
12
14
|
import { signerTypeToIcon } from "./selecting/signers.js";
|
|
15
|
+
export class SelectClientEvent extends Event {
|
|
16
|
+
constructor(client) {
|
|
17
|
+
super("select-client");
|
|
18
|
+
this.client = client;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
13
21
|
export function formatString(str, l = 9, r = 6) {
|
|
14
22
|
if (str && str.length > l + r + 3) {
|
|
15
23
|
return `${str.slice(0, l)}...${str.slice(-r)}`;
|
|
@@ -17,6 +25,10 @@ export function formatString(str, l = 9, r = 6) {
|
|
|
17
25
|
return str;
|
|
18
26
|
}
|
|
19
27
|
let ConnectedScene = class ConnectedScene extends LitElement {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.selectingClient = false;
|
|
31
|
+
}
|
|
20
32
|
willUpdate(changedProperties) {
|
|
21
33
|
if ((!this.recommendedAddress ||
|
|
22
34
|
!this.internalAddress ||
|
|
@@ -35,61 +47,83 @@ let ConnectedScene = class ConnectedScene extends LitElement {
|
|
|
35
47
|
if (!wallet || !signer) {
|
|
36
48
|
return html `<div></div>`;
|
|
37
49
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
<
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
class="connected-type-icon"
|
|
48
|
-
src=${signerTypeToIcon(signer.type)}
|
|
49
|
-
alt=${signer.type}
|
|
50
|
-
/>
|
|
51
|
-
</div>
|
|
52
|
-
|
|
53
|
-
<ccc-copy-button
|
|
54
|
-
value=${recommendedAddress}
|
|
55
|
-
class="text-bold fs-xl mt-2"
|
|
56
|
-
>
|
|
57
|
-
${formatString(recommendedAddress)}
|
|
58
|
-
</ccc-copy-button>
|
|
59
|
-
<div class="text-bold fs-md">
|
|
60
|
-
${ccc.fixedPointToString(balance ?? ccc.Zero)} CKB
|
|
61
|
-
</div>
|
|
62
|
-
<ccc-copy-button
|
|
63
|
-
value=${internalAddress}
|
|
64
|
-
class="text-bold text-tip fs-md"
|
|
65
|
-
style="margin-top: 0.5rem"
|
|
66
|
-
>
|
|
67
|
-
${formatString(internalAddress, 11, 9)}
|
|
68
|
-
</ccc-copy-button>
|
|
69
|
-
|
|
70
|
-
<ccc-button
|
|
71
|
-
class="mt-2"
|
|
72
|
-
@click=${() => this.dispatchEvent(new Event("disconnect"))}
|
|
73
|
-
>
|
|
74
|
-
<img src=${DISCONNECT_SVG} alt="disconnect" />
|
|
75
|
-
Disconnect
|
|
76
|
-
</ccc-button>
|
|
77
|
-
|
|
78
|
-
<div class="switch-btn-container">
|
|
79
|
-
<div class="switch-line"></div>
|
|
80
|
-
<div class="switch-content ml-2 mr-2 fs-sm">
|
|
50
|
+
const body = (() => {
|
|
51
|
+
if (!this.selectingClient || !this.clientOptions) {
|
|
52
|
+
return html `
|
|
53
|
+
<div class="position-relative">
|
|
54
|
+
<img
|
|
55
|
+
class="connecting-wallet-icon"
|
|
56
|
+
src=${wallet.icon}
|
|
57
|
+
alt=${wallet.name}
|
|
58
|
+
/>
|
|
81
59
|
<img
|
|
82
|
-
class="
|
|
83
|
-
src=${
|
|
84
|
-
alt
|
|
60
|
+
class="connected-type-icon"
|
|
61
|
+
src=${signerTypeToIcon(signer.type)}
|
|
62
|
+
alt=${signer.type}
|
|
85
63
|
/>
|
|
86
|
-
${signer.client.addressPrefix === "ckb" ? "Mainnet" : "Testnet"}
|
|
87
|
-
${["ckb", "ckt"].includes(signer.client.addressPrefix)
|
|
88
|
-
? ""
|
|
89
|
-
: ` ${signer.client.addressPrefix}`}
|
|
90
64
|
</div>
|
|
91
|
-
|
|
92
|
-
|
|
65
|
+
|
|
66
|
+
<ccc-copy-button
|
|
67
|
+
value=${recommendedAddress}
|
|
68
|
+
class="text-bold fs-xl mt-2"
|
|
69
|
+
>
|
|
70
|
+
${formatString(recommendedAddress)}
|
|
71
|
+
</ccc-copy-button>
|
|
72
|
+
<div class="text-bold fs-md">
|
|
73
|
+
${ccc.fixedPointToString(balance ?? ccc.Zero)} CKB
|
|
74
|
+
</div>
|
|
75
|
+
<ccc-copy-button
|
|
76
|
+
value=${internalAddress}
|
|
77
|
+
class="text-bold text-tip fs-md"
|
|
78
|
+
style="margin-top: 0.5rem"
|
|
79
|
+
>
|
|
80
|
+
${formatString(internalAddress, 11, 9)}
|
|
81
|
+
</ccc-copy-button>
|
|
82
|
+
|
|
83
|
+
<ccc-button
|
|
84
|
+
class="mt-2"
|
|
85
|
+
@click=${() => this.dispatchEvent(new Event("disconnect"))}
|
|
86
|
+
>
|
|
87
|
+
${DISCONNECT_SVG}
|
|
88
|
+
Disconnect
|
|
89
|
+
</ccc-button>
|
|
90
|
+
|
|
91
|
+
<div
|
|
92
|
+
class="switch-btn-container ${this.clientOptions
|
|
93
|
+
? "cursor-pointer"
|
|
94
|
+
: ""}"
|
|
95
|
+
@click=${() => (this.selectingClient = Boolean(this.clientOptions))}
|
|
96
|
+
>
|
|
97
|
+
<div class="switch-line"></div>
|
|
98
|
+
<div class="switch-content ml-2 mr-2 fs-sm">
|
|
99
|
+
<img class="sm-chain-logo" src=${CKB_SVG} alt="Nervos Network" />
|
|
100
|
+
${signer.client.addressPrefix === "ckb" ? "Mainnet" : "Testnet"}
|
|
101
|
+
${["ckb", "ckt"].includes(signer.client.addressPrefix)
|
|
102
|
+
? ""
|
|
103
|
+
: ` ${signer.client.addressPrefix}`}
|
|
104
|
+
${this.clientOptions ? SWAP_SVG : undefined}
|
|
105
|
+
</div>
|
|
106
|
+
<div class="switch-line"></div>
|
|
107
|
+
</div>
|
|
108
|
+
`;
|
|
109
|
+
}
|
|
110
|
+
return repeat(this.clientOptions, ({ name }) => name, ({ client, name, icon }) => html `
|
|
111
|
+
<ccc-button
|
|
112
|
+
class="mt-1"
|
|
113
|
+
@click=${() => this.dispatchEvent(new SelectClientEvent(client))}
|
|
114
|
+
>
|
|
115
|
+
<img src=${icon ?? CKB_SVG} alt=${name} />
|
|
116
|
+
${name}
|
|
117
|
+
</ccc-button>
|
|
118
|
+
`);
|
|
119
|
+
})();
|
|
120
|
+
return html `
|
|
121
|
+
<ccc-dialog
|
|
122
|
+
header=${this.selectingClient ? "Select Network" : undefined}
|
|
123
|
+
?canBack=${this.selectingClient}
|
|
124
|
+
@back=${() => (this.selectingClient = false)}
|
|
125
|
+
>
|
|
126
|
+
${body}
|
|
93
127
|
</ccc-dialog>
|
|
94
128
|
`;
|
|
95
129
|
}
|
|
@@ -104,6 +138,14 @@ ConnectedScene.styles = css `
|
|
|
104
138
|
flex-direction: column;
|
|
105
139
|
align-items: center;
|
|
106
140
|
}
|
|
141
|
+
|
|
142
|
+
.primary-icon {
|
|
143
|
+
color: var(--icon-primary);
|
|
144
|
+
}
|
|
145
|
+
.secondary-icon {
|
|
146
|
+
color: var(--icon-secondary);
|
|
147
|
+
}
|
|
148
|
+
|
|
107
149
|
.text-bold {
|
|
108
150
|
font-weight: bold;
|
|
109
151
|
}
|
|
@@ -128,6 +170,9 @@ ConnectedScene.styles = css `
|
|
|
128
170
|
.mt-2 {
|
|
129
171
|
margin-top: 1rem;
|
|
130
172
|
}
|
|
173
|
+
.ml-1 {
|
|
174
|
+
margin-left: 0.7em;
|
|
175
|
+
}
|
|
131
176
|
.ml-2 {
|
|
132
177
|
margin-left: 1em;
|
|
133
178
|
}
|
|
@@ -165,9 +210,14 @@ ConnectedScene.styles = css `
|
|
|
165
210
|
align-items: center;
|
|
166
211
|
}
|
|
167
212
|
|
|
213
|
+
.cursor-pointer {
|
|
214
|
+
cursor: pointer;
|
|
215
|
+
}
|
|
216
|
+
|
|
168
217
|
.switch-content {
|
|
169
218
|
display: flex;
|
|
170
219
|
align-items: center;
|
|
220
|
+
gap: 0.7rem;
|
|
171
221
|
}
|
|
172
222
|
|
|
173
223
|
.switch-line {
|
|
@@ -203,6 +253,9 @@ __decorate([
|
|
|
203
253
|
__decorate([
|
|
204
254
|
property()
|
|
205
255
|
], ConnectedScene.prototype, "signer", void 0);
|
|
256
|
+
__decorate([
|
|
257
|
+
property()
|
|
258
|
+
], ConnectedScene.prototype, "clientOptions", void 0);
|
|
206
259
|
__decorate([
|
|
207
260
|
state()
|
|
208
261
|
], ConnectedScene.prototype, "recommendedAddress", void 0);
|
|
@@ -212,6 +265,9 @@ __decorate([
|
|
|
212
265
|
__decorate([
|
|
213
266
|
state()
|
|
214
267
|
], ConnectedScene.prototype, "balance", void 0);
|
|
268
|
+
__decorate([
|
|
269
|
+
state()
|
|
270
|
+
], ConnectedScene.prototype, "selectingClient", void 0);
|
|
215
271
|
ConnectedScene = __decorate([
|
|
216
272
|
customElement("ccc-connected-scene")
|
|
217
273
|
], ConnectedScene);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connecting.d.ts","sourceRoot":"","sources":["../../../src/scenes/selecting/connecting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAC7B,MAAM,EAAE,GAAG,CAAC,UAAU,EACtB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,gBAAgB,EAAE,CAChB,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAC7B,MAAM,EAAE,GAAG,CAAC,UAAU,KACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"connecting.d.ts","sourceRoot":"","sources":["../../../src/scenes/selecting/connecting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAC7B,MAAM,EAAE,GAAG,CAAC,UAAU,EACtB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,gBAAgB,EAAE,CAChB,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAC7B,MAAM,EAAE,GAAG,CAAC,UAAU,KACnB,OAAO,gDA4Bb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scenes/selecting/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAM5C,qBAAa,cAAe,SAAQ,KAAK;aAErB,UAAU,EAAE,MAAM;aAClB,UAAU,EAAE,MAAM;gBADlB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM;CAIrC;AAED,qBACa,cAAe,SAAQ,UAAU;IAErC,OAAO,CAAC,EAAE,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAGzC,OAAO,CAAC,cAAc,CAAC,CAAwB;IAE/C,OAAO,CAAC,cAAc,CAAC,CAAiB;IAExC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,MAAM;IA+CC,OAAO;IAMd,OAAO,CAAC,qBAAqB,CAwC3B;IAEF,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scenes/selecting/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAM5C,qBAAa,cAAe,SAAQ,KAAK;aAErB,UAAU,EAAE,MAAM;aAClB,UAAU,EAAE,MAAM;gBADlB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM;CAIrC;AAED,qBACa,cAAe,SAAQ,UAAU;IAErC,OAAO,CAAC,EAAE,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAGzC,OAAO,CAAC,cAAc,CAAC,CAAwB;IAE/C,OAAO,CAAC,cAAc,CAAC,CAAiB;IAExC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,MAAM;IA+CC,OAAO;IAMd,OAAO,CAAC,qBAAqB,CAwC3B;IAEF,MAAM,CAAC,MAAM,0BA0DX;IAEF,OAAO;CAGR"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckb-ccc/connector",
|
|
3
|
-
"version": "0.0.14-alpha.
|
|
3
|
+
"version": "0.0.14-alpha.2",
|
|
4
4
|
"description": "CCC - CKBer's Codebase. Common Chains Connector UI",
|
|
5
5
|
"author": "Hanssen0 <hanssen0@hanssen0.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"lit": "^3.1.3",
|
|
37
|
-
"@ckb-ccc/ccc": "0.0.14-alpha.
|
|
37
|
+
"@ckb-ccc/ccc": "0.0.14-alpha.2"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "rimraf ./dist && tsc",
|
package/src/assets/close.svg.ts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
2
|
|
|
3
|
-
export const CLOSE_SVG =
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export const CLOSE_SVG = html`
|
|
4
|
+
<svg
|
|
5
|
+
width="12"
|
|
6
|
+
height="12"
|
|
7
|
+
viewBox="0 0 12 12"
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
class="primary-icon"
|
|
10
|
+
>
|
|
11
|
+
<path
|
|
12
|
+
d="M10.8989 1.0512C10.5085 0.660741 9.87543 0.660703 9.48493 1.05111L5.94897 4.58624L2.41397 1.05124C2.0235 0.660772 1.39043 0.660773 0.999968 1.05124C0.609503 1.4417 0.609503 2.07477 0.999969 2.46524L4.53497 6.00024L0.999968 9.53524C0.609503 9.9257 0.609503 10.5588 0.999968 10.9492C1.39043 11.3397 2.0235 11.3397 2.41397 10.9492L5.94897 7.41424L9.48493 10.9494C9.87543 11.3398 10.5085 11.3397 10.8989 10.9493C11.2894 10.5588 11.2894 9.92568 10.8989 9.5352L7.36397 6.00024L10.8989 2.46528C11.2894 2.07479 11.2894 1.44168 10.8989 1.0512Z"
|
|
13
|
+
fill="currentColor"
|
|
14
|
+
/>
|
|
15
|
+
</svg>
|
|
16
|
+
`;
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
2
|
|
|
3
|
-
export const DISCONNECT_SVG =
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export const DISCONNECT_SVG = html`
|
|
4
|
+
<svg
|
|
5
|
+
width="32"
|
|
6
|
+
height="32"
|
|
7
|
+
viewBox="3 3 26 26"
|
|
8
|
+
fill="none"
|
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
+
class="primary-icon"
|
|
11
|
+
>
|
|
12
|
+
<path
|
|
13
|
+
d="M20.375 16.875H14.25V15.125H20.375L19.5 13.375H21.25L23 16L21.25 18.625H19.5L20.375 16.875ZM20.9509 11.051L19.7128 12.2886C19.226 11.8 18.6473 11.4125 18.0101 11.1484C17.3729 10.8844 16.6897 10.749 16 10.75C13.1006 10.75 10.75 13.1006 10.75 16C10.75 18.8994 13.1006 21.25 16 21.25C17.4107 21.25 18.7309 20.6923 19.71 19.7147L20.9462 20.9532C20.297 21.6031 19.5259 22.1184 18.6771 22.4696C17.8283 22.8209 16.9186 23.0011 16 23C12.1341 23 9 19.8659 9 16C9 12.1341 12.1341 9 16 9C17.8816 9 19.647 9.74667 20.9509 11.051Z"
|
|
14
|
+
fill="currentColor"
|
|
15
|
+
/>
|
|
16
|
+
</svg>
|
|
17
|
+
`;
|
package/src/assets/left.svg.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
2
|
|
|
3
|
-
export const LEFT_SVG =
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export const LEFT_SVG = html`
|
|
4
|
+
<svg
|
|
5
|
+
width="8"
|
|
6
|
+
height="14"
|
|
7
|
+
viewBox="0 0 8 14"
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
class="primary-icon"
|
|
10
|
+
>
|
|
11
|
+
<path
|
|
12
|
+
d="M6.74554 13.5C6.54646 13.5 6.35454 13.4177 6.21275 13.2695L0.720203 7.55253C0.426599 7.24573 0.426599 6.75035 0.720203 6.44355L6.21275 0.725059C6.50779 0.422747 6.98185 0.42574 7.27402 0.729549C7.5662 1.03485 7.56763 1.52723 7.27832 1.83404L2.31999 6.99729L7.27975 12.162C7.49459 12.3865 7.55904 12.7233 7.44303 13.0166C7.32415 13.3084 7.0506 13.5 6.74554 13.5Z"
|
|
13
|
+
fill="currentColor"
|
|
14
|
+
stroke="currentColor"
|
|
15
|
+
/>
|
|
16
|
+
</svg>
|
|
17
|
+
`;
|
package/src/assets/retry.svg.ts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
2
|
|
|
3
|
-
export const RETRY_SVG =
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export const RETRY_SVG = html`
|
|
4
|
+
<svg
|
|
5
|
+
width="12"
|
|
6
|
+
height="12"
|
|
7
|
+
viewBox="0 0 12 12"
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
fill="currentColor"
|
|
10
|
+
class="primary-icon"
|
|
11
|
+
>
|
|
12
|
+
<path
|
|
13
|
+
d="M11.398 1.16864C11.0369 1.16864 10.7961 1.41021 10.7961 1.77256V2.37648C10.1941 1.531 9.35141 0.866684 8.38828 0.504333C5.37851 -0.82429 1.82699 0.564725 0.502691 3.58432C-0.821607 6.60392 0.562886 10.167 3.57265 11.4957C6.58242 12.8243 10.1339 11.4353 11.4582 8.41568H11.398C11.398 8.05333 11.1573 7.81176 10.7961 7.81176C10.4349 7.81176 10.1941 8.05333 10.1941 8.41568H10.1339C9.59219 9.32156 8.80965 10.0463 7.78633 10.469C5.31832 11.4957 2.54933 10.2878 1.52601 7.81176C0.502691 5.33569 1.7066 2.49727 4.17461 1.531C6.40183 0.564725 8.93004 1.531 10.1339 3.58432H8.99023C8.62906 3.58432 8.38828 3.82589 8.38828 4.18824C8.38828 4.55059 8.62906 4.79216 8.99023 4.79216H11.398C11.7592 4.79216 12 4.55059 12 4.18824V1.77256C12 1.41021 11.7592 1.16864 11.398 1.16864Z"
|
|
14
|
+
/>
|
|
15
|
+
</svg>
|
|
16
|
+
`;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { html } from "lit/static-html.js";
|
|
2
|
+
|
|
3
|
+
export const SWAP_SVG = html`
|
|
4
|
+
<svg
|
|
5
|
+
width="13"
|
|
6
|
+
height="12"
|
|
7
|
+
viewBox="0 0 13 12"
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
class="secondary-icon"
|
|
10
|
+
stroke="currentColor"
|
|
11
|
+
>
|
|
12
|
+
<path
|
|
13
|
+
d="M9.30688 5.22537L11.1669 3.36536L9.30688 1.50537"
|
|
14
|
+
stroke-width="1.33333"
|
|
15
|
+
stroke-linecap="round"
|
|
16
|
+
stroke-linejoin="round"
|
|
17
|
+
/>
|
|
18
|
+
<path
|
|
19
|
+
d="M2.16699 3.36523H11.167"
|
|
20
|
+
stroke-width="1.33333"
|
|
21
|
+
stroke-linecap="round"
|
|
22
|
+
stroke-linejoin="round"
|
|
23
|
+
/>
|
|
24
|
+
<path
|
|
25
|
+
d="M4.02698 6.77539L2.16699 8.63541L4.02698 10.4954"
|
|
26
|
+
stroke-width="1.33333"
|
|
27
|
+
stroke-linecap="round"
|
|
28
|
+
stroke-linejoin="round"
|
|
29
|
+
/>
|
|
30
|
+
<path
|
|
31
|
+
d="M11.167 8.63525H2.16699"
|
|
32
|
+
stroke-width="1.33333"
|
|
33
|
+
stroke-linecap="round"
|
|
34
|
+
stroke-linejoin="round"
|
|
35
|
+
/>
|
|
36
|
+
</svg>
|
|
37
|
+
`;
|
package/src/components/button.ts
CHANGED
package/src/components/dialog.ts
CHANGED
|
@@ -15,23 +15,25 @@ export class Dialog extends LitElement {
|
|
|
15
15
|
<div
|
|
16
16
|
class="header text-bold fs-lg ${this.header ? "header-divider" : ""}"
|
|
17
17
|
>
|
|
18
|
-
<
|
|
18
|
+
<div
|
|
19
19
|
class="back ${this.canBack !== undefined ? "active" : ""}"
|
|
20
|
-
src=${LEFT_SVG}
|
|
21
20
|
@click=${() => {
|
|
22
21
|
this.dispatchEvent(new Event("back"));
|
|
23
22
|
}}
|
|
24
|
-
|
|
23
|
+
>
|
|
24
|
+
${LEFT_SVG}
|
|
25
|
+
</div>
|
|
25
26
|
${this.header}
|
|
26
|
-
<
|
|
27
|
+
<span
|
|
27
28
|
class="close active"
|
|
28
|
-
src=${CLOSE_SVG}
|
|
29
29
|
@click=${() => {
|
|
30
30
|
this.dispatchEvent(
|
|
31
31
|
new Event("close", { bubbles: true, composed: true }),
|
|
32
32
|
);
|
|
33
33
|
}}
|
|
34
|
-
|
|
34
|
+
>
|
|
35
|
+
${CLOSE_SVG}
|
|
36
|
+
</span>
|
|
35
37
|
</div>
|
|
36
38
|
<div class="body">
|
|
37
39
|
<slot></slot>
|
|
@@ -40,6 +42,9 @@ export class Dialog extends LitElement {
|
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
static styles = css`
|
|
45
|
+
.primary-icon {
|
|
46
|
+
color: var(--icon-primary);
|
|
47
|
+
}
|
|
43
48
|
.text-bold {
|
|
44
49
|
font-weight: bold;
|
|
45
50
|
}
|
|
@@ -71,16 +76,16 @@ export class Dialog extends LitElement {
|
|
|
71
76
|
border-bottom: 1px solid var(--divider);
|
|
72
77
|
}
|
|
73
78
|
|
|
74
|
-
.close,
|
|
75
|
-
.back {
|
|
79
|
+
.close svg,
|
|
80
|
+
.back svg {
|
|
76
81
|
width: 0.8rem;
|
|
77
82
|
height: 0.8rem;
|
|
78
83
|
opacity: 0;
|
|
79
84
|
transition: opacity 0.15s ease-in-out;
|
|
80
85
|
}
|
|
81
86
|
|
|
82
|
-
.close.active,
|
|
83
|
-
.back.active {
|
|
87
|
+
.close.active svg,
|
|
88
|
+
.back.active svg {
|
|
84
89
|
opacity: 1;
|
|
85
90
|
cursor: pointer;
|
|
86
91
|
}
|
package/src/connector/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { ccc } from "@ckb-ccc/ccc";
|
|
|
2
2
|
import { LitElement, PropertyValues, css, html } from "lit";
|
|
3
3
|
import { customElement, property, state } from "lit/decorators.js";
|
|
4
4
|
import { Ref, createRef, ref } from "lit/directives/ref.js";
|
|
5
|
+
import { SelectClientEvent } from "../scenes/connected.js";
|
|
5
6
|
import { ConnectedEvent } from "../scenes/selecting/index.js";
|
|
6
7
|
import { SignersController } from "../signers/index.js";
|
|
7
8
|
|
|
@@ -15,6 +16,8 @@ export class WebComponentConnector extends LitElement {
|
|
|
15
16
|
public preferredNetworks?: ccc.NetworkPreference[];
|
|
16
17
|
@property()
|
|
17
18
|
public signersController?: ccc.SignersController;
|
|
19
|
+
@state()
|
|
20
|
+
public clientOptions?: { icon?: string; client: ccc.Client; name: string }[];
|
|
18
21
|
|
|
19
22
|
@state()
|
|
20
23
|
public client: ccc.Client = new ccc.ClientPublicTestnet();
|
|
@@ -145,7 +148,10 @@ export class WebComponentConnector extends LitElement {
|
|
|
145
148
|
<ccc-connected-scene
|
|
146
149
|
.wallet=${this.wallet}
|
|
147
150
|
.signer=${this.signer.signer}
|
|
151
|
+
.clientOptions=${this.clientOptions}
|
|
148
152
|
@disconnect=${() => this.disconnect()}
|
|
153
|
+
@select-client=${(e: SelectClientEvent) =>
|
|
154
|
+
this.setClient(e.client)}
|
|
149
155
|
${ref(this.bodyRef)}
|
|
150
156
|
></ccc-connected-scene>
|
|
151
157
|
`
|
package/src/scenes/connected.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/ccc";
|
|
2
2
|
import { css, html, LitElement, PropertyValues } from "lit";
|
|
3
3
|
import { customElement, property, state } from "lit/decorators.js";
|
|
4
|
+
import { repeat } from "lit/directives/repeat.js";
|
|
4
5
|
import { CKB_SVG } from "../assets/chains/index.js";
|
|
5
6
|
import { DISCONNECT_SVG } from "../assets/diconnect.svg.js";
|
|
7
|
+
import { SWAP_SVG } from "../assets/swap.svg.js";
|
|
6
8
|
import { signerTypeToIcon } from "./selecting/signers.js";
|
|
7
9
|
|
|
10
|
+
export class SelectClientEvent extends Event {
|
|
11
|
+
constructor(public client: ccc.Client) {
|
|
12
|
+
super("select-client");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
8
16
|
export function formatString(
|
|
9
17
|
str: string | undefined,
|
|
10
18
|
l = 9,
|
|
@@ -22,6 +30,8 @@ export class ConnectedScene extends LitElement {
|
|
|
22
30
|
public wallet?: ccc.Wallet;
|
|
23
31
|
@property()
|
|
24
32
|
public signer?: ccc.Signer;
|
|
33
|
+
@property()
|
|
34
|
+
public clientOptions?: { icon?: string; client: ccc.Client; name: string }[];
|
|
25
35
|
|
|
26
36
|
@state()
|
|
27
37
|
private recommendedAddress?: string;
|
|
@@ -29,6 +39,8 @@ export class ConnectedScene extends LitElement {
|
|
|
29
39
|
private internalAddress?: string;
|
|
30
40
|
@state()
|
|
31
41
|
private balance?: ccc.Num;
|
|
42
|
+
@state()
|
|
43
|
+
private selectingClient = false;
|
|
32
44
|
|
|
33
45
|
willUpdate(changedProperties: PropertyValues<this>): void {
|
|
34
46
|
if (
|
|
@@ -53,61 +65,89 @@ export class ConnectedScene extends LitElement {
|
|
|
53
65
|
return html`<div></div>`;
|
|
54
66
|
}
|
|
55
67
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
<
|
|
60
|
-
class="connecting-wallet-icon"
|
|
61
|
-
src=${wallet.icon}
|
|
62
|
-
alt=${wallet.name}
|
|
63
|
-
/>
|
|
64
|
-
<img
|
|
65
|
-
class="connected-type-icon"
|
|
66
|
-
src=${signerTypeToIcon(signer.type)}
|
|
67
|
-
alt=${signer.type}
|
|
68
|
-
/>
|
|
69
|
-
</div>
|
|
70
|
-
|
|
71
|
-
<ccc-copy-button
|
|
72
|
-
value=${recommendedAddress}
|
|
73
|
-
class="text-bold fs-xl mt-2"
|
|
74
|
-
>
|
|
75
|
-
${formatString(recommendedAddress)}
|
|
76
|
-
</ccc-copy-button>
|
|
77
|
-
<div class="text-bold fs-md">
|
|
78
|
-
${ccc.fixedPointToString(balance ?? ccc.Zero)} CKB
|
|
79
|
-
</div>
|
|
80
|
-
<ccc-copy-button
|
|
81
|
-
value=${internalAddress}
|
|
82
|
-
class="text-bold text-tip fs-md"
|
|
83
|
-
style="margin-top: 0.5rem"
|
|
84
|
-
>
|
|
85
|
-
${formatString(internalAddress, 11, 9)}
|
|
86
|
-
</ccc-copy-button>
|
|
87
|
-
|
|
88
|
-
<ccc-button
|
|
89
|
-
class="mt-2"
|
|
90
|
-
@click=${() => this.dispatchEvent(new Event("disconnect"))}
|
|
91
|
-
>
|
|
92
|
-
<img src=${DISCONNECT_SVG} alt="disconnect" />
|
|
93
|
-
Disconnect
|
|
94
|
-
</ccc-button>
|
|
95
|
-
|
|
96
|
-
<div class="switch-btn-container">
|
|
97
|
-
<div class="switch-line"></div>
|
|
98
|
-
<div class="switch-content ml-2 mr-2 fs-sm">
|
|
68
|
+
const body = (() => {
|
|
69
|
+
if (!this.selectingClient || !this.clientOptions) {
|
|
70
|
+
return html`
|
|
71
|
+
<div class="position-relative">
|
|
99
72
|
<img
|
|
100
|
-
class="
|
|
101
|
-
src=${
|
|
102
|
-
alt
|
|
73
|
+
class="connecting-wallet-icon"
|
|
74
|
+
src=${wallet.icon}
|
|
75
|
+
alt=${wallet.name}
|
|
103
76
|
/>
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
77
|
+
<img
|
|
78
|
+
class="connected-type-icon"
|
|
79
|
+
src=${signerTypeToIcon(signer.type)}
|
|
80
|
+
alt=${signer.type}
|
|
81
|
+
/>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<ccc-copy-button
|
|
85
|
+
value=${recommendedAddress}
|
|
86
|
+
class="text-bold fs-xl mt-2"
|
|
87
|
+
>
|
|
88
|
+
${formatString(recommendedAddress)}
|
|
89
|
+
</ccc-copy-button>
|
|
90
|
+
<div class="text-bold fs-md">
|
|
91
|
+
${ccc.fixedPointToString(balance ?? ccc.Zero)} CKB
|
|
108
92
|
</div>
|
|
109
|
-
<
|
|
110
|
-
|
|
93
|
+
<ccc-copy-button
|
|
94
|
+
value=${internalAddress}
|
|
95
|
+
class="text-bold text-tip fs-md"
|
|
96
|
+
style="margin-top: 0.5rem"
|
|
97
|
+
>
|
|
98
|
+
${formatString(internalAddress, 11, 9)}
|
|
99
|
+
</ccc-copy-button>
|
|
100
|
+
|
|
101
|
+
<ccc-button
|
|
102
|
+
class="mt-2"
|
|
103
|
+
@click=${() => this.dispatchEvent(new Event("disconnect"))}
|
|
104
|
+
>
|
|
105
|
+
${DISCONNECT_SVG}
|
|
106
|
+
Disconnect
|
|
107
|
+
</ccc-button>
|
|
108
|
+
|
|
109
|
+
<div
|
|
110
|
+
class="switch-btn-container ${this.clientOptions
|
|
111
|
+
? "cursor-pointer"
|
|
112
|
+
: ""}"
|
|
113
|
+
@click=${() => (this.selectingClient = Boolean(this.clientOptions))}
|
|
114
|
+
>
|
|
115
|
+
<div class="switch-line"></div>
|
|
116
|
+
<div class="switch-content ml-2 mr-2 fs-sm">
|
|
117
|
+
<img class="sm-chain-logo" src=${CKB_SVG} alt="Nervos Network" />
|
|
118
|
+
${signer.client.addressPrefix === "ckb" ? "Mainnet" : "Testnet"}
|
|
119
|
+
${["ckb", "ckt"].includes(signer.client.addressPrefix)
|
|
120
|
+
? ""
|
|
121
|
+
: ` ${signer.client.addressPrefix}`}
|
|
122
|
+
${this.clientOptions ? SWAP_SVG : undefined}
|
|
123
|
+
</div>
|
|
124
|
+
<div class="switch-line"></div>
|
|
125
|
+
</div>
|
|
126
|
+
`;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return repeat(
|
|
130
|
+
this.clientOptions,
|
|
131
|
+
({ name }) => name,
|
|
132
|
+
({ client, name, icon }) => html`
|
|
133
|
+
<ccc-button
|
|
134
|
+
class="mt-1"
|
|
135
|
+
@click=${() => this.dispatchEvent(new SelectClientEvent(client))}
|
|
136
|
+
>
|
|
137
|
+
<img src=${icon ?? CKB_SVG} alt=${name} />
|
|
138
|
+
${name}
|
|
139
|
+
</ccc-button>
|
|
140
|
+
`,
|
|
141
|
+
);
|
|
142
|
+
})();
|
|
143
|
+
|
|
144
|
+
return html`
|
|
145
|
+
<ccc-dialog
|
|
146
|
+
header=${this.selectingClient ? "Select Network" : undefined}
|
|
147
|
+
?canBack=${this.selectingClient}
|
|
148
|
+
@back=${() => (this.selectingClient = false)}
|
|
149
|
+
>
|
|
150
|
+
${body}
|
|
111
151
|
</ccc-dialog>
|
|
112
152
|
`;
|
|
113
153
|
}
|
|
@@ -119,6 +159,14 @@ export class ConnectedScene extends LitElement {
|
|
|
119
159
|
flex-direction: column;
|
|
120
160
|
align-items: center;
|
|
121
161
|
}
|
|
162
|
+
|
|
163
|
+
.primary-icon {
|
|
164
|
+
color: var(--icon-primary);
|
|
165
|
+
}
|
|
166
|
+
.secondary-icon {
|
|
167
|
+
color: var(--icon-secondary);
|
|
168
|
+
}
|
|
169
|
+
|
|
122
170
|
.text-bold {
|
|
123
171
|
font-weight: bold;
|
|
124
172
|
}
|
|
@@ -143,6 +191,9 @@ export class ConnectedScene extends LitElement {
|
|
|
143
191
|
.mt-2 {
|
|
144
192
|
margin-top: 1rem;
|
|
145
193
|
}
|
|
194
|
+
.ml-1 {
|
|
195
|
+
margin-left: 0.7em;
|
|
196
|
+
}
|
|
146
197
|
.ml-2 {
|
|
147
198
|
margin-left: 1em;
|
|
148
199
|
}
|
|
@@ -180,9 +231,14 @@ export class ConnectedScene extends LitElement {
|
|
|
180
231
|
align-items: center;
|
|
181
232
|
}
|
|
182
233
|
|
|
234
|
+
.cursor-pointer {
|
|
235
|
+
cursor: pointer;
|
|
236
|
+
}
|
|
237
|
+
|
|
183
238
|
.switch-content {
|
|
184
239
|
display: flex;
|
|
185
240
|
align-items: center;
|
|
241
|
+
gap: 0.7rem;
|
|
186
242
|
}
|
|
187
243
|
|
|
188
244
|
.switch-line {
|