@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.
Files changed (111) hide show
  1. package/README.md +6 -0
  2. package/dist/advancedBarrel.d.ts +1 -0
  3. package/dist/advancedBarrel.d.ts.map +1 -1
  4. package/dist/advancedBarrel.js +1 -0
  5. package/dist/assets/chains/ckb.svg.d.ts +2 -0
  6. package/dist/assets/chains/ckb.svg.d.ts.map +1 -0
  7. package/dist/assets/chains/ckb.svg.js +2 -0
  8. package/dist/assets/chains/index.d.ts +1 -0
  9. package/dist/assets/chains/index.d.ts.map +1 -1
  10. package/dist/assets/chains/index.js +1 -0
  11. package/dist/assets/joy-id.svg.d.ts +2 -0
  12. package/dist/assets/joy-id.svg.d.ts.map +1 -0
  13. package/dist/assets/joy-id.svg.js +2 -0
  14. package/dist/assets/metamask.svg.d.ts +2 -0
  15. package/dist/assets/metamask.svg.d.ts.map +1 -0
  16. package/dist/assets/metamask.svg.js +2 -0
  17. package/dist/barrel.d.ts +1 -2
  18. package/dist/barrel.d.ts.map +1 -1
  19. package/dist/barrel.js +1 -2
  20. package/dist/connector/index.d.ts +19 -8
  21. package/dist/connector/index.d.ts.map +1 -1
  22. package/dist/connector/index.js +162 -59
  23. package/dist/events/index.d.ts +1 -12
  24. package/dist/events/index.d.ts.map +1 -1
  25. package/dist/events/index.js +2 -15
  26. package/dist/scenes/connecting.d.ts +2 -1
  27. package/dist/scenes/connecting.d.ts.map +1 -1
  28. package/dist/scenes/signers.d.ts +2 -1
  29. package/dist/scenes/signers.d.ts.map +1 -1
  30. package/dist/scenes/signers.js +3 -2
  31. package/dist/scenes/wallets.d.ts +2 -1
  32. package/dist/scenes/wallets.d.ts.map +1 -1
  33. package/dist/scenes/wallets.js +44 -9
  34. package/dist/types/index.d.ts +10 -0
  35. package/dist/types/index.d.ts.map +1 -0
  36. package/dist/types/index.js +1 -0
  37. package/dist.commonjs/advanced.d.ts +3 -0
  38. package/dist.commonjs/advanced.d.ts.map +1 -0
  39. package/dist.commonjs/advanced.js +56 -0
  40. package/dist.commonjs/advancedBarrel.d.ts +4 -0
  41. package/dist.commonjs/advancedBarrel.d.ts.map +1 -0
  42. package/dist.commonjs/advancedBarrel.js +35 -0
  43. package/dist.commonjs/assets/chains/btc.svg.d.ts +2 -0
  44. package/dist.commonjs/assets/chains/btc.svg.d.ts.map +1 -0
  45. package/dist.commonjs/assets/chains/btc.svg.js +7 -0
  46. package/dist.commonjs/assets/chains/eth.svg.d.ts +2 -0
  47. package/dist.commonjs/assets/chains/eth.svg.d.ts.map +1 -0
  48. package/dist.commonjs/assets/chains/eth.svg.js +7 -0
  49. package/dist.commonjs/assets/chains/index.d.ts +3 -0
  50. package/dist.commonjs/assets/chains/index.d.ts.map +1 -0
  51. package/dist.commonjs/assets/chains/index.js +34 -0
  52. package/dist.commonjs/assets/close.svg.d.ts +2 -0
  53. package/dist.commonjs/assets/close.svg.d.ts.map +1 -0
  54. package/dist.commonjs/assets/close.svg.js +7 -0
  55. package/dist.commonjs/assets/okx.svg.d.ts +2 -0
  56. package/dist.commonjs/assets/okx.svg.d.ts.map +1 -0
  57. package/dist.commonjs/assets/okx.svg.js +7 -0
  58. package/dist.commonjs/assets/retry.svg.d.ts +2 -0
  59. package/dist.commonjs/assets/retry.svg.d.ts.map +1 -0
  60. package/dist.commonjs/assets/retry.svg.js +7 -0
  61. package/dist.commonjs/assets/uni-sat.svg.d.ts +2 -0
  62. package/dist.commonjs/assets/uni-sat.svg.d.ts.map +1 -0
  63. package/dist.commonjs/assets/uni-sat.svg.js +7 -0
  64. package/dist.commonjs/assets/utils.d.ts +2 -0
  65. package/dist.commonjs/assets/utils.d.ts.map +1 -0
  66. package/dist.commonjs/assets/utils.js +7 -0
  67. package/dist.commonjs/barrel.d.ts +4 -0
  68. package/dist.commonjs/barrel.d.ts.map +1 -0
  69. package/dist.commonjs/barrel.js +35 -0
  70. package/dist.commonjs/connector/index.d.ts +33 -0
  71. package/dist.commonjs/connector/index.d.ts.map +1 -0
  72. package/dist.commonjs/connector/index.js +452 -0
  73. package/dist.commonjs/events/index.d.ts +4 -0
  74. package/dist.commonjs/events/index.d.ts.map +1 -0
  75. package/dist.commonjs/events/index.js +9 -0
  76. package/dist.commonjs/index.d.ts +3 -0
  77. package/dist.commonjs/index.d.ts.map +1 -0
  78. package/dist.commonjs/index.js +56 -0
  79. package/dist.commonjs/scenes/connecting.d.ts +10 -0
  80. package/dist.commonjs/scenes/connecting.d.ts.map +1 -0
  81. package/dist.commonjs/scenes/connecting.js +27 -0
  82. package/dist.commonjs/scenes/index.d.ts +4 -0
  83. package/dist.commonjs/scenes/index.d.ts.map +1 -0
  84. package/dist.commonjs/scenes/index.js +35 -0
  85. package/dist.commonjs/scenes/signers.d.ts +11 -0
  86. package/dist.commonjs/scenes/signers.d.ts.map +1 -0
  87. package/dist.commonjs/scenes/signers.js +39 -0
  88. package/dist.commonjs/scenes/wallets.d.ts +8 -0
  89. package/dist.commonjs/scenes/wallets.d.ts.map +1 -0
  90. package/dist.commonjs/scenes/wallets.js +30 -0
  91. package/dist.commonjs/tsconfig.commonjs.tsbuildinfo +1 -0
  92. package/dist.commonjs/types/index.d.ts +5 -0
  93. package/dist.commonjs/types/index.d.ts.map +1 -0
  94. package/dist.commonjs/types/index.js +2 -0
  95. package/package.json +3 -3
  96. package/src/advancedBarrel.ts +1 -0
  97. package/src/assets/chains/ckb.svg.ts +5 -0
  98. package/src/assets/chains/index.ts +1 -0
  99. package/src/assets/joy-id.svg.ts +5 -0
  100. package/src/assets/metamask.svg.ts +5 -0
  101. package/src/barrel.ts +1 -2
  102. package/src/connector/index.ts +217 -69
  103. package/src/events/index.ts +2 -20
  104. package/src/scenes/connecting.ts +6 -2
  105. package/src/scenes/signers.ts +9 -4
  106. package/src/scenes/wallets.ts +69 -22
  107. package/src/types/index.ts +11 -0
  108. package/dist/status/index.d.ts +0 -6
  109. package/dist/status/index.d.ts.map +0 -1
  110. package/dist/status/index.js +0 -6
  111. package/src/status/index.ts +0 -5
