@mysten-incubation/dev-wallet 0.5.0 → 0.6.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/CHANGELOG.md +41 -0
- package/README.md +12 -8
- package/dist/client/connected-apps.d.mts +35 -0
- package/dist/client/connected-apps.d.mts.map +1 -0
- package/dist/client/connected-apps.mjs +50 -0
- package/dist/client/connected-apps.mjs.map +1 -0
- package/dist/client/dev-wallet-client.mjs +1 -1
- package/dist/client/dev-wallet-client.mjs.map +1 -1
- package/dist/client/index.d.mts +2 -1
- package/dist/client/index.mjs +2 -1
- package/dist/client/request-handler.d.mts +7 -0
- package/dist/client/request-handler.d.mts.map +1 -1
- package/dist/client/request-handler.mjs +17 -2
- package/dist/client/request-handler.mjs.map +1 -1
- package/dist/inject/index.d.mts +4 -0
- package/dist/inject/index.d.mts.map +1 -1
- package/dist/inject/index.mjs +31 -0
- package/dist/inject/index.mjs.map +1 -1
- package/dist/standalone/assets/{in-memory-adapter-Ban2kRYS.js → in-memory-adapter-uuWG4K4k.js} +1 -1
- package/dist/standalone/assets/main-CKYv0eR6.js +7 -0
- package/dist/standalone/assets/{webcrypto-adapter-Ddqn-RAu.js → webcrypto-adapter-5ShaPc_M.js} +1 -1
- package/dist/standalone/bookmarklet.js +1 -1
- package/dist/standalone/index.html +1 -1
- package/dist/ui/dev-wallet-balances.d.mts.map +1 -1
- package/dist/ui/dev-wallet-balances.mjs +20 -13
- package/dist/ui/dev-wallet-balances.mjs.map +1 -1
- package/dist/ui/dev-wallet-connect-guide.d.mts +29 -0
- package/dist/ui/dev-wallet-connect-guide.d.mts.map +1 -0
- package/dist/ui/dev-wallet-connect-guide.mjs +386 -0
- package/dist/ui/dev-wallet-connect-guide.mjs.map +1 -0
- package/dist/ui/dev-wallet-connected-apps.d.mts +27 -0
- package/dist/ui/dev-wallet-connected-apps.d.mts.map +1 -0
- package/dist/ui/dev-wallet-connected-apps.mjs +164 -0
- package/dist/ui/dev-wallet-connected-apps.mjs.map +1 -0
- package/dist/ui/dev-wallet-panel.d.mts.map +1 -1
- package/dist/ui/dev-wallet-panel.mjs +0 -9
- package/dist/ui/dev-wallet-panel.mjs.map +1 -1
- package/dist/ui/dev-wallet-settings.d.mts +8 -2
- package/dist/ui/dev-wallet-settings.d.mts.map +1 -1
- package/dist/ui/dev-wallet-settings.mjs +86 -171
- package/dist/ui/dev-wallet-settings.mjs.map +1 -1
- package/dist/ui/dev-wallet-standalone.d.mts +7 -2
- package/dist/ui/dev-wallet-standalone.d.mts.map +1 -1
- package/dist/ui/dev-wallet-standalone.mjs +68 -222
- package/dist/ui/dev-wallet-standalone.mjs.map +1 -1
- package/dist/ui/index.d.mts +3 -1
- package/dist/ui/index.mjs +3 -1
- package/dist/ui/wallet-controller.mjs +15 -3
- package/dist/ui/wallet-controller.mjs.map +1 -1
- package/dist/wallet/dev-wallet.d.mts +15 -3
- package/dist/wallet/dev-wallet.d.mts.map +1 -1
- package/dist/wallet/dev-wallet.mjs +94 -30
- package/dist/wallet/dev-wallet.mjs.map +1 -1
- package/dist/wallet/persisted.mjs +20 -0
- package/dist/wallet/persisted.mjs.map +1 -0
- package/package.json +6 -6
- package/src/app/main.ts +6 -2
- package/src/client/connected-apps.ts +79 -0
- package/src/client/dev-wallet-client.ts +2 -1
- package/src/client/index.ts +2 -0
- package/src/client/request-handler.ts +24 -1
- package/src/inject/index.ts +55 -0
- package/src/ui/dev-wallet-balances.ts +25 -13
- package/src/ui/dev-wallet-connect-guide.ts +428 -0
- package/src/ui/dev-wallet-connected-apps.ts +191 -0
- package/src/ui/dev-wallet-panel.ts +0 -9
- package/src/ui/dev-wallet-settings.ts +101 -179
- package/src/ui/dev-wallet-standalone.ts +80 -231
- package/src/ui/index.ts +2 -0
- package/src/ui/wallet-controller.ts +23 -3
- package/src/wallet/dev-wallet.ts +130 -39
- package/src/wallet/persisted.ts +24 -0
- package/dist/standalone/assets/main-xfzarPod.js +0 -7
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ConnectedAppsStore } from "../client/connected-apps.mjs";
|
|
1
2
|
import { DevWallet } from "../wallet/dev-wallet.mjs";
|
|
2
3
|
import { CoinRecord } from "./utils.mjs";
|
|
3
4
|
import { LitElement } from "lit";
|
|
@@ -7,12 +8,16 @@ declare class DevWalletStandalone extends LitElement {
|
|
|
7
8
|
#private;
|
|
8
9
|
static styles: (import("lit").CSSResult | import("lit").CSSResult[])[];
|
|
9
10
|
wallet: DevWallet | null;
|
|
10
|
-
/**
|
|
11
|
-
|
|
11
|
+
/** Origin this wallet is served from. Drives the bookmarklet, console
|
|
12
|
+
* script, and dApp Kit snippet. Defaults to the page's own origin. */
|
|
13
|
+
walletOrigin: string;
|
|
12
14
|
/** Optional pre-seeded coin metadata. Pass the generated `coins`
|
|
13
15
|
* constant from devstack codegen to skip per-coin RPC fetches in the
|
|
14
16
|
* balances list and signing modal. */
|
|
15
17
|
coins: CoinRecord | null;
|
|
18
|
+
/** Connected-dApps store shared with the signing popup. Pass the same
|
|
19
|
+
* store to `parseWalletRequest` so Disconnect takes effect. */
|
|
20
|
+
connectedApps: ConnectedAppsStore | null;
|
|
16
21
|
willUpdate(changedProperties: Map<string, unknown>): void;
|
|
17
22
|
updated(): void;
|
|
18
23
|
render(): import("lit").TemplateResult<1>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-wallet-standalone.d.mts","names":[],"sources":["../../src/ui/dev-wallet-standalone.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-wallet-standalone.d.mts","names":[],"sources":["../../src/ui/dev-wallet-standalone.ts"],"mappings":";;;;;;cAiBa,mBAAA,SAA4B,UAAA;EAAA;SACxB,MAAA,iBAAM,SAAA,iBAAA,SAAA;EAsKtB,MAAA,EAAQ,SAAA;;;EAKR,YAAA;EAWe;;;EALf,KAAA,EAAO,UAAA;EAlL2C;;EAuLlD,aAAA,EAAe,kBAAA;EAIN,UAAA,CAAW,iBAAA,EAAmB,GAAA;EAe9B,OAAA;EASA,MAAA,kBAAM,cAAA;AAAA;AAAA,QAwCR,MAAA;EAAA,UACG,qBAAA;IACT,uBAAA,EAAyB,mBAAmB;EAAA;AAAA"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { connectDialogStyles, sharedStyles } from "./styles.mjs";
|
|
2
2
|
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.mjs";
|
|
3
|
+
import "./dev-wallet-connect-guide.mjs";
|
|
4
|
+
import "./dev-wallet-connected-apps.mjs";
|
|
3
5
|
import { WalletController } from "./wallet-controller.mjs";
|
|
4
|
-
import { LitElement, css, html } from "lit";
|
|
6
|
+
import { LitElement, css, html, nothing } from "lit";
|
|
5
7
|
import { customElement, property } from "lit/decorators.js";
|
|
6
8
|
//#region src/ui/dev-wallet-standalone.ts
|
|
9
|
+
const DOCS_URL = "https://ts-sdks-incubation.vercel.app/dev-wallet";
|
|
7
10
|
let DevWalletStandalone = class DevWalletStandalone extends LitElement {
|
|
8
11
|
constructor(..._args) {
|
|
9
12
|
super(..._args);
|
|
10
13
|
this.wallet = null;
|
|
11
|
-
this.
|
|
14
|
+
this.walletOrigin = globalThis.location?.origin ?? "";
|
|
12
15
|
this.coins = null;
|
|
16
|
+
this.connectedApps = null;
|
|
13
17
|
this.#ctrl = new WalletController(this);
|
|
14
18
|
}
|
|
15
19
|
static {
|
|
@@ -31,147 +35,65 @@ let DevWalletStandalone = class DevWalletStandalone extends LitElement {
|
|
|
31
35
|
background-position: -1px -1px;
|
|
32
36
|
}
|
|
33
37
|
|
|
38
|
+
/* Wallet centered: connect help on the left, connected apps on the right. */
|
|
34
39
|
.standalone-layout {
|
|
35
40
|
width: 100%;
|
|
36
|
-
max-width: 1220px;
|
|
37
|
-
min-height: calc(100vh - 48px);
|
|
38
41
|
margin: 0 auto;
|
|
39
42
|
padding: 24px 0;
|
|
40
43
|
display: grid;
|
|
41
|
-
grid-template-columns: minmax(
|
|
42
|
-
gap:
|
|
44
|
+
grid-template-columns: minmax(0, 1fr) 480px minmax(0, 1fr);
|
|
45
|
+
gap: 36px;
|
|
43
46
|
align-items: start;
|
|
44
47
|
}
|
|
45
48
|
|
|
46
|
-
.
|
|
47
|
-
|
|
48
|
-
display: flex;
|
|
49
|
-
flex-direction: column;
|
|
50
|
-
gap: 16px;
|
|
51
|
-
padding-top: 6px;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.wordmark {
|
|
55
|
-
display: flex;
|
|
56
|
-
align-items: center;
|
|
57
|
-
gap: 10px;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.logo-mark {
|
|
61
|
-
width: 28px;
|
|
62
|
-
height: 28px;
|
|
63
|
-
border-radius: 9px;
|
|
64
|
-
display: inline-flex;
|
|
65
|
-
align-items: center;
|
|
66
|
-
justify-content: center;
|
|
67
|
-
color: var(--dev-wallet-primary-foreground);
|
|
68
|
-
background:
|
|
69
|
-
radial-gradient(circle at 35% 25%, rgba(255, 255, 255, 0.5), transparent 24px),
|
|
70
|
-
linear-gradient(135deg, var(--dev-wallet-primary), var(--dev-wallet-teal));
|
|
71
|
-
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.logo-mark svg {
|
|
75
|
-
width: 18px;
|
|
76
|
-
height: 18px;
|
|
49
|
+
.card {
|
|
50
|
+
grid-column: 2;
|
|
77
51
|
}
|
|
78
52
|
|
|
79
|
-
.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
53
|
+
.rail-left {
|
|
54
|
+
grid-column: 1;
|
|
55
|
+
justify-self: end;
|
|
56
|
+
width: 100%;
|
|
83
57
|
}
|
|
84
58
|
|
|
85
|
-
.
|
|
86
|
-
|
|
87
|
-
font-weight: var(--dev-wallet-font-weight-semibold);
|
|
59
|
+
.rail-right {
|
|
60
|
+
grid-column: 3;
|
|
88
61
|
}
|
|
89
62
|
|
|
90
|
-
.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
letter-spacing: 0.12em;
|
|
94
|
-
text-transform: uppercase;
|
|
95
|
-
color: var(--dev-wallet-text-3);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.rail-section {
|
|
63
|
+
.rail {
|
|
64
|
+
max-width: 348px;
|
|
65
|
+
min-width: 0;
|
|
99
66
|
display: flex;
|
|
100
67
|
flex-direction: column;
|
|
101
|
-
gap:
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
.rail-title {
|
|
105
|
-
font-family: var(--dev-wallet-font-mono);
|
|
106
|
-
font-size: 10px;
|
|
107
|
-
font-weight: var(--dev-wallet-font-weight-medium);
|
|
108
|
-
letter-spacing: 0.14em;
|
|
109
|
-
text-transform: uppercase;
|
|
110
|
-
color: var(--dev-wallet-text-3);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.code {
|
|
114
|
-
margin: 0;
|
|
115
|
-
overflow: auto;
|
|
116
|
-
white-space: pre;
|
|
117
|
-
padding: 10px 12px;
|
|
118
|
-
border-radius: var(--dev-wallet-radius);
|
|
119
|
-
border: 1px solid var(--dev-wallet-border);
|
|
120
|
-
background: var(--dev-wallet-bg-0);
|
|
121
|
-
color: var(--dev-wallet-foreground);
|
|
122
|
-
font-family: var(--dev-wallet-font-mono);
|
|
123
|
-
font-size: 11.5px;
|
|
68
|
+
gap: 24px;
|
|
69
|
+
padding-top: 8px;
|
|
70
|
+
font-size: 12px;
|
|
124
71
|
line-height: 1.55;
|
|
72
|
+
color: var(--dev-wallet-muted-foreground);
|
|
125
73
|
}
|
|
126
74
|
|
|
127
|
-
.
|
|
75
|
+
.about {
|
|
76
|
+
padding-top: 16px;
|
|
77
|
+
border-top: 1px solid var(--dev-wallet-border);
|
|
128
78
|
display: flex;
|
|
129
79
|
flex-direction: column;
|
|
130
80
|
gap: 6px;
|
|
81
|
+
font-size: 11px;
|
|
82
|
+
color: var(--dev-wallet-text-3);
|
|
131
83
|
}
|
|
132
84
|
|
|
133
|
-
.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
min-width: 0;
|
|
138
|
-
padding: 8px 10px;
|
|
139
|
-
border-radius: var(--dev-wallet-radius-lg);
|
|
140
|
-
border: 1px solid var(--dev-wallet-border);
|
|
141
|
-
background: color-mix(in srgb, var(--dev-wallet-bg-1) 88%, transparent);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
.status-dot {
|
|
145
|
-
width: 7px;
|
|
146
|
-
height: 7px;
|
|
147
|
-
border-radius: 999px;
|
|
148
|
-
background: var(--dev-wallet-status-connected);
|
|
149
|
-
flex-shrink: 0;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.status-dot.mute {
|
|
153
|
-
background: var(--dev-wallet-text-3);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.status-copy {
|
|
157
|
-
min-width: 0;
|
|
158
|
-
display: flex;
|
|
159
|
-
flex-direction: column;
|
|
160
|
-
gap: 1px;
|
|
85
|
+
.about code {
|
|
86
|
+
font-family: var(--dev-wallet-font-mono);
|
|
87
|
+
font-size: 10.5px;
|
|
88
|
+
color: var(--dev-wallet-muted-foreground);
|
|
161
89
|
}
|
|
162
90
|
|
|
163
|
-
.
|
|
164
|
-
|
|
165
|
-
font-weight: var(--dev-wallet-font-weight-medium);
|
|
91
|
+
.about a {
|
|
92
|
+
color: var(--dev-wallet-muted-foreground);
|
|
166
93
|
}
|
|
167
94
|
|
|
168
|
-
.
|
|
169
|
-
|
|
170
|
-
font-size: 10.5px;
|
|
171
|
-
color: var(--dev-wallet-text-3);
|
|
172
|
-
overflow: hidden;
|
|
173
|
-
text-overflow: ellipsis;
|
|
174
|
-
white-space: nowrap;
|
|
95
|
+
.about a:hover {
|
|
96
|
+
color: var(--dev-wallet-foreground);
|
|
175
97
|
}
|
|
176
98
|
|
|
177
99
|
.card {
|
|
@@ -210,19 +132,6 @@ let DevWalletStandalone = class DevWalletStandalone extends LitElement {
|
|
|
210
132
|
margin-left: auto;
|
|
211
133
|
}
|
|
212
134
|
|
|
213
|
-
.status-dot {
|
|
214
|
-
width: 8px;
|
|
215
|
-
height: 8px;
|
|
216
|
-
border-radius: 50%;
|
|
217
|
-
background: var(--dev-wallet-status-connected);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.status-text {
|
|
221
|
-
font-family: var(--dev-wallet-font-mono);
|
|
222
|
-
font-size: 10.5px;
|
|
223
|
-
color: var(--dev-wallet-muted-foreground);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
135
|
.card-body {
|
|
227
136
|
overflow-y: auto;
|
|
228
137
|
flex: 1;
|
|
@@ -239,12 +148,18 @@ let DevWalletStandalone = class DevWalletStandalone extends LitElement {
|
|
|
239
148
|
border-bottom: 0;
|
|
240
149
|
}
|
|
241
150
|
|
|
242
|
-
|
|
151
|
+
/* Too narrow to keep the wallet centered with the aside beside it:
|
|
152
|
+
hide the aside. The Settings tab carries the same connect guide. */
|
|
153
|
+
@media (max-width: 1240px) {
|
|
243
154
|
.standalone-layout {
|
|
244
155
|
grid-template-columns: minmax(0, 480px);
|
|
245
156
|
justify-content: center;
|
|
246
157
|
}
|
|
247
158
|
|
|
159
|
+
.card {
|
|
160
|
+
grid-column: 1;
|
|
161
|
+
}
|
|
162
|
+
|
|
248
163
|
.rail {
|
|
249
164
|
display: none;
|
|
250
165
|
}
|
|
@@ -256,7 +171,6 @@ let DevWalletStandalone = class DevWalletStandalone extends LitElement {
|
|
|
256
171
|
}
|
|
257
172
|
|
|
258
173
|
.standalone-layout {
|
|
259
|
-
min-height: calc(100vh - 24px);
|
|
260
174
|
padding: 0;
|
|
261
175
|
}
|
|
262
176
|
|
|
@@ -271,7 +185,8 @@ let DevWalletStandalone = class DevWalletStandalone extends LitElement {
|
|
|
271
185
|
#ctrl;
|
|
272
186
|
willUpdate(changedProperties) {
|
|
273
187
|
if (changedProperties.has("wallet")) this.#ctrl.wallet = this.wallet;
|
|
274
|
-
if (changedProperties.has("
|
|
188
|
+
if (changedProperties.has("walletOrigin")) this.#ctrl.walletOrigin = this.walletOrigin;
|
|
189
|
+
if (changedProperties.has("connectedApps")) this.#ctrl.connectedApps = this.connectedApps;
|
|
275
190
|
if (changedProperties.has("coins")) this.#ctrl.coins = this.coins;
|
|
276
191
|
}
|
|
277
192
|
updated() {
|
|
@@ -282,111 +197,42 @@ let DevWalletStandalone = class DevWalletStandalone extends LitElement {
|
|
|
282
197
|
render() {
|
|
283
198
|
return html`
|
|
284
199
|
<div class="standalone-layout">
|
|
285
|
-
<aside class="rail"
|
|
286
|
-
|
|
200
|
+
<aside class="rail rail-left">
|
|
201
|
+
<dev-wallet-connect-guide .origin=${this.walletOrigin}></dev-wallet-connect-guide>
|
|
202
|
+
${this.#renderAbout()}
|
|
203
|
+
</aside>
|
|
204
|
+
<main class="card" part="card">
|
|
287
205
|
<div class="card-header">
|
|
288
|
-
<span class="
|
|
289
|
-
<
|
|
290
|
-
<span class="card-title">${this.wallet?.name ?? "Dev Wallet"}</span>
|
|
291
|
-
<span class="version">v0.1.0</span>
|
|
292
|
-
</span>
|
|
293
|
-
<div class="header-right">
|
|
294
|
-
${this.#ctrl.renderNetworkBadge()}
|
|
295
|
-
<span class="status-dot"></span>
|
|
296
|
-
<span class="status-text">Running</span>
|
|
297
|
-
</div>
|
|
206
|
+
<span class="card-title">${this.wallet?.name ?? "Dev Wallet"}</span>
|
|
207
|
+
<div class="header-right">${this.#ctrl.renderNetworkBadge()}</div>
|
|
298
208
|
</div>
|
|
299
209
|
${this.#ctrl.renderTabBar()}
|
|
300
210
|
<div class="card-body">${this.#ctrl.renderTabContent()}</div>
|
|
301
|
-
</
|
|
302
|
-
<aside class="rail"
|
|
211
|
+
</main>
|
|
212
|
+
<aside class="rail rail-right">
|
|
213
|
+
<dev-wallet-connected-apps .store=${this.connectedApps}></dev-wallet-connected-apps>
|
|
214
|
+
</aside>
|
|
303
215
|
</div>
|
|
304
216
|
${this.#ctrl.renderSigningModal()} ${this.#ctrl.renderConnectPicker()}
|
|
305
217
|
`;
|
|
306
218
|
}
|
|
307
|
-
#
|
|
308
|
-
const origin = this.bookmarkletOrigin || globalThis.location?.origin || "http://localhost:5174";
|
|
309
|
-
const quickStart = `npx @mysten-incubation/dev-wallet serve\n${origin}`;
|
|
310
|
-
const clientSnippet = `createDAppKit({
|
|
311
|
-
walletInitializers: [
|
|
312
|
-
devWalletClientInitializer({
|
|
313
|
-
origin: '${origin}'
|
|
314
|
-
})
|
|
315
|
-
]
|
|
316
|
-
})`;
|
|
317
|
-
return html`
|
|
318
|
-
<div class="wordmark">
|
|
319
|
-
<span class="logo-mark">${this.#walletIcon}</span>
|
|
320
|
-
<span class="wordmark-title">
|
|
321
|
-
<strong>Dev Wallet</strong>
|
|
322
|
-
<span class="version">v0.1.0</span>
|
|
323
|
-
</span>
|
|
324
|
-
</div>
|
|
325
|
-
<div class="rail-section">
|
|
326
|
-
<div class="rail-title">Quick Start</div>
|
|
327
|
-
<pre class="code">${quickStart}</pre>
|
|
328
|
-
</div>
|
|
329
|
-
<div class="rail-section">
|
|
330
|
-
<div class="rail-title">Embed Wallet</div>
|
|
331
|
-
<pre class="code">${`createDAppKit({
|
|
332
|
-
networks: ['devnet'],
|
|
333
|
-
walletInitializers: [
|
|
334
|
-
devWalletInitializer({
|
|
335
|
-
adapters: [
|
|
336
|
-
new WebCryptoSignerAdapter()
|
|
337
|
-
],
|
|
338
|
-
autoConnect: true,
|
|
339
|
-
mountUI: true
|
|
340
|
-
})
|
|
341
|
-
]
|
|
342
|
-
})`}</pre>
|
|
343
|
-
</div>
|
|
344
|
-
<div class="rail-section">
|
|
345
|
-
<div class="rail-title">Standalone Client</div>
|
|
346
|
-
<pre class="code">${clientSnippet}</pre>
|
|
347
|
-
</div>
|
|
348
|
-
<div class="rail-section">
|
|
349
|
-
<div class="rail-title">Bookmarklet Endpoint</div>
|
|
350
|
-
<pre class="code">${origin}/bookmarklet.js</pre>
|
|
351
|
-
</div>
|
|
352
|
-
`;
|
|
353
|
-
}
|
|
354
|
-
#renderRightRail() {
|
|
355
|
-
const activeNetwork = this.wallet?.activeNetwork ?? "devnet";
|
|
219
|
+
#renderAbout() {
|
|
356
220
|
return html`
|
|
357
|
-
<
|
|
358
|
-
<
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
</span>
|
|
366
|
-
</div>
|
|
367
|
-
<div class="status-row">
|
|
368
|
-
<span class="status-dot mute"></span>
|
|
369
|
-
<span class="status-copy">
|
|
370
|
-
<strong>${this.wallet?.accounts.length ?? 0} account(s)</strong>
|
|
371
|
-
<span>${this.wallet?.adapters.length ?? 0} adapter(s): ${this.wallet?.adapters.map((adapter) => adapter.name).join(", ") ?? "No adapters"}</span>
|
|
372
|
-
</span>
|
|
373
|
-
</div>
|
|
374
|
-
</div>
|
|
375
|
-
</div>
|
|
221
|
+
<footer class="about">
|
|
222
|
+
<span>Keys are stored in this browser only. Don't hold real funds here.</span>
|
|
223
|
+
${/^https?:\/\/(localhost|127\.0\.0\.1)(:|$)/.test(this.walletOrigin) ? nothing : html`<span>
|
|
224
|
+
For your <code>sui</code> CLI keys or localnet, run it locally:
|
|
225
|
+
<code>npx @mysten-incubation/dev-wallet serve</code>
|
|
226
|
+
</span>`}
|
|
227
|
+
<a href=${DOCS_URL} target="_blank" rel="noopener noreferrer">Documentation ↗</a>
|
|
228
|
+
</footer>
|
|
376
229
|
`;
|
|
377
230
|
}
|
|
378
|
-
get #walletIcon() {
|
|
379
|
-
return html`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7">
|
|
380
|
-
<rect x="2" y="6" width="20" height="14" rx="2.5" />
|
|
381
|
-
<path d="M2 10h20" />
|
|
382
|
-
<rect x="15" y="12" width="5" height="4" rx="1" />
|
|
383
|
-
<circle cx="17.5" cy="14" r="0.5" fill="currentColor" stroke="none" />
|
|
384
|
-
</svg>`;
|
|
385
|
-
}
|
|
386
231
|
};
|
|
387
232
|
__decorate([property({ attribute: false })], DevWalletStandalone.prototype, "wallet", void 0);
|
|
388
|
-
__decorate([property({ type: String })], DevWalletStandalone.prototype, "
|
|
233
|
+
__decorate([property({ type: String })], DevWalletStandalone.prototype, "walletOrigin", void 0);
|
|
389
234
|
__decorate([property({ attribute: false })], DevWalletStandalone.prototype, "coins", void 0);
|
|
235
|
+
__decorate([property({ attribute: false })], DevWalletStandalone.prototype, "connectedApps", void 0);
|
|
390
236
|
DevWalletStandalone = __decorate([customElement("dev-wallet-standalone")], DevWalletStandalone);
|
|
391
237
|
//#endregion
|
|
392
238
|
export { DevWalletStandalone };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-wallet-standalone.mjs","names":["#ctrl","#renderLeftRail","#walletIcon","#renderRightRail"],"sources":["../../src/ui/dev-wallet-standalone.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport type { DevWallet } from '../wallet/dev-wallet.js';\nimport { connectDialogStyles, sharedStyles } from './styles.js';\nimport type { CoinRecord } from './utils.js';\nimport { WalletController } from './wallet-controller.js';\n\n@customElement('dev-wallet-standalone')\nexport class DevWalletStandalone extends LitElement {\n\tstatic override styles = [\n\t\tsharedStyles,\n\t\tconnectDialogStyles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t\tmin-height: 100vh;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tpadding: 24px;\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tbackground-color: var(--dev-wallet-bg-0);\n\t\t\t\tbackground-image:\n\t\t\t\t\tlinear-gradient(var(--dev-wallet-border) 1px, transparent 1px),\n\t\t\t\t\tlinear-gradient(90deg, var(--dev-wallet-border) 1px, transparent 1px);\n\t\t\t\tbackground-size: 32px 32px;\n\t\t\t\tbackground-position: -1px -1px;\n\t\t\t}\n\n\t\t\t.standalone-layout {\n\t\t\t\twidth: 100%;\n\t\t\t\tmax-width: 1220px;\n\t\t\t\tmin-height: calc(100vh - 48px);\n\t\t\t\tmargin: 0 auto;\n\t\t\t\tpadding: 24px 0;\n\t\t\t\tdisplay: grid;\n\t\t\t\tgrid-template-columns: minmax(240px, 1fr) 480px minmax(260px, 1fr);\n\t\t\t\tgap: 20px;\n\t\t\t\talign-items: start;\n\t\t\t}\n\n\t\t\t.rail {\n\t\t\t\tmin-width: 0;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 16px;\n\t\t\t\tpadding-top: 6px;\n\t\t\t}\n\n\t\t\t.wordmark {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 10px;\n\t\t\t}\n\n\t\t\t.logo-mark {\n\t\t\t\twidth: 28px;\n\t\t\t\theight: 28px;\n\t\t\t\tborder-radius: 9px;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tcolor: var(--dev-wallet-primary-foreground);\n\t\t\t\tbackground:\n\t\t\t\t\tradial-gradient(circle at 35% 25%, rgba(255, 255, 255, 0.5), transparent 24px),\n\t\t\t\t\tlinear-gradient(135deg, var(--dev-wallet-primary), var(--dev-wallet-teal));\n\t\t\t\tbox-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);\n\t\t\t}\n\n\t\t\t.logo-mark svg {\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 18px;\n\t\t\t}\n\n\t\t\t.wordmark-title {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tline-height: 1.1;\n\t\t\t}\n\n\t\t\t.wordmark-title strong {\n\t\t\t\tfont-size: 16px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-semibold);\n\t\t\t}\n\n\t\t\t.version {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 9px;\n\t\t\t\tletter-spacing: 0.12em;\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tcolor: var(--dev-wallet-text-3);\n\t\t\t}\n\n\t\t\t.rail-section {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 8px;\n\t\t\t}\n\n\t\t\t.rail-title {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 10px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-medium);\n\t\t\t\tletter-spacing: 0.14em;\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tcolor: var(--dev-wallet-text-3);\n\t\t\t}\n\n\t\t\t.code {\n\t\t\t\tmargin: 0;\n\t\t\t\toverflow: auto;\n\t\t\t\twhite-space: pre;\n\t\t\t\tpadding: 10px 12px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tbackground: var(--dev-wallet-bg-0);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 11.5px;\n\t\t\t\tline-height: 1.55;\n\t\t\t}\n\n\t\t\t.status-list {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 6px;\n\t\t\t}\n\n\t\t\t.status-row {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 8px;\n\t\t\t\tmin-width: 0;\n\t\t\t\tpadding: 8px 10px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-lg);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tbackground: color-mix(in srgb, var(--dev-wallet-bg-1) 88%, transparent);\n\t\t\t}\n\n\t\t\t.status-dot {\n\t\t\t\twidth: 7px;\n\t\t\t\theight: 7px;\n\t\t\t\tborder-radius: 999px;\n\t\t\t\tbackground: var(--dev-wallet-status-connected);\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\n\t\t\t.status-dot.mute {\n\t\t\t\tbackground: var(--dev-wallet-text-3);\n\t\t\t}\n\n\t\t\t.status-copy {\n\t\t\t\tmin-width: 0;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 1px;\n\t\t\t}\n\n\t\t\t.status-copy strong {\n\t\t\t\tfont-size: 12px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-medium);\n\t\t\t}\n\n\t\t\t.status-copy span {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 10.5px;\n\t\t\t\tcolor: var(--dev-wallet-text-3);\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t\t.card {\n\t\t\t\twidth: 100%;\n\t\t\t\tmax-width: 480px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xl);\n\t\t\t\tbackground: var(--dev-wallet-surface);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border-2);\n\t\t\t\tbox-shadow: var(--dev-wallet-shadow-drawer);\n\t\t\t\toverflow: hidden;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\theight: min(640px, calc(100vh - 48px));\n\t\t\t\tmin-height: 540px;\n\t\t\t}\n\n\t\t\t.card-header {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 8px;\n\t\t\t\tpadding: 10px 14px;\n\t\t\t\tborder-bottom: 1px solid var(--dev-wallet-border);\n\t\t\t\tbackground: var(--dev-wallet-bg-1);\n\t\t\t}\n\n\t\t\t.card-title {\n\t\t\t\tfont-size: 12.5px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-semibold);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t}\n\n\t\t\t.header-right {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 8px;\n\t\t\t\tmargin-left: auto;\n\t\t\t}\n\n\t\t\t.status-dot {\n\t\t\t\twidth: 8px;\n\t\t\t\theight: 8px;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbackground: var(--dev-wallet-status-connected);\n\t\t\t}\n\n\t\t\t.status-text {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 10.5px;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t}\n\n\t\t\t.card-body {\n\t\t\t\toverflow-y: auto;\n\t\t\t\tflex: 1;\n\t\t\t\tmin-height: 0;\n\t\t\t\tbackground: var(--dev-wallet-bg-0);\n\t\t\t}\n\n\t\t\t.section {\n\t\t\t\tpadding: 14px;\n\t\t\t\tborder-bottom: 1px solid var(--dev-wallet-border);\n\t\t\t}\n\n\t\t\t.section:last-child {\n\t\t\t\tborder-bottom: 0;\n\t\t\t}\n\n\t\t\t@media (max-width: 1020px) {\n\t\t\t\t.standalone-layout {\n\t\t\t\t\tgrid-template-columns: minmax(0, 480px);\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t}\n\n\t\t\t\t.rail {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 560px) {\n\t\t\t\t:host {\n\t\t\t\t\tpadding: 12px;\n\t\t\t\t}\n\n\t\t\t\t.standalone-layout {\n\t\t\t\t\tmin-height: calc(100vh - 24px);\n\t\t\t\t\tpadding: 0;\n\t\t\t\t}\n\n\t\t\t\t.card {\n\t\t\t\t\theight: calc(100vh - 24px);\n\t\t\t\t\tmin-height: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t`,\n\t];\n\n\t@property({ attribute: false })\n\twallet: DevWallet | null = null;\n\n\t/** When set, the settings tab shows a bookmarklet section pointing to this origin. */\n\t@property({ type: String })\n\tbookmarkletOrigin = '';\n\n\t/** Optional pre-seeded coin metadata. Pass the generated `coins`\n\t * constant from devstack codegen to skip per-coin RPC fetches in the\n\t * balances list and signing modal. */\n\t@property({ attribute: false })\n\tcoins: CoinRecord | null = null;\n\n\t#ctrl = new WalletController(this);\n\n\toverride willUpdate(changedProperties: Map<string, unknown>) {\n\t\tif (changedProperties.has('wallet')) {\n\t\t\tthis.#ctrl.wallet = this.wallet;\n\t\t}\n\t\tif (changedProperties.has('bookmarkletOrigin')) {\n\t\t\tthis.#ctrl.bookmarkletOrigin = this.bookmarkletOrigin;\n\t\t}\n\t\tif (changedProperties.has('coins')) {\n\t\t\tthis.#ctrl.coins = this.coins;\n\t\t}\n\t}\n\n\toverride updated() {\n\t\tconst dialog = this.shadowRoot?.querySelector<HTMLDialogElement>('.connect-dialog');\n\t\tif (this.#ctrl.pendingConnect && dialog && !dialog.open) {\n\t\t\tdialog.showModal();\n\t\t} else if (!this.#ctrl.pendingConnect && dialog?.open) {\n\t\t\tdialog.close();\n\t\t}\n\t}\n\n\toverride render() {\n\t\treturn html`\n\t\t\t<div class=\"standalone-layout\">\n\t\t\t\t<aside class=\"rail\">${this.#renderLeftRail()}</aside>\n\t\t\t\t<div class=\"card\" part=\"card\">\n\t\t\t\t\t<div class=\"card-header\">\n\t\t\t\t\t\t<span class=\"logo-mark\">${this.#walletIcon}</span>\n\t\t\t\t\t\t<span class=\"wordmark-title\">\n\t\t\t\t\t\t\t<span class=\"card-title\">${this.wallet?.name ?? 'Dev Wallet'}</span>\n\t\t\t\t\t\t\t<span class=\"version\">v0.1.0</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<div class=\"header-right\">\n\t\t\t\t\t\t\t${this.#ctrl.renderNetworkBadge()}\n\t\t\t\t\t\t\t<span class=\"status-dot\"></span>\n\t\t\t\t\t\t\t<span class=\"status-text\">Running</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t${this.#ctrl.renderTabBar()}\n\t\t\t\t\t<div class=\"card-body\">${this.#ctrl.renderTabContent()}</div>\n\t\t\t\t</div>\n\t\t\t\t<aside class=\"rail\">${this.#renderRightRail()}</aside>\n\t\t\t</div>\n\t\t\t${this.#ctrl.renderSigningModal()} ${this.#ctrl.renderConnectPicker()}\n\t\t`;\n\t}\n\n\t#renderLeftRail() {\n\t\tconst origin = this.bookmarkletOrigin || globalThis.location?.origin || 'http://localhost:5174';\n\t\tconst quickStart = `npx @mysten-incubation/dev-wallet serve\\n${origin}`;\n\t\tconst clientSnippet = `createDAppKit({\n walletInitializers: [\n devWalletClientInitializer({\n origin: '${origin}'\n })\n ]\n})`;\n\t\tconst embeddingSnippet = `createDAppKit({\n networks: ['devnet'],\n walletInitializers: [\n devWalletInitializer({\n adapters: [\n new WebCryptoSignerAdapter()\n ],\n autoConnect: true,\n mountUI: true\n })\n ]\n})`;\n\t\treturn html`\n\t\t\t<div class=\"wordmark\">\n\t\t\t\t<span class=\"logo-mark\">${this.#walletIcon}</span>\n\t\t\t\t<span class=\"wordmark-title\">\n\t\t\t\t\t<strong>Dev Wallet</strong>\n\t\t\t\t\t<span class=\"version\">v0.1.0</span>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"rail-section\">\n\t\t\t\t<div class=\"rail-title\">Quick Start</div>\n\t\t\t\t<pre class=\"code\">${quickStart}</pre>\n\t\t\t</div>\n\t\t\t<div class=\"rail-section\">\n\t\t\t\t<div class=\"rail-title\">Embed Wallet</div>\n\t\t\t\t<pre class=\"code\">${embeddingSnippet}</pre>\n\t\t\t</div>\n\t\t\t<div class=\"rail-section\">\n\t\t\t\t<div class=\"rail-title\">Standalone Client</div>\n\t\t\t\t<pre class=\"code\">${clientSnippet}</pre>\n\t\t\t</div>\n\t\t\t<div class=\"rail-section\">\n\t\t\t\t<div class=\"rail-title\">Bookmarklet Endpoint</div>\n\t\t\t\t<pre class=\"code\">${origin}/bookmarklet.js</pre>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderRightRail() {\n\t\tconst activeNetwork = this.wallet?.activeNetwork ?? 'devnet';\n\t\tconst networkUrl = this.wallet?.networkUrls[activeNetwork] ?? 'client configured by dApp Kit';\n\t\tconst accountCount = this.wallet?.accounts.length ?? 0;\n\t\tconst adapterCount = this.wallet?.adapters.length ?? 0;\n\t\tconst adapterNames =\n\t\t\tthis.wallet?.adapters.map((adapter) => adapter.name).join(', ') ?? 'No adapters';\n\t\treturn html`\n\t\t\t<div class=\"rail-section\">\n\t\t\t\t<div class=\"rail-title\">Wallet Status</div>\n\t\t\t\t<div class=\"status-list\">\n\t\t\t\t\t<div class=\"status-row\">\n\t\t\t\t\t\t<span class=\"status-dot\"></span>\n\t\t\t\t\t\t<span class=\"status-copy\">\n\t\t\t\t\t\t\t<strong>Network: ${activeNetwork}</strong>\n\t\t\t\t\t\t\t<span>${networkUrl}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"status-row\">\n\t\t\t\t\t\t<span class=\"status-dot mute\"></span>\n\t\t\t\t\t\t<span class=\"status-copy\">\n\t\t\t\t\t\t\t<strong>${accountCount} account(s)</strong>\n\t\t\t\t\t\t\t<span>${adapterCount} adapter(s): ${adapterNames}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tget #walletIcon() {\n\t\treturn html`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\">\n\t\t\t<rect x=\"2\" y=\"6\" width=\"20\" height=\"14\" rx=\"2.5\" />\n\t\t\t<path d=\"M2 10h20\" />\n\t\t\t<rect x=\"15\" y=\"12\" width=\"5\" height=\"4\" rx=\"1\" />\n\t\t\t<circle cx=\"17.5\" cy=\"14\" r=\"0.5\" fill=\"currentColor\" stroke=\"none\" />\n\t\t</svg>`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'dev-wallet-standalone': DevWalletStandalone;\n\t}\n}\n"],"mappings":";;;;;;AAYO,IAAA,sBAAA,MAAM,4BAA4B,WAAW;;;gBAiQxB;2BAIP;eAMO;eAEnB,IAAI,iBAAiB,IAAI;;;gBA5QR;GACxB;GACA;GACA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0PJ;;CAeA;CAEA,WAAoB,mBAAyC;EAC5D,IAAI,kBAAkB,IAAI,QAAQ,GACjC,KAAKA,MAAM,SAAS,KAAK;EAE1B,IAAI,kBAAkB,IAAI,mBAAmB,GAC5C,KAAKA,MAAM,oBAAoB,KAAK;EAErC,IAAI,kBAAkB,IAAI,OAAO,GAChC,KAAKA,MAAM,QAAQ,KAAK;CAE1B;CAEA,UAAmB;EAClB,MAAM,SAAS,KAAK,YAAY,cAAiC,iBAAiB;EAClF,IAAI,KAAKA,MAAM,kBAAkB,UAAU,CAAC,OAAO,MAClD,OAAO,UAAU;OACX,IAAI,CAAC,KAAKA,MAAM,kBAAkB,QAAQ,MAChD,OAAO,MAAM;CAEf;CAEA,SAAkB;EACjB,OAAO,IAAI;;0BAEa,KAAKC,gBAAgB,EAAE;;;gCAGjB,KAAKC,YAAY;;kCAEf,KAAK,QAAQ,QAAQ,aAAa;;;;SAI3D,KAAKF,MAAM,mBAAmB,EAAE;;;;;OAKlC,KAAKA,MAAM,aAAa,EAAE;8BACH,KAAKA,MAAM,iBAAiB,EAAE;;0BAElC,KAAKG,iBAAiB,EAAE;;KAE7C,KAAKH,MAAM,mBAAmB,EAAE,GAAG,KAAKA,MAAM,oBAAoB,EAAE;;CAExE;CAEA,kBAAkB;EACjB,MAAM,SAAS,KAAK,qBAAqB,WAAW,UAAU,UAAU;EACxE,MAAM,aAAa,4CAA4C;EAC/D,MAAM,gBAAgB;;;iBAGP,OAAO;;;;EAgBtB,OAAO,IAAI;;8BAEiB,KAAKE,YAAY;;;;;;;;wBAQvB,WAAW;;;;wBAIX;;;;;;;;;;;IAAiB;;;;wBAIjB,cAAc;;;;wBAId,OAAO;;;CAG9B;CAEA,mBAAmB;EAClB,MAAM,gBAAgB,KAAK,QAAQ,iBAAiB;EAMpD,OAAO,IAAI;;;;;;;0BAOa,cAAc;eAZnB,KAAK,QAAQ,YAAY,kBAAkB,gCAatC;;;;;;iBAZH,KAAK,QAAQ,SAAS,UAAU,EAkBzB;eAjBP,KAAK,QAAQ,SAAS,UAAU,EAkB3B,eAhBzB,KAAK,QAAQ,SAAS,KAAK,YAAY,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,cAgBd;;;;;;CAMvD;CAEA,IAAIA,cAAc;EACjB,OAAO,IAAI;;;;;;CAMZ;AACD;YArJE,SAAS,EAAE,WAAW,MAAM,CAAC,CAAA,GAAA,oBAAA,WAAA,UAAA,KAAA,CAAA;YAI7B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,oBAAA,WAAA,qBAAA,KAAA,CAAA;YAMzB,SAAS,EAAE,WAAW,MAAM,CAAC,CAAA,GAAA,oBAAA,WAAA,SAAA,KAAA,CAAA;kCA3Q9B,cAAc,uBAAuB,CAAA,GAAA,mBAAA"}
|
|
1
|
+
{"version":3,"file":"dev-wallet-standalone.mjs","names":["#ctrl","#renderAbout"],"sources":["../../src/ui/dev-wallet-standalone.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { css, html, LitElement, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport type { DevWallet } from '../wallet/dev-wallet.js';\nimport type { ConnectedAppsStore } from '../client/connected-apps.js';\nimport './dev-wallet-connect-guide.js';\nimport './dev-wallet-connected-apps.js';\nimport { connectDialogStyles, sharedStyles } from './styles.js';\nimport type { CoinRecord } from './utils.js';\nimport { WalletController } from './wallet-controller.js';\n\nconst DOCS_URL = 'https://ts-sdks-incubation.vercel.app/dev-wallet';\n\n@customElement('dev-wallet-standalone')\nexport class DevWalletStandalone extends LitElement {\n\tstatic override styles = [\n\t\tsharedStyles,\n\t\tconnectDialogStyles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t\tmin-height: 100vh;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tpadding: 24px;\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tbackground-color: var(--dev-wallet-bg-0);\n\t\t\t\tbackground-image:\n\t\t\t\t\tlinear-gradient(var(--dev-wallet-border) 1px, transparent 1px),\n\t\t\t\t\tlinear-gradient(90deg, var(--dev-wallet-border) 1px, transparent 1px);\n\t\t\t\tbackground-size: 32px 32px;\n\t\t\t\tbackground-position: -1px -1px;\n\t\t\t}\n\n\t\t\t/* Wallet centered: connect help on the left, connected apps on the right. */\n\t\t\t.standalone-layout {\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin: 0 auto;\n\t\t\t\tpadding: 24px 0;\n\t\t\t\tdisplay: grid;\n\t\t\t\tgrid-template-columns: minmax(0, 1fr) 480px minmax(0, 1fr);\n\t\t\t\tgap: 36px;\n\t\t\t\talign-items: start;\n\t\t\t}\n\n\t\t\t.card {\n\t\t\t\tgrid-column: 2;\n\t\t\t}\n\n\t\t\t.rail-left {\n\t\t\t\tgrid-column: 1;\n\t\t\t\tjustify-self: end;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.rail-right {\n\t\t\t\tgrid-column: 3;\n\t\t\t}\n\n\t\t\t.rail {\n\t\t\t\tmax-width: 348px;\n\t\t\t\tmin-width: 0;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 24px;\n\t\t\t\tpadding-top: 8px;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tline-height: 1.55;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t}\n\n\t\t\t.about {\n\t\t\t\tpadding-top: 16px;\n\t\t\t\tborder-top: 1px solid var(--dev-wallet-border);\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 6px;\n\t\t\t\tfont-size: 11px;\n\t\t\t\tcolor: var(--dev-wallet-text-3);\n\t\t\t}\n\n\t\t\t.about code {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 10.5px;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t}\n\n\t\t\t.about a {\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t}\n\n\t\t\t.about a:hover {\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t}\n\n\t\t\t.card {\n\t\t\t\twidth: 100%;\n\t\t\t\tmax-width: 480px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xl);\n\t\t\t\tbackground: var(--dev-wallet-surface);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border-2);\n\t\t\t\tbox-shadow: var(--dev-wallet-shadow-drawer);\n\t\t\t\toverflow: hidden;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\theight: min(640px, calc(100vh - 48px));\n\t\t\t\tmin-height: 540px;\n\t\t\t}\n\n\t\t\t.card-header {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 8px;\n\t\t\t\tpadding: 10px 14px;\n\t\t\t\tborder-bottom: 1px solid var(--dev-wallet-border);\n\t\t\t\tbackground: var(--dev-wallet-bg-1);\n\t\t\t}\n\n\t\t\t.card-title {\n\t\t\t\tfont-size: 12.5px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-semibold);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t}\n\n\t\t\t.header-right {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 8px;\n\t\t\t\tmargin-left: auto;\n\t\t\t}\n\n\t\t\t.card-body {\n\t\t\t\toverflow-y: auto;\n\t\t\t\tflex: 1;\n\t\t\t\tmin-height: 0;\n\t\t\t\tbackground: var(--dev-wallet-bg-0);\n\t\t\t}\n\n\t\t\t.section {\n\t\t\t\tpadding: 14px;\n\t\t\t\tborder-bottom: 1px solid var(--dev-wallet-border);\n\t\t\t}\n\n\t\t\t.section:last-child {\n\t\t\t\tborder-bottom: 0;\n\t\t\t}\n\n\t\t\t/* Too narrow to keep the wallet centered with the aside beside it:\n\t\t\t hide the aside. The Settings tab carries the same connect guide. */\n\t\t\t@media (max-width: 1240px) {\n\t\t\t\t.standalone-layout {\n\t\t\t\t\tgrid-template-columns: minmax(0, 480px);\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t}\n\n\t\t\t\t.card {\n\t\t\t\t\tgrid-column: 1;\n\t\t\t\t}\n\n\t\t\t\t.rail {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 560px) {\n\t\t\t\t:host {\n\t\t\t\t\tpadding: 12px;\n\t\t\t\t}\n\n\t\t\t\t.standalone-layout {\n\t\t\t\t\tpadding: 0;\n\t\t\t\t}\n\n\t\t\t\t.card {\n\t\t\t\t\theight: calc(100vh - 24px);\n\t\t\t\t\tmin-height: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t`,\n\t];\n\n\t@property({ attribute: false })\n\twallet: DevWallet | null = null;\n\n\t/** Origin this wallet is served from. Drives the bookmarklet, console\n\t * script, and dApp Kit snippet. Defaults to the page's own origin. */\n\t@property({ type: String })\n\twalletOrigin = globalThis.location?.origin ?? '';\n\n\t/** Optional pre-seeded coin metadata. Pass the generated `coins`\n\t * constant from devstack codegen to skip per-coin RPC fetches in the\n\t * balances list and signing modal. */\n\t@property({ attribute: false })\n\tcoins: CoinRecord | null = null;\n\n\t/** Connected-dApps store shared with the signing popup. Pass the same\n\t * store to `parseWalletRequest` so Disconnect takes effect. */\n\t@property({ attribute: false })\n\tconnectedApps: ConnectedAppsStore | null = null;\n\n\t#ctrl = new WalletController(this);\n\n\toverride willUpdate(changedProperties: Map<string, unknown>) {\n\t\tif (changedProperties.has('wallet')) {\n\t\t\tthis.#ctrl.wallet = this.wallet;\n\t\t}\n\t\tif (changedProperties.has('walletOrigin')) {\n\t\t\tthis.#ctrl.walletOrigin = this.walletOrigin;\n\t\t}\n\t\tif (changedProperties.has('connectedApps')) {\n\t\t\tthis.#ctrl.connectedApps = this.connectedApps;\n\t\t}\n\t\tif (changedProperties.has('coins')) {\n\t\t\tthis.#ctrl.coins = this.coins;\n\t\t}\n\t}\n\n\toverride updated() {\n\t\tconst dialog = this.shadowRoot?.querySelector<HTMLDialogElement>('.connect-dialog');\n\t\tif (this.#ctrl.pendingConnect && dialog && !dialog.open) {\n\t\t\tdialog.showModal();\n\t\t} else if (!this.#ctrl.pendingConnect && dialog?.open) {\n\t\t\tdialog.close();\n\t\t}\n\t}\n\n\toverride render() {\n\t\treturn html`\n\t\t\t<div class=\"standalone-layout\">\n\t\t\t\t<aside class=\"rail rail-left\">\n\t\t\t\t\t<dev-wallet-connect-guide .origin=${this.walletOrigin}></dev-wallet-connect-guide>\n\t\t\t\t\t${this.#renderAbout()}\n\t\t\t\t</aside>\n\t\t\t\t<main class=\"card\" part=\"card\">\n\t\t\t\t\t<div class=\"card-header\">\n\t\t\t\t\t\t<span class=\"card-title\">${this.wallet?.name ?? 'Dev Wallet'}</span>\n\t\t\t\t\t\t<div class=\"header-right\">${this.#ctrl.renderNetworkBadge()}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t${this.#ctrl.renderTabBar()}\n\t\t\t\t\t<div class=\"card-body\">${this.#ctrl.renderTabContent()}</div>\n\t\t\t\t</main>\n\t\t\t\t<aside class=\"rail rail-right\">\n\t\t\t\t\t<dev-wallet-connected-apps .store=${this.connectedApps}></dev-wallet-connected-apps>\n\t\t\t\t</aside>\n\t\t\t</div>\n\t\t\t${this.#ctrl.renderSigningModal()} ${this.#ctrl.renderConnectPicker()}\n\t\t`;\n\t}\n\n\t#renderAbout() {\n\t\tconst isLocal = /^https?:\\/\\/(localhost|127\\.0\\.0\\.1)(:|$)/.test(this.walletOrigin);\n\t\treturn html`\n\t\t\t<footer class=\"about\">\n\t\t\t\t<span>Keys are stored in this browser only. Don't hold real funds here.</span>\n\t\t\t\t${isLocal\n\t\t\t\t\t? nothing\n\t\t\t\t\t: html`<span>\n\t\t\t\t\t\t\tFor your <code>sui</code> CLI keys or localnet, run it locally:\n\t\t\t\t\t\t\t<code>npx @mysten-incubation/dev-wallet serve</code>\n\t\t\t\t\t\t</span>`}\n\t\t\t\t<a href=${DOCS_URL} target=\"_blank\" rel=\"noopener noreferrer\">Documentation ↗</a>\n\t\t\t</footer>\n\t\t`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'dev-wallet-standalone': DevWalletStandalone;\n\t}\n}\n"],"mappings":";;;;;;;;AAcA,MAAM,WAAW;AAGV,IAAA,sBAAA,MAAM,4BAA4B,WAAW;;;gBAuKxB;sBAKZ,WAAW,UAAU,UAAU;eAMnB;uBAKgB;eAEnC,IAAI,iBAAiB,IAAI;;;gBAxLR;GACxB;GACA;GACA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgKJ;;CAqBA;CAEA,WAAoB,mBAAyC;EAC5D,IAAI,kBAAkB,IAAI,QAAQ,GACjC,KAAKA,MAAM,SAAS,KAAK;EAE1B,IAAI,kBAAkB,IAAI,cAAc,GACvC,KAAKA,MAAM,eAAe,KAAK;EAEhC,IAAI,kBAAkB,IAAI,eAAe,GACxC,KAAKA,MAAM,gBAAgB,KAAK;EAEjC,IAAI,kBAAkB,IAAI,OAAO,GAChC,KAAKA,MAAM,QAAQ,KAAK;CAE1B;CAEA,UAAmB;EAClB,MAAM,SAAS,KAAK,YAAY,cAAiC,iBAAiB;EAClF,IAAI,KAAKA,MAAM,kBAAkB,UAAU,CAAC,OAAO,MAClD,OAAO,UAAU;OACX,IAAI,CAAC,KAAKA,MAAM,kBAAkB,QAAQ,MAChD,OAAO,MAAM;CAEf;CAEA,SAAkB;EACjB,OAAO,IAAI;;;yCAG4B,KAAK,aAAa;OACpD,KAAKC,aAAa,EAAE;;;;iCAIM,KAAK,QAAQ,QAAQ,aAAa;kCACjC,KAAKD,MAAM,mBAAmB,EAAE;;OAE3D,KAAKA,MAAM,aAAa,EAAE;8BACH,KAAKA,MAAM,iBAAiB,EAAE;;;yCAGnB,KAAK,cAAc;;;KAGvD,KAAKA,MAAM,mBAAmB,EAAE,GAAG,KAAKA,MAAM,oBAAoB,EAAE;;CAExE;CAEA,eAAe;EAEd,OAAO,IAAI;;;MADK,4CAA4C,KAAK,KAAK,YAIlE,IACC,UACA,IAAI;;;eAGI;cACD,SAAS;;;CAGtB;AACD;YAnFE,SAAS,EAAE,WAAW,MAAM,CAAC,CAAA,GAAA,oBAAA,WAAA,UAAA,KAAA,CAAA;YAK7B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,oBAAA,WAAA,gBAAA,KAAA,CAAA;YAMzB,SAAS,EAAE,WAAW,MAAM,CAAC,CAAA,GAAA,oBAAA,WAAA,SAAA,KAAA,CAAA;YAK7B,SAAS,EAAE,WAAW,MAAM,CAAC,CAAA,GAAA,oBAAA,WAAA,iBAAA,KAAA,CAAA;kCAvL9B,cAAc,uBAAuB,CAAA,GAAA,mBAAA"}
|
package/dist/ui/index.d.mts
CHANGED
|
@@ -5,6 +5,8 @@ import { DevWalletAccounts } from "./dev-wallet-accounts.mjs";
|
|
|
5
5
|
import { DevWalletBalances } from "./dev-wallet-balances.mjs";
|
|
6
6
|
import { DevWalletSigning } from "./dev-wallet-signing.mjs";
|
|
7
7
|
import { DevWalletConnect } from "./dev-wallet-connect.mjs";
|
|
8
|
+
import { DevWalletConnectGuide } from "./dev-wallet-connect-guide.mjs";
|
|
9
|
+
import { DevWalletConnectedApps } from "./dev-wallet-connected-apps.mjs";
|
|
8
10
|
import { DevWalletObjects } from "./dev-wallet-objects.mjs";
|
|
9
11
|
import { DevWalletPopup } from "./dev-wallet-popup.mjs";
|
|
10
12
|
import { DevWalletSettings } from "./dev-wallet-settings.mjs";
|
|
@@ -15,4 +17,4 @@ import { DevWalletNetworkBadge } from "./dev-wallet-network-badge.mjs";
|
|
|
15
17
|
import { DevWalletTabBar } from "./dev-wallet-tab-bar.mjs";
|
|
16
18
|
import { DevWalletForkPanel } from "./dev-wallet-fork-panel.mjs";
|
|
17
19
|
import { mountDevWallet } from "./mount.mjs";
|
|
18
|
-
export { DevWalletAccountSelector, DevWalletAccounts, DevWalletBalances, DevWalletConnect, DevWalletDropdown, DevWalletForkPanel, DevWalletNetworkBadge, DevWalletNewAccount, DevWalletObjects, DevWalletPanel, DevWalletPopup, DevWalletSettings, DevWalletSigning, DevWalletSigningModal, DevWalletStandalone, DevWalletTabBar, mountDevWallet };
|
|
20
|
+
export { DevWalletAccountSelector, DevWalletAccounts, DevWalletBalances, DevWalletConnect, DevWalletConnectGuide, DevWalletConnectedApps, DevWalletDropdown, DevWalletForkPanel, DevWalletNetworkBadge, DevWalletNewAccount, DevWalletObjects, DevWalletPanel, DevWalletPopup, DevWalletSettings, DevWalletSigning, DevWalletSigningModal, DevWalletStandalone, DevWalletTabBar, mountDevWallet };
|
package/dist/ui/index.mjs
CHANGED
|
@@ -7,6 +7,8 @@ import { DevWalletNetworkBadge } from "./dev-wallet-network-badge.mjs";
|
|
|
7
7
|
import { DevWalletObjects } from "./dev-wallet-objects.mjs";
|
|
8
8
|
import { DevWalletNewAccount } from "./dev-wallet-new-account.mjs";
|
|
9
9
|
import { DevWalletAccounts } from "./dev-wallet-accounts.mjs";
|
|
10
|
+
import { DevWalletConnectGuide } from "./dev-wallet-connect-guide.mjs";
|
|
11
|
+
import { DevWalletConnectedApps } from "./dev-wallet-connected-apps.mjs";
|
|
10
12
|
import { DevWalletSettings } from "./dev-wallet-settings.mjs";
|
|
11
13
|
import { DevWalletSigning } from "./dev-wallet-signing.mjs";
|
|
12
14
|
import { DevWalletSigningModal } from "./dev-wallet-signing-modal.mjs";
|
|
@@ -15,4 +17,4 @@ import { DevWalletPanel } from "./dev-wallet-panel.mjs";
|
|
|
15
17
|
import { DevWalletPopup } from "./dev-wallet-popup.mjs";
|
|
16
18
|
import { DevWalletStandalone } from "./dev-wallet-standalone.mjs";
|
|
17
19
|
import { mountDevWallet } from "./mount.mjs";
|
|
18
|
-
export { DevWalletAccountSelector, DevWalletAccounts, DevWalletBalances, DevWalletConnect, DevWalletDropdown, DevWalletForkPanel, DevWalletNetworkBadge, DevWalletNewAccount, DevWalletObjects, DevWalletPanel, DevWalletPopup, DevWalletSettings, DevWalletSigning, DevWalletSigningModal, DevWalletStandalone, DevWalletTabBar, mountDevWallet };
|
|
20
|
+
export { DevWalletAccountSelector, DevWalletAccounts, DevWalletBalances, DevWalletConnect, DevWalletConnectGuide, DevWalletConnectedApps, DevWalletDropdown, DevWalletForkPanel, DevWalletNetworkBadge, DevWalletNewAccount, DevWalletObjects, DevWalletPanel, DevWalletPopup, DevWalletSettings, DevWalletSigning, DevWalletSigningModal, DevWalletStandalone, DevWalletTabBar, mountDevWallet };
|
|
@@ -20,6 +20,7 @@ import { html, nothing } from "lit";
|
|
|
20
20
|
*/
|
|
21
21
|
var WalletController = class {
|
|
22
22
|
#wallet;
|
|
23
|
+
#networkKey;
|
|
23
24
|
#unsubscribeEvents;
|
|
24
25
|
#unsubscribeRequests;
|
|
25
26
|
#unsubscribeConnect;
|
|
@@ -29,11 +30,13 @@ var WalletController = class {
|
|
|
29
30
|
this.activeAccountIndex = 0;
|
|
30
31
|
this.pendingRequest = null;
|
|
31
32
|
this.pendingConnect = null;
|
|
32
|
-
this.
|
|
33
|
+
this.walletOrigin = "";
|
|
34
|
+
this.connectedApps = null;
|
|
33
35
|
this.coins = null;
|
|
34
36
|
this.forkRelay = null;
|
|
35
37
|
this.forkUpstream = "";
|
|
36
38
|
this.#wallet = null;
|
|
39
|
+
this.#networkKey = "";
|
|
37
40
|
this.#unsubscribeEvents = null;
|
|
38
41
|
this.#unsubscribeRequests = null;
|
|
39
42
|
this.#unsubscribeConnect = null;
|
|
@@ -66,9 +69,16 @@ var WalletController = class {
|
|
|
66
69
|
const newPending = this.#wallet.pendingRequest;
|
|
67
70
|
const accountsChanged = newAccounts.length !== this.accounts.length || newAccounts.some((a, i) => a.address !== this.accounts[i]?.address);
|
|
68
71
|
const pendingChanged = newPending !== this.pendingRequest;
|
|
69
|
-
|
|
72
|
+
const networkKey = `${this.#wallet.activeNetwork}|${this.#wallet.availableNetworks.join(",")}`;
|
|
73
|
+
const networkChanged = networkKey !== this.#networkKey;
|
|
74
|
+
this.#networkKey = networkKey;
|
|
75
|
+
if (!accountsChanged && !pendingChanged && !networkChanged) return;
|
|
70
76
|
if (accountsChanged) {
|
|
77
|
+
const hadAccounts = this.accounts.length > 0;
|
|
71
78
|
this.accounts = [...newAccounts];
|
|
79
|
+
const persisted = this.#wallet.activeAccount;
|
|
80
|
+
const restored = persisted ? newAccounts.findIndex((a) => a.address === persisted) : -1;
|
|
81
|
+
if (!hadAccounts && restored !== -1) this.activeAccountIndex = restored;
|
|
72
82
|
if (this.activeAccountIndex >= newAccounts.length && newAccounts.length > 0) this.activeAccountIndex = newAccounts.length - 1;
|
|
73
83
|
}
|
|
74
84
|
this.pendingRequest = newPending;
|
|
@@ -120,6 +130,7 @@ var WalletController = class {
|
|
|
120
130
|
const index = this.accounts.findIndex((a) => a.address === e.detail.account.address);
|
|
121
131
|
if (index !== -1) {
|
|
122
132
|
this.activeAccountIndex = index;
|
|
133
|
+
this.#wallet?.setActiveAccount(e.detail.account.address);
|
|
123
134
|
this.host.requestUpdate();
|
|
124
135
|
}
|
|
125
136
|
}
|
|
@@ -194,7 +205,8 @@ var WalletController = class {
|
|
|
194
205
|
.accounts=${this.accounts}
|
|
195
206
|
.adapters=${this.#wallet ? [...this.#wallet.adapters] : []}
|
|
196
207
|
.activeAddress=${this.activeAddress}
|
|
197
|
-
.
|
|
208
|
+
.walletOrigin=${this.walletOrigin}
|
|
209
|
+
.connectedApps=${this.connectedApps}
|
|
198
210
|
@account-selected=${(e) => this.handleAccountSelected(e)}
|
|
199
211
|
></dev-wallet-settings>
|
|
200
212
|
`;
|