@bounded-sh/client 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/useQuery.d.ts +58 -0
- package/dist/{index-BL-0ZKBl.js → index-BBLnBZjY.js} +234 -46
- package/dist/index-BBLnBZjY.js.map +1 -0
- package/dist/{index-CqoP9udN.js → index-BMrN-6oK.js} +1202 -450
- package/dist/index-BMrN-6oK.js.map +1 -0
- package/dist/{index-B2ytfYTB.esm.js → index-D5Ut2JU7.esm.js} +1202 -450
- package/dist/index-D5Ut2JU7.esm.js.map +1 -0
- package/dist/{index-BFOmV3Pb.esm.js → index-DkWfblRJ.esm.js} +1202 -450
- package/dist/index-DkWfblRJ.esm.js.map +1 -0
- package/dist/{index-BgAygrhE.js → index-FYyc3l_y.js} +1202 -450
- package/dist/index-FYyc3l_y.js.map +1 -0
- package/dist/{index-D986s6w7.esm.js → index-n4fG6EZJ.esm.js} +229 -46
- package/dist/index-n4fG6EZJ.esm.js.map +1 -0
- package/dist/{index.browser-D2xm-q6N.esm.js → index.browser-CCWEiCH-.esm.js} +766 -773
- package/dist/index.browser-CCWEiCH-.esm.js.map +1 -0
- package/dist/{index.browser-Bd0GwRur.esm.js → index.browser-C_TToxuO.esm.js} +230 -242
- package/dist/index.browser-C_TToxuO.esm.js.map +1 -0
- package/dist/{index.browser-D8u31irV.js → index.browser-D5evrolK.js} +766 -773
- package/dist/index.browser-D5evrolK.js.map +1 -0
- package/dist/{index.browser-BeM1bzpe.js → index.browser-DcHalmEf.js} +230 -242
- package/dist/index.browser-DcHalmEf.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/{index.native-B-cLm_BI.esm.js → index.native-D5q2RUeV.esm.js} +162 -39
- package/dist/index.native-D5q2RUeV.esm.js.map +1 -0
- package/dist/{index.native-NgHStPq0.js → index.native-D82ofFXB.js} +166 -39
- package/dist/index.native-D82ofFXB.js.map +1 -0
- package/dist/index.native.esm.js +1 -1
- package/dist/index.native.js +5 -1
- package/dist/index.native.js.map +1 -1
- package/dist/{phantom-wallet-provider-Cy5T9EVd.esm.js → phantom-wallet-provider-C8DNu92D.esm.js} +3 -3
- package/dist/{phantom-wallet-provider-Cy5T9EVd.esm.js.map → phantom-wallet-provider-C8DNu92D.esm.js.map} +1 -1
- package/dist/{phantom-wallet-provider-Dy48LSdU.js → phantom-wallet-provider-CoL7g8Sr.js} +3 -3
- package/dist/{phantom-wallet-provider-Dy48LSdU.js.map → phantom-wallet-provider-CoL7g8Sr.js.map} +1 -1
- package/dist/{privy-wallet-provider-CiKtBJ5M.js → privy-wallet-provider-CV1mU4KR.js} +4 -4
- package/dist/{privy-wallet-provider-CiKtBJ5M.js.map → privy-wallet-provider-CV1mU4KR.js.map} +1 -1
- package/dist/{privy-wallet-provider-BDsrUpk4.esm.js → privy-wallet-provider-De3mfJYo.esm.js} +4 -4
- package/dist/{privy-wallet-provider-BDsrUpk4.esm.js.map → privy-wallet-provider-De3mfJYo.esm.js.map} +1 -1
- package/dist/{solana-mobile-wallet-provider-CSk_FIww.esm.js → solana-mobile-wallet-provider-CLCvi-08.esm.js} +5 -5
- package/dist/{solana-mobile-wallet-provider-CSk_FIww.esm.js.map → solana-mobile-wallet-provider-CLCvi-08.esm.js.map} +1 -1
- package/dist/{solana-mobile-wallet-provider-k_YdrTJZ.js → solana-mobile-wallet-provider-D9dPbk__.js} +5 -5
- package/dist/{solana-mobile-wallet-provider-k_YdrTJZ.js.map → solana-mobile-wallet-provider-D9dPbk__.js.map} +1 -1
- package/package.json +2 -2
- package/dist/index-B2ytfYTB.esm.js.map +0 -1
- package/dist/index-BFOmV3Pb.esm.js.map +0 -1
- package/dist/index-BL-0ZKBl.js.map +0 -1
- package/dist/index-BgAygrhE.js.map +0 -1
- package/dist/index-CqoP9udN.js.map +0 -1
- package/dist/index-D986s6w7.esm.js.map +0 -1
- package/dist/index.browser-Bd0GwRur.esm.js.map +0 -1
- package/dist/index.browser-BeM1bzpe.js.map +0 -1
- package/dist/index.browser-D2xm-q6N.esm.js.map +0 -1
- package/dist/index.browser-D8u31irV.js.map +0 -1
- package/dist/index.native-B-cLm_BI.esm.js.map +0 -1
- 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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
3101
|
-
const
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
}
|
|
3107
|
-
|
|
3108
|
-
|
|
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/
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
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$
|
|
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$
|
|
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$
|
|
3414
|
-
contentHtml = ErrorDialogHtml$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
3651
|
-
contentHtml = ErrorDialogHtml
|
|
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
|
|
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$
|
|
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 =
|
|
4097
|
+
const publicKey = base64ToUint8Array(account.address);
|
|
4060
4098
|
return {
|
|
4061
|
-
address:
|
|
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
|
|
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(
|
|
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 =
|
|
4128
|
+
const base64Transaction = base64FromUint8Array(transaction);
|
|
4091
4129
|
return (await wallet.signAndSendTransactions({
|
|
4092
4130
|
...options,
|
|
4093
4131
|
payloads: [base64Transaction]
|
|
4094
|
-
})).signatures.map(
|
|
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 }) =>
|
|
4117
|
-
const messages = inputs.map(({ 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(
|
|
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:
|
|
4154
|
-
publicKey:
|
|
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:
|
|
4159
|
-
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-
|
|
4208
|
+
//# sourceMappingURL=index.browser-C_TToxuO.esm.js.map
|