@@ -0,0 +1,452 @@
1
+ "use strict";
2
+ var __decorate =
3
+ (this && this.__decorate) ||
4
+ function (decorators, target, key, desc) {
5
+ var c = arguments.length,
6
+ r =
7
+ c < 3
8
+ ? target
9
+ : desc === null
10
+ ? (desc = Object.getOwnPropertyDescriptor(target, key))
11
+ : desc,
12
+ d;
13
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
14
+ r = Reflect.decorate(decorators, target, key, desc);
15
+ else
16
+ for (var i = decorators.length - 1; i >= 0; i--)
17
+ if ((d = decorators[i]))
18
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.WebComponentConnector = void 0;
23
+ const ccc_1 = require("@ckb-ccc/ccc");
24
+ const lit_1 = require("lit");
25
+ const decorators_js_1 = require("lit/decorators.js");
26
+ const close_svg_1 = require("../assets/close.svg");
27
+ const okx_svg_1 = require("../assets/okx.svg");
28
+ const uni_sat_svg_1 = require("../assets/uni-sat.svg");
29
+ const events_1 = require("../events");
30
+ const scenes_1 = require("../scenes");
31
+ let WebComponentConnector = class WebComponentConnector extends lit_1.LitElement {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.wallets = [];
35
+ this.resetListeners = [];
36
+ this.isOpen = false;
37
+ this.client = new ccc_1.ccc.ClientPublicTestnet();
38
+ this.canConnect = false;
39
+ this.closedHandler = () => {
40
+ if (this.signer === undefined) {
41
+ this.disconnect();
42
+ }
43
+ this.isOpen = false;
44
+ };
45
+ this.signerSelectedHandler = (wallet, signer) => {
46
+ this.walletName = wallet?.name;
47
+ this.signerType = signer?.type;
48
+ this.canConnect = true;
49
+ };
50
+ }
51
+ setIsOpen(isOpen) {
52
+ this.isOpen = isOpen;
53
+ }
54
+ setClient(client) {
55
+ this.client = client;
56
+ }
57
+ updateWallet() {
58
+ this.selectedWallet = this.wallets.find(
59
+ (wallet) => this.walletName === wallet.name,
60
+ );
61
+ }
62
+ updateSigner() {
63
+ this.selectedSigner = this.selectedWallet?.signers.find(
64
+ ({ type }) => type === this.signerType,
65
+ );
66
+ }
67
+ prepareSigner() {
68
+ (async () => {
69
+ if (!this.selectedSigner) {
70
+ this.wallet = undefined;
71
+ this.signer = undefined;
72
+ return;
73
+ }
74
+ if (!(await this.selectedSigner.signer.isConnected())) {
75
+ if (!this.canConnect) {
76
+ this.disconnect();
77
+ return;
78
+ }
79
+ await this.selectedSigner.signer.connect();
80
+ }
81
+ this.saveConnection();
82
+ this.wallet = this.selectedWallet;
83
+ this.signer = this.selectedSigner;
84
+ this.closedHandler();
85
+ })();
86
+ }
87
+ disconnect() {
88
+ this.walletName = undefined;
89
+ this.wallet = undefined;
90
+ this.signerType = undefined;
91
+ this.signer = undefined;
92
+ this.saveConnection();
93
+ }
94
+ loadConnection() {
95
+ const { signerType, walletName } = JSON.parse(
96
+ window.localStorage.getItem("ccc-connection-info") ?? "{}",
97
+ );
98
+ this.signerType = signerType;
99
+ this.walletName = walletName;
100
+ }
101
+ saveConnection() {
102
+ window.localStorage.setItem(
103
+ "ccc-connection-info",
104
+ JSON.stringify({
105
+ signerType: this.signerType,
106
+ walletName: this.walletName,
107
+ }),
108
+ );
109
+ }
110
+ connectedCallback() {
111
+ super.connectedCallback();
112
+ this.loadConnection();
113
+ this.reloadSigners();
114
+ }
115
+ willUpdate(changedProperties) {
116
+ if (changedProperties.has("client")) {
117
+ this.reloadSigners();
118
+ }
119
+ if (
120
+ changedProperties.has("walletName") ||
121
+ changedProperties.has("wallets")
122
+ ) {
123
+ this.updateWallet();
124
+ }
125
+ if (
126
+ changedProperties.has("signerType") ||
127
+ changedProperties.has("selectedWallet")
128
+ ) {
129
+ this.updateSigner();
130
+ }
131
+ if (changedProperties.has("selectedSigner")) {
132
+ this.prepareSigner();
133
+ }
134
+ this.dispatchEvent(new events_1.WillUpdateEvent());
135
+ }
136
+ reloadSigners() {
137
+ this.wallets = [];
138
+ (async () => {
139
+ if (!this.selectedSigner) {
140
+ return;
141
+ }
142
+ const newSigner = await this.selectedSigner.signer.replaceClient(
143
+ this.client,
144
+ );
145
+ if (newSigner) {
146
+ this.selectedSigner = {
147
+ ...this.selectedSigner,
148
+ signer: newSigner,
149
+ };
150
+ } else {
151
+ this.disconnect();
152
+ }
153
+ })();
154
+ this.resetListeners.forEach((listener) => listener());
155
+ this.resetListeners = [];
156
+ const uniSatSigner = ccc_1.ccc.UniSat.getUniSatSigner(this.client);
157
+ if (uniSatSigner) {
158
+ this.addSigner(
159
+ "UniSat",
160
+ uni_sat_svg_1.UNI_SAT_SVG,
161
+ ccc_1.ccc.SignerType.BTC,
162
+ uniSatSigner,
163
+ );
164
+ }
165
+ const okxBitcoinSigner = ccc_1.ccc.Okx.getOKXBitcoinSigner(this.client);
166
+ if (okxBitcoinSigner) {
167
+ this.addSigner(
168
+ "OKX Wallet",
169
+ okx_svg_1.OKX_SVG,
170
+ ccc_1.ccc.SignerType.BTC,
171
+ okxBitcoinSigner,
172
+ );
173
+ }
174
+ const eip6963Manager = new ccc_1.ccc.Eip6963.SignerFactory(this.client);
175
+ this.resetListeners.push(
176
+ eip6963Manager.subscribeSigners((signer) => {
177
+ this.addSigner(
178
+ `${signer.detail.info.name}`,
179
+ signer.detail.info.icon,
180
+ ccc_1.ccc.SignerType.EVM,
181
+ signer,
182
+ );
183
+ }),
184
+ );
185
+ }
186
+ addSigner(name, icon, type, signer) {
187
+ let updated = false;
188
+ const wallets = this.wallets.map((wallet) => {
189
+ if (wallet.name !== name) {
190
+ return wallet;
191
+ }
192
+ updated = true;
193
+ return {
194
+ ...wallet,
195
+ signers: [...wallet.signers, { type, signer }],
196
+ };
197
+ });
198
+ if (!updated) {
199
+ wallets.push({
200
+ name,
201
+ icon,
202
+ signers: [{ type, signer }],
203
+ });
204
+ }
205
+ this.wallets = wallets;
206
+ }
207
+ render() {
208
+ const [title, body] = (() => {
209
+ if (!this.selectedWallet) {
210
+ return (0, scenes_1.generateWalletsScene)(
211
+ this.wallets,
212
+ this.signerSelectedHandler,
213
+ this.signerSelectedHandler,
214
+ );
215
+ }
216
+ if (!this.selectedSigner) {
217
+ return (0, scenes_1.generateSignersScene)(
218
+ this.selectedWallet,
219
+ this.signerSelectedHandler,
220
+ );
221
+ }
222
+ return (0, scenes_1.generateConnectingScene)(
223
+ this.selectedWallet,
224
+ this.selectedSigner,
225
+ this.signerSelectedHandler,
226
+ );
227
+ })();
228
+ return (0, lit_1.html)`<style>
229
+ :host {
230
+ ${this.isOpen ? "" : "display: none;"}
231
+ --background: #fff;
232
+ --divider: #eee;
233
+ --btn-primary: #f8f8f8;
234
+ --btn-primary-hover: #efeeee;
235
+ --btn-secondary: #ddd;
236
+ --btn-icon: #e9e4de;
237
+ color: #1e1e1e;
238
+ --tip-color: #666;
239
+ }
240
+ </style>
241
+ <div
242
+ class="background"
243
+ @click=${(event) => {
244
+ if (event.target === event.currentTarget) {
245
+ this.closedHandler();
246
+ }
247
+ }}
248
+ >
249
+ <div class="main">
250
+ <div class="header text-bold fs-big">
251
+ <div class="back"></div>
252
+ ${title}
253
+ <img class="close" src=${close_svg_1.CLOSE_SVG} @click=${this.closedHandler} />
254
+ </div>
255
+ <div class="body">${body}</div>
256
+ </div>
257
+ </div>`;
258
+ }
259
+ };
260
+ exports.WebComponentConnector = WebComponentConnector;
261
+ WebComponentConnector.styles = (0, lit_1.css)`
262
+ :host {
263
+ width: 100vw;
264
+ height: 100vh;
265
+ position: fixed;
266
+ left: 0;
267
+ top: 0;
268
+ }
269
+
270
+ button {
271
+ background: none;
272
+ color: inherit;
273
+ border: none;
274
+ padding: 0;
275
+ font: inherit;
276
+ cursor: pointer;
277
+ outline: inherit;
278
+ }
279
+
280
+ .text-bold {
281
+ font-weight: bold;
282
+ }
283
+
284
+ .text-tip {
285
+ color: var(--tip-color);
286
+ }
287
+
288
+ .fs-big {
289
+ font-size: 1.2rem;
290
+ }
291
+
292
+ .mb-1 {
293
+ margin-bottom: 0.7rem;
294
+ }
295
+ .mb-2 {
296
+ margin-bottom: 1rem;
297
+ }
298
+ .mt-1 {
299
+ margin-top: 0.7rem;
300
+ }
301
+ .mt-2 {
302
+ margin-top: 1rem;
303
+ }
304
+
305
+ .background {
306
+ width: 100%;
307
+ height: 100%;
308
+ background: rgba(18, 19, 24, 0.7);
309
+ }
310
+
311
+ .main {
312
+ position: fixed;
313
+ left: 50%;
314
+ top: 50%;
315
+ transform: translate(-50%, -50%);
316
+ background: var(--background);
317
+ border-radius: 1.2rem;
318
+ }
319
+
320
+ .header {
321
+ display: flex;
322
+ justify-content: space-between;
323
+ align-items: center;
324
+ padding: 1rem 1.3rem;
325
+ border-bottom: 1px solid var(--divider);
326
+ }
327
+
328
+ .close,
329
+ .back {
330
+ width: 0.8rem;
331
+ height: 0.8rem;
332
+ cursor: pointer;
333
+ }
334
+
335
+ .body {
336
+ padding: 1.4rem 1.3rem;
337
+ min-width: 20rem;
338
+ display: flex;
339
+ flex-direction: column;
340
+ align-items: center;
341
+ }
342
+
343
+ .btn-primary {
344
+ width: 100%;
345
+ display: flex;
346
+ align-items: center;
347
+ justify-content: start;
348
+ padding: 0.75rem 1rem;
349
+ background: var(--btn-primary);
350
+ border-radius: 0.4rem;
351
+ transition: background 0.3s ease-in-out;
352
+ }
353
+
354
+ .btn-primary img {
355
+ width: 2rem;
356
+ height: 2rem;
357
+ margin-right: 1rem;
358
+ border-radius: 0.4rem;
359
+ background: var(--btn-icon);
360
+ }
361
+
362
+ .btn-primary:hover {
363
+ background: var(--btn-primary-hover);
364
+ }
365
+
366
+ .btn-secondary {
367
+ display: flex;
368
+ align-items: center;
369
+ padding: 0.25rem 1rem;
370
+ background: var(--btn-secondary);
371
+ border-radius: 9999px;
372
+ transition: background 0.3s ease-in-out;
373
+ }
374
+
375
+ .btn-secondary img {
376
+ width: 0.8rem;
377
+ height: 0.8rem;
378
+ margin-right: 0.5rem;
379
+ }
380
+
381
+ .wallet-icon {
382
+ width: 4rem;
383
+ height: 4rem;
384
+ margin-bottom: 0.5rem;
385
+ border-radius: 0.8rem;
386
+ background: var(--btn-icon);
387
+ }
388
+
389
+ .connecting-wallet-icon {
390
+ width: 5rem;
391
+ height: 5rem;
392
+ border-radius: 1rem;
393
+ }
394
+ `;
395
+ __decorate(
396
+ [(0, decorators_js_1.state)()],
397
+ WebComponentConnector.prototype,
398
+ "wallets",
399
+ void 0,
400
+ );
401
+ __decorate(
402
+ [(0, decorators_js_1.state)()],
403
+ WebComponentConnector.prototype,
404
+ "isOpen",
405
+ void 0,
406
+ );
407
+ __decorate(
408
+ [(0, decorators_js_1.property)()],
409
+ WebComponentConnector.prototype,
410
+ "client",
411
+ void 0,
412
+ );
413
+ __decorate(
414
+ [(0, decorators_js_1.state)()],
415
+ WebComponentConnector.prototype,
416
+ "walletName",
417
+ void 0,
418
+ );
419
+ __decorate(
420
+ [(0, decorators_js_1.state)()],
421
+ WebComponentConnector.prototype,
422
+ "signerType",
423
+ void 0,
424
+ );
425
+ __decorate(
426
+ [(0, decorators_js_1.state)()],
427
+ WebComponentConnector.prototype,
428
+ "selectedWallet",
429
+ void 0,
430
+ );
431
+ __decorate(
432
+ [(0, decorators_js_1.state)()],
433
+ WebComponentConnector.prototype,
434
+ "selectedSigner",
435
+ void 0,
436
+ );
437
+ __decorate(
438
+ [(0, decorators_js_1.state)()],
439
+ WebComponentConnector.prototype,
440
+ "wallet",
441
+ void 0,
442
+ );
443
+ __decorate(
444
+ [(0, decorators_js_1.state)()],
445
+ WebComponentConnector.prototype,
446
+ "signer",
447
+ void 0,
448
+ );
449
+ exports.WebComponentConnector = WebComponentConnector = __decorate(
450
+ [(0, decorators_js_1.customElement)("ccc-connector")],
451
+ WebComponentConnector,
452
+ );
@@ -0,0 +1,4 @@
1
+ export declare class WillUpdateEvent extends Event {
2
+ constructor();
3
+ }
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;;CAIzC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WillUpdateEvent = void 0;
4
+ class WillUpdateEvent extends Event {
5
+ constructor() {
6
+ super("willUpdate", { composed: true });
7
+ }
8
+ }
9
+ exports.WillUpdateEvent = WillUpdateEvent;
@@ -0,0 +1,3 @@
1
+ export * from "./barrel";
2
+ export * as ccc from "./barrel";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __createBinding =
3
+ (this && this.__createBinding) ||
4
+ (Object.create
5
+ ? function (o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (
9
+ !desc ||
10
+ ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
11
+ ) {
12
+ desc = {
13
+ enumerable: true,
14
+ get: function () {
15
+ return m[k];
16
+ },
17
+ };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }
21
+ : function (o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ });
25
+ var __setModuleDefault =
26
+ (this && this.__setModuleDefault) ||
27
+ (Object.create
28
+ ? function (o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }
31
+ : function (o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __exportStar =
35
+ (this && this.__exportStar) ||
36
+ function (m, exports) {
37
+ for (var p in m)
38
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p))
39
+ __createBinding(exports, m, p);
40
+ };
41
+ var __importStar =
42
+ (this && this.__importStar) ||
43
+ function (mod) {
44
+ if (mod && mod.__esModule) return mod;
45
+ var result = {};
46
+ if (mod != null)
47
+ for (var k in mod)
48
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
49
+ __createBinding(result, mod, k);
50
+ __setModuleDefault(result, mod);
51
+ return result;
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.ccc = void 0;
55
+ __exportStar(require("./barrel"), exports);
56
+ exports.ccc = __importStar(require("./barrel"));
@@ -0,0 +1,10 @@
1
+ import { ccc } from "@ckb-ccc/ccc";
2
+ export declare function generateConnectingScene(
3
+ wallet: ccc.Wallet,
4
+ signer: ccc.SignerInfo,
5
+ onSignerSelected: (
6
+ wallet: ccc.Wallet | undefined,
7
+ signer: ccc.SignerInfo,
8
+ ) => unknown,
9
+ ): (string | import("lit").TemplateResult<1>)[];
10
+ //# 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,CAChB,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,GAAG,CAAC,UAAU,KACnB,OAAO,2FAqBb"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateConnectingScene = void 0;
4
+ const lit_1 = require("lit");
5
+ const retry_svg_1 = require("../assets/retry.svg");
6
+ function generateConnectingScene(wallet, signer, onSignerSelected) {
7
+ return [
8
+ wallet.name,
9
+ (0, lit_1.html)`
10
+ <img
11
+ class="connecting-wallet-icon mb-1"
12
+ src=${wallet.icon}
13
+ alt=${wallet.name}
14
+ />
15
+ <span class="text-bold">Opening ${wallet.name}...</span>
16
+ <span class="text-tip">Confirm connection in the wallet</span>
17
+ <button
18
+ class="btn-secondary mt-2 mb-2"
19
+ @click=${() => onSignerSelected(wallet, signer)}
20
+ >
21
+ <img src=${retry_svg_1.RETRY_SVG} alt="retry" />
22
+ Try again
23
+ </button>
24
+ `,
25
+ ];
26
+ }
27
+ exports.generateConnectingScene = generateConnectingScene;
@@ -0,0 +1,4 @@
1
+ export * from "./connecting";
2
+ export * from "./signers";
3
+ export * from "./wallets";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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,35 @@
1
+ "use strict";
2
+ var __createBinding =
3
+ (this && this.__createBinding) ||
4
+ (Object.create
5
+ ? function (o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (
9
+ !desc ||
10
+ ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
11
+ ) {
12
+ desc = {
13
+ enumerable: true,
14
+ get: function () {
15
+ return m[k];
16
+ },
17
+ };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }
21
+ : function (o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ });
25
+ var __exportStar =
26
+ (this && this.__exportStar) ||
27
+ function (m, exports) {
28
+ for (var p in m)
29
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p))
30
+ __createBinding(exports, m, p);
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ __exportStar(require("./connecting"), exports);
34
+ __exportStar(require("./signers"), exports);
35
+ __exportStar(require("./wallets"), exports);
@@ -0,0 +1,11 @@
1
+ import { ccc } from "@ckb-ccc/ccc";
2
+ import { WalletWithSigners } from "../types";
3
+ export declare function signerTypeToIcon(type: ccc.SignerType): string;
4
+ export declare function generateSignersScene(
5
+ wallet: WalletWithSigners,
6
+ onSignerSelected: (
7
+ wallet: ccc.Wallet | undefined,
8
+ signer: ccc.SignerInfo,
9
+ ) => unknown,
10
+ ): (string | import("lit").TemplateResult<1>)[];
11
+ //# 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;AAInC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAK7D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,EAAE,CAChB,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,GAAG,CAAC,UAAU,KACnB,OAAO,2FAyBb"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSignersScene = exports.signerTypeToIcon = void 0;
4
+ const ccc_1 = require("@ckb-ccc/ccc");
5
+ const lit_1 = require("lit");
6
+ const repeat_js_1 = require("lit/directives/repeat.js");
7
+ const chains_1 = require("../assets/chains");
8
+ function signerTypeToIcon(type) {
9
+ return {
10
+ [ccc_1.ccc.SignerType.BTC]: chains_1.BTC_SVG,
11
+ [ccc_1.ccc.SignerType.EVM]: chains_1.ETH_SVG,
12
+ }[type];
13
+ }
14
+ exports.signerTypeToIcon = signerTypeToIcon;
15
+ function generateSignersScene(wallet, onSignerSelected) {
16
+ return [
17
+ "Select a Chain",
18
+ (0, lit_1.html)`
19
+ <img class="wallet-icon" src=${wallet.icon} alt=${wallet.name} />
20
+ <span class="mb-2">${wallet.name}</span>
21
+ ${(0, repeat_js_1.repeat)(
22
+ wallet.signers,
23
+ (signer) => signer.type,
24
+ (signer) => (0, lit_1.html)`
25
+ <button
26
+ class="btn-primary mb-1"
27
+ @click=${async () => {
28
+ onSignerSelected(wallet, signer);
29
+ }}
30
+ >
31
+ <img src=${signerTypeToIcon(signer.type)} alt=${signer.type} />
32
+ ${signer.type}
33
+ </button>
34
+ `,
35
+ )}
36
+ `,
37
+ ];
38
+ }
39
+ exports.generateSignersScene = generateSignersScene;
@@ -0,0 +1,8 @@
1
+ import { ccc } from "@ckb-ccc/ccc";
2
+ import { WalletWithSigners } from "../types";
3
+ export declare function generateWalletsScene(
4
+ wallets: WalletWithSigners[],
5
+ onWalletSelected: (wallet: ccc.Wallet) => unknown,
6
+ onSignerSelected: (wallet: ccc.Wallet, signer: ccc.SignerInfo) => unknown,
7
+ ): unknown[];
8
+ //# 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;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,EAAE,EAC5B,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,EACjD,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,OAAO,aAwB1E"}