@bounded-sh/client 0.0.2 → 0.0.3

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 (55) hide show
  1. package/dist/{index-BL-0ZKBl.js → index-2UpSvA7V.js} +2514 -52
  2. package/dist/index-2UpSvA7V.js.map +1 -0
  3. package/dist/{index-CqoP9udN.js → index-C2JpxGAC.js} +1202 -450
  4. package/dist/index-C2JpxGAC.js.map +1 -0
  5. package/dist/{index-BFOmV3Pb.esm.js → index-C2yvle9S.esm.js} +1202 -450
  6. package/dist/index-C2yvle9S.esm.js.map +1 -0
  7. package/dist/{index-BgAygrhE.js → index-CYVVTWs4.js} +1202 -450
  8. package/dist/index-CYVVTWs4.js.map +1 -0
  9. package/dist/{index-B2ytfYTB.esm.js → index-DJg-Dduo.esm.js} +1202 -450
  10. package/dist/index-DJg-Dduo.esm.js.map +1 -0
  11. package/dist/{index-D986s6w7.esm.js → index-DyfiK3_X.esm.js} +2513 -52
  12. package/dist/index-DyfiK3_X.esm.js.map +1 -0
  13. package/dist/{index.browser-D8u31irV.js → index.browser-BTJZmhY1.js} +766 -773
  14. package/dist/index.browser-BTJZmhY1.js.map +1 -0
  15. package/dist/{index.browser-Bd0GwRur.esm.js → index.browser-C_TToxuO.esm.js} +230 -242
  16. package/dist/index.browser-C_TToxuO.esm.js.map +1 -0
  17. package/dist/{index.browser-BeM1bzpe.js → index.browser-DcHalmEf.js} +230 -242
  18. package/dist/index.browser-DcHalmEf.js.map +1 -0
  19. package/dist/{index.browser-D2xm-q6N.esm.js → index.browser-pymH6o1X.esm.js} +766 -773
  20. package/dist/index.browser-pymH6o1X.esm.js.map +1 -0
  21. package/dist/index.esm.js +1 -1
  22. package/dist/index.js +2 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/{index.native-B-cLm_BI.esm.js → index.native-BTjBgNiE.esm.js} +2510 -49
  25. package/dist/index.native-BTjBgNiE.esm.js.map +1 -0
  26. package/dist/{index.native-NgHStPq0.js → index.native-BvsmNFXn.js} +2511 -49
  27. package/dist/index.native-BvsmNFXn.js.map +1 -0
  28. package/dist/index.native.esm.js +1 -1
  29. package/dist/index.native.js +2 -1
  30. package/dist/index.native.js.map +1 -1
  31. package/dist/{phantom-wallet-provider-Dy48LSdU.js → phantom-wallet-provider-BXMvoOrI.js} +3 -3
  32. package/dist/{phantom-wallet-provider-Dy48LSdU.js.map → phantom-wallet-provider-BXMvoOrI.js.map} +1 -1
  33. package/dist/{phantom-wallet-provider-Cy5T9EVd.esm.js → phantom-wallet-provider-CTossIFB.esm.js} +3 -3
  34. package/dist/{phantom-wallet-provider-Cy5T9EVd.esm.js.map → phantom-wallet-provider-CTossIFB.esm.js.map} +1 -1
  35. package/dist/{privy-wallet-provider-BDsrUpk4.esm.js → privy-wallet-provider-1qE_f-DF.esm.js} +4 -4
  36. package/dist/{privy-wallet-provider-BDsrUpk4.esm.js.map → privy-wallet-provider-1qE_f-DF.esm.js.map} +1 -1
  37. package/dist/{privy-wallet-provider-CiKtBJ5M.js → privy-wallet-provider-D64DJ3u4.js} +4 -4
  38. package/dist/{privy-wallet-provider-CiKtBJ5M.js.map → privy-wallet-provider-D64DJ3u4.js.map} +1 -1
  39. package/dist/{solana-mobile-wallet-provider-CSk_FIww.esm.js → solana-mobile-wallet-provider-9M8U6AA7.esm.js} +5 -5
  40. package/dist/{solana-mobile-wallet-provider-CSk_FIww.esm.js.map → solana-mobile-wallet-provider-9M8U6AA7.esm.js.map} +1 -1
  41. package/dist/{solana-mobile-wallet-provider-k_YdrTJZ.js → solana-mobile-wallet-provider-C1wQ1DRK.js} +5 -5
  42. package/dist/{solana-mobile-wallet-provider-k_YdrTJZ.js.map → solana-mobile-wallet-provider-C1wQ1DRK.js.map} +1 -1
  43. package/package.json +2 -2
  44. package/dist/index-B2ytfYTB.esm.js.map +0 -1
  45. package/dist/index-BFOmV3Pb.esm.js.map +0 -1
  46. package/dist/index-BL-0ZKBl.js.map +0 -1
  47. package/dist/index-BgAygrhE.js.map +0 -1
  48. package/dist/index-CqoP9udN.js.map +0 -1
  49. package/dist/index-D986s6w7.esm.js.map +0 -1
  50. package/dist/index.browser-Bd0GwRur.esm.js.map +0 -1
  51. package/dist/index.browser-BeM1bzpe.js.map +0 -1
  52. package/dist/index.browser-D2xm-q6N.esm.js.map +0 -1
  53. package/dist/index.browser-D8u31irV.js.map +0 -1
  54. package/dist/index.native-B-cLm_BI.esm.js.map +0 -1
  55. package/dist/index.native-NgHStPq0.js.map +0 -1
