@bounded-sh/client 0.0.1 → 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.
- package/dist/auth/providers/phantom-wallet-provider.d.ts +1 -1
- package/dist/auth/providers/privy-expo-provider.d.ts +1 -1
- package/dist/auth/providers/solana-mobile-wallet-provider.d.ts +3 -3
- package/dist/{index-VGx-869x.js → index-2UpSvA7V.js} +2586 -124
- package/dist/index-2UpSvA7V.js.map +1 -0
- package/dist/{index-C1VOdmRN.js → index-C2JpxGAC.js} +1202 -450
- package/dist/index-C2JpxGAC.js.map +1 -0
- package/dist/{index-CT2j1oic.esm.js → index-C2yvle9S.esm.js} +1202 -450
- package/dist/index-C2yvle9S.esm.js.map +1 -0
- package/dist/{index-sKqrgk0t.js → index-CYVVTWs4.js} +1202 -450
- package/dist/index-CYVVTWs4.js.map +1 -0
- package/dist/{index-BHTfW8CV.esm.js → index-DJg-Dduo.esm.js} +1202 -450
- package/dist/index-DJg-Dduo.esm.js.map +1 -0
- package/dist/{index-o5Hv9pfS.esm.js → index-DyfiK3_X.esm.js} +2585 -124
- package/dist/index-DyfiK3_X.esm.js.map +1 -0
- package/dist/{index.browser-BJZ7fYwv.js → index.browser-BTJZmhY1.js} +766 -773
- package/dist/index.browser-BTJZmhY1.js.map +1 -0
- package/dist/{index.browser-DaNhOhkQ.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-utVKQsEC.js → index.browser-DcHalmEf.js} +230 -242
- package/dist/index.browser-DcHalmEf.js.map +1 -0
- package/dist/{index.browser-DhAcjdpV.esm.js → index.browser-pymH6o1X.esm.js} +766 -773
- package/dist/index.browser-pymH6o1X.esm.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/{index.native-JPUkdHJj.esm.js → index.native-BTjBgNiE.esm.js} +2556 -95
- package/dist/index.native-BTjBgNiE.esm.js.map +1 -0
- package/dist/{index.native-B5IBOdv_.js → index.native-BvsmNFXn.js} +2557 -95
- package/dist/index.native-BvsmNFXn.js.map +1 -0
- package/dist/index.native.d.ts +1 -1
- package/dist/index.native.esm.js +1 -1
- package/dist/index.native.js +2 -1
- package/dist/index.native.js.map +1 -1
- package/dist/{phantom-wallet-provider-CDLyxrih.js → phantom-wallet-provider-BXMvoOrI.js} +10 -10
- package/dist/phantom-wallet-provider-BXMvoOrI.js.map +1 -0
- package/dist/{phantom-wallet-provider-DMlaSrAl.esm.js → phantom-wallet-provider-CTossIFB.esm.js} +10 -10
- package/dist/phantom-wallet-provider-CTossIFB.esm.js.map +1 -0
- package/dist/{privy-wallet-provider-nR52lXzI.esm.js → privy-wallet-provider-1qE_f-DF.esm.js} +6 -6
- package/dist/privy-wallet-provider-1qE_f-DF.esm.js.map +1 -0
- package/dist/{privy-wallet-provider-DiHHTDbZ.js → privy-wallet-provider-D64DJ3u4.js} +6 -6
- package/dist/privy-wallet-provider-D64DJ3u4.js.map +1 -0
- package/dist/{solana-mobile-wallet-provider-B4CeMMQd.esm.js → solana-mobile-wallet-provider-9M8U6AA7.esm.js} +22 -22
- package/dist/solana-mobile-wallet-provider-9M8U6AA7.esm.js.map +1 -0
- package/dist/{solana-mobile-wallet-provider-BYMfFjZb.js → solana-mobile-wallet-provider-C1wQ1DRK.js} +22 -22
- package/dist/solana-mobile-wallet-provider-C1wQ1DRK.js.map +1 -0
- package/package.json +2 -2
- package/dist/index-BHTfW8CV.esm.js.map +0 -1
- package/dist/index-C1VOdmRN.js.map +0 -1
- package/dist/index-CT2j1oic.esm.js.map +0 -1
- package/dist/index-VGx-869x.js.map +0 -1
- package/dist/index-o5Hv9pfS.esm.js.map +0 -1
- package/dist/index-sKqrgk0t.js.map +0 -1
- package/dist/index.browser-BJZ7fYwv.js.map +0 -1
- package/dist/index.browser-DaNhOhkQ.esm.js.map +0 -1
- package/dist/index.browser-DhAcjdpV.esm.js.map +0 -1
- package/dist/index.browser-utVKQsEC.js.map +0 -1
- package/dist/index.native-B5IBOdv_.js.map +0 -1
- package/dist/index.native-JPUkdHJj.esm.js.map +0 -1
- package/dist/phantom-wallet-provider-CDLyxrih.js.map +0 -1
- package/dist/phantom-wallet-provider-DMlaSrAl.esm.js.map +0 -1
- package/dist/privy-wallet-provider-DiHHTDbZ.js.map +0 -1
- package/dist/privy-wallet-provider-nR52lXzI.esm.js.map +0 -1
- package/dist/solana-mobile-wallet-provider-B4CeMMQd.esm.js.map +0 -1
- package/dist/solana-mobile-wallet-provider-BYMfFjZb.js.map +0 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var encoding = require('@solana-mobile/mobile-wallet-adapter-protocol/encoding');
|
|
3
4
|
var mobileWalletAdapterProtocol = require('@solana-mobile/mobile-wallet-adapter-protocol');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
require('@coral-xyz/anchor');
|
|
8
|
-
require('react');
|
|
5
|
+
|
|
6
|
+
/** Solana Mainnet (beta) cluster, e.g. https://api.mainnet-beta.solana.com */
|
|
7
|
+
const SOLANA_MAINNET_CHAIN = 'solana:mainnet';
|
|
9
8
|
|
|
10
9
|
/** Name of the feature. */
|
|
11
10
|
const SolanaSignAndSendTransaction = 'solana:signAndSendTransaction';
|
|
@@ -3099,169 +3098,58 @@ function requireBrowser () {
|
|
|
3099
3098
|
|
|
3100
3099
|
requireBrowser();
|
|
3101
3100
|
|
|
3102
|
-
|
|
3103
|
-
const
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
}
|
|
3109
|
-
|
|
3110
|
-
|
|
3101
|
+
//#region src/createDefaultAuthorizationCache.ts
|
|
3102
|
+
const CACHE_KEY = "SolanaMobileWalletAdapterDefaultAuthorizationCache";
|
|
3103
|
+
function createDefaultAuthorizationCache() {
|
|
3104
|
+
let storage;
|
|
3105
|
+
try {
|
|
3106
|
+
storage = window.localStorage;
|
|
3107
|
+
} catch {}
|
|
3108
|
+
return {
|
|
3109
|
+
async clear() {
|
|
3110
|
+
if (!storage) return;
|
|
3111
|
+
try {
|
|
3112
|
+
storage.removeItem(CACHE_KEY);
|
|
3113
|
+
} catch {}
|
|
3114
|
+
},
|
|
3115
|
+
async get() {
|
|
3116
|
+
if (!storage) return;
|
|
3117
|
+
try {
|
|
3118
|
+
const parsed = JSON.parse(storage.getItem(CACHE_KEY));
|
|
3119
|
+
if (parsed && parsed.accounts) {
|
|
3120
|
+
const parsedAccounts = parsed.accounts.map((account) => {
|
|
3121
|
+
return {
|
|
3122
|
+
...account,
|
|
3123
|
+
publicKey: "publicKey" in account ? new Uint8Array(Object.values(account.publicKey)) : encoding.base58ToUint8Array(account.address)
|
|
3124
|
+
};
|
|
3125
|
+
});
|
|
3126
|
+
return {
|
|
3127
|
+
...parsed,
|
|
3128
|
+
accounts: parsedAccounts
|
|
3129
|
+
};
|
|
3130
|
+
} else return parsed || void 0;
|
|
3131
|
+
} catch {}
|
|
3132
|
+
},
|
|
3133
|
+
async set(authorization) {
|
|
3134
|
+
if (!storage) return;
|
|
3135
|
+
try {
|
|
3136
|
+
storage.setItem(CACHE_KEY, JSON.stringify(authorization));
|
|
3137
|
+
} catch {}
|
|
3138
|
+
}
|
|
3139
|
+
};
|
|
3111
3140
|
}
|
|
3112
3141
|
//#endregion
|
|
3113
|
-
//#region src/
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
</div>
|
|
3121
|
-
`;
|
|
3122
|
-
const css$6 = `
|
|
3123
|
-
.mobile-wallet-adapter-embedded-loading-indicator {
|
|
3124
|
-
display: flex; /* Use flexbox to center content */
|
|
3125
|
-
justify-content: center; /* Center horizontally */
|
|
3126
|
-
align-items: start; /* Center vertically */
|
|
3127
|
-
position: fixed; /* Stay in place */
|
|
3128
|
-
z-index: 1; /* Sit on top */
|
|
3129
|
-
left: 0;
|
|
3130
|
-
top: 0;
|
|
3131
|
-
width: 100%; /* Full width */
|
|
3132
|
-
height: 100%; /* Full height */
|
|
3133
|
-
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
|
|
3134
|
-
overflow-y: auto; /* enable scrolling */
|
|
3135
|
-
}
|
|
3136
|
-
|
|
3137
|
-
.mobile-wallet-adapter-embedded-loading-container {
|
|
3138
|
-
display: flex;
|
|
3139
|
-
margin: auto;
|
|
3140
|
-
}
|
|
3141
|
-
|
|
3142
|
-
.mobile-wallet-adapter-embedded-loading-animation {
|
|
3143
|
-
position: relative;
|
|
3144
|
-
left: -9999px;
|
|
3145
|
-
width: 10px;
|
|
3146
|
-
height: 10px;
|
|
3147
|
-
border-radius: 5px;
|
|
3148
|
-
background-color: var(--spinner-color);
|
|
3149
|
-
color: var(--spinner-color);
|
|
3150
|
-
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3151
|
-
9999px 0 0 0 var(--spinner-color),
|
|
3152
|
-
10014px 0 0 0 var(--spinner-color);
|
|
3153
|
-
animation: dot-typing 1.5s infinite linear;
|
|
3154
|
-
}
|
|
3155
|
-
|
|
3156
|
-
@keyframes dot-typing {
|
|
3157
|
-
0% {
|
|
3158
|
-
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3159
|
-
9999px 0 0 0 var(--spinner-color),
|
|
3160
|
-
10014px 0 0 0 var(--spinner-color);
|
|
3161
|
-
}
|
|
3162
|
-
16.667% {
|
|
3163
|
-
box-shadow: 9984px -10px 0 0 var(--spinner-color),
|
|
3164
|
-
9999px 0 0 0 var(--spinner-color),
|
|
3165
|
-
10014px 0 0 0 var(--spinner-color);
|
|
3166
|
-
}
|
|
3167
|
-
33.333% {
|
|
3168
|
-
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3169
|
-
9999px 0 0 0 var(--spinner-color),
|
|
3170
|
-
10014px 0 0 0 var(--spinner-color);
|
|
3171
|
-
}
|
|
3172
|
-
50% {
|
|
3173
|
-
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3174
|
-
9999px -10px 0 0 var(--spinner-color),
|
|
3175
|
-
10014px 0 0 0 var(--spinner-color);
|
|
3176
|
-
}
|
|
3177
|
-
66.667% {
|
|
3178
|
-
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3179
|
-
9999px 0 0 0 var(--spinner-color),
|
|
3180
|
-
10014px 0 0 0 var(--spinner-color);
|
|
3181
|
-
}
|
|
3182
|
-
83.333% {
|
|
3183
|
-
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3184
|
-
9999px 0 0 0 var(--spinner-color),
|
|
3185
|
-
10014px -10px 0 0 var(--spinner-color);
|
|
3186
|
-
}
|
|
3187
|
-
100% {
|
|
3188
|
-
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3189
|
-
9999px 0 0 0 var(--spinner-color),
|
|
3190
|
-
10014px 0 0 0 var(--spinner-color);
|
|
3191
|
-
}
|
|
3142
|
+
//#region src/createDefaultChainSelector.ts
|
|
3143
|
+
function createDefaultChainSelector() {
|
|
3144
|
+
return { async select(chains) {
|
|
3145
|
+
if (chains.length === 1) return chains[0];
|
|
3146
|
+
else if (chains.includes(SOLANA_MAINNET_CHAIN)) return SOLANA_MAINNET_CHAIN;
|
|
3147
|
+
else return chains[0];
|
|
3148
|
+
} };
|
|
3192
3149
|
}
|
|
3193
|
-
`;
|
|
3194
|
-
var EmbeddedLoadingSpinner = class {
|
|
3195
|
-
#root = null;
|
|
3196
|
-
#eventListeners = {};
|
|
3197
|
-
#listenersAttached = false;
|
|
3198
|
-
dom = null;
|
|
3199
|
-
constructor() {
|
|
3200
|
-
this.init = this.init.bind(this);
|
|
3201
|
-
this.#root = document.getElementById("mobile-wallet-adapter-embedded-root-ui");
|
|
3202
|
-
}
|
|
3203
|
-
async init() {
|
|
3204
|
-
console.log("Injecting modal");
|
|
3205
|
-
this.#injectHTML();
|
|
3206
|
-
}
|
|
3207
|
-
open = () => {
|
|
3208
|
-
console.debug("Modal open");
|
|
3209
|
-
this.#attachEventListeners();
|
|
3210
|
-
if (this.#root) this.#root.style.display = "flex";
|
|
3211
|
-
};
|
|
3212
|
-
close = (event = void 0) => {
|
|
3213
|
-
console.debug("Modal close");
|
|
3214
|
-
this.#removeEventListeners();
|
|
3215
|
-
if (this.#root) this.#root.style.display = "none";
|
|
3216
|
-
this.#eventListeners["close"]?.forEach((listener) => listener(event));
|
|
3217
|
-
};
|
|
3218
|
-
addEventListener(event, listener) {
|
|
3219
|
-
this.#eventListeners[event]?.push(listener) || (this.#eventListeners[event] = [listener]);
|
|
3220
|
-
return () => this.removeEventListener(event, listener);
|
|
3221
|
-
}
|
|
3222
|
-
removeEventListener(event, listener) {
|
|
3223
|
-
this.#eventListeners[event] = this.#eventListeners[event]?.filter((existingListener) => listener !== existingListener);
|
|
3224
|
-
}
|
|
3225
|
-
#injectHTML() {
|
|
3226
|
-
if (this.dom) return;
|
|
3227
|
-
this.#root = document.createElement("div");
|
|
3228
|
-
this.#root.id = "mobile-wallet-adapter-embedded-root-ui";
|
|
3229
|
-
this.#root.innerHTML = modalHtml$1;
|
|
3230
|
-
this.#root.style.display = "none";
|
|
3231
|
-
const styles = document.createElement("style");
|
|
3232
|
-
styles.id = "mobile-wallet-adapter-embedded-modal-styles";
|
|
3233
|
-
styles.textContent = css$6;
|
|
3234
|
-
const host = document.createElement("div");
|
|
3235
|
-
this.dom = host.attachShadow({ mode: "closed" });
|
|
3236
|
-
host.style.setProperty("--spinner-color", "#FFFFFF");
|
|
3237
|
-
this.dom.appendChild(styles);
|
|
3238
|
-
this.dom.appendChild(this.#root);
|
|
3239
|
-
document.body.appendChild(host);
|
|
3240
|
-
}
|
|
3241
|
-
#attachEventListeners() {
|
|
3242
|
-
if (!this.#root || this.#listenersAttached) return;
|
|
3243
|
-
[...this.#root.querySelectorAll("[data-modal-close]")].forEach((closer) => closer?.addEventListener("click", (event) => {
|
|
3244
|
-
this.close(event);
|
|
3245
|
-
}));
|
|
3246
|
-
window.addEventListener("load", this.close);
|
|
3247
|
-
document.addEventListener("keydown", this.#handleKeyDown);
|
|
3248
|
-
this.#listenersAttached = true;
|
|
3249
|
-
}
|
|
3250
|
-
#removeEventListeners() {
|
|
3251
|
-
if (!this.#listenersAttached) return;
|
|
3252
|
-
window.removeEventListener("load", this.close);
|
|
3253
|
-
document.removeEventListener("keydown", this.#handleKeyDown);
|
|
3254
|
-
if (!this.#root) return;
|
|
3255
|
-
[...this.#root.querySelectorAll("[data-modal-close]")].forEach((closer) => closer?.removeEventListener("click", this.close));
|
|
3256
|
-
this.#listenersAttached = false;
|
|
3257
|
-
}
|
|
3258
|
-
#handleKeyDown = (event) => {
|
|
3259
|
-
if (event.key === "Escape") this.close(event);
|
|
3260
|
-
};
|
|
3261
|
-
};
|
|
3262
3150
|
//#endregion
|
|
3263
3151
|
//#region src/embedded-modal/modal.ts
|
|
3264
|
-
const modalHtml = `
|
|
3152
|
+
const modalHtml$1 = `
|
|
3265
3153
|
<div class="mobile-wallet-adapter-embedded-modal-container" role="dialog" aria-modal="true" aria-labelledby="modal-title">
|
|
3266
3154
|
<div data-modal-close style="position: absolute; width: 100%; height: 100%;"></div>
|
|
3267
3155
|
<div class="mobile-wallet-adapter-embedded-modal-card">
|
|
@@ -3276,7 +3164,7 @@ const modalHtml = `
|
|
|
3276
3164
|
</div>
|
|
3277
3165
|
</div>
|
|
3278
3166
|
`;
|
|
3279
|
-
const css$
|
|
3167
|
+
const css$6 = `
|
|
3280
3168
|
.mobile-wallet-adapter-embedded-modal-container {
|
|
3281
3169
|
display: flex; /* Use flexbox to center content */
|
|
3282
3170
|
justify-content: center; /* Center horizontally */
|
|
@@ -3376,13 +3264,13 @@ var EmbeddedModal = class {
|
|
|
3376
3264
|
}
|
|
3377
3265
|
this.#root = document.createElement("div");
|
|
3378
3266
|
this.#root.id = "mobile-wallet-adapter-embedded-root-ui";
|
|
3379
|
-
this.#root.innerHTML = modalHtml;
|
|
3267
|
+
this.#root.innerHTML = modalHtml$1;
|
|
3380
3268
|
this.#root.style.display = "none";
|
|
3381
3269
|
const content = this.#root.querySelector(".mobile-wallet-adapter-embedded-modal-content");
|
|
3382
3270
|
if (content) content.innerHTML = this.contentHtml;
|
|
3383
3271
|
const styles = document.createElement("style");
|
|
3384
3272
|
styles.id = "mobile-wallet-adapter-embedded-modal-styles";
|
|
3385
|
-
styles.textContent = css$
|
|
3273
|
+
styles.textContent = css$6 + this.contentStyles;
|
|
3386
3274
|
const host = document.createElement("div");
|
|
3387
3275
|
host.innerHTML = fonts;
|
|
3388
3276
|
this.dom = host.attachShadow({ mode: "closed" });
|
|
@@ -3412,8 +3300,8 @@ var EmbeddedModal = class {
|
|
|
3412
3300
|
//#endregion
|
|
3413
3301
|
//#region src/embedded-modal/localConnectionModal.ts
|
|
3414
3302
|
var LocalConnectionModal = class extends EmbeddedModal {
|
|
3415
|
-
contentStyles = css$
|
|
3416
|
-
contentHtml = ErrorDialogHtml$
|
|
3303
|
+
contentStyles = css$4;
|
|
3304
|
+
contentHtml = ErrorDialogHtml$2;
|
|
3417
3305
|
initWithCallback(callback) {
|
|
3418
3306
|
super.init();
|
|
3419
3307
|
this.#prepareLaunchAction(callback);
|
|
@@ -3428,7 +3316,7 @@ var LocalConnectionModal = class extends EmbeddedModal {
|
|
|
3428
3316
|
launchButton?.addEventListener("click", listener);
|
|
3429
3317
|
}
|
|
3430
3318
|
};
|
|
3431
|
-
const ErrorDialogHtml$
|
|
3319
|
+
const ErrorDialogHtml$2 = `
|
|
3432
3320
|
<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">
|
|
3433
3321
|
<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"/>
|
|
3434
3322
|
<mask id="mask0_189_522" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="8" y="8" width="32" height="32">
|
|
@@ -3450,7 +3338,7 @@ const ErrorDialogHtml$3 = `
|
|
|
3450
3338
|
</button>
|
|
3451
3339
|
</div>
|
|
3452
3340
|
`;
|
|
3453
|
-
const css$
|
|
3341
|
+
const css$4 = `
|
|
3454
3342
|
.mobile-wallet-adapter-embedded-modal-close {
|
|
3455
3343
|
display: none;
|
|
3456
3344
|
}
|
|
@@ -3488,10 +3376,10 @@ const css$3 = `
|
|
|
3488
3376
|
//#endregion
|
|
3489
3377
|
//#region src/embedded-modal/loopbackBlockedModal.ts
|
|
3490
3378
|
var LoopbackPermissionBlockedModal = class extends EmbeddedModal {
|
|
3491
|
-
contentStyles = css$
|
|
3379
|
+
contentStyles = css$3;
|
|
3492
3380
|
get contentHtml() {
|
|
3493
3381
|
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";
|
|
3494
|
-
return ErrorDialogHtml$
|
|
3382
|
+
return ErrorDialogHtml$1.replace("{{PERMISSION_INSTRUCTION_DETAIL}}", instructions);
|
|
3495
3383
|
}
|
|
3496
3384
|
async init() {
|
|
3497
3385
|
super.init();
|
|
@@ -3506,7 +3394,7 @@ var LoopbackPermissionBlockedModal = class extends EmbeddedModal {
|
|
|
3506
3394
|
launchButton?.addEventListener("click", listener);
|
|
3507
3395
|
}
|
|
3508
3396
|
};
|
|
3509
|
-
const ErrorDialogHtml$
|
|
3397
|
+
const ErrorDialogHtml$1 = `
|
|
3510
3398
|
<div class="mobile-wallet-adapter-embedded-modal-header">
|
|
3511
3399
|
Local Wallet Connection
|
|
3512
3400
|
</div>
|
|
@@ -3559,7 +3447,7 @@ const ErrorDialogHtml$2 = `
|
|
|
3559
3447
|
</button>
|
|
3560
3448
|
</div>
|
|
3561
3449
|
`;
|
|
3562
|
-
const css$
|
|
3450
|
+
const css$3 = `
|
|
3563
3451
|
.mobile-wallet-adapter-embedded-modal-close {
|
|
3564
3452
|
display: none;
|
|
3565
3453
|
}
|
|
@@ -3649,8 +3537,8 @@ const css$2 = `
|
|
|
3649
3537
|
//#endregion
|
|
3650
3538
|
//#region src/embedded-modal/loopbackPermissionModal.ts
|
|
3651
3539
|
var LoopbackPermissionModal = class extends EmbeddedModal {
|
|
3652
|
-
contentStyles = css$
|
|
3653
|
-
contentHtml = ErrorDialogHtml
|
|
3540
|
+
contentStyles = css$2;
|
|
3541
|
+
contentHtml = ErrorDialogHtml;
|
|
3654
3542
|
async init() {
|
|
3655
3543
|
super.init();
|
|
3656
3544
|
this.#prepareLaunchAction();
|
|
@@ -3667,7 +3555,7 @@ var LoopbackPermissionModal = class extends EmbeddedModal {
|
|
|
3667
3555
|
launchButton?.addEventListener("click", listener);
|
|
3668
3556
|
}
|
|
3669
3557
|
};
|
|
3670
|
-
const ErrorDialogHtml
|
|
3558
|
+
const ErrorDialogHtml = `
|
|
3671
3559
|
<div class="mobile-wallet-adapter-embedded-modal-title">Allow connections to your wallet</div>
|
|
3672
3560
|
<div id="mobile-wallet-adapter-local-launch-message" class="mobile-wallet-adapter-embedded-modal-subtitle">
|
|
3673
3561
|
Tap "Allow" on the next screen
|
|
@@ -3693,7 +3581,7 @@ const ErrorDialogHtml$1 = `
|
|
|
3693
3581
|
</button>
|
|
3694
3582
|
</div>
|
|
3695
3583
|
`;
|
|
3696
|
-
const css$
|
|
3584
|
+
const css$2 = `
|
|
3697
3585
|
.mobile-wallet-adapter-embedded-modal-close {
|
|
3698
3586
|
display: none;
|
|
3699
3587
|
}
|
|
@@ -3795,6 +3683,156 @@ async function checkLocalNetworkAccessPermission() {
|
|
|
3795
3683
|
}
|
|
3796
3684
|
}
|
|
3797
3685
|
//#endregion
|
|
3686
|
+
//#region src/embedded-modal/loadingSpinner.ts
|
|
3687
|
+
const modalHtml = `
|
|
3688
|
+
<div class="mobile-wallet-adapter-embedded-loading-indicator" role="dialog" aria-modal="true" aria-labelledby="modal-title">
|
|
3689
|
+
<div data-modal-close style="position: absolute; width: 100%; height: 100%;"></div>
|
|
3690
|
+
<div class="mobile-wallet-adapter-embedded-loading-container">
|
|
3691
|
+
<div class="mobile-wallet-adapter-embedded-loading-animation"></div>
|
|
3692
|
+
</div>
|
|
3693
|
+
</div>
|
|
3694
|
+
`;
|
|
3695
|
+
const css$1 = `
|
|
3696
|
+
.mobile-wallet-adapter-embedded-loading-indicator {
|
|
3697
|
+
display: flex; /* Use flexbox to center content */
|
|
3698
|
+
justify-content: center; /* Center horizontally */
|
|
3699
|
+
align-items: start; /* Center vertically */
|
|
3700
|
+
position: fixed; /* Stay in place */
|
|
3701
|
+
z-index: 1; /* Sit on top */
|
|
3702
|
+
left: 0;
|
|
3703
|
+
top: 0;
|
|
3704
|
+
width: 100%; /* Full width */
|
|
3705
|
+
height: 100%; /* Full height */
|
|
3706
|
+
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
|
|
3707
|
+
overflow-y: auto; /* enable scrolling */
|
|
3708
|
+
}
|
|
3709
|
+
|
|
3710
|
+
.mobile-wallet-adapter-embedded-loading-container {
|
|
3711
|
+
display: flex;
|
|
3712
|
+
margin: auto;
|
|
3713
|
+
}
|
|
3714
|
+
|
|
3715
|
+
.mobile-wallet-adapter-embedded-loading-animation {
|
|
3716
|
+
position: relative;
|
|
3717
|
+
left: -9999px;
|
|
3718
|
+
width: 10px;
|
|
3719
|
+
height: 10px;
|
|
3720
|
+
border-radius: 5px;
|
|
3721
|
+
background-color: var(--spinner-color);
|
|
3722
|
+
color: var(--spinner-color);
|
|
3723
|
+
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3724
|
+
9999px 0 0 0 var(--spinner-color),
|
|
3725
|
+
10014px 0 0 0 var(--spinner-color);
|
|
3726
|
+
animation: dot-typing 1.5s infinite linear;
|
|
3727
|
+
}
|
|
3728
|
+
|
|
3729
|
+
@keyframes dot-typing {
|
|
3730
|
+
0% {
|
|
3731
|
+
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3732
|
+
9999px 0 0 0 var(--spinner-color),
|
|
3733
|
+
10014px 0 0 0 var(--spinner-color);
|
|
3734
|
+
}
|
|
3735
|
+
16.667% {
|
|
3736
|
+
box-shadow: 9984px -10px 0 0 var(--spinner-color),
|
|
3737
|
+
9999px 0 0 0 var(--spinner-color),
|
|
3738
|
+
10014px 0 0 0 var(--spinner-color);
|
|
3739
|
+
}
|
|
3740
|
+
33.333% {
|
|
3741
|
+
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3742
|
+
9999px 0 0 0 var(--spinner-color),
|
|
3743
|
+
10014px 0 0 0 var(--spinner-color);
|
|
3744
|
+
}
|
|
3745
|
+
50% {
|
|
3746
|
+
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3747
|
+
9999px -10px 0 0 var(--spinner-color),
|
|
3748
|
+
10014px 0 0 0 var(--spinner-color);
|
|
3749
|
+
}
|
|
3750
|
+
66.667% {
|
|
3751
|
+
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3752
|
+
9999px 0 0 0 var(--spinner-color),
|
|
3753
|
+
10014px 0 0 0 var(--spinner-color);
|
|
3754
|
+
}
|
|
3755
|
+
83.333% {
|
|
3756
|
+
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3757
|
+
9999px 0 0 0 var(--spinner-color),
|
|
3758
|
+
10014px -10px 0 0 var(--spinner-color);
|
|
3759
|
+
}
|
|
3760
|
+
100% {
|
|
3761
|
+
box-shadow: 9984px 0 0 0 var(--spinner-color),
|
|
3762
|
+
9999px 0 0 0 var(--spinner-color),
|
|
3763
|
+
10014px 0 0 0 var(--spinner-color);
|
|
3764
|
+
}
|
|
3765
|
+
}
|
|
3766
|
+
`;
|
|
3767
|
+
var EmbeddedLoadingSpinner = class {
|
|
3768
|
+
#root = null;
|
|
3769
|
+
#eventListeners = {};
|
|
3770
|
+
#listenersAttached = false;
|
|
3771
|
+
dom = null;
|
|
3772
|
+
constructor() {
|
|
3773
|
+
this.init = this.init.bind(this);
|
|
3774
|
+
this.#root = document.getElementById("mobile-wallet-adapter-embedded-root-ui");
|
|
3775
|
+
}
|
|
3776
|
+
async init() {
|
|
3777
|
+
console.log("Injecting modal");
|
|
3778
|
+
this.#injectHTML();
|
|
3779
|
+
}
|
|
3780
|
+
open = () => {
|
|
3781
|
+
console.debug("Modal open");
|
|
3782
|
+
this.#attachEventListeners();
|
|
3783
|
+
if (this.#root) this.#root.style.display = "flex";
|
|
3784
|
+
};
|
|
3785
|
+
close = (event = void 0) => {
|
|
3786
|
+
console.debug("Modal close");
|
|
3787
|
+
this.#removeEventListeners();
|
|
3788
|
+
if (this.#root) this.#root.style.display = "none";
|
|
3789
|
+
this.#eventListeners["close"]?.forEach((listener) => listener(event));
|
|
3790
|
+
};
|
|
3791
|
+
addEventListener(event, listener) {
|
|
3792
|
+
this.#eventListeners[event]?.push(listener) || (this.#eventListeners[event] = [listener]);
|
|
3793
|
+
return () => this.removeEventListener(event, listener);
|
|
3794
|
+
}
|
|
3795
|
+
removeEventListener(event, listener) {
|
|
3796
|
+
this.#eventListeners[event] = this.#eventListeners[event]?.filter((existingListener) => listener !== existingListener);
|
|
3797
|
+
}
|
|
3798
|
+
#injectHTML() {
|
|
3799
|
+
if (this.dom) return;
|
|
3800
|
+
this.#root = document.createElement("div");
|
|
3801
|
+
this.#root.id = "mobile-wallet-adapter-embedded-root-ui";
|
|
3802
|
+
this.#root.innerHTML = modalHtml;
|
|
3803
|
+
this.#root.style.display = "none";
|
|
3804
|
+
const styles = document.createElement("style");
|
|
3805
|
+
styles.id = "mobile-wallet-adapter-embedded-modal-styles";
|
|
3806
|
+
styles.textContent = css$1;
|
|
3807
|
+
const host = document.createElement("div");
|
|
3808
|
+
this.dom = host.attachShadow({ mode: "closed" });
|
|
3809
|
+
host.style.setProperty("--spinner-color", "#FFFFFF");
|
|
3810
|
+
this.dom.appendChild(styles);
|
|
3811
|
+
this.dom.appendChild(this.#root);
|
|
3812
|
+
document.body.appendChild(host);
|
|
3813
|
+
}
|
|
3814
|
+
#attachEventListeners() {
|
|
3815
|
+
if (!this.#root || this.#listenersAttached) return;
|
|
3816
|
+
[...this.#root.querySelectorAll("[data-modal-close]")].forEach((closer) => closer?.addEventListener("click", (event) => {
|
|
3817
|
+
this.close(event);
|
|
3818
|
+
}));
|
|
3819
|
+
window.addEventListener("load", this.close);
|
|
3820
|
+
document.addEventListener("keydown", this.#handleKeyDown);
|
|
3821
|
+
this.#listenersAttached = true;
|
|
3822
|
+
}
|
|
3823
|
+
#removeEventListeners() {
|
|
3824
|
+
if (!this.#listenersAttached) return;
|
|
3825
|
+
window.removeEventListener("load", this.close);
|
|
3826
|
+
document.removeEventListener("keydown", this.#handleKeyDown);
|
|
3827
|
+
if (!this.#root) return;
|
|
3828
|
+
[...this.#root.querySelectorAll("[data-modal-close]")].forEach((closer) => closer?.removeEventListener("click", this.close));
|
|
3829
|
+
this.#listenersAttached = false;
|
|
3830
|
+
}
|
|
3831
|
+
#handleKeyDown = (event) => {
|
|
3832
|
+
if (event.key === "Escape") this.close(event);
|
|
3833
|
+
};
|
|
3834
|
+
};
|
|
3835
|
+
//#endregion
|
|
3798
3836
|
//#region src/icon.ts
|
|
3799
3837
|
const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03IDIuNUgxN0MxNy44Mjg0IDIuNSAxOC41IDMuMTcxNTcgMTguNSA0VjIwQzE4LjUgMjAuODI4NCAxNy44Mjg0IDIxLjUgMTcgMjEuNUg3QzYuMTcxNTcgMjEuNSA1LjUgMjAuODI4NCA1LjUgMjBWNEM1LjUgMy4xNzE1NyA2LjE3MTU3IDIuNSA3IDIuNVpNMyA0QzMgMS43OTA4NiA0Ljc5MDg2IDAgNyAwSDE3QzE5LjIwOTEgMCAyMSAxLjc5MDg2IDIxIDRWMjBDMjEgMjIuMjA5MSAxOS4yMDkxIDI0IDE3IDI0SDdDNC43OTA4NiAyNCAzIDIyLjIwOTEgMyAyMFY0Wk0xMSA0LjYxNTM4QzEwLjQ0NzcgNC42MTUzOCAxMCA1LjA2MzEgMTAgNS42MTUzOFY2LjM4NDYyQzEwIDYuOTM2OSAxMC40NDc3IDcuMzg0NjIgMTEgNy4zODQ2MkgxM0MxMy41NTIzIDcuMzg0NjIgMTQgNi45MzY5IDE0IDYuMzg0NjJWNS42MTUzOEMxNCA1LjA2MzEgMTMuNTUyMyA0LjYxNTM4IDEzIDQuNjE1MzhIMTFaIiBmaWxsPSIjRENCOEZGIi8+Cjwvc3ZnPgo=";
|
|
3800
3838
|
//#endregion
|
|
@@ -4058,9 +4096,9 @@ var LocalSolanaMobileWalletAdapterWallet = class {
|
|
|
4058
4096
|
};
|
|
4059
4097
|
#accountsToWalletStandardAccounts = (accounts) => {
|
|
4060
4098
|
return accounts.map((account) => {
|
|
4061
|
-
const publicKey =
|
|
4099
|
+
const publicKey = encoding.base64ToUint8Array(account.address);
|
|
4062
4100
|
return {
|
|
4063
|
-
address:
|
|
4101
|
+
address: encoding.base58FromUint8Array(publicKey),
|
|
4064
4102
|
publicKey,
|
|
4065
4103
|
label: account.label,
|
|
4066
4104
|
icon: account.icon,
|
|
@@ -4073,11 +4111,11 @@ var LocalSolanaMobileWalletAdapterWallet = class {
|
|
|
4073
4111
|
const { authToken, chain } = this.#assertIsAuthorized();
|
|
4074
4112
|
try {
|
|
4075
4113
|
const base64Transactions = transactions.map((tx) => {
|
|
4076
|
-
return
|
|
4114
|
+
return encoding.base64FromUint8Array(tx);
|
|
4077
4115
|
});
|
|
4078
4116
|
return await this.#transact(async (wallet) => {
|
|
4079
4117
|
await this.#performReauthorization(wallet, authToken, chain);
|
|
4080
|
-
return (await wallet.signTransactions({ payloads: base64Transactions })).signed_payloads.map(
|
|
4118
|
+
return (await wallet.signTransactions({ payloads: base64Transactions })).signed_payloads.map(encoding.base64ToUint8Array);
|
|
4081
4119
|
});
|
|
4082
4120
|
} catch (e) {
|
|
4083
4121
|
throw new Error(getErrorMessage(e), { cause: e });
|
|
@@ -4089,11 +4127,11 @@ var LocalSolanaMobileWalletAdapterWallet = class {
|
|
|
4089
4127
|
return await this.#transact(async (wallet) => {
|
|
4090
4128
|
const [capabilities] = await Promise.all([wallet.getCapabilities(), this.#performReauthorization(wallet, authToken, chain)]);
|
|
4091
4129
|
if (capabilities.supports_sign_and_send_transactions) {
|
|
4092
|
-
const base64Transaction =
|
|
4130
|
+
const base64Transaction = encoding.base64FromUint8Array(transaction);
|
|
4093
4131
|
return (await wallet.signAndSendTransactions({
|
|
4094
4132
|
...options,
|
|
4095
4133
|
payloads: [base64Transaction]
|
|
4096
|
-
})).signatures.map(
|
|
4134
|
+
})).signatures.map(encoding.base64ToUint8Array)[0];
|
|
4097
4135
|
} else throw new Error("connected wallet does not support signAndSendTransaction");
|
|
4098
4136
|
});
|
|
4099
4137
|
} catch (e) {
|
|
@@ -4115,15 +4153,15 @@ var LocalSolanaMobileWalletAdapterWallet = class {
|
|
|
4115
4153
|
};
|
|
4116
4154
|
#signMessage = async (...inputs) => {
|
|
4117
4155
|
const { authToken, chain } = this.#assertIsAuthorized();
|
|
4118
|
-
const addresses = inputs.map(({ account }) =>
|
|
4119
|
-
const messages = inputs.map(({ message }) =>
|
|
4156
|
+
const addresses = inputs.map(({ account }) => encoding.base64FromUint8Array(new Uint8Array(account.publicKey)));
|
|
4157
|
+
const messages = inputs.map(({ message }) => encoding.base64FromUint8Array(message));
|
|
4120
4158
|
try {
|
|
4121
4159
|
return await this.#transact(async (wallet) => {
|
|
4122
4160
|
await this.#performReauthorization(wallet, authToken, chain);
|
|
4123
4161
|
return (await wallet.signMessages({
|
|
4124
4162
|
addresses,
|
|
4125
4163
|
payloads: messages
|
|
4126
|
-
})).signed_payloads.map(
|
|
4164
|
+
})).signed_payloads.map(encoding.base64ToUint8Array).map((signedMessage) => {
|
|
4127
4165
|
return {
|
|
4128
4166
|
signedMessage,
|
|
4129
4167
|
signature: signedMessage.slice(-SIGNATURE_LENGTH_IN_BYTES)
|
|
@@ -4152,13 +4190,13 @@ var LocalSolanaMobileWalletAdapterWallet = class {
|
|
|
4152
4190
|
const signedInAccount = authorizationResult.accounts.find((acc) => acc.address == signedInAddress);
|
|
4153
4191
|
return {
|
|
4154
4192
|
account: {
|
|
4155
|
-
...signedInAccount ?? { address:
|
|
4156
|
-
publicKey:
|
|
4193
|
+
...signedInAccount ?? { address: encoding.base58FromUint8Array(encoding.base64ToUint8Array(signedInAddress)) },
|
|
4194
|
+
publicKey: encoding.base64ToUint8Array(signedInAddress),
|
|
4157
4195
|
chains: signedInAccount?.chains ?? this.#chains,
|
|
4158
4196
|
features: signedInAccount?.features ?? authorizationResult.capabilities.features
|
|
4159
4197
|
},
|
|
4160
|
-
signedMessage:
|
|
4161
|
-
signature:
|
|
4198
|
+
signedMessage: encoding.base64ToUint8Array(authorizationResult.sign_in_result.signed_message),
|
|
4199
|
+
signature: encoding.base64ToUint8Array(authorizationResult.sign_in_result.signature)
|
|
4162
4200
|
};
|
|
4163
4201
|
} catch (e) {
|
|
4164
4202
|
throw new Error(getErrorMessage(e), { cause: e });
|
|
@@ -4167,59 +4205,9 @@ var LocalSolanaMobileWalletAdapterWallet = class {
|
|
|
4167
4205
|
}
|
|
4168
4206
|
};
|
|
4169
4207
|
};
|
|
4170
|
-
//#endregion
|
|
4171
|
-
//#region src/createDefaultAuthorizationCache.ts
|
|
4172
|
-
const CACHE_KEY = "SolanaMobileWalletAdapterDefaultAuthorizationCache";
|
|
4173
|
-
function createDefaultAuthorizationCache() {
|
|
4174
|
-
let storage;
|
|
4175
|
-
try {
|
|
4176
|
-
storage = window.localStorage;
|
|
4177
|
-
} catch {}
|
|
4178
|
-
return {
|
|
4179
|
-
async clear() {
|
|
4180
|
-
if (!storage) return;
|
|
4181
|
-
try {
|
|
4182
|
-
storage.removeItem(CACHE_KEY);
|
|
4183
|
-
} catch {}
|
|
4184
|
-
},
|
|
4185
|
-
async get() {
|
|
4186
|
-
if (!storage) return;
|
|
4187
|
-
try {
|
|
4188
|
-
const parsed = JSON.parse(storage.getItem(CACHE_KEY));
|
|
4189
|
-
if (parsed && parsed.accounts) {
|
|
4190
|
-
const parsedAccounts = parsed.accounts.map((account) => {
|
|
4191
|
-
return {
|
|
4192
|
-
...account,
|
|
4193
|
-
publicKey: "publicKey" in account ? new Uint8Array(Object.values(account.publicKey)) : index_native.base58.decode(account.address)
|
|
4194
|
-
};
|
|
4195
|
-
});
|
|
4196
|
-
return {
|
|
4197
|
-
...parsed,
|
|
4198
|
-
accounts: parsedAccounts
|
|
4199
|
-
};
|
|
4200
|
-
} else return parsed || void 0;
|
|
4201
|
-
} catch {}
|
|
4202
|
-
},
|
|
4203
|
-
async set(authorization) {
|
|
4204
|
-
if (!storage) return;
|
|
4205
|
-
try {
|
|
4206
|
-
storage.setItem(CACHE_KEY, JSON.stringify(authorization));
|
|
4207
|
-
} catch {}
|
|
4208
|
-
}
|
|
4209
|
-
};
|
|
4210
|
-
}
|
|
4211
|
-
//#endregion
|
|
4212
|
-
//#region src/createDefaultChainSelector.ts
|
|
4213
|
-
function createDefaultChainSelector() {
|
|
4214
|
-
return { async select(chains) {
|
|
4215
|
-
if (chains.length === 1) return chains[0];
|
|
4216
|
-
else if (chains.includes(SOLANA_MAINNET_CHAIN)) return SOLANA_MAINNET_CHAIN;
|
|
4217
|
-
else return chains[0];
|
|
4218
|
-
} };
|
|
4219
|
-
}
|
|
4220
4208
|
|
|
4221
4209
|
exports.LocalSolanaMobileWalletAdapterWallet = LocalSolanaMobileWalletAdapterWallet;
|
|
4222
4210
|
exports.SolanaMobileWalletAdapterWalletName = SolanaMobileWalletAdapterWalletName;
|
|
4223
4211
|
exports.createDefaultAuthorizationCache = createDefaultAuthorizationCache;
|
|
4224
4212
|
exports.createDefaultChainSelector = createDefaultChainSelector;
|
|
4225
|
-
//# sourceMappingURL=index.browser-
|
|
4213
|
+
//# sourceMappingURL=index.browser-DcHalmEf.js.map
|