@ckb-ccc/connector 0.0.4-alpha.8 → 0.0.5-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/README.md +6 -0
- package/dist/advancedBarrel.d.ts +1 -0
- package/dist/advancedBarrel.d.ts.map +1 -1
- package/dist/advancedBarrel.js +1 -0
- package/dist/assets/chains/ckb.svg.d.ts +2 -0
- package/dist/assets/chains/ckb.svg.d.ts.map +1 -0
- package/dist/assets/chains/ckb.svg.js +2 -0
- package/dist/assets/chains/index.d.ts +1 -0
- package/dist/assets/chains/index.d.ts.map +1 -1
- package/dist/assets/chains/index.js +1 -0
- package/dist/assets/joy-id.svg.d.ts +2 -0
- package/dist/assets/joy-id.svg.d.ts.map +1 -0
- package/dist/assets/joy-id.svg.js +2 -0
- package/dist/assets/metamask.svg.d.ts +2 -0
- package/dist/assets/metamask.svg.d.ts.map +1 -0
- package/dist/assets/metamask.svg.js +2 -0
- package/dist/barrel.d.ts +1 -2
- package/dist/barrel.d.ts.map +1 -1
- package/dist/barrel.js +1 -2
- package/dist/connector/index.d.ts +19 -8
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +162 -59
- package/dist/events/index.d.ts +1 -12
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +2 -15
- package/dist/scenes/connecting.d.ts +2 -1
- package/dist/scenes/connecting.d.ts.map +1 -1
- package/dist/scenes/signers.d.ts +2 -1
- package/dist/scenes/signers.d.ts.map +1 -1
- package/dist/scenes/signers.js +3 -2
- package/dist/scenes/wallets.d.ts +2 -1
- package/dist/scenes/wallets.d.ts.map +1 -1
- package/dist/scenes/wallets.js +44 -9
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist.commonjs/advanced.d.ts +3 -0
- package/dist.commonjs/advanced.d.ts.map +1 -0
- package/dist.commonjs/advanced.js +56 -0
- package/dist.commonjs/advancedBarrel.d.ts +4 -0
- package/dist.commonjs/advancedBarrel.d.ts.map +1 -0
- package/dist.commonjs/advancedBarrel.js +35 -0
- package/dist.commonjs/assets/chains/btc.svg.d.ts +2 -0
- package/dist.commonjs/assets/chains/btc.svg.d.ts.map +1 -0
- package/dist.commonjs/assets/chains/btc.svg.js +7 -0
- package/dist.commonjs/assets/chains/eth.svg.d.ts +2 -0
- package/dist.commonjs/assets/chains/eth.svg.d.ts.map +1 -0
- package/dist.commonjs/assets/chains/eth.svg.js +7 -0
- package/dist.commonjs/assets/chains/index.d.ts +3 -0
- package/dist.commonjs/assets/chains/index.d.ts.map +1 -0
- package/dist.commonjs/assets/chains/index.js +34 -0
- package/dist.commonjs/assets/close.svg.d.ts +2 -0
- package/dist.commonjs/assets/close.svg.d.ts.map +1 -0
- package/dist.commonjs/assets/close.svg.js +7 -0
- package/dist.commonjs/assets/okx.svg.d.ts +2 -0
- package/dist.commonjs/assets/okx.svg.d.ts.map +1 -0
- package/dist.commonjs/assets/okx.svg.js +7 -0
- package/dist.commonjs/assets/retry.svg.d.ts +2 -0
- package/dist.commonjs/assets/retry.svg.d.ts.map +1 -0
- package/dist.commonjs/assets/retry.svg.js +7 -0
- package/dist.commonjs/assets/uni-sat.svg.d.ts +2 -0
- package/dist.commonjs/assets/uni-sat.svg.d.ts.map +1 -0
- package/dist.commonjs/assets/uni-sat.svg.js +7 -0
- package/dist.commonjs/assets/utils.d.ts +2 -0
- package/dist.commonjs/assets/utils.d.ts.map +1 -0
- package/dist.commonjs/assets/utils.js +7 -0
- package/dist.commonjs/barrel.d.ts +4 -0
- package/dist.commonjs/barrel.d.ts.map +1 -0
- package/dist.commonjs/barrel.js +35 -0
- package/dist.commonjs/connector/index.d.ts +33 -0
- package/dist.commonjs/connector/index.d.ts.map +1 -0
- package/dist.commonjs/connector/index.js +452 -0
- package/dist.commonjs/events/index.d.ts +4 -0
- package/dist.commonjs/events/index.d.ts.map +1 -0
- package/dist.commonjs/events/index.js +9 -0
- package/dist.commonjs/index.d.ts +3 -0
- package/dist.commonjs/index.d.ts.map +1 -0
- package/dist.commonjs/index.js +56 -0
- package/dist.commonjs/scenes/connecting.d.ts +10 -0
- package/dist.commonjs/scenes/connecting.d.ts.map +1 -0
- package/dist.commonjs/scenes/connecting.js +27 -0
- package/dist.commonjs/scenes/index.d.ts +4 -0
- package/dist.commonjs/scenes/index.d.ts.map +1 -0
- package/dist.commonjs/scenes/index.js +35 -0
- package/dist.commonjs/scenes/signers.d.ts +11 -0
- package/dist.commonjs/scenes/signers.d.ts.map +1 -0
- package/dist.commonjs/scenes/signers.js +39 -0
- package/dist.commonjs/scenes/wallets.d.ts +8 -0
- package/dist.commonjs/scenes/wallets.d.ts.map +1 -0
- package/dist.commonjs/scenes/wallets.js +30 -0
- package/dist.commonjs/tsconfig.commonjs.tsbuildinfo +1 -0
- package/dist.commonjs/types/index.d.ts +5 -0
- package/dist.commonjs/types/index.d.ts.map +1 -0
- package/dist.commonjs/types/index.js +2 -0
- package/package.json +3 -3
- package/src/advancedBarrel.ts +1 -0
- package/src/assets/chains/ckb.svg.ts +5 -0
- package/src/assets/chains/index.ts +1 -0
- package/src/assets/joy-id.svg.ts +5 -0
- package/src/assets/metamask.svg.ts +5 -0
- package/src/barrel.ts +1 -2
- package/src/connector/index.ts +217 -69
- package/src/events/index.ts +2 -20
- package/src/scenes/connecting.ts +6 -2
- package/src/scenes/signers.ts +9 -4
- package/src/scenes/wallets.ts +69 -22
- package/src/types/index.ts +11 -0
- package/dist/status/index.d.ts +0 -6
- package/dist/status/index.d.ts.map +0 -1
- package/dist/status/index.js +0 -6
- package/src/status/index.ts +0 -5
package/README.md
CHANGED
package/dist/advancedBarrel.d.ts
CHANGED
|
@@ -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"}
|
package/dist/advancedBarrel.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ckb.svg.d.ts","sourceRoot":"","sources":["../../../src/assets/chains/ckb.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,QAEnB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "../utils";
|
|
2
|
+
export const CKB_SVG = encodeSvgToImgSrc('<svg width="668" height="666.66669" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><polygon points="170.265,206.318 223.416,206.318 223.416,93.897 264.161,93.897 170.265,0 " transform="matrix(1.8256046,0,0,1.8256046,-166.4037,144.47964)" /><polygon points="324.79,112.422 284.046,112.422 377.941,206.318 377.941,0 324.79,0 " transform="matrix(1.8256046,0,0,1.8256046,-166.4037,144.47964)" /></svg>');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assets/chains/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assets/chains/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joy-id.svg.d.ts","sourceRoot":"","sources":["../../src/assets/joy-id.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,QAEtB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "./utils";
|
|
2
|
+
export const JOY_ID_SVG = encodeSvgToImgSrc('<svg xmlns="http://www.w3.org/2000/svg" width="420" height="420" viewBox="0 0 420 420" fill="none"><circle cx="210" cy="210" r="210" fill="#333333"/><path d="M271.127 204.419C279.096 204.419 285.555 197.959 285.555 189.991C285.555 182.022 279.096 175.562 271.127 175.562C263.159 175.562 256.699 182.022 256.699 189.991C256.699 197.959 263.159 204.419 271.127 204.419Z" fill="#8CDD00"/><path d="M173.995 175.562C166.773 175.562 160.91 181.425 160.91 188.648C160.91 195.87 166.773 201.733 173.995 201.733C181.218 201.733 187.081 195.87 187.081 188.648C187.064 181.425 181.218 175.562 173.995 175.562Z" fill="#8CDD00"/><path d="M213.43 164.836L198.969 233.586C197.626 240.006 191.878 244.657 185.327 244.657C181.086 244.657 177.139 242.757 174.47 239.465C172.39 236.894 171.342 233.734 171.391 230.491L145.27 237.238C146.383 244.084 149.2 250.618 153.687 256.203C161.434 265.816 172.963 271.335 185.311 271.335C204.407 271.335 221.111 257.775 225.041 239.089L240.665 164.852H213.43V164.836Z" fill="#C1C1C1"/><path d="M335.83 115.983C327.068 105.19 314.065 99 300.161 99H267.981L262.363 125.662H300.161C305.991 125.662 311.445 128.249 315.113 132.786C318.782 137.306 320.207 143.185 319.011 148.884L313.394 175.562H340.645L345.116 154.387C347.965 140.778 344.592 126.775 335.83 115.983Z" fill="#8CDD00"/><path d="M295.216 261.999C291.285 280.669 274.597 294.212 255.518 294.212H226.875L221.258 320.874H255.518C287.126 320.874 314.803 298.421 321.304 267.485L326.021 245.049H298.77L295.216 261.999Z" fill="#8CDD00"/><path d="M98.8061 152.39L93.9258 175.58H121.177L124.894 157.892C128.825 139.223 145.513 125.679 164.592 125.679H192.04L197.657 99.0176H164.592C132.985 99.0012 105.308 121.454 98.8061 152.39Z" fill="#8CDD00"/><path d="M104.998 287.072C101.33 282.552 99.9049 276.673 101.1 270.974L106.079 247.342L77.2555 254.777L74.9956 265.487C72.1296 279.097 75.5196 293.099 84.2813 303.891C93.0429 314.684 106.046 320.874 119.95 320.874H150.935L156.553 294.212H119.95C114.12 294.196 108.666 291.608 104.998 287.072Z" fill="#8CDD00"/></svg>');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metamask.svg.d.ts","sourceRoot":"","sources":["../../src/assets/metamask.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,QAExB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "./utils";
|
|
2
|
+
export const METAMASK_SVG = encodeSvgToImgSrc(`<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 318.6 318.6"><style>.st1,.st6{fill:#e4761b;stroke:#e4761b;stroke-linecap:round;stroke-linejoin:round}.st6{fill:#f6851b;stroke:#f6851b}</style><path fill="#e2761b" stroke="#e2761b" stroke-linecap="round" stroke-linejoin="round" d="m274.1 35.5-99.5 73.9L193 65.8z"/><path d="m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z" class="st1"/><path d="m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z" class="st1"/><path fill="#d7c1b3" stroke="#d7c1b3" stroke-linecap="round" stroke-linejoin="round" d="m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"/><path fill="#233447" stroke="#233447" stroke-linecap="round" stroke-linejoin="round" d="m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"/><path fill="#cd6116" stroke="#cd6116" stroke-linecap="round" stroke-linejoin="round" d="m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"/><path fill="#e4751f" stroke="#e4751f" stroke-linecap="round" stroke-linejoin="round" d="m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"/><path d="m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z" class="st6"/><path fill="#c0ad9e" stroke="#c0ad9e" stroke-linecap="round" stroke-linejoin="round" d="m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"/><path fill="#161616" stroke="#161616" stroke-linecap="round" stroke-linejoin="round" d="m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"/><path fill="#763d16" stroke="#763d16" stroke-linecap="round" stroke-linejoin="round" d="m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"/><path d="m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z" class="st6"/><script xmlns=""/></svg>`);
|
package/dist/barrel.d.ts
CHANGED
package/dist/barrel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
package/dist/barrel.js
CHANGED
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/ccc";
|
|
2
|
-
import { LitElement } from "lit";
|
|
3
|
-
import { ConnectorStatus } from "../status";
|
|
2
|
+
import { LitElement, PropertyValues } from "lit";
|
|
4
3
|
export declare class WebComponentConnector extends LitElement {
|
|
5
4
|
private wallets;
|
|
6
|
-
private
|
|
5
|
+
private resetListeners;
|
|
7
6
|
isOpen: boolean;
|
|
7
|
+
setIsOpen(isOpen: boolean): void;
|
|
8
|
+
client: ccc.Client;
|
|
9
|
+
setClient(client: ccc.Client): void;
|
|
10
|
+
private scene;
|
|
11
|
+
private selectedWallet?;
|
|
12
|
+
private selectedSigner?;
|
|
13
|
+
private walletName?;
|
|
14
|
+
private signerName?;
|
|
8
15
|
wallet?: ccc.Wallet;
|
|
9
16
|
signer?: ccc.SignerInfo;
|
|
10
|
-
|
|
17
|
+
private prepareSigner;
|
|
18
|
+
disconnect(): void;
|
|
19
|
+
private loadConnection;
|
|
20
|
+
private saveConnection;
|
|
11
21
|
connectedCallback(): void;
|
|
12
|
-
|
|
22
|
+
willUpdate(changedProperties: PropertyValues): void;
|
|
23
|
+
private reloadSigners;
|
|
24
|
+
private addSigner;
|
|
13
25
|
render(): import("lit").TemplateResult<1>;
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
private onSignerSelected;
|
|
26
|
+
private closedHandler;
|
|
27
|
+
private signerSelectedHandler;
|
|
17
28
|
static styles: import("lit").CSSResult;
|
|
18
29
|
}
|
|
19
30
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,
|
|
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;AAqB5D,qBACa,qBAAsB,SAAQ,UAAU;IAEnD,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,cAAc,CAAsB;IAGrC,MAAM,EAAE,OAAO,CAAS;IACxB,SAAS,CAAC,MAAM,EAAE,OAAO;IAKzB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAiC;IACnD,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM;IAKnC,OAAO,CAAC,KAAK,CAAiC;IAE9C,OAAO,CAAC,cAAc,CAAC,CAAoB;IAE3C,OAAO,CAAC,cAAc,CAAC,CAAiB;IAGxC,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;IAC/B,OAAO,CAAC,aAAa;IAad,UAAU;IAOjB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,cAAc;IAUtB,iBAAiB,IAAI,IAAI;IAMzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IA0BnD,OAAO,CAAC,aAAa;IAyDrB,OAAO,CAAC,SAAS;IA+BjB,MAAM;IAwDN,OAAO,CAAC,aAAa,CAanB;IAEF,OAAO,CAAC,qBAAqB,CAkB3B;IAEF,MAAM,CAAC,MAAM,0BAiIX;CACH"}
|
package/dist/connector/index.js
CHANGED
|
@@ -8,81 +8,174 @@ import { ccc } from "@ckb-ccc/ccc";
|
|
|
8
8
|
import { LitElement, css, html } from "lit";
|
|
9
9
|
import { customElement, property, state } from "lit/decorators.js";
|
|
10
10
|
import { CLOSE_SVG } from "../assets/close.svg";
|
|
11
|
+
import { JOY_ID_SVG } from "../assets/joy-id.svg";
|
|
11
12
|
import { OKX_SVG } from "../assets/okx.svg";
|
|
12
13
|
import { UNI_SAT_SVG } from "../assets/uni-sat.svg";
|
|
13
|
-
import {
|
|
14
|
+
import { WillUpdateEvent } from "../events";
|
|
14
15
|
import { generateConnectingScene, generateSignersScene, generateWalletsScene, } from "../scenes";
|
|
15
|
-
|
|
16
|
+
var Scene;
|
|
17
|
+
(function (Scene) {
|
|
18
|
+
Scene["SelectingWallets"] = "SelectingWallets";
|
|
19
|
+
Scene["SelectingSigners"] = "SelectingSigners";
|
|
20
|
+
Scene["Connecting"] = "Connecting";
|
|
21
|
+
Scene["Connected"] = "Connected";
|
|
22
|
+
})(Scene || (Scene = {}));
|
|
16
23
|
let WebComponentConnector = class WebComponentConnector extends LitElement {
|
|
17
24
|
constructor() {
|
|
18
25
|
super(...arguments);
|
|
19
26
|
this.wallets = [];
|
|
20
|
-
this.
|
|
27
|
+
this.resetListeners = [];
|
|
21
28
|
this.isOpen = false;
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
this.client = new ccc.ClientPublicTestnet();
|
|
30
|
+
this.scene = Scene.SelectingWallets;
|
|
31
|
+
this.closedHandler = () => {
|
|
32
|
+
if ([
|
|
33
|
+
Scene.SelectingSigners,
|
|
34
|
+
Scene.SelectingWallets,
|
|
35
|
+
Scene.Connecting,
|
|
36
|
+
].includes(this.scene)) {
|
|
37
|
+
this.scene = Scene.SelectingWallets;
|
|
38
|
+
this.selectedSigner = undefined;
|
|
39
|
+
this.selectedWallet = undefined;
|
|
40
|
+
}
|
|
41
|
+
this.isOpen = false;
|
|
29
42
|
};
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
43
|
+
this.signerSelectedHandler = (wallet, signer) => {
|
|
44
|
+
this.scene = Scene.Connecting;
|
|
45
|
+
this.selectedWallet = wallet;
|
|
46
|
+
this.selectedSigner = signer;
|
|
33
47
|
(async () => {
|
|
34
48
|
await signer.signer.connect();
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
if (!(await signer.signer.isConnected())) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.scene = Scene.Connected;
|
|
53
|
+
this.walletName = wallet.name;
|
|
54
|
+
this.signerName = signer.name;
|
|
55
|
+
this.saveConnection();
|
|
56
|
+
this.closedHandler();
|
|
37
57
|
})();
|
|
38
58
|
};
|
|
39
59
|
}
|
|
60
|
+
setIsOpen(isOpen) {
|
|
61
|
+
this.isOpen = isOpen;
|
|
62
|
+
}
|
|
63
|
+
setClient(client) {
|
|
64
|
+
this.client = client;
|
|
65
|
+
}
|
|
66
|
+
prepareSigner() {
|
|
67
|
+
(async () => {
|
|
68
|
+
if (this.signer && (await this.signer.signer.isConnected())) {
|
|
69
|
+
this.scene = Scene.Connected;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this.wallet = undefined;
|
|
73
|
+
this.signer = undefined;
|
|
74
|
+
this.scene = Scene.SelectingWallets;
|
|
75
|
+
})();
|
|
76
|
+
}
|
|
77
|
+
disconnect() {
|
|
78
|
+
this.signer?.signer?.disconnect();
|
|
79
|
+
this.walletName = undefined;
|
|
80
|
+
this.signerName = undefined;
|
|
81
|
+
this.saveConnection();
|
|
82
|
+
}
|
|
83
|
+
loadConnection() {
|
|
84
|
+
const { signerName, walletName, } = JSON.parse(window.localStorage.getItem("ccc-connection-info") ?? "{}");
|
|
85
|
+
this.signerName = signerName;
|
|
86
|
+
this.walletName = walletName;
|
|
87
|
+
}
|
|
88
|
+
saveConnection() {
|
|
89
|
+
window.localStorage.setItem("ccc-connection-info", JSON.stringify({
|
|
90
|
+
signerName: this.signerName,
|
|
91
|
+
walletName: this.walletName,
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
40
94
|
connectedCallback() {
|
|
41
95
|
super.connectedCallback();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
96
|
+
this.loadConnection();
|
|
97
|
+
this.reloadSigners();
|
|
98
|
+
}
|
|
99
|
+
willUpdate(changedProperties) {
|
|
100
|
+
if (changedProperties.has("client")) {
|
|
101
|
+
this.reloadSigners();
|
|
46
102
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.
|
|
103
|
+
if (changedProperties.has("walletName") ||
|
|
104
|
+
changedProperties.has("wallets")) {
|
|
105
|
+
this.wallet = this.wallets.find(({ name }) => name === this.walletName);
|
|
106
|
+
}
|
|
107
|
+
if (changedProperties.has("signerName") ||
|
|
108
|
+
changedProperties.has("wallet")) {
|
|
109
|
+
const wallet = this.wallets.find(({ name }) => name === this.walletName);
|
|
110
|
+
this.signer = wallet?.signers.find(({ name }) => name === this.signerName);
|
|
50
111
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
112
|
+
if (changedProperties.has("signer")) {
|
|
113
|
+
this.prepareSigner();
|
|
114
|
+
}
|
|
115
|
+
this.dispatchEvent(new WillUpdateEvent());
|
|
116
|
+
}
|
|
117
|
+
reloadSigners() {
|
|
118
|
+
this.wallets = [];
|
|
119
|
+
(async () => {
|
|
120
|
+
if (!this.signer) {
|
|
54
121
|
return;
|
|
55
122
|
}
|
|
56
|
-
this.
|
|
57
|
-
|
|
123
|
+
this.signer = {
|
|
124
|
+
...this.signer,
|
|
125
|
+
signer: await this.signer.signer.replaceClient(this.client),
|
|
126
|
+
};
|
|
127
|
+
})();
|
|
128
|
+
this.resetListeners.forEach((listener) => listener());
|
|
129
|
+
this.resetListeners = [];
|
|
130
|
+
ccc.JoyId.getJoyIdSigners(this.client).forEach(({ signer, type, name }) => {
|
|
131
|
+
this.addSigner("JoyID", name, JOY_ID_SVG, type, signer);
|
|
58
132
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (wallet) {
|
|
63
|
-
wallet.signers.push({ type, signer });
|
|
64
|
-
this.wallets = [...this.wallets];
|
|
133
|
+
const uniSatSigner = ccc.UniSat.getUniSatSigner(this.client);
|
|
134
|
+
if (uniSatSigner) {
|
|
135
|
+
this.addSigner("UniSat", "BTC", UNI_SAT_SVG, ccc.SignerType.BTC, uniSatSigner);
|
|
65
136
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
{
|
|
70
|
-
name,
|
|
71
|
-
icon,
|
|
72
|
-
signers: [{ type, signer }],
|
|
73
|
-
},
|
|
74
|
-
];
|
|
137
|
+
const okxBitcoinSigner = ccc.Okx.getOKXBitcoinSigner(this.client);
|
|
138
|
+
if (okxBitcoinSigner) {
|
|
139
|
+
this.addSigner("OKX Wallet", "BTC", OKX_SVG, ccc.SignerType.BTC, okxBitcoinSigner);
|
|
75
140
|
}
|
|
141
|
+
const eip6963Manager = new ccc.Eip6963.SignerFactory(this.client);
|
|
142
|
+
this.resetListeners.push(eip6963Manager.subscribeSigners((signer) => {
|
|
143
|
+
this.addSigner(`${signer.detail.info.name}`, "EVM", signer.detail.info.icon, ccc.SignerType.EVM, signer);
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
addSigner(walletName, signerName, icon, type, signer) {
|
|
147
|
+
let updated = false;
|
|
148
|
+
const wallets = this.wallets.map((wallet) => {
|
|
149
|
+
if (wallet.name !== walletName) {
|
|
150
|
+
return wallet;
|
|
151
|
+
}
|
|
152
|
+
updated = true;
|
|
153
|
+
return {
|
|
154
|
+
...wallet,
|
|
155
|
+
signers: [...wallet.signers, { type, name: signerName, signer }],
|
|
156
|
+
};
|
|
157
|
+
});
|
|
158
|
+
if (!updated) {
|
|
159
|
+
wallets.push({
|
|
160
|
+
name: walletName,
|
|
161
|
+
icon,
|
|
162
|
+
signers: [{ type, name: signerName, signer }],
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
this.wallets = wallets;
|
|
76
166
|
}
|
|
77
167
|
render() {
|
|
78
168
|
const [title, body] = (() => {
|
|
79
|
-
if (!this.
|
|
80
|
-
return generateWalletsScene(this.wallets,
|
|
169
|
+
if (this.scene === Scene.SelectingWallets || !this.selectedWallet) {
|
|
170
|
+
return generateWalletsScene(this.wallets, (wallet) => {
|
|
171
|
+
this.selectedWallet = wallet;
|
|
172
|
+
this.scene = Scene.SelectingSigners;
|
|
173
|
+
}, this.signerSelectedHandler);
|
|
81
174
|
}
|
|
82
|
-
if (!this.
|
|
83
|
-
return generateSignersScene(this.
|
|
175
|
+
if (this.scene === Scene.SelectingSigners || !this.selectedSigner) {
|
|
176
|
+
return generateSignersScene(this.selectedWallet, this.signerSelectedHandler);
|
|
84
177
|
}
|
|
85
|
-
return generateConnectingScene(this.
|
|
178
|
+
return generateConnectingScene(this.selectedWallet, this.selectedSigner, this.signerSelectedHandler);
|
|
86
179
|
})();
|
|
87
180
|
return html `<style>
|
|
88
181
|
:host {
|
|
@@ -92,7 +185,6 @@ let WebComponentConnector = class WebComponentConnector extends LitElement {
|
|
|
92
185
|
--btn-primary: #f8f8f8;
|
|
93
186
|
--btn-primary-hover: #efeeee;
|
|
94
187
|
--btn-secondary: #ddd;
|
|
95
|
-
--btn-icon: #e9e4de;
|
|
96
188
|
color: #1e1e1e;
|
|
97
189
|
--tip-color: #666;
|
|
98
190
|
}
|
|
@@ -101,7 +193,7 @@ let WebComponentConnector = class WebComponentConnector extends LitElement {
|
|
|
101
193
|
class="background"
|
|
102
194
|
@click=${(event) => {
|
|
103
195
|
if (event.target === event.currentTarget) {
|
|
104
|
-
this.
|
|
196
|
+
this.closedHandler();
|
|
105
197
|
}
|
|
106
198
|
}}
|
|
107
199
|
>
|
|
@@ -109,7 +201,7 @@ let WebComponentConnector = class WebComponentConnector extends LitElement {
|
|
|
109
201
|
<div class="header text-bold fs-big">
|
|
110
202
|
<div class="back"></div>
|
|
111
203
|
${title}
|
|
112
|
-
<img class="close" src=${CLOSE_SVG} @click=${this.
|
|
204
|
+
<img class="close" src=${CLOSE_SVG} @click=${this.closedHandler} />
|
|
113
205
|
</div>
|
|
114
206
|
<div class="body">${body}</div>
|
|
115
207
|
</div>
|
|
@@ -213,8 +305,6 @@ WebComponentConnector.styles = css `
|
|
|
213
305
|
width: 2rem;
|
|
214
306
|
height: 2rem;
|
|
215
307
|
margin-right: 1rem;
|
|
216
|
-
border-radius: 0.4rem;
|
|
217
|
-
background: var(--btn-icon);
|
|
218
308
|
}
|
|
219
309
|
|
|
220
310
|
.btn-primary:hover {
|
|
@@ -240,8 +330,6 @@ WebComponentConnector.styles = css `
|
|
|
240
330
|
width: 4rem;
|
|
241
331
|
height: 4rem;
|
|
242
332
|
margin-bottom: 0.5rem;
|
|
243
|
-
border-radius: 0.8rem;
|
|
244
|
-
background: var(--btn-icon);
|
|
245
333
|
}
|
|
246
334
|
|
|
247
335
|
.connecting-wallet-icon {
|
|
@@ -254,17 +342,32 @@ __decorate([
|
|
|
254
342
|
state()
|
|
255
343
|
], WebComponentConnector.prototype, "wallets", void 0);
|
|
256
344
|
__decorate([
|
|
257
|
-
|
|
345
|
+
state()
|
|
258
346
|
], WebComponentConnector.prototype, "isOpen", void 0);
|
|
259
347
|
__decorate([
|
|
260
348
|
property()
|
|
349
|
+
], WebComponentConnector.prototype, "client", void 0);
|
|
350
|
+
__decorate([
|
|
351
|
+
state()
|
|
352
|
+
], WebComponentConnector.prototype, "scene", void 0);
|
|
353
|
+
__decorate([
|
|
354
|
+
state()
|
|
355
|
+
], WebComponentConnector.prototype, "selectedWallet", void 0);
|
|
356
|
+
__decorate([
|
|
357
|
+
state()
|
|
358
|
+
], WebComponentConnector.prototype, "selectedSigner", void 0);
|
|
359
|
+
__decorate([
|
|
360
|
+
state()
|
|
361
|
+
], WebComponentConnector.prototype, "walletName", void 0);
|
|
362
|
+
__decorate([
|
|
363
|
+
state()
|
|
364
|
+
], WebComponentConnector.prototype, "signerName", void 0);
|
|
365
|
+
__decorate([
|
|
366
|
+
state()
|
|
261
367
|
], WebComponentConnector.prototype, "wallet", void 0);
|
|
262
368
|
__decorate([
|
|
263
|
-
|
|
369
|
+
state()
|
|
264
370
|
], WebComponentConnector.prototype, "signer", void 0);
|
|
265
|
-
__decorate([
|
|
266
|
-
property()
|
|
267
|
-
], WebComponentConnector.prototype, "status", void 0);
|
|
268
371
|
WebComponentConnector = __decorate([
|
|
269
372
|
customElement("ccc-connector")
|
|
270
373
|
], WebComponentConnector);
|
package/dist/events/index.d.ts
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { ConnectorStatus } from "../status";
|
|
3
|
-
export declare class SignerChangedEvent extends Event {
|
|
4
|
-
readonly wallet?: ccc.Wallet | undefined;
|
|
5
|
-
readonly signerInfo?: ccc.SignerInfo | undefined;
|
|
6
|
-
constructor(wallet?: ccc.Wallet | undefined, signerInfo?: ccc.SignerInfo | undefined);
|
|
7
|
-
}
|
|
8
|
-
export declare class StatusChangedEvent extends Event {
|
|
9
|
-
readonly status: ConnectorStatus;
|
|
10
|
-
constructor(status: ConnectorStatus);
|
|
11
|
-
}
|
|
12
|
-
export declare class CloseEvent extends Event {
|
|
1
|
+
export declare class WillUpdateEvent extends Event {
|
|
13
2
|
constructor();
|
|
14
3
|
}
|
|
15
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;;CAIzC"}
|
package/dist/events/index.js
CHANGED
|
@@ -1,18 +1,5 @@
|
|
|
1
|
-
export class
|
|
2
|
-
constructor(wallet, signerInfo) {
|
|
3
|
-
super("signerChanged", { composed: true });
|
|
4
|
-
this.wallet = wallet;
|
|
5
|
-
this.signerInfo = signerInfo;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
export class StatusChangedEvent extends Event {
|
|
9
|
-
constructor(status) {
|
|
10
|
-
super("statusChanged", { composed: true });
|
|
11
|
-
this.status = status;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export class CloseEvent extends Event {
|
|
1
|
+
export class WillUpdateEvent extends Event {
|
|
15
2
|
constructor() {
|
|
16
|
-
super("
|
|
3
|
+
super("willUpdate", { composed: true });
|
|
17
4
|
}
|
|
18
5
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/ccc";
|
|
2
|
-
|
|
2
|
+
import { WalletWithSigners } from "../types";
|
|
3
|
+
export declare function generateConnectingScene(wallet: WalletWithSigners, signer: ccc.SignerInfo, onSignerSelected: (wallet: WalletWithSigners, signer: ccc.SignerInfo) => unknown): (string | import("lit").TemplateResult<1>)[];
|
|
3
4
|
//# 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;
|
|
1
|
+
{"version":3,"file":"connecting.d.ts","sourceRoot":"","sources":["../../src/scenes/connecting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,GAAG,CAAC,UAAU,EACtB,gBAAgB,EAAE,CAChB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,GAAG,CAAC,UAAU,KACnB,OAAO,gDAqBb"}
|
package/dist/scenes/signers.d.ts
CHANGED
|
@@ -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:
|
|
4
|
+
export declare function generateSignersScene(wallet: WalletWithSigners, onSignerSelected: (wallet: WalletWithSigners, 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;
|
|
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,CAM7D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,EAAE,CAChB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,GAAG,CAAC,UAAU,KACnB,OAAO,gDAyBb"}
|
package/dist/scenes/signers.js
CHANGED
|
@@ -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 { BTC_SVG, ETH_SVG } from "../assets/chains";
|
|
4
|
+
import { BTC_SVG, CKB_SVG, ETH_SVG } from "../assets/chains";
|
|
5
5
|
export function signerTypeToIcon(type) {
|
|
6
6
|
return {
|
|
7
7
|
[ccc.SignerType.BTC]: BTC_SVG,
|
|
8
8
|
[ccc.SignerType.EVM]: ETH_SVG,
|
|
9
|
+
[ccc.SignerType.CKB]: CKB_SVG,
|
|
9
10
|
}[type];
|
|
10
11
|
}
|
|
11
12
|
export function generateSignersScene(wallet, onSignerSelected) {
|
|
@@ -22,7 +23,7 @@ export function generateSignersScene(wallet, onSignerSelected) {
|
|
|
22
23
|
}}
|
|
23
24
|
>
|
|
24
25
|
<img src=${signerTypeToIcon(signer.type)} alt=${signer.type} />
|
|
25
|
-
${signer.
|
|
26
|
+
${signer.name}
|
|
26
27
|
</button>
|
|
27
28
|
`)}
|
|
28
29
|
`,
|
package/dist/scenes/wallets.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/ccc";
|
|
2
|
-
|
|
2
|
+
import { WalletWithSigners } from "../types";
|
|
3
|
+
export declare function generateWalletsScene(wallets: WalletWithSigners[], onWalletSelected: (wallet: WalletWithSigners) => unknown, onSignerSelected: (wallet: WalletWithSigners, signer: ccc.SignerInfo) => unknown): (string | import("lit").TemplateResult<1>)[];
|
|
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;
|
|
1
|
+
{"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/scenes/wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAMnC,OAAO,EAAc,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEzD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,EAAE,EAC5B,gBAAgB,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,EACxD,gBAAgB,EAAE,CAChB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,GAAG,CAAC,UAAU,KACnB,OAAO,gDAgEb"}
|
package/dist/scenes/wallets.js
CHANGED
|
@@ -1,12 +1,45 @@
|
|
|
1
1
|
import { html } from "lit";
|
|
2
2
|
import { repeat } from "lit/directives/repeat.js";
|
|
3
|
+
import { METAMASK_SVG } from "../assets/metamask.svg";
|
|
4
|
+
import { OKX_SVG } from "../assets/okx.svg";
|
|
5
|
+
import { UNI_SAT_SVG } from "../assets/uni-sat.svg";
|
|
3
6
|
export function generateWalletsScene(wallets, onWalletSelected, onSignerSelected) {
|
|
7
|
+
const recommendedWallets = [
|
|
8
|
+
{
|
|
9
|
+
name: "MetaMask",
|
|
10
|
+
icon: METAMASK_SVG,
|
|
11
|
+
downloadLink: `https://metamask.app.link/dapp/${window.location.href}`,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: "OKX Wallet",
|
|
15
|
+
icon: OKX_SVG,
|
|
16
|
+
downloadLink: "https://www.okx.com/zh-hans/download",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: "UniSat",
|
|
20
|
+
icon: UNI_SAT_SVG,
|
|
21
|
+
downloadLink: "https://unisat.io/",
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
const missingWallets = recommendedWallets.filter((recommendedWallet) => !wallets.some((wallet) => wallet.name === recommendedWallet.name));
|
|
25
|
+
const additionalButtons = missingWallets.map((wallet) => html `
|
|
26
|
+
<button
|
|
27
|
+
class="btn-primary mb-1"
|
|
28
|
+
@click=${() => {
|
|
29
|
+
window.open(wallet.downloadLink, "_blank");
|
|
30
|
+
}}
|
|
31
|
+
>
|
|
32
|
+
<img src=${wallet.icon} alt=${wallet.name} />
|
|
33
|
+
${wallet.name}
|
|
34
|
+
</button>
|
|
35
|
+
`);
|
|
4
36
|
return [
|
|
5
37
|
"Connect Wallet",
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
38
|
+
html `
|
|
39
|
+
${repeat(wallets, (wallet) => wallet.name, (wallet) => html `
|
|
40
|
+
<button
|
|
41
|
+
class="btn-primary mb-1"
|
|
42
|
+
@click=${async () => {
|
|
10
43
|
if (wallet.signers.length === 1) {
|
|
11
44
|
onSignerSelected(wallet, wallet.signers[0]);
|
|
12
45
|
}
|
|
@@ -14,10 +47,12 @@ export function generateWalletsScene(wallets, onWalletSelected, onSignerSelected
|
|
|
14
47
|
onWalletSelected(wallet);
|
|
15
48
|
}
|
|
16
49
|
}}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
50
|
+
>
|
|
51
|
+
<img src=${wallet.icon} alt=${wallet.name} />
|
|
52
|
+
${wallet.name}
|
|
53
|
+
</button>
|
|
54
|
+
`)}
|
|
55
|
+
${additionalButtons}
|
|
56
|
+
`,
|
|
22
57
|
];
|
|
23
58
|
}
|