@ckb-ccc/connector 0.0.3-alpha.1 → 0.0.4-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advancedBarrel.d.ts +1 -0
- package/dist/advancedBarrel.d.ts.map +1 -1
- package/dist/advancedBarrel.js +1 -0
- package/dist/assets/chains/btc.svg.d.ts +2 -0
- package/dist/assets/chains/btc.svg.d.ts.map +1 -0
- package/dist/assets/chains/btc.svg.js +2 -0
- package/dist/assets/chains/eth.svg.d.ts +2 -0
- package/dist/assets/chains/eth.svg.d.ts.map +1 -0
- package/dist/assets/chains/eth.svg.js +2 -0
- package/dist/assets/chains/index.d.ts +3 -0
- package/dist/assets/chains/index.d.ts.map +1 -0
- package/dist/assets/chains/index.js +2 -0
- package/dist/assets/close.svg.d.ts +2 -0
- package/dist/assets/close.svg.d.ts.map +1 -0
- package/dist/assets/close.svg.js +2 -0
- package/dist/assets/okx.svg.d.ts +2 -0
- package/dist/assets/okx.svg.d.ts.map +1 -0
- package/dist/assets/okx.svg.js +2 -0
- package/dist/assets/retry.svg.d.ts +2 -0
- package/dist/assets/retry.svg.d.ts.map +1 -0
- package/dist/assets/retry.svg.js +2 -0
- package/dist/assets/uni-sat.svg.d.ts +2 -0
- package/dist/assets/uni-sat.svg.d.ts.map +1 -0
- package/dist/assets/uni-sat.svg.js +2 -0
- package/dist/assets/utils.d.ts +2 -0
- package/dist/assets/utils.d.ts.map +1 -0
- package/dist/assets/utils.js +3 -0
- package/dist/barrel.d.ts +1 -1
- package/dist/barrel.d.ts.map +1 -1
- package/dist/barrel.js +1 -1
- package/dist/connector/index.d.ts +19 -0
- package/dist/connector/index.d.ts.map +1 -0
- package/dist/connector/index.js +271 -0
- package/dist/events/index.d.ts +15 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +18 -0
- package/dist/scenes/connecting.d.ts +3 -0
- package/dist/scenes/connecting.d.ts.map +1 -0
- package/dist/scenes/connecting.js +23 -0
- package/dist/scenes/index.d.ts +4 -0
- package/dist/scenes/index.d.ts.map +1 -0
- package/dist/scenes/index.js +3 -0
- package/dist/scenes/signers.d.ts +4 -0
- package/dist/scenes/signers.d.ts.map +1 -0
- package/dist/scenes/signers.js +30 -0
- package/dist/scenes/wallets.d.ts +3 -0
- package/dist/scenes/wallets.d.ts.map +1 -0
- package/dist/scenes/wallets.js +23 -0
- package/dist/status/index.d.ts +6 -0
- package/dist/status/index.d.ts.map +1 -0
- package/dist/status/index.js +6 -0
- package/package.json +3 -3
- package/src/advancedBarrel.ts +1 -0
- package/src/assets/chains/btc.svg.ts +5 -0
- package/src/assets/chains/eth.svg.ts +5 -0
- package/src/assets/chains/index.ts +2 -0
- package/src/assets/close.svg.ts +5 -0
- package/src/assets/okx.svg.ts +5 -0
- package/src/assets/retry.svg.ts +5 -0
- package/src/assets/uni-sat.svg.ts +5 -0
- package/src/assets/utils.ts +3 -0
- package/src/barrel.ts +1 -1
- package/src/connector/index.ts +292 -0
- package/src/events/index.ts +23 -0
- package/src/scenes/connecting.ts +29 -0
- package/src/scenes/index.ts +3 -0
- package/src/scenes/signers.ts +40 -0
- package/src/scenes/wallets.ts +32 -0
- package/src/status/index.ts +5 -0
- package/dist/connector.d.ts +0 -9
- package/dist/connector.d.ts.map +0 -1
- package/dist/connector.js +0 -129
- package/dist/events.d.ts +0 -9
- package/dist/events.d.ts.map +0 -1
- package/dist/events.js +0 -11
- package/dist/signers.d.ts +0 -13
- package/dist/signers.d.ts.map +0 -1
- package/dist/signers.js +0 -13
- package/src/connector.ts +0 -123
- package/src/events.ts +0 -13
- package/src/signers.ts +0 -15
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"}
|
|
1
|
+
{"version":3,"file":"advancedBarrel.d.ts","sourceRoot":"","sources":["../src/advancedBarrel.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC"}
|
package/dist/advancedBarrel.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc.svg.d.ts","sourceRoot":"","sources":["../../../src/assets/chains/btc.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,QAEnB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "../utils";
|
|
2
|
+
export const BTC_SVG = encodeSvgToImgSrc('<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" height="64" width="64" version="1.1"><link xmlns="" type="text/css" rel="stylesheet" id="dark-mode-custom-link"/><link xmlns="" type="text/css" rel="stylesheet" id="dark-mode-general-link"/><style xmlns="" lang="en" type="text/css" id="dark-mode-custom-style"/><style xmlns="" lang="en" type="text/css" id="dark-mode-native-style"/><style xmlns="" lang="en" type="text/css" id="dark-mode-native-sheet"/><script xmlns=""/><g transform="translate(0.00630876,-0.00301984)"><path fill="#f7931a" d="m63.033,39.744c-4.274,17.143-21.637,27.576-38.782,23.301-17.138-4.274-27.571-21.638-23.295-38.78,4.272-17.145,21.635-27.579,38.775-23.305,17.144,4.274,27.576,21.64,23.302,38.784z"/><path fill="#FFF" d="m46.103,27.444c0.637-4.258-2.605-6.547-7.038-8.074l1.438-5.768-3.511-0.875-1.4,5.616c-0.923-0.23-1.871-0.447-2.813-0.662l1.41-5.653-3.509-0.875-1.439,5.766c-0.764-0.174-1.514-0.346-2.242-0.527l0.004-0.018-4.842-1.209-0.934,3.75s2.605,0.597,2.55,0.634c1.422,0.355,1.679,1.296,1.636,2.042l-1.638,6.571c0.098,0.025,0.225,0.061,0.365,0.117-0.117-0.029-0.242-0.061-0.371-0.092l-2.296,9.205c-0.174,0.432-0.615,1.08-1.609,0.834,0.035,0.051-2.552-0.637-2.552-0.637l-1.743,4.019,4.569,1.139c0.85,0.213,1.683,0.436,2.503,0.646l-1.453,5.834,3.507,0.875,1.439-5.772c0.958,0.26,1.888,0.5,2.798,0.726l-1.434,5.745,3.511,0.875,1.453-5.823c5.987,1.133,10.489,0.676,12.384-4.739,1.527-4.36-0.076-6.875-3.226-8.515,2.294-0.529,4.022-2.038,4.483-5.155zm-8.022,11.249c-1.085,4.36-8.426,2.003-10.806,1.412l1.928-7.729c2.38,0.594,10.012,1.77,8.878,6.317zm1.086-11.312c-0.99,3.966-7.1,1.951-9.082,1.457l1.748-7.01c1.982,0.494,8.365,1.416,7.334,5.553z"/></g><script xmlns=""/></svg>');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eth.svg.d.ts","sourceRoot":"","sources":["../../../src/assets/chains/eth.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,QAEnB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "../utils";
|
|
2
|
+
export const ETH_SVG = encodeSvgToImgSrc('<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_46_558)"><circle cx="16" cy="16" r="16" fill="#627EEA"/><path d="M15.9957 20.4203L9.14282 16.3876L15.9957 5.14258V20.4203Z" fill="white"/><path d="M15.9957 26.8573L9.30029 17.396L15.9957 21.3511V26.8573Z" fill="white"/><path d="M16.2319 20.4203L23.0849 16.3876L16.2319 5.14258V20.4203Z" fill="#C1CCF7"/><path d="M16.3107 26.8573L23.0848 17.396L16.3107 21.3511V26.8573Z" fill="#C1CCF7"/></g><defs><clipPath id="clip0_46_558"><rect width="32" height="32" fill="white"/></clipPath></defs></svg>');
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close.svg.d.ts","sourceRoot":"","sources":["../../src/assets/close.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,QAErB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "./utils";
|
|
2
|
+
export const CLOSE_SVG = encodeSvgToImgSrc('<svg width="12" height="12" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"><path 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"/></svg>');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"okx.svg.d.ts","sourceRoot":"","sources":["../../src/assets/okx.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,QAEnB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "./utils";
|
|
2
|
+
export const OKX_SVG = encodeSvgToImgSrc('<svg width="1000" height="1000" viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="1000" height="1000" fill="black"/><path fill-rule="evenodd" clip-rule="evenodd" d="M393.949 218.518H231.049C224.129 218.518 218.519 224.128 218.519 231.048V393.948C218.519 400.869 224.129 406.479 231.049 406.479H393.949C400.87 406.479 406.48 400.869 406.48 393.948V231.048C406.48 224.128 400.87 218.518 393.949 218.518ZM581.992 406.479H419.092C412.172 406.479 406.561 412.09 406.561 419.01V581.91C406.561 588.831 412.172 594.441 419.092 594.441H581.992C588.913 594.441 594.523 588.831 594.523 581.91V419.01C594.523 412.09 588.913 406.479 581.992 406.479ZM606.974 218.518H769.874C776.794 218.518 782.405 224.128 782.405 231.048V393.948C782.405 400.869 776.794 406.479 769.874 406.479H606.974C600.053 406.479 594.443 400.869 594.443 393.948V231.048C594.443 224.128 600.053 218.518 606.974 218.518ZM393.95 594.442H231.049C224.129 594.442 218.519 600.052 218.519 606.973V769.873C218.519 776.793 224.129 782.404 231.049 782.404H393.95C400.87 782.404 406.48 776.793 406.48 769.873V606.973C406.48 600.052 400.87 594.442 393.95 594.442ZM606.974 594.442H769.874C776.794 594.442 782.405 600.052 782.405 606.973V769.873C782.405 776.793 776.794 782.404 769.874 782.404H606.974C600.053 782.404 594.443 776.793 594.443 769.873V606.973C594.443 600.052 600.053 594.442 606.974 594.442Z" fill="white"/></svg>');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.svg.d.ts","sourceRoot":"","sources":["../../src/assets/retry.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,QAErB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "./utils";
|
|
2
|
+
export const RETRY_SVG = encodeSvgToImgSrc('<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path 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" fill="#1E1E1E"/></svg>');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uni-sat.svg.d.ts","sourceRoot":"","sources":["../../src/assets/uni-sat.svg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAEvB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { encodeSvgToImgSrc } from "./utils";
|
|
2
|
+
export const UNI_SAT_SVG = encodeSvgToImgSrc('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 115.77 147.7" xmlns:v="https://vecta.io/nano"><defs><linearGradient id="A" x1="106.985" y1="30.78" x2="13.053" y2="72.524" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#201c1b"/><stop offset=".36" stop-color="#77390d"/><stop offset=".67" stop-color="#ea8101"/><stop offset="1" stop-color="#f4b852"/></linearGradient><linearGradient id="B" x1="11.381" y1="118.167" x2="120.232" y2="85.771" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1f1d1c"/><stop offset=".37" stop-color="#77390d"/><stop offset=".67" stop-color="#ea8101"/><stop offset="1" stop-color="#f4fb52"/></linearGradient><radialGradient id="C" cx="53.01" cy="45.84" fx="53.01" fy="45.84" r="11.13" gradientTransform="translate(0 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f4b852"/><stop offset=".33" stop-color="#ea8101"/><stop offset=".64" stop-color="#77390d"/><stop offset="1" stop-color="#211c1d"/></radialGradient></defs><path d="M81.66 13.29l30.31 30.02c2.58 2.55 3.85 5.13 3.81 7.73s-1.15 4.97-3.32 7.12c-2.27 2.25-4.72 3.39-7.34 3.44-2.62.04-5.22-1.22-7.8-3.77l-31-30.7c-3.52-3.49-6.92-5.96-10.19-7.41s-6.71-1.68-10.31-.68c-3.61.99-7.48 3.54-11.63 7.64-5.72 5.67-8.45 10.99-8.17 15.96s3.12 10.13 8.51 15.46l31.25 30.96c2.61 2.58 3.89 5.16 3.85 7.72-.04 2.57-1.16 4.94-3.37 7.13-2.2 2.18-4.63 3.32-7.27 3.41s-5.27-1.16-7.87-3.74L20.81 73.56c-4.93-4.88-8.49-9.5-10.68-13.86s-3.01-9.29-2.44-14.79c.51-4.71 2.02-9.27 4.54-13.69 2.51-4.42 6.11-8.94 10.78-13.57 5.56-5.51 10.87-9.73 15.93-12.67C43.99 2.04 48.88.41 53.6.07c4.73-.34 9.39.6 14 2.82s9.29 5.68 14.05 10.4z" fill="url(#A)"/><path d="M34.11 134.42L3.81 104.4C1.23 101.84-.04 99.27 0 96.67s1.15-4.97 3.32-7.12c2.27-2.25 4.72-3.39 7.34-3.44 2.62-.04 5.22 1.21 7.8 3.77l30.99 30.7c3.53 3.49 6.92 5.96 10.19 7.41s6.71 1.67 10.32.68 7.48-3.54 11.63-7.65c5.72-5.67 8.45-10.99 8.17-15.96s-3.12-10.13-8.51-15.47L64.6 73.24c-2.61-2.58-3.89-5.16-3.85-7.72.04-2.57 1.16-4.94 3.37-7.13 2.2-2.18 4.63-3.32 7.27-3.41s5.27 1.16 7.87 3.74l15.7 15.41c4.93 4.88 8.49 9.5 10.68 13.86s3.01 9.29 2.44 14.79c-.51 4.71-2.02 9.27-4.54 13.69-2.51 4.42-6.11 8.94-10.78 13.57-5.56 5.51-10.87 9.73-15.93 12.67s-9.95 4.58-14.68 4.92-9.39-.6-14-2.82-9.29-5.68-14.05-10.4z" fill="url(#B)"/><circle cx="53.01" cy="45.83" r="11.13" fill="url(#C)"/></svg>');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/assets/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,UAE5C"}
|
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,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
package/dist/barrel.js
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ccc } from "@ckb-ccc/ccc";
|
|
2
|
+
import { LitElement } from "lit";
|
|
3
|
+
import { ConnectorStatus } from "../status";
|
|
4
|
+
export declare class WebComponentConnector extends LitElement {
|
|
5
|
+
private wallets;
|
|
6
|
+
private existedEip6963;
|
|
7
|
+
isOpen: boolean;
|
|
8
|
+
wallet?: ccc.Wallet;
|
|
9
|
+
signer?: ccc.SignerInfo;
|
|
10
|
+
status: ConnectorStatus;
|
|
11
|
+
connectedCallback(): void;
|
|
12
|
+
addSigner(name: string, icon: string, type: ccc.SignerType, signer: ccc.Signer): void;
|
|
13
|
+
render(): import("lit").TemplateResult<1>;
|
|
14
|
+
private onClose;
|
|
15
|
+
private onWalletSelected;
|
|
16
|
+
private onSignerSelected;
|
|
17
|
+
static styles: import("lit").CSSResult;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,EAAa,MAAM,KAAK,CAAC;AAW5C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,qBACa,qBAAsB,SAAQ,UAAU;IAEnD,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAgB;IAG/B,MAAM,EAAE,OAAO,CAAS;IAGxB,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAExB,MAAM,EAAE,eAAe,CAAmC;IAEjE,iBAAiB,IAAI,IAAI;IAkCzB,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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { ccc } from "@ckb-ccc/ccc";
|
|
8
|
+
import { LitElement, css, html } from "lit";
|
|
9
|
+
import { customElement, property, state } from "lit/decorators.js";
|
|
10
|
+
import { CLOSE_SVG } from "../assets/close.svg";
|
|
11
|
+
import { OKX_SVG } from "../assets/okx.svg";
|
|
12
|
+
import { UNI_SAT_SVG } from "../assets/uni-sat.svg";
|
|
13
|
+
import { CloseEvent, SignerChangedEvent, StatusChangedEvent } from "../events";
|
|
14
|
+
import { generateConnectingScene, generateSignersScene, generateWalletsScene, } from "../scenes";
|
|
15
|
+
import { ConnectorStatus } from "../status";
|
|
16
|
+
let WebComponentConnector = class WebComponentConnector extends LitElement {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.wallets = [];
|
|
20
|
+
this.existedEip6963 = [];
|
|
21
|
+
this.isOpen = false;
|
|
22
|
+
this.status = ConnectorStatus.SelectingSigner;
|
|
23
|
+
this.onClose = () => {
|
|
24
|
+
this.dispatchEvent(new SignerChangedEvent());
|
|
25
|
+
this.dispatchEvent(new CloseEvent());
|
|
26
|
+
};
|
|
27
|
+
this.onWalletSelected = (wallet) => {
|
|
28
|
+
this.dispatchEvent(new SignerChangedEvent(wallet, this.signer));
|
|
29
|
+
};
|
|
30
|
+
this.onSignerSelected = (wallet, signer) => {
|
|
31
|
+
this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.Connecting));
|
|
32
|
+
this.dispatchEvent(new SignerChangedEvent(wallet, signer));
|
|
33
|
+
(async () => {
|
|
34
|
+
await signer.signer.connect();
|
|
35
|
+
this.dispatchEvent(new StatusChangedEvent(ConnectorStatus.Idle));
|
|
36
|
+
this.dispatchEvent(new CloseEvent());
|
|
37
|
+
})();
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
connectedCallback() {
|
|
41
|
+
super.connectedCallback();
|
|
42
|
+
const client = new ccc.ClientPublicTestnet();
|
|
43
|
+
const uniSatSigner = ccc.UniSat.getUniSatSigner(client);
|
|
44
|
+
if (uniSatSigner) {
|
|
45
|
+
this.addSigner("UniSat", UNI_SAT_SVG, ccc.SignerType.BTC, uniSatSigner);
|
|
46
|
+
}
|
|
47
|
+
const okxBitcoinSigner = ccc.Okx.getOKXBitcoinSigner(client);
|
|
48
|
+
if (okxBitcoinSigner) {
|
|
49
|
+
this.addSigner("OKX Wallet", OKX_SVG, ccc.SignerType.BTC, okxBitcoinSigner);
|
|
50
|
+
}
|
|
51
|
+
const eip6963Manager = new ccc.Eip6963.SignerFactory(client);
|
|
52
|
+
eip6963Manager.subscribeSigners((signer) => {
|
|
53
|
+
if (this.existedEip6963.indexOf(signer.detail.info.uuid) !== -1) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.existedEip6963.push(signer.detail.info.uuid);
|
|
57
|
+
this.addSigner(`${signer.detail.info.name}`, signer.detail.info.icon, ccc.SignerType.EVM, signer);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
addSigner(name, icon, type, signer) {
|
|
61
|
+
const wallet = this.wallets.find((wallet) => wallet.name === name);
|
|
62
|
+
if (wallet) {
|
|
63
|
+
wallet.signers.push({ type, signer });
|
|
64
|
+
this.wallets = [...this.wallets];
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.wallets = [
|
|
68
|
+
...this.wallets,
|
|
69
|
+
{
|
|
70
|
+
name,
|
|
71
|
+
icon,
|
|
72
|
+
signers: [{ type, signer }],
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
render() {
|
|
78
|
+
const [title, body] = (() => {
|
|
79
|
+
if (!this.wallet) {
|
|
80
|
+
return generateWalletsScene(this.wallets, this.onWalletSelected, this.onSignerSelected);
|
|
81
|
+
}
|
|
82
|
+
if (!this.signer) {
|
|
83
|
+
return generateSignersScene(this.wallet, this.onSignerSelected);
|
|
84
|
+
}
|
|
85
|
+
return generateConnectingScene(this.wallet, this.signer, this.onSignerSelected);
|
|
86
|
+
})();
|
|
87
|
+
return html `<style>
|
|
88
|
+
:host {
|
|
89
|
+
${this.isOpen ? "" : "display: none;"}
|
|
90
|
+
--background: #fff;
|
|
91
|
+
--divider: #eee;
|
|
92
|
+
--btn-primary: #f8f8f8;
|
|
93
|
+
--btn-primary-hover: #efeeee;
|
|
94
|
+
--btn-secondary: #ddd;
|
|
95
|
+
--btn-icon: #e9e4de;
|
|
96
|
+
color: #1e1e1e;
|
|
97
|
+
--tip-color: #666;
|
|
98
|
+
}
|
|
99
|
+
</style>
|
|
100
|
+
<div
|
|
101
|
+
class="background"
|
|
102
|
+
@click=${(event) => {
|
|
103
|
+
if (event.target === event.currentTarget) {
|
|
104
|
+
this.onClose();
|
|
105
|
+
}
|
|
106
|
+
}}
|
|
107
|
+
>
|
|
108
|
+
<div class="main">
|
|
109
|
+
<div class="header text-bold fs-big">
|
|
110
|
+
<div class="back"></div>
|
|
111
|
+
${title}
|
|
112
|
+
<img class="close" src=${CLOSE_SVG} @click=${this.onClose} />
|
|
113
|
+
</div>
|
|
114
|
+
<div class="body">${body}</div>
|
|
115
|
+
</div>
|
|
116
|
+
</div>`;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
WebComponentConnector.styles = css `
|
|
120
|
+
:host {
|
|
121
|
+
width: 100vw;
|
|
122
|
+
height: 100vh;
|
|
123
|
+
position: fixed;
|
|
124
|
+
left: 0;
|
|
125
|
+
top: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
button {
|
|
129
|
+
background: none;
|
|
130
|
+
color: inherit;
|
|
131
|
+
border: none;
|
|
132
|
+
padding: 0;
|
|
133
|
+
font: inherit;
|
|
134
|
+
cursor: pointer;
|
|
135
|
+
outline: inherit;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.text-bold {
|
|
139
|
+
font-weight: bold;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.text-tip {
|
|
143
|
+
color: var(--tip-color);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.fs-big {
|
|
147
|
+
font-size: 1.2rem;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.mb-1 {
|
|
151
|
+
margin-bottom: 0.7rem;
|
|
152
|
+
}
|
|
153
|
+
.mb-2 {
|
|
154
|
+
margin-bottom: 1rem;
|
|
155
|
+
}
|
|
156
|
+
.mt-1 {
|
|
157
|
+
margin-top: 0.7rem;
|
|
158
|
+
}
|
|
159
|
+
.mt-2 {
|
|
160
|
+
margin-top: 1rem;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.background {
|
|
164
|
+
width: 100%;
|
|
165
|
+
height: 100%;
|
|
166
|
+
background: rgba(18, 19, 24, 0.7);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.main {
|
|
170
|
+
position: fixed;
|
|
171
|
+
left: 50%;
|
|
172
|
+
top: 50%;
|
|
173
|
+
transform: translate(-50%, -50%);
|
|
174
|
+
background: var(--background);
|
|
175
|
+
border-radius: 1.2rem;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.header {
|
|
179
|
+
display: flex;
|
|
180
|
+
justify-content: space-between;
|
|
181
|
+
align-items: center;
|
|
182
|
+
padding: 1rem 1.3rem;
|
|
183
|
+
border-bottom: 1px solid var(--divider);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.close,
|
|
187
|
+
.back {
|
|
188
|
+
width: 0.8rem;
|
|
189
|
+
height: 0.8rem;
|
|
190
|
+
cursor: pointer;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.body {
|
|
194
|
+
padding: 1.4rem 1.3rem;
|
|
195
|
+
min-width: 20rem;
|
|
196
|
+
display: flex;
|
|
197
|
+
flex-direction: column;
|
|
198
|
+
align-items: center;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.btn-primary {
|
|
202
|
+
width: 100%;
|
|
203
|
+
display: flex;
|
|
204
|
+
align-items: center;
|
|
205
|
+
justify-content: start;
|
|
206
|
+
padding: 0.75rem 1rem;
|
|
207
|
+
background: var(--btn-primary);
|
|
208
|
+
border-radius: 0.4rem;
|
|
209
|
+
transition: background 0.3s ease-in-out;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.btn-primary img {
|
|
213
|
+
width: 2rem;
|
|
214
|
+
height: 2rem;
|
|
215
|
+
margin-right: 1rem;
|
|
216
|
+
border-radius: 0.4rem;
|
|
217
|
+
background: var(--btn-icon);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.btn-primary:hover {
|
|
221
|
+
background: var(--btn-primary-hover);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.btn-secondary {
|
|
225
|
+
display: flex;
|
|
226
|
+
align-items: center;
|
|
227
|
+
padding: 0.25rem 1rem;
|
|
228
|
+
background: var(--btn-secondary);
|
|
229
|
+
border-radius: 9999px;
|
|
230
|
+
transition: background 0.3s ease-in-out;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.btn-secondary img {
|
|
234
|
+
width: 0.8rem;
|
|
235
|
+
height: 0.8rem;
|
|
236
|
+
margin-right: 0.5rem;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.wallet-icon {
|
|
240
|
+
width: 4rem;
|
|
241
|
+
height: 4rem;
|
|
242
|
+
margin-bottom: 0.5rem;
|
|
243
|
+
border-radius: 0.8rem;
|
|
244
|
+
background: var(--btn-icon);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.connecting-wallet-icon {
|
|
248
|
+
width: 5rem;
|
|
249
|
+
height: 5rem;
|
|
250
|
+
border-radius: 1rem;
|
|
251
|
+
}
|
|
252
|
+
`;
|
|
253
|
+
__decorate([
|
|
254
|
+
state()
|
|
255
|
+
], WebComponentConnector.prototype, "wallets", void 0);
|
|
256
|
+
__decorate([
|
|
257
|
+
property()
|
|
258
|
+
], WebComponentConnector.prototype, "isOpen", void 0);
|
|
259
|
+
__decorate([
|
|
260
|
+
property()
|
|
261
|
+
], WebComponentConnector.prototype, "wallet", void 0);
|
|
262
|
+
__decorate([
|
|
263
|
+
property()
|
|
264
|
+
], WebComponentConnector.prototype, "signer", void 0);
|
|
265
|
+
__decorate([
|
|
266
|
+
property()
|
|
267
|
+
], WebComponentConnector.prototype, "status", void 0);
|
|
268
|
+
WebComponentConnector = __decorate([
|
|
269
|
+
customElement("ccc-connector")
|
|
270
|
+
], WebComponentConnector);
|
|
271
|
+
export { WebComponentConnector };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ccc } from "@ckb-ccc/ccc";
|
|
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 {
|
|
13
|
+
constructor();
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,MAAM,CAAC;aACP,UAAU,CAAC;gBADX,MAAM,CAAC,wBAAY,EACnB,UAAU,CAAC,4BAAgB;CAI9C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aACf,MAAM,EAAE,eAAe;gBAAvB,MAAM,EAAE,eAAe;CAGpD;AAED,qBAAa,UAAW,SAAQ,KAAK;;CAIpC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class SignerChangedEvent extends Event {
|
|
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 {
|
|
15
|
+
constructor() {
|
|
16
|
+
super("close", { composed: true });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
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>)[];
|
|
3
|
+
//# sourceMappingURL=connecting.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { RETRY_SVG } from "../assets/retry.svg";
|
|
3
|
+
export function generateConnectingScene(wallet, signer, onSignerSelected) {
|
|
4
|
+
return [
|
|
5
|
+
wallet.name,
|
|
6
|
+
html `
|
|
7
|
+
<img
|
|
8
|
+
class="connecting-wallet-icon mb-1"
|
|
9
|
+
src=${wallet.icon}
|
|
10
|
+
alt=${wallet.name}
|
|
11
|
+
/>
|
|
12
|
+
<span class="text-bold">Opening ${wallet.name}...</span>
|
|
13
|
+
<span class="text-tip">Confirm connection in the wallet</span>
|
|
14
|
+
<button
|
|
15
|
+
class="btn-secondary mt-2 mb-2"
|
|
16
|
+
@click=${() => onSignerSelected(wallet, signer)}
|
|
17
|
+
>
|
|
18
|
+
<img src=${RETRY_SVG} alt="retry" />
|
|
19
|
+
Try again
|
|
20
|
+
</button>
|
|
21
|
+
`,
|
|
22
|
+
];
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scenes/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ccc } from "@ckb-ccc/ccc";
|
|
2
|
+
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
|
+
//# sourceMappingURL=signers.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ccc } from "@ckb-ccc/ccc";
|
|
2
|
+
import { html } from "lit";
|
|
3
|
+
import { repeat } from "lit/directives/repeat.js";
|
|
4
|
+
import { BTC_SVG, ETH_SVG } from "../assets/chains";
|
|
5
|
+
export function signerTypeToIcon(type) {
|
|
6
|
+
return {
|
|
7
|
+
[ccc.SignerType.BTC]: BTC_SVG,
|
|
8
|
+
[ccc.SignerType.EVM]: ETH_SVG,
|
|
9
|
+
}[type];
|
|
10
|
+
}
|
|
11
|
+
export function generateSignersScene(wallet, onSignerSelected) {
|
|
12
|
+
return [
|
|
13
|
+
"Select a Chain",
|
|
14
|
+
html `
|
|
15
|
+
<img class="wallet-icon" src=${wallet.icon} alt=${wallet.name} />
|
|
16
|
+
<span class="mb-2">${wallet.name}</span>
|
|
17
|
+
${repeat(wallet.signers, (signer) => signer.type, (signer) => html `
|
|
18
|
+
<button
|
|
19
|
+
class="btn-primary mb-1"
|
|
20
|
+
@click=${async () => {
|
|
21
|
+
onSignerSelected(wallet, signer);
|
|
22
|
+
}}
|
|
23
|
+
>
|
|
24
|
+
<img src=${signerTypeToIcon(signer.type)} alt=${signer.type} />
|
|
25
|
+
${signer.type}
|
|
26
|
+
</button>
|
|
27
|
+
`)}
|
|
28
|
+
`,
|
|
29
|
+
];
|
|
30
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
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[];
|
|
3
|
+
//# sourceMappingURL=wallets.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { repeat } from "lit/directives/repeat.js";
|
|
3
|
+
export function generateWalletsScene(wallets, onWalletSelected, onSignerSelected) {
|
|
4
|
+
return [
|
|
5
|
+
"Connect Wallet",
|
|
6
|
+
repeat(wallets, (wallet) => wallet.name, (wallet) => html `
|
|
7
|
+
<button
|
|
8
|
+
class="btn-primary mb-1"
|
|
9
|
+
@click=${async () => {
|
|
10
|
+
if (wallet.signers.length === 1) {
|
|
11
|
+
onSignerSelected(wallet, wallet.signers[0]);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
onWalletSelected(wallet);
|
|
15
|
+
}
|
|
16
|
+
}}
|
|
17
|
+
>
|
|
18
|
+
<img src=${wallet.icon} alt=${wallet.name} />
|
|
19
|
+
${wallet.name}
|
|
20
|
+
</button>
|
|
21
|
+
`),
|
|
22
|
+
];
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/status/index.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACzB,eAAe,oBAAoB;IACnC,UAAU,eAAe;IACzB,IAAI,SAAS;CACd"}
|