@@ -1,9 +1,8 @@
1
+ import { base64ToUint8Array, base58FromUint8Array, base64FromUint8Array, base58ToUint8Array } from '@solana-mobile/mobile-wallet-adapter-protocol/encoding';
1
2
  import { startScenario, SolanaMobileWalletAdapterError, SolanaMobileWalletAdapterErrorCode } from '@solana-mobile/mobile-wallet-adapter-protocol';
2
- import { o as base58 } from './index.native-B-cLm_BI.esm.js';
3
- import 'axios';
4
- import '@solana/web3.js';
5
- import '@coral-xyz/anchor';
6
- import 'react';
3
+
4
+ /** Solana Mainnet (beta) cluster, e.g. https://api.mainnet-beta.solana.com */
5
+ const SOLANA_MAINNET_CHAIN = 'solana:mainnet';
7
6
 
8
7
  /** Name of the feature. */
9
8
  const SolanaSignAndSendTransaction = 'solana:signAndSendTransaction';
@@ -3097,169 +3096,58 @@ function requireBrowser () {
3097
3096
 
3098
3097
  requireBrowser();
3099
3098
 
3100
- /** Solana Mainnet (beta) cluster, e.g. https://api.mainnet-beta.solana.com */
3101
- const SOLANA_MAINNET_CHAIN = 'solana:mainnet';
3102
-
3103
- //#region src/base64Utils.ts
3104
- function fromUint8Array(byteArray) {
3105
- return window.btoa(String.fromCharCode.call(null, ...byteArray));
3106
- }
3107
- function toUint8Array(base64EncodedByteArray) {
3108
- return new Uint8Array(window.atob(base64EncodedByteArray).split("").map((c) => c.charCodeAt(0)));
3099
+ //#region src/createDefaultAuthorizationCache.ts
3100
+ const CACHE_KEY = "SolanaMobileWalletAdapterDefaultAuthorizationCache";
3101
+ function createDefaultAuthorizationCache() {
3102
+ let storage;
3103
+ try {
3104
+ storage = window.localStorage;
3105
+ } catch {}
3106
+ return {
3107
+ async clear() {
3108
+ if (!storage) return;
3109
+ try {
3110
+ storage.removeItem(CACHE_KEY);
3111
+ } catch {}
3112
+ },
3113
+ async get() {
3114
+ if (!storage) return;
3115
+ try {
3116
+ const parsed = JSON.parse(storage.getItem(CACHE_KEY));
3117
+ if (parsed && parsed.accounts) {
3118
+ const parsedAccounts = parsed.accounts.map((account) => {
3119
+ return {
3120
+ ...account,
3121
+ publicKey: "publicKey" in account ? new Uint8Array(Object.values(account.publicKey)) : base58ToUint8Array(account.address)
3122
+ };
3123
+ });
3124
+ return {
3125
+ ...parsed,
3126
+ accounts: parsedAccounts
3127
+ };
3128
+ } else return parsed || void 0;
3129
+ } catch {}
3130
+ },
3131
+ async set(authorization) {
3132
+ if (!storage) return;
3133
+ try {
3134
+ storage.setItem(CACHE_KEY, JSON.stringify(authorization));
3135
+ } catch {}
3136
+ }
3137
+ };
3109
3138
  }
3110
3139
  //#endregion
3111
- //#region src/embedded-modal/loadingSpinner.ts
3112
- const modalHtml$1 = `
3113
- <div class="mobile-wallet-adapter-embedded-loading-indicator" role="dialog" aria-modal="true" aria-labelledby="modal-title">
3114
- <div data-modal-close style="position: absolute; width: 100%; height: 100%;"></div>
3115
- <div class="mobile-wallet-adapter-embedded-loading-container">
3116
- <div class="mobile-wallet-adapter-embedded-loading-animation"></div>
3117
- </div>
3118
- </div>
3119
- `;
3120
- const css$6 = `
3121
- .mobile-wallet-adapter-embedded-loading-indicator {
3122
- display: flex; /* Use flexbox to center content */
3123
- justify-content: center; /* Center horizontally */
3124
- align-items: start; /* Center vertically */
3125
- position: fixed; /* Stay in place */
3126
- z-index: 1; /* Sit on top */
3127
- left: 0;
3128
- top: 0;
3129
- width: 100%; /* Full width */
3130
- height: 100%; /* Full height */
3131
- background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
3132
- overflow-y: auto; /* enable scrolling */
3133
- }
3134
-
3135
- .mobile-wallet-adapter-embedded-loading-container {
3136
- display: flex;
3137
- margin: auto;
3138
- }
3139
-
3140
- .mobile-wallet-adapter-embedded-loading-animation {
3141
- position: relative;
3142
- left: -9999px;
3143
- width: 10px;
3144
- height: 10px;
3145
- border-radius: 5px;
3146
- background-color: var(--spinner-color);
3147
- color: var(--spinner-color);
3148
- box-shadow: 9984px 0 0 0 var(--spinner-color),
3149
- 9999px 0 0 0 var(--spinner-color),
3150
- 10014px 0 0 0 var(--spinner-color);
3151
- animation: dot-typing 1.5s infinite linear;
3152
- }
3153
-
3154
- @keyframes dot-typing {
3155
- 0% {
3156
- box-shadow: 9984px 0 0 0 var(--spinner-color),
3157
- 9999px 0 0 0 var(--spinner-color),
3158
- 10014px 0 0 0 var(--spinner-color);
3159
- }
3160
- 16.667% {
3161
- box-shadow: 9984px -10px 0 0 var(--spinner-color),
3162
- 9999px 0 0 0 var(--spinner-color),
3163
- 10014px 0 0 0 var(--spinner-color);
3164
- }
3165
- 33.333% {
3166
- box-shadow: 9984px 0 0 0 var(--spinner-color),
3167
- 9999px 0 0 0 var(--spinner-color),
3168
- 10014px 0 0 0 var(--spinner-color);
3169
- }
3170
- 50% {
3171
- box-shadow: 9984px 0 0 0 var(--spinner-color),
3172
- 9999px -10px 0 0 var(--spinner-color),
3173
- 10014px 0 0 0 var(--spinner-color);
3174
- }
3175
- 66.667% {
3176
- box-shadow: 9984px 0 0 0 var(--spinner-color),
3177
- 9999px 0 0 0 var(--spinner-color),
3178
- 10014px 0 0 0 var(--spinner-color);
3179
- }
3180
- 83.333% {
3181
- box-shadow: 9984px 0 0 0 var(--spinner-color),
3182
- 9999px 0 0 0 var(--spinner-color),
3183
- 10014px -10px 0 0 var(--spinner-color);
3184
- }
3185
- 100% {
3186
- box-shadow: 9984px 0 0 0 var(--spinner-color),
3187
- 9999px 0 0 0 var(--spinner-color),
3188
- 10014px 0 0 0 var(--spinner-color);
3189
- }
3140
+ //#region src/createDefaultChainSelector.ts
3141
+ function createDefaultChainSelector() {
3142
+ return { async select(chains) {
3143
+ if (chains.length === 1) return chains[0];
3144
+ else if (chains.includes(SOLANA_MAINNET_CHAIN)) return SOLANA_MAINNET_CHAIN;
3145
+ else return chains[0];
3146
+ } };
3190
3147
  }
3191
- `;
3192
- var EmbeddedLoadingSpinner = class {
3193
- #root = null;
3194
- #eventListeners = {};
3195
- #listenersAttached = false;
3196
- dom = null;
3197
- constructor() {
3198
- this.init = this.init.bind(this);
3199
- this.#root = document.getElementById("mobile-wallet-adapter-embedded-root-ui");
3200
- }
3201
- async init() {
3202
- console.log("Injecting modal");
3203
- this.#injectHTML();
3204
- }
3205
- open = () => {
3206
- console.debug("Modal open");
3207
- this.#attachEventListeners();
3208
- if (this.#root) this.#root.style.display = "flex";
3209
- };
3210
- close = (event = void 0) => {
3211
- console.debug("Modal close");
3212
- this.#removeEventListeners();
3213
- if (this.#root) this.#root.style.display = "none";
3214
- this.#eventListeners["close"]?.forEach((listener) => listener(event));
3215
- };
3216
- addEventListener(event, listener) {
3217
- this.#eventListeners[event]?.push(listener) || (this.#eventListeners[event] = [listener]);
3218
- return () => this.removeEventListener(event, listener);
3219
- }
3220
- removeEventListener(event, listener) {
3221
- this.#eventListeners[event] = this.#eventListeners[event]?.filter((existingListener) => listener !== existingListener);
3222
- }
3223
- #injectHTML() {
3224
- if (this.dom) return;
3225
- this.#root = document.createElement("div");
3226
- this.#root.id = "mobile-wallet-adapter-embedded-root-ui";
3227
- this.#root.innerHTML = modalHtml$1;
3228
- this.#root.style.display = "none";
3229
- const styles = document.createElement("style");
3230
- styles.id = "mobile-wallet-adapter-embedded-modal-styles";
3231
- styles.textContent = css$6;
3232
- const host = document.createElement("div");
3233
- this.dom = host.attachShadow({ mode: "closed" });
3234
- host.style.setProperty("--spinner-color", "#FFFFFF");
3235
- this.dom.appendChild(styles);
3236
- this.dom.appendChild(this.#root);
3237
- document.body.appendChild(host);
3238
- }
3239
- #attachEventListeners() {
3240
- if (!this.#root || this.#listenersAttached) return;
3241
- [...this.#root.querySelectorAll("[data-modal-close]")].forEach((closer) => closer?.addEventListener("click", (event) => {
3242
- this.close(event);
3243
- }));
3244
- window.addEventListener("load", this.close);
3245
- document.addEventListener("keydown", this.#handleKeyDown);
3246
- this.#listenersAttached = true;
3247
- }
3248
- #removeEventListeners() {
3249
- if (!this.#listenersAttached) return;
3250
- window.removeEventListener("load", this.close);
3251
- document.removeEventListener("keydown", this.#handleKeyDown);
3252
- if (!this.#root) return;
3253
- [...this.#root.querySelectorAll("[data-modal-close]")].forEach((closer) => closer?.removeEventListener("click", this.close));
3254
- this.#listenersAttached = false;
3255
- }
3256
- #handleKeyDown = (event) => {
3257
- if (event.key === "Escape") this.close(event);
3258
- };
3259
- };
3260
3148
  //#endregion
3261
3149
  //#region src/embedded-modal/modal.ts
3262
- const modalHtml = `
3150
+ const modalHtml$1 = `
3263
3151
  <div class="mobile-wallet-adapter-embedded-modal-container" role="dialog" aria-modal="true" aria-labelledby="modal-title">
3264
3152
  <div data-modal-close style="position: absolute; width: 100%; height: 100%;"></div>
3265
3153
  <div class="mobile-wallet-adapter-embedded-modal-card">
@@ -3274,7 +3162,7 @@ const modalHtml = `
3274
3162
  </div>
3275
3163
  </div>
3276
3164
  `;
3277
- const css$5 = `
3165
+ const css$6 = `
3278
3166
  .mobile-wallet-adapter-embedded-modal-container {
3279
3167
  display: flex; /* Use flexbox to center content */
3280
3168
  justify-content: center; /* Center horizontally */
@@ -3374,13 +3262,13 @@ var EmbeddedModal = class {
3374
3262
  }
3375
3263
  this.#root = document.createElement("div");
3376
3264
  this.#root.id = "mobile-wallet-adapter-embedded-root-ui";
3377
- this.#root.innerHTML = modalHtml;
3265
+ this.#root.innerHTML = modalHtml$1;
3378
3266
  this.#root.style.display = "none";
3379
3267
  const content = this.#root.querySelector(".mobile-wallet-adapter-embedded-modal-content");
3380
3268
  if (content) content.innerHTML = this.contentHtml;
3381
3269
  const styles = document.createElement("style");
3382
3270
  styles.id = "mobile-wallet-adapter-embedded-modal-styles";
3383
- styles.textContent = css$5 + this.contentStyles;
3271
+ styles.textContent = css$6 + this.contentStyles;
3384
3272
  const host = document.createElement("div");
3385
3273
  host.innerHTML = fonts;
3386
3274
  this.dom = host.attachShadow({ mode: "closed" });
@@ -3410,8 +3298,8 @@ var EmbeddedModal = class {
3410
3298
  //#endregion
3411
3299
  //#region src/embedded-modal/localConnectionModal.ts
3412
3300
  var LocalConnectionModal = class extends EmbeddedModal {
3413
- contentStyles = css$3;
3414
- contentHtml = ErrorDialogHtml$3;
3301
+ contentStyles = css$4;
3302
+ contentHtml = ErrorDialogHtml$2;
3415
3303
  initWithCallback(callback) {
3416
3304
  super.init();
3417
3305
  this.#prepareLaunchAction(callback);
@@ -3426,7 +3314,7 @@ var LocalConnectionModal = class extends EmbeddedModal {
3426
3314
  launchButton?.addEventListener("click", listener);
3427
3315
  }
3428
3316
  };
3429
- const ErrorDialogHtml$3 = `
3317
+ const ErrorDialogHtml$2 = `
3430
3318
  <svg class="mobile-wallet-adapter-embedded-modal-launch-icon" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
3431
3319
  <path d="M21.6 48C7.2 48 0 40.8 0 26.4V21.6C0 7.2 7.2 0 21.6 0H26.4C40.8 0 48 7.2 48 21.6V26.4C48 40.8 40.8 48 26.4 48H21.6Z" fill="#15994E"/>
3432
3320
  <mask id="mask0_189_522" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="8" y="8" width="32" height="32">
@@ -3448,7 +3336,7 @@ const ErrorDialogHtml$3 = `
3448
3336
  </button>
3449
3337
  </div>
3450
3338
  `;
3451
- const css$3 = `
3339
+ const css$4 = `
3452
3340
  .mobile-wallet-adapter-embedded-modal-close {
3453
3341
  display: none;
3454
3342
  }
@@ -3486,10 +3374,10 @@ const css$3 = `
3486
3374
  //#endregion
3487
3375
  //#region src/embedded-modal/loopbackBlockedModal.ts
3488
3376
  var LoopbackPermissionBlockedModal = class extends EmbeddedModal {
3489
- contentStyles = css$2;
3377
+ contentStyles = css$3;
3490
3378
  get contentHtml() {
3491
3379
  const instructions = getIsPwaLaunchedAsApp() ? "Long press the app icon on your home screen to open site settings" : "Tap the lock or settings icon in the address bar to open site settings";
3492
- return ErrorDialogHtml$2.replace("{{PERMISSION_INSTRUCTION_DETAIL}}", instructions);
3380
+ return ErrorDialogHtml$1.replace("{{PERMISSION_INSTRUCTION_DETAIL}}", instructions);
3493
3381
  }
3494
3382
  async init() {
3495
3383
  super.init();
@@ -3504,7 +3392,7 @@ var LoopbackPermissionBlockedModal = class extends EmbeddedModal {
3504
3392
  launchButton?.addEventListener("click", listener);
3505
3393
  }
3506
3394
  };
3507
- const ErrorDialogHtml$2 = `
3395
+ const ErrorDialogHtml$1 = `
3508
3396
  <div class="mobile-wallet-adapter-embedded-modal-header">
3509
3397
  Local Wallet Connection
3510
3398
  </div>
@@ -3557,7 +3445,7 @@ const ErrorDialogHtml$2 = `
3557
3445
  </button>
3558
3446
  </div>
3559
3447
  `;
3560
- const css$2 = `
3448
+ const css$3 = `
3561
3449
  .mobile-wallet-adapter-embedded-modal-close {
3562
3450
  display: none;
3563
3451
  }
@@ -3647,8 +3535,8 @@ const css$2 = `
3647
3535
  //#endregion
3648
3536
  //#region src/embedded-modal/loopbackPermissionModal.ts
3649
3537
  var LoopbackPermissionModal = class extends EmbeddedModal {
3650
- contentStyles = css$1;
3651
- contentHtml = ErrorDialogHtml$1;
3538
+ contentStyles = css$2;
3539
+ contentHtml = ErrorDialogHtml;
3652
3540
  async init() {
3653
3541
  super.init();
3654
3542
  this.#prepareLaunchAction();
@@ -3665,7 +3553,7 @@ var LoopbackPermissionModal = class extends EmbeddedModal {
3665
3553
  launchButton?.addEventListener("click", listener);
3666
3554
  }
3667
3555
  };
3668
- const ErrorDialogHtml$1 = `
3556
+ const ErrorDialogHtml = `
3669
3557
  <div class="mobile-wallet-adapter-embedded-modal-title">Allow connections to your wallet</div>
3670
3558
  <div id="mobile-wallet-adapter-local-launch-message" class="mobile-wallet-adapter-embedded-modal-subtitle">
3671
3559
  Tap "Allow" on the next screen
@@ -3691,7 +3579,7 @@ const ErrorDialogHtml$1 = `
3691
3579
  </button>
3692
3580
  </div>
3693
3581
  `;
3694
- const css$1 = `
3582
+ const css$2 = `
3695
3583
  .mobile-wallet-adapter-embedded-modal-close {
3696
3584
  display: none;
3697
3585
  }
@@ -3793,6 +3681,156 @@ async function checkLocalNetworkAccessPermission() {
3793
3681
  }
3794
3682
  }
3795
3683
  //#endregion
3684
+ //#region src/embedded-modal/loadingSpinner.ts
3685
+ const modalHtml = `
3686
+ <div class="mobile-wallet-adapter-embedded-loading-indicator" role="dialog" aria-modal="true" aria-labelledby="modal-title">
3687
+ <div data-modal-close style="position: absolute; width: 100%; height: 100%;"></div>
3688
+ <div class="mobile-wallet-adapter-embedded-loading-container">
3689
+ <div class="mobile-wallet-adapter-embedded-loading-animation"></div>
3690
+ </div>
3691
+ </div>
3692
+ `;
3693
+ const css$1 = `
3694
+ .mobile-wallet-adapter-embedded-loading-indicator {
3695
+ display: flex; /* Use flexbox to center content */
3696
+ justify-content: center; /* Center horizontally */
3697
+ align-items: start; /* Center vertically */
3698
+ position: fixed; /* Stay in place */
3699
+ z-index: 1; /* Sit on top */
3700
+ left: 0;
3701
+ top: 0;
3702
+ width: 100%; /* Full width */
3703
+ height: 100%; /* Full height */
3704
+ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
3705
+ overflow-y: auto; /* enable scrolling */
3706
+ }
3707
+
3708
+ .mobile-wallet-adapter-embedded-loading-container {
3709
+ display: flex;
3710
+ margin: auto;
3711
+ }
3712
+
3713
+ .mobile-wallet-adapter-embedded-loading-animation {
3714
+ position: relative;
3715
+ left: -9999px;
3716
+ width: 10px;
3717
+ height: 10px;
3718
+ border-radius: 5px;
3719
+ background-color: var(--spinner-color);
3720
+ color: var(--spinner-color);
3721
+ box-shadow: 9984px 0 0 0 var(--spinner-color),
3722
+ 9999px 0 0 0 var(--spinner-color),
3723
+ 10014px 0 0 0 var(--spinner-color);
3724
+ animation: dot-typing 1.5s infinite linear;
3725
+ }
3726
+
3727
+ @keyframes dot-typing {
3728
+ 0% {
3729
+ box-shadow: 9984px 0 0 0 var(--spinner-color),
3730
+ 9999px 0 0 0 var(--spinner-color),
3731
+ 10014px 0 0 0 var(--spinner-color);
3732
+ }
3733
+ 16.667% {
3734
+ box-shadow: 9984px -10px 0 0 var(--spinner-color),
3735
+ 9999px 0 0 0 var(--spinner-color),
3736
+ 10014px 0 0 0 var(--spinner-color);
3737
+ }
3738
+ 33.333% {
3739
+ box-shadow: 9984px 0 0 0 var(--spinner-color),
3740
+ 9999px 0 0 0 var(--spinner-color),
3741
+ 10014px 0 0 0 var(--spinner-color);
3742
+ }
3743
+ 50% {
3744
+ box-shadow: 9984px 0 0 0 var(--spinner-color),
3745
+ 9999px -10px 0 0 var(--spinner-color),
3746
+ 10014px 0 0 0 var(--spinner-color);
3747
+ }
3748
+ 66.667% {
3749
+ box-shadow: 9984px 0 0 0 var(--spinner-color),
3750
+ 9999px 0 0 0 var(--spinner-color),
3751
+ 10014px 0 0 0 var(--spinner-color);
3752
+ }
3753
+ 83.333% {
3754
+ box-shadow: 9984px 0 0 0 var(--spinner-color),
3755
+ 9999px 0 0 0 var(--spinner-color),
3756
+ 10014px -10px 0 0 var(--spinner-color);
3757
+ }
3758
+ 100% {
3759
+ box-shadow: 9984px 0 0 0 var(--spinner-color),
3760
+ 9999px 0 0 0 var(--spinner-color),
3761
+ 10014px 0 0 0 var(--spinner-color);
3762
+ }
3763
+ }
3764
+ `;
3765
+ var EmbeddedLoadingSpinner = class {
3766
+ #root = null;
3767
+ #eventListeners = {};
3768
+ #listenersAttached = false;
3769
+ dom = null;
3770
+ constructor() {
3771
+ this.init = this.init.bind(this);
3772
+ this.#root = document.getElementById("mobile-wallet-adapter-embedded-root-ui");
3773
+ }
3774
+ async init() {
3775
+ console.log("Injecting modal");
3776
+ this.#injectHTML();
3777
+ }
3778
+ open = () => {
3779
+ console.debug("Modal open");
3780
+ this.#attachEventListeners();
3781
+ if (this.#root) this.#root.style.display = "flex";
3782
+ };
3783
+ close = (event = void 0) => {
3784
+ console.debug("Modal close");
3785
+ this.#removeEventListeners();
3786
+ if (this.#root) this.#root.style.display = "none";
3787
+ this.#eventListeners["close"]?.forEach((listener) => listener(event));
3788
+ };
3789
+ addEventListener(event, listener) {
3790
+ this.#eventListeners[event]?.push(listener) || (this.#eventListeners[event] = [listener]);
3791
+ return () => this.removeEventListener(event, listener);
3792
+ }
3793
+ removeEventListener(event, listener) {
3794
+ this.#eventListeners[event] = this.#eventListeners[event]?.filter((existingListener) => listener !== existingListener);
3795
+ }
3796
+ #injectHTML() {
3797
+ if (this.dom) return;
3798
+ this.#root = document.createElement("div");
3799
+ this.#root.id = "mobile-wallet-adapter-embedded-root-ui";
3800
+ this.#root.innerHTML = modalHtml;
3801
+ this.#root.style.display = "none";
3802
+ const styles = document.createElement("style");
3803
+ styles.id = "mobile-wallet-adapter-embedded-modal-styles";
3804
+ styles.textContent = css$1;
3805
+ const host = document.createElement("div");
3806
+ this.dom = host.attachShadow({ mode: "closed" });
3807
+ host.style.setProperty("--spinner-color", "#FFFFFF");
3808
+ this.dom.appendChild(styles);
3809
+ this.dom.appendChild(this.#root);
3810
+ document.body.appendChild(host);
3811
+ }
3812
+ #attachEventListeners() {
3813
+ if (!this.#root || this.#listenersAttached) return;
3814
+ [...this.#root.querySelectorAll("[data-modal-close]")].forEach((closer) => closer?.addEventListener("click", (event) => {
3815
+ this.close(event);
3816
+ }));
3817
+ window.addEventListener("load", this.close);
3818
+ document.addEventListener("keydown", this.#handleKeyDown);
3819
+ this.#listenersAttached = true;
3820
+ }
3821
+ #removeEventListeners() {
3822
+ if (!this.#listenersAttached) return;
3823
+ window.removeEventListener("load", this.close);
3824
+ document.removeEventListener("keydown", this.#handleKeyDown);
3825
+ if (!this.#root) return;
3826
+ [...this.#root.querySelectorAll("[data-modal-close]")].forEach((closer) => closer?.removeEventListener("click", this.close));
3827
+ this.#listenersAttached = false;
3828
+ }
3829
+ #handleKeyDown = (event) => {
3830
+ if (event.key === "Escape") this.close(event);
3831
+ };
3832
+ };
3833
+ //#endregion
3796
3834
  //#region src/icon.ts
3797
3835
  const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03IDIuNUgxN0MxNy44Mjg0IDIuNSAxOC41IDMuMTcxNTcgMTguNSA0VjIwQzE4LjUgMjAuODI4NCAxNy44Mjg0IDIxLjUgMTcgMjEuNUg3QzYuMTcxNTcgMjEuNSA1LjUgMjAuODI4NCA1LjUgMjBWNEM1LjUgMy4xNzE1NyA2LjE3MTU3IDIuNSA3IDIuNVpNMyA0QzMgMS43OTA4NiA0Ljc5MDg2IDAgNyAwSDE3QzE5LjIwOTEgMCAyMSAxLjc5MDg2IDIxIDRWMjBDMjEgMjIuMjA5MSAxOS4yMDkxIDI0IDE3IDI0SDdDNC43OTA4NiAyNCAzIDIyLjIwOTEgMyAyMFY0Wk0xMSA0LjYxNTM4QzEwLjQ0NzcgNC42MTUzOCAxMCA1LjA2MzEgMTAgNS42MTUzOFY2LjM4NDYyQzEwIDYuOTM2OSAxMC40NDc3IDcuMzg0NjIgMTEgNy4zODQ2MkgxM0MxMy41NTIzIDcuMzg0NjIgMTQgNi45MzY5IDE0IDYuMzg0NjJWNS42MTUzOEMxNCA1LjA2MzEgMTMuNTUyMyA0LjYxNTM4IDEzIDQuNjE1MzhIMTFaIiBmaWxsPSIjRENCOEZGIi8+Cjwvc3ZnPgo=";
3798
3836
  //#endregion
@@ -4056,9 +4094,9 @@ var LocalSolanaMobileWalletAdapterWallet = class {
4056
4094
  };
4057
4095
  #accountsToWalletStandardAccounts = (accounts) => {
4058
4096
  return accounts.map((account) => {
4059
- const publicKey = toUint8Array(account.address);
4097
+ const publicKey = base64ToUint8Array(account.address);
4060
4098
  return {
4061
- address: base58.encode(publicKey),
4099
+ address: base58FromUint8Array(publicKey),
4062
4100
  publicKey,
4063
4101
  label: account.label,
4064
4102
  icon: account.icon,
@@ -4071,11 +4109,11 @@ var LocalSolanaMobileWalletAdapterWallet = class {
4071
4109
  const { authToken, chain } = this.#assertIsAuthorized();
4072
4110
  try {
4073
4111
  const base64Transactions = transactions.map((tx) => {
4074
- return fromUint8Array(tx);
4112
+ return base64FromUint8Array(tx);
4075
4113
  });
4076
4114
  return await this.#transact(async (wallet) => {
4077
4115
  await this.#performReauthorization(wallet, authToken, chain);
4078
- return (await wallet.signTransactions({ payloads: base64Transactions })).signed_payloads.map(toUint8Array);
4116
+ return (await wallet.signTransactions({ payloads: base64Transactions })).signed_payloads.map(base64ToUint8Array);
4079
4117
  });
4080
4118
  } catch (e) {
4081
4119
  throw new Error(getErrorMessage(e), { cause: e });
@@ -4087,11 +4125,11 @@ var LocalSolanaMobileWalletAdapterWallet = class {
4087
4125
  return await this.#transact(async (wallet) => {
4088
4126
  const [capabilities] = await Promise.all([wallet.getCapabilities(), this.#performReauthorization(wallet, authToken, chain)]);
4089
4127
  if (capabilities.supports_sign_and_send_transactions) {
4090
- const base64Transaction = fromUint8Array(transaction);
4128
+ const base64Transaction = base64FromUint8Array(transaction);
4091
4129
  return (await wallet.signAndSendTransactions({
4092
4130
  ...options,
4093
4131
  payloads: [base64Transaction]
4094
- })).signatures.map(toUint8Array)[0];
4132
+ })).signatures.map(base64ToUint8Array)[0];
4095
4133
  } else throw new Error("connected wallet does not support signAndSendTransaction");
4096
4134
  });
4097
4135
  } catch (e) {
@@ -4113,15 +4151,15 @@ var LocalSolanaMobileWalletAdapterWallet = class {
4113
4151
  };
4114
4152
  #signMessage = async (...inputs) => {
4115
4153
  const { authToken, chain } = this.#assertIsAuthorized();
4116
- const addresses = inputs.map(({ account }) => fromUint8Array(new Uint8Array(account.publicKey)));
4117
- const messages = inputs.map(({ message }) => fromUint8Array(message));
4154
+ const addresses = inputs.map(({ account }) => base64FromUint8Array(new Uint8Array(account.publicKey)));
4155
+ const messages = inputs.map(({ message }) => base64FromUint8Array(message));
4118
4156
  try {
4119
4157
  return await this.#transact(async (wallet) => {
4120
4158
  await this.#performReauthorization(wallet, authToken, chain);
4121
4159
  return (await wallet.signMessages({
4122
4160
  addresses,
4123
4161
  payloads: messages
4124
- })).signed_payloads.map(toUint8Array).map((signedMessage) => {
4162
+ })).signed_payloads.map(base64ToUint8Array).map((signedMessage) => {
4125
4163
  return {
4126
4164
  signedMessage,
4127
4165
  signature: signedMessage.slice(-SIGNATURE_LENGTH_IN_BYTES)
@@ -4150,13 +4188,13 @@ var LocalSolanaMobileWalletAdapterWallet = class {
4150
4188
  const signedInAccount = authorizationResult.accounts.find((acc) => acc.address == signedInAddress);
4151
4189
  return {
4152
4190
  account: {
4153
- ...signedInAccount ?? { address: base58.encode(toUint8Array(signedInAddress)) },
4154
- publicKey: toUint8Array(signedInAddress),
4191
+ ...signedInAccount ?? { address: base58FromUint8Array(base64ToUint8Array(signedInAddress)) },
4192
+ publicKey: base64ToUint8Array(signedInAddress),
4155
4193
  chains: signedInAccount?.chains ?? this.#chains,
4156
4194
  features: signedInAccount?.features ?? authorizationResult.capabilities.features
4157
4195
  },
4158
- signedMessage: toUint8Array(authorizationResult.sign_in_result.signed_message),
4159
- signature: toUint8Array(authorizationResult.sign_in_result.signature)
4196
+ signedMessage: base64ToUint8Array(authorizationResult.sign_in_result.signed_message),
4197
+ signature: base64ToUint8Array(authorizationResult.sign_in_result.signature)
4160
4198
  };
4161
4199
  } catch (e) {
4162
4200
  throw new Error(getErrorMessage(e), { cause: e });
@@ -4165,56 +4203,6 @@ var LocalSolanaMobileWalletAdapterWallet = class {
4165
4203
  }
4166
4204
  };
4167
4205
  };
4168
- //#endregion
4169
- //#region src/createDefaultAuthorizationCache.ts
4170
- const CACHE_KEY = "SolanaMobileWalletAdapterDefaultAuthorizationCache";
4171
- function createDefaultAuthorizationCache() {
4172
- let storage;
4173
- try {
4174
- storage = window.localStorage;
4175
- } catch {}
4176
- return {
4177
- async clear() {
4178
- if (!storage) return;
4179
- try {
4180
- storage.removeItem(CACHE_KEY);
4181
- } catch {}
4182
- },
4183
- async get() {
4184
- if (!storage) return;
4185
- try {
4186
- const parsed = JSON.parse(storage.getItem(CACHE_KEY));
4187
- if (parsed && parsed.accounts) {
4188
- const parsedAccounts = parsed.accounts.map((account) => {
4189
- return {
4190
- ...account,
4191
- publicKey: "publicKey" in account ? new Uint8Array(Object.values(account.publicKey)) : base58.decode(account.address)
4192
- };
4193
- });
4194
- return {
4195
- ...parsed,
4196
- accounts: parsedAccounts
4197
- };
4198
- } else return parsed || void 0;
4199
- } catch {}
4200
- },
4201
- async set(authorization) {
4202
- if (!storage) return;
4203
- try {
4204
- storage.setItem(CACHE_KEY, JSON.stringify(authorization));
4205
- } catch {}
4206
- }
4207
- };
4208
- }
4209
- //#endregion
4210
- //#region src/createDefaultChainSelector.ts
4211
- function createDefaultChainSelector() {
4212
- return { async select(chains) {
4213
- if (chains.length === 1) return chains[0];
4214
- else if (chains.includes(SOLANA_MAINNET_CHAIN)) return SOLANA_MAINNET_CHAIN;
4215
- else return chains[0];
4216
- } };
4217
- }
4218
4206
 
4219
4207
  export { LocalSolanaMobileWalletAdapterWallet, SolanaMobileWalletAdapterWalletName, createDefaultAuthorizationCache, createDefaultChainSelector };
4220
- //# sourceMappingURL=index.browser-Bd0GwRur.esm.js.map
4208
+ //# sourceMappingURL=index.browser-C_TToxuO.esm.js.map