@pooflabs/web 0.0.80 → 0.0.81-rc2
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 +20 -0
- package/dist/index-Bdcc5821.js +2375 -0
- package/dist/index-Bdcc5821.js.map +1 -0
- package/dist/{index-BhfNMrC0.js → index-BjlCinic.js} +25 -883
- package/dist/index-BjlCinic.js.map +1 -0
- package/dist/{index-Db0NqU8R.esm.js → index-Bx_lLXRT.esm.js} +342 -277
- package/dist/index-Bx_lLXRT.esm.js.map +1 -0
- package/dist/{index-COIUWugk.esm.js → index-CHqM9n4K.esm.js} +24 -881
- package/dist/index-CHqM9n4K.esm.js.map +1 -0
- package/dist/{index-BVi7fTm2.js → index-CL4JIAAR.js} +24 -882
- package/dist/index-CL4JIAAR.js.map +1 -0
- package/dist/index-CrOVJFX9.esm.js +2373 -0
- package/dist/index-CrOVJFX9.esm.js.map +1 -0
- package/dist/{index-BbtYb8sE.esm.js → index-DCo85UGg.esm.js} +23 -882
- package/dist/index-DCo85UGg.esm.js.map +1 -0
- package/dist/{index-BNyxZ82q.js → index-DHm4usay.js} +342 -276
- package/dist/index-DHm4usay.js.map +1 -0
- package/dist/{index.browser-BuHl80dp.esm.js → index.browser-7dDfRU5G.esm.js} +1367 -1697
- package/dist/index.browser-7dDfRU5G.esm.js.map +1 -0
- package/dist/index.browser-Bg_-PAgT.esm.js +1250 -0
- package/dist/index.browser-Bg_-PAgT.esm.js.map +1 -0
- package/dist/index.browser-C-_FEr5M.esm.js +1134 -0
- package/dist/index.browser-C-_FEr5M.esm.js.map +1 -0
- package/dist/{index.browser-8hyi2LOX.js → index.browser-CmlqbyPr.js} +1367 -1697
- package/dist/index.browser-CmlqbyPr.js.map +1 -0
- package/dist/index.browser-CxXQ2RhF.js +122 -0
- package/dist/index.browser-CxXQ2RhF.js.map +1 -0
- package/dist/index.browser-DjEZSiqI.js +1137 -0
- package/dist/index.browser-DjEZSiqI.js.map +1 -0
- package/dist/index.browser-DuVkpEzB.js +1253 -0
- package/dist/index.browser-DuVkpEzB.js.map +1 -0
- package/dist/index.browser-xJkO73vw.esm.js +119 -0
- package/dist/index.browser-xJkO73vw.esm.js.map +1 -0
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{index.native-DUnE51Mx.js → index.native-DJA9_K3i.js} +186 -2669
- package/dist/index.native-DJA9_K3i.js.map +1 -0
- package/dist/{index.native-DuKhZcus.esm.js → index.native-TLhfXfe6.esm.js} +187 -2669
- package/dist/index.native-TLhfXfe6.esm.js.map +1 -0
- package/dist/index.native.esm.js +1 -1
- package/dist/index.native.js +1 -1
- package/dist/{phantom-wallet-provider-Cg-srwP4.js → phantom-wallet-provider-BegJFoWW.js} +141 -12
- package/dist/{phantom-wallet-provider-Cg-srwP4.js.map → phantom-wallet-provider-BegJFoWW.js.map} +1 -1
- package/dist/{phantom-wallet-provider--BJjVUA1.esm.js → phantom-wallet-provider-DzUAMhbm.esm.js} +141 -12
- package/dist/{phantom-wallet-provider--BJjVUA1.esm.js.map → phantom-wallet-provider-DzUAMhbm.esm.js.map} +1 -1
- package/dist/{privy-wallet-provider-BLcur3Ue.esm.js → privy-wallet-provider-BspbiyOr.esm.js} +3 -3
- package/dist/privy-wallet-provider-BspbiyOr.esm.js.map +1 -0
- package/dist/{privy-wallet-provider-DpNVyaXa.js → privy-wallet-provider-Du-QHaaG.js} +3 -3
- package/dist/privy-wallet-provider-Du-QHaaG.js.map +1 -0
- package/dist/{solana-mobile-wallet-provider-CFaubssb.esm.js → solana-mobile-wallet-provider-Bh7SBFpQ.esm.js} +53 -4
- package/dist/{solana-mobile-wallet-provider-CFaubssb.esm.js.map → solana-mobile-wallet-provider-Bh7SBFpQ.esm.js.map} +1 -1
- package/dist/{solana-mobile-wallet-provider-zXAk2tfS.js → solana-mobile-wallet-provider-DPp4SYem.js} +53 -4
- package/dist/{solana-mobile-wallet-provider-zXAk2tfS.js.map → solana-mobile-wallet-provider-DPp4SYem.js.map} +1 -1
- package/package.json +1 -1
- package/dist/index-BNyxZ82q.js.map +0 -1
- package/dist/index-BVi7fTm2.js.map +0 -1
- package/dist/index-BbtYb8sE.esm.js.map +0 -1
- package/dist/index-BhfNMrC0.js.map +0 -1
- package/dist/index-CKIoDkjJ.esm.js +0 -6
- package/dist/index-CKIoDkjJ.esm.js.map +0 -1
- package/dist/index-COIUWugk.esm.js.map +0 -1
- package/dist/index-CSraUgD6.js +0 -8
- package/dist/index-CSraUgD6.js.map +0 -1
- package/dist/index-Db0NqU8R.esm.js.map +0 -1
- package/dist/index.browser-8hyi2LOX.js.map +0 -1
- package/dist/index.browser-B4zXnffD.esm.js +0 -225
- package/dist/index.browser-B4zXnffD.esm.js.map +0 -1
- package/dist/index.browser-BJ_TdUVA.js +0 -228
- package/dist/index.browser-BJ_TdUVA.js.map +0 -1
- package/dist/index.browser-BkNaRRVe.js +0 -1222
- package/dist/index.browser-BkNaRRVe.js.map +0 -1
- package/dist/index.browser-BuHl80dp.esm.js.map +0 -1
- package/dist/index.browser-CnbxBj3-.esm.js +0 -1219
- package/dist/index.browser-CnbxBj3-.esm.js.map +0 -1
- package/dist/index.browser-OvGNsMPu.esm.js +0 -1002
- package/dist/index.browser-OvGNsMPu.esm.js.map +0 -1
- package/dist/index.browser-vuTr40so.js +0 -1008
- package/dist/index.browser-vuTr40so.js.map +0 -1
- package/dist/index.native-DUnE51Mx.js.map +0 -1
- package/dist/index.native-DuKhZcus.esm.js.map +0 -1
- package/dist/privy-wallet-provider-BLcur3Ue.esm.js.map +0 -1
- package/dist/privy-wallet-provider-DpNVyaXa.js.map +0 -1
|
@@ -4,21 +4,6 @@ import * as anchor from '@coral-xyz/anchor';
|
|
|
4
4
|
import { Program } from '@coral-xyz/anchor';
|
|
5
5
|
import * as React$2 from 'react';
|
|
6
6
|
|
|
7
|
-
function _mergeNamespaces(n, m) {
|
|
8
|
-
m.forEach(function (e) {
|
|
9
|
-
e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
|
|
10
|
-
if (k !== 'default' && !(k in n)) {
|
|
11
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () { return e[k]; }
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
return Object.freeze(n);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
7
|
function getDefaultExportFromCjs$1 (x) {
|
|
23
8
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
24
9
|
}
|
|
@@ -9252,15 +9237,15 @@ function requireBuffer$1 () {
|
|
|
9252
9237
|
|
|
9253
9238
|
var bufferExports$1 = requireBuffer$1();
|
|
9254
9239
|
|
|
9255
|
-
var safeBuffer
|
|
9240
|
+
var safeBuffer = {exports: {}};
|
|
9256
9241
|
|
|
9257
9242
|
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
9258
9243
|
|
|
9259
|
-
var hasRequiredSafeBuffer
|
|
9244
|
+
var hasRequiredSafeBuffer;
|
|
9260
9245
|
|
|
9261
|
-
function requireSafeBuffer
|
|
9262
|
-
if (hasRequiredSafeBuffer
|
|
9263
|
-
hasRequiredSafeBuffer
|
|
9246
|
+
function requireSafeBuffer () {
|
|
9247
|
+
if (hasRequiredSafeBuffer) return safeBuffer.exports;
|
|
9248
|
+
hasRequiredSafeBuffer = 1;
|
|
9264
9249
|
(function (module, exports$1) {
|
|
9265
9250
|
/* eslint-disable node/no-deprecated-api */
|
|
9266
9251
|
var buffer = requireBuffer$1();
|
|
@@ -9326,23 +9311,23 @@ function requireSafeBuffer$1 () {
|
|
|
9326
9311
|
}
|
|
9327
9312
|
return buffer.SlowBuffer(size)
|
|
9328
9313
|
};
|
|
9329
|
-
} (safeBuffer
|
|
9330
|
-
return safeBuffer
|
|
9314
|
+
} (safeBuffer, safeBuffer.exports));
|
|
9315
|
+
return safeBuffer.exports;
|
|
9331
9316
|
}
|
|
9332
9317
|
|
|
9333
|
-
var src
|
|
9334
|
-
var hasRequiredSrc
|
|
9318
|
+
var src;
|
|
9319
|
+
var hasRequiredSrc;
|
|
9335
9320
|
|
|
9336
|
-
function requireSrc
|
|
9337
|
-
if (hasRequiredSrc
|
|
9338
|
-
hasRequiredSrc
|
|
9321
|
+
function requireSrc () {
|
|
9322
|
+
if (hasRequiredSrc) return src;
|
|
9323
|
+
hasRequiredSrc = 1;
|
|
9339
9324
|
// base-x encoding / decoding
|
|
9340
9325
|
// Copyright (c) 2018 base-x contributors
|
|
9341
9326
|
// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)
|
|
9342
9327
|
// Distributed under the MIT software license, see the accompanying
|
|
9343
9328
|
// file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
|
9344
9329
|
// @ts-ignore
|
|
9345
|
-
var _Buffer = requireSafeBuffer
|
|
9330
|
+
var _Buffer = requireSafeBuffer().Buffer;
|
|
9346
9331
|
function base (ALPHABET) {
|
|
9347
9332
|
if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }
|
|
9348
9333
|
var BASE_MAP = new Uint8Array(256);
|
|
@@ -9457,25 +9442,25 @@ function requireSrc$1 () {
|
|
|
9457
9442
|
decode: decode
|
|
9458
9443
|
}
|
|
9459
9444
|
}
|
|
9460
|
-
src
|
|
9461
|
-
return src
|
|
9445
|
+
src = base;
|
|
9446
|
+
return src;
|
|
9462
9447
|
}
|
|
9463
9448
|
|
|
9464
|
-
var bs58$1
|
|
9465
|
-
var hasRequiredBs58
|
|
9449
|
+
var bs58$1;
|
|
9450
|
+
var hasRequiredBs58;
|
|
9466
9451
|
|
|
9467
|
-
function requireBs58
|
|
9468
|
-
if (hasRequiredBs58
|
|
9469
|
-
hasRequiredBs58
|
|
9470
|
-
var basex = requireSrc
|
|
9452
|
+
function requireBs58 () {
|
|
9453
|
+
if (hasRequiredBs58) return bs58$1;
|
|
9454
|
+
hasRequiredBs58 = 1;
|
|
9455
|
+
var basex = requireSrc();
|
|
9471
9456
|
var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
9472
9457
|
|
|
9473
|
-
bs58$1
|
|
9474
|
-
return bs58$1
|
|
9458
|
+
bs58$1 = basex(ALPHABET);
|
|
9459
|
+
return bs58$1;
|
|
9475
9460
|
}
|
|
9476
9461
|
|
|
9477
|
-
var bs58Exports
|
|
9478
|
-
var bs58$2 = /*@__PURE__*/getDefaultExportFromCjs(bs58Exports
|
|
9462
|
+
var bs58Exports = requireBs58();
|
|
9463
|
+
var bs58$2 = /*@__PURE__*/getDefaultExportFromCjs(bs58Exports);
|
|
9479
9464
|
|
|
9480
9465
|
// ─────────────────────────────────────────────────────────────
|
|
9481
9466
|
// Local implementation of getSimulationComputeUnits
|
|
@@ -15663,7 +15648,7 @@ async function loadDependencies() {
|
|
|
15663
15648
|
const [reactModule, reactDomModule, phantomModule] = await Promise.all([
|
|
15664
15649
|
import('react'),
|
|
15665
15650
|
import('react-dom/client'),
|
|
15666
|
-
import('./index-
|
|
15651
|
+
import('./index-DCo85UGg.esm.js')
|
|
15667
15652
|
]);
|
|
15668
15653
|
// Extract default export from ESM module namespace
|
|
15669
15654
|
// Dynamic import() returns { default: Module, ...exports }, not the module directly
|
|
@@ -15706,8 +15691,13 @@ class PhantomWalletProvider {
|
|
|
15706
15691
|
async initializeAsync() {
|
|
15707
15692
|
// Lazy load dependencies only when actually instantiating
|
|
15708
15693
|
await loadDependencies();
|
|
15709
|
-
// Initialize React component
|
|
15710
|
-
|
|
15694
|
+
// Initialize React component eagerly only when there's a real reason to
|
|
15695
|
+
// (URL callback to consume, prior session to restore, in-page wallet,
|
|
15696
|
+
// or non-Android). Otherwise defer until ensureReady() is reached from
|
|
15697
|
+
// a user-gesture flow. See shouldMountEagerly() for the rationale.
|
|
15698
|
+
if (this.shouldMountEagerly()) {
|
|
15699
|
+
this.initialize();
|
|
15700
|
+
}
|
|
15711
15701
|
}
|
|
15712
15702
|
/**
|
|
15713
15703
|
* Check if social login providers are configured (non-injected providers).
|
|
@@ -15715,6 +15705,69 @@ class PhantomWalletProvider {
|
|
|
15715
15705
|
hasSocialProviders() {
|
|
15716
15706
|
return this.resolvedProviders.some(p => p !== 'injected');
|
|
15717
15707
|
}
|
|
15708
|
+
/**
|
|
15709
|
+
* Decide whether to mount the @phantom/react-sdk <PhantomProvider> tree
|
|
15710
|
+
* eagerly during init() or defer until the first user-triggered call
|
|
15711
|
+
* (login / sign / etc.) reaches ensureReady().
|
|
15712
|
+
*
|
|
15713
|
+
* Mounting the React tree synchronously constructs BrowserSDK, which runs
|
|
15714
|
+
* wallet-standard discovery in its constructor and fires sdk.autoConnect()
|
|
15715
|
+
* in a useEffect on mount. On Solana Seeker (Android Chrome PWA), both
|
|
15716
|
+
* pathways probe the Android intent surface to discover the Phantom mobile
|
|
15717
|
+
* app, which surfaces Chrome's system "wants to access other apps and
|
|
15718
|
+
* services" permission dialog *before* the PWA activity has window focus.
|
|
15719
|
+
* The dialog renders with grayed-out buttons until the user backgrounds
|
|
15720
|
+
* and resumes the app.
|
|
15721
|
+
*
|
|
15722
|
+
* Returns true when eager mount is needed (callback to handle, prior
|
|
15723
|
+
* session, in-page wallet present, or non-Android). Otherwise returns
|
|
15724
|
+
* false — the React tree is mounted lazily inside ensureReady() once a
|
|
15725
|
+
* user gesture brings us there.
|
|
15726
|
+
*/
|
|
15727
|
+
shouldMountEagerly() {
|
|
15728
|
+
if (typeof window === 'undefined')
|
|
15729
|
+
return false;
|
|
15730
|
+
// Preserve desktop behavior: always mount eagerly.
|
|
15731
|
+
if (!detectAndroid())
|
|
15732
|
+
return true;
|
|
15733
|
+
// In-page wallet present (Phantom in-app browser / desktop extension on
|
|
15734
|
+
// a desktop-mode Android UA): no Android intent probe needed, mount free.
|
|
15735
|
+
// Tighten beyond truthy `window.phantom` since arbitrary stubs can land
|
|
15736
|
+
// on that key — require a wallet-shaped surface.
|
|
15737
|
+
const ph = window.phantom;
|
|
15738
|
+
if (ph && (ph.solana || ph.ethereum || ph.app))
|
|
15739
|
+
return true;
|
|
15740
|
+
// Returning from a Phantom redirect (OAuth or deeplink hop). SDK must
|
|
15741
|
+
// be live to read these URL params via urlParamsAccessor.
|
|
15742
|
+
const callbackKeys = ['session_id', 'wallet_id', 'selected_account_index', 'error', 'error_description'];
|
|
15743
|
+
try {
|
|
15744
|
+
const params = new URLSearchParams(window.location.search);
|
|
15745
|
+
if (callbackKeys.some(k => params.has(k)))
|
|
15746
|
+
return true;
|
|
15747
|
+
}
|
|
15748
|
+
catch (_a) {
|
|
15749
|
+
return true; // conservative on URL access failure
|
|
15750
|
+
}
|
|
15751
|
+
// Returning user with a stored Phantom session. They've already
|
|
15752
|
+
// approved the Android intent permission for this origin on first
|
|
15753
|
+
// login, so the dialog is typically pre-granted by Chrome — eager
|
|
15754
|
+
// mount lets autoConnect silently restore the wallet handshake.
|
|
15755
|
+
// Require BOTH the marker AND a session storage entry so a stale
|
|
15756
|
+
// orphaned marker doesn't keep eager-mounting forever. Note
|
|
15757
|
+
// isAuthenticated() is a raw key-existence check, not a validity
|
|
15758
|
+
// check — restoreSession() above clears the marker on the next load
|
|
15759
|
+
// if the session is unusable, so the bug self-corrects after at
|
|
15760
|
+
// most one further cold start.
|
|
15761
|
+
try {
|
|
15762
|
+
const stored = getPlatform().storage.getItem('tarobase_last_auth_method');
|
|
15763
|
+
if (stored === 'phantom' && WebSessionManager.isAuthenticated())
|
|
15764
|
+
return true;
|
|
15765
|
+
}
|
|
15766
|
+
catch (_b) {
|
|
15767
|
+
return true;
|
|
15768
|
+
}
|
|
15769
|
+
return false;
|
|
15770
|
+
}
|
|
15718
15771
|
static getInstance(networkUrl, config) {
|
|
15719
15772
|
if (!PhantomWalletProvider.instance) {
|
|
15720
15773
|
new PhantomWalletProvider(networkUrl, config);
|
|
@@ -16075,11 +16128,20 @@ class PhantomWalletProvider {
|
|
|
16075
16128
|
const handleMobileWalletClick = async () => {
|
|
16076
16129
|
that.loginInProgress = false;
|
|
16077
16130
|
walletClickedRef.current = true;
|
|
16078
|
-
|
|
16131
|
+
// Don't close the wallet modal yet. On Android Chrome PWA,
|
|
16132
|
+
// closing the modal here triggers a React commit and a focus
|
|
16133
|
+
// transition that races MWA's transact() opening a localhost
|
|
16134
|
+
// WebSocket. Chrome's "Apps on Device" / Local Network Access
|
|
16135
|
+
// permission dialog spawns inheriting the activity's focus
|
|
16136
|
+
// state at that moment — and the in-transit focus produces a
|
|
16137
|
+
// dialog with grayed-out Allow/Block buttons. Keep the modal
|
|
16138
|
+
// mounted through MWA login so focus is stable when the
|
|
16139
|
+
// system dialog spawns; close it after login resolves.
|
|
16079
16140
|
if (that.onSwitchToMWA) {
|
|
16080
16141
|
try {
|
|
16081
16142
|
const mwaProvider = await that.onSwitchToMWA();
|
|
16082
16143
|
const user = await mwaProvider.login();
|
|
16144
|
+
setShowWalletModal(false);
|
|
16083
16145
|
if (that.pendingLogin && user) {
|
|
16084
16146
|
that.pendingLogin.resolve(user);
|
|
16085
16147
|
that.pendingLogin = null;
|
|
@@ -16090,12 +16152,16 @@ class PhantomWalletProvider {
|
|
|
16090
16152
|
}
|
|
16091
16153
|
}
|
|
16092
16154
|
catch (error) {
|
|
16155
|
+
setShowWalletModal(false);
|
|
16093
16156
|
if (that.pendingLogin) {
|
|
16094
16157
|
that.pendingLogin.reject(error);
|
|
16095
16158
|
that.pendingLogin = null;
|
|
16096
16159
|
}
|
|
16097
16160
|
}
|
|
16098
16161
|
}
|
|
16162
|
+
else {
|
|
16163
|
+
setShowWalletModal(false);
|
|
16164
|
+
}
|
|
16099
16165
|
};
|
|
16100
16166
|
const handleCloseModal = () => {
|
|
16101
16167
|
setShowWalletModal(false);
|
|
@@ -16391,6 +16457,13 @@ class PhantomWalletProvider {
|
|
|
16391
16457
|
if (this.initPromise) {
|
|
16392
16458
|
await this.initPromise;
|
|
16393
16459
|
}
|
|
16460
|
+
// Lazy-mount path: if initializeAsync deferred the React mount (e.g.
|
|
16461
|
+
// first-time visitor on Android Chrome PWA), do it now. We're being
|
|
16462
|
+
// called from a user-gesture flow like login(), so any Android intent
|
|
16463
|
+
// dialog that surfaces will appear with the activity already focused.
|
|
16464
|
+
if (!this.containerElement) {
|
|
16465
|
+
this.initialize();
|
|
16466
|
+
}
|
|
16394
16467
|
// Wait for SDK to be ready
|
|
16395
16468
|
await new Promise((resolve) => {
|
|
16396
16469
|
const check = () => {
|
|
@@ -16500,12 +16573,53 @@ class PhantomWalletProvider {
|
|
|
16500
16573
|
});
|
|
16501
16574
|
}
|
|
16502
16575
|
async restoreSession() {
|
|
16503
|
-
|
|
16504
|
-
|
|
16505
|
-
|
|
16506
|
-
|
|
16576
|
+
// Read from storage directly. Do NOT ensureReady() here — that would
|
|
16577
|
+
// mount @phantom/react-sdk's <PhantomProvider> during init(), which
|
|
16578
|
+
// synchronously constructs BrowserSDK (running wallet-standard discovery)
|
|
16579
|
+
// and fires sdk.autoConnect() — both probing the Android intent surface
|
|
16580
|
+
// before the PWA activity has window focus on Solana Seeker. The
|
|
16581
|
+
// resulting "access other apps and services" system dialog renders
|
|
16582
|
+
// with grayed-out buttons.
|
|
16583
|
+
//
|
|
16584
|
+
// Wrap getSession() in try/catch: WebSessionManager.getSession() runs
|
|
16585
|
+
// JSON.parse on the stored session *outside* its internal try/catch,
|
|
16586
|
+
// so genuinely malformed JSON in localStorage would propagate through
|
|
16587
|
+
// restoreSession() and break init() entirely. Treat any throw as
|
|
16588
|
+
// "no session" and fall through to the cleanup path so corrupted
|
|
16589
|
+
// storage is recoverable on next load.
|
|
16590
|
+
let session;
|
|
16591
|
+
try {
|
|
16592
|
+
session = await WebSessionManager.getSession();
|
|
16507
16593
|
}
|
|
16508
|
-
|
|
16594
|
+
catch (_a) {
|
|
16595
|
+
session = null;
|
|
16596
|
+
}
|
|
16597
|
+
if (!session) {
|
|
16598
|
+
// Tidy up storage so we don't leave junk behind:
|
|
16599
|
+
// (a) clearSession() removes any stale or unparseable session
|
|
16600
|
+
// storage entry. WebSessionManager.getSession() can't reach
|
|
16601
|
+
// its own clearSession() if JSON.parse threw. Idempotent —
|
|
16602
|
+
// safe to call unconditionally here.
|
|
16603
|
+
// (b) Drop the auth-method marker if it's stale.
|
|
16604
|
+
// WebSessionManager.clearSession() only removes the session
|
|
16605
|
+
// storage key, not the marker — so without this cleanup
|
|
16606
|
+
// shouldMountEagerly() would keep eager-mounting on every
|
|
16607
|
+
// future cold start.
|
|
16608
|
+
try {
|
|
16609
|
+
WebSessionManager.clearSession();
|
|
16610
|
+
}
|
|
16611
|
+
catch ( /* best-effort */_b) { /* best-effort */ }
|
|
16612
|
+
try {
|
|
16613
|
+
if (getPlatform().storage.getItem('tarobase_last_auth_method') === 'phantom') {
|
|
16614
|
+
getPlatform().storage.removeItem('tarobase_last_auth_method');
|
|
16615
|
+
}
|
|
16616
|
+
}
|
|
16617
|
+
catch (_c) {
|
|
16618
|
+
// storage unavailable — best-effort cleanup
|
|
16619
|
+
}
|
|
16620
|
+
return null;
|
|
16621
|
+
}
|
|
16622
|
+
return { provider: this, address: session.address };
|
|
16509
16623
|
}
|
|
16510
16624
|
async address() {
|
|
16511
16625
|
var _a, _b, _c, _d;
|
|
@@ -19996,235 +20110,137 @@ function createSolanaRpcSubscriptionsFromTransport(transport) {
|
|
|
19996
20110
|
});
|
|
19997
20111
|
}
|
|
19998
20112
|
|
|
19999
|
-
|
|
20000
|
-
|
|
20001
|
-
|
|
20002
|
-
|
|
20003
|
-
|
|
20004
|
-
|
|
20005
|
-
|
|
20006
|
-
|
|
20007
|
-
|
|
20008
|
-
|
|
20009
|
-
|
|
20010
|
-
|
|
20011
|
-
|
|
20012
|
-
|
|
20013
|
-
|
|
20014
|
-
|
|
20015
|
-
|
|
20016
|
-
|
|
20017
|
-
|
|
20018
|
-
|
|
20019
|
-
|
|
20020
|
-
|
|
20021
|
-
|
|
20022
|
-
|
|
20023
|
-
|
|
20024
|
-
|
|
20025
|
-
|
|
20026
|
-
|
|
20027
|
-
|
|
20028
|
-
|
|
20029
|
-
|
|
20030
|
-
|
|
20031
|
-
|
|
20032
|
-
|
|
20033
|
-
|
|
20034
|
-
|
|
20035
|
-
|
|
20036
|
-
|
|
20037
|
-
|
|
20038
|
-
|
|
20039
|
-
|
|
20040
|
-
|
|
20041
|
-
|
|
20042
|
-
|
|
20043
|
-
|
|
20044
|
-
|
|
20045
|
-
|
|
20046
|
-
|
|
20047
|
-
|
|
20048
|
-
|
|
20049
|
-
|
|
20050
|
-
|
|
20051
|
-
|
|
20052
|
-
|
|
20053
|
-
|
|
20054
|
-
|
|
20055
|
-
|
|
20056
|
-
|
|
20057
|
-
|
|
20058
|
-
|
|
20059
|
-
|
|
20060
|
-
|
|
20061
|
-
|
|
20062
|
-
|
|
20063
|
-
|
|
20064
|
-
|
|
20065
|
-
|
|
20066
|
-
|
|
20067
|
-
|
|
20068
|
-
|
|
20069
|
-
|
|
20070
|
-
|
|
20071
|
-
|
|
20072
|
-
|
|
20073
|
-
|
|
20074
|
-
|
|
20075
|
-
}
|
|
20076
|
-
|
|
20077
|
-
|
|
20078
|
-
|
|
20079
|
-
|
|
20080
|
-
|
|
20081
|
-
|
|
20082
|
-
|
|
20083
|
-
|
|
20084
|
-
|
|
20085
|
-
|
|
20086
|
-
|
|
20087
|
-
|
|
20088
|
-
|
|
20089
|
-
|
|
20090
|
-
|
|
20091
|
-
|
|
20092
|
-
|
|
20093
|
-
|
|
20094
|
-
|
|
20095
|
-
|
|
20096
|
-
|
|
20097
|
-
|
|
20098
|
-
|
|
20099
|
-
|
|
20100
|
-
|
|
20101
|
-
|
|
20102
|
-
|
|
20103
|
-
|
|
20104
|
-
|
|
20105
|
-
|
|
20106
|
-
|
|
20107
|
-
|
|
20108
|
-
|
|
20109
|
-
|
|
20110
|
-
|
|
20111
|
-
|
|
20112
|
-
|
|
20113
|
-
|
|
20114
|
-
|
|
20115
|
-
|
|
20116
|
-
|
|
20117
|
-
|
|
20118
|
-
|
|
20119
|
-
|
|
20120
|
-
|
|
20121
|
-
var b58 = new Uint8Array(size);
|
|
20122
|
-
// Process the bytes.
|
|
20123
|
-
while (pbegin !== pend) {
|
|
20124
|
-
var carry = source[pbegin];
|
|
20125
|
-
// Apply "b58 = b58 * 256 + ch".
|
|
20126
|
-
var i = 0;
|
|
20127
|
-
for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {
|
|
20128
|
-
carry += (256 * b58[it1]) >>> 0;
|
|
20129
|
-
b58[it1] = (carry % BASE) >>> 0;
|
|
20130
|
-
carry = (carry / BASE) >>> 0;
|
|
20131
|
-
}
|
|
20132
|
-
if (carry !== 0) { throw new Error('Non-zero carry') }
|
|
20133
|
-
length = i;
|
|
20134
|
-
pbegin++;
|
|
20135
|
-
}
|
|
20136
|
-
// Skip leading zeroes in base58 result.
|
|
20137
|
-
var it2 = size - length;
|
|
20138
|
-
while (it2 !== size && b58[it2] === 0) {
|
|
20139
|
-
it2++;
|
|
20140
|
-
}
|
|
20141
|
-
// Translate the result into a string.
|
|
20142
|
-
var str = LEADER.repeat(zeroes);
|
|
20143
|
-
for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }
|
|
20144
|
-
return str
|
|
20145
|
-
}
|
|
20146
|
-
function decodeUnsafe (source) {
|
|
20147
|
-
if (typeof source !== 'string') { throw new TypeError('Expected String') }
|
|
20148
|
-
if (source.length === 0) { return _Buffer.alloc(0) }
|
|
20149
|
-
var psz = 0;
|
|
20150
|
-
// Skip and count leading '1's.
|
|
20151
|
-
var zeroes = 0;
|
|
20152
|
-
var length = 0;
|
|
20153
|
-
while (source[psz] === LEADER) {
|
|
20154
|
-
zeroes++;
|
|
20155
|
-
psz++;
|
|
20156
|
-
}
|
|
20157
|
-
// Allocate enough space in big-endian base256 representation.
|
|
20158
|
-
var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.
|
|
20159
|
-
var b256 = new Uint8Array(size);
|
|
20160
|
-
// Process the characters.
|
|
20161
|
-
while (psz < source.length) {
|
|
20162
|
-
// Find code of next character
|
|
20163
|
-
var charCode = source.charCodeAt(psz);
|
|
20164
|
-
// Base map can not be indexed using char code
|
|
20165
|
-
if (charCode > 255) { return }
|
|
20166
|
-
// Decode character
|
|
20167
|
-
var carry = BASE_MAP[charCode];
|
|
20168
|
-
// Invalid character
|
|
20169
|
-
if (carry === 255) { return }
|
|
20170
|
-
var i = 0;
|
|
20171
|
-
for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {
|
|
20172
|
-
carry += (BASE * b256[it3]) >>> 0;
|
|
20173
|
-
b256[it3] = (carry % 256) >>> 0;
|
|
20174
|
-
carry = (carry / 256) >>> 0;
|
|
20175
|
-
}
|
|
20176
|
-
if (carry !== 0) { throw new Error('Non-zero carry') }
|
|
20177
|
-
length = i;
|
|
20178
|
-
psz++;
|
|
20179
|
-
}
|
|
20180
|
-
// Skip leading zeroes in b256.
|
|
20181
|
-
var it4 = size - length;
|
|
20182
|
-
while (it4 !== size && b256[it4] === 0) {
|
|
20183
|
-
it4++;
|
|
20184
|
-
}
|
|
20185
|
-
var vch = _Buffer.allocUnsafe(zeroes + (size - it4));
|
|
20186
|
-
vch.fill(0x00, 0, zeroes);
|
|
20187
|
-
var j = zeroes;
|
|
20188
|
-
while (it4 !== size) {
|
|
20189
|
-
vch[j++] = b256[it4++];
|
|
20190
|
-
}
|
|
20191
|
-
return vch
|
|
20192
|
-
}
|
|
20193
|
-
function decode (string) {
|
|
20194
|
-
var buffer = decodeUnsafe(string);
|
|
20195
|
-
if (buffer) { return buffer }
|
|
20196
|
-
throw new Error('Non-base' + BASE + ' character')
|
|
20197
|
-
}
|
|
20198
|
-
return {
|
|
20199
|
-
encode: encode,
|
|
20200
|
-
decodeUnsafe: decodeUnsafe,
|
|
20201
|
-
decode: decode
|
|
20202
|
-
}
|
|
20203
|
-
}
|
|
20204
|
-
src = base;
|
|
20205
|
-
return src;
|
|
20206
|
-
}
|
|
20207
|
-
|
|
20208
|
-
var bs58$1;
|
|
20209
|
-
var hasRequiredBs58;
|
|
20210
|
-
|
|
20211
|
-
function requireBs58 () {
|
|
20212
|
-
if (hasRequiredBs58) return bs58$1;
|
|
20213
|
-
hasRequiredBs58 = 1;
|
|
20214
|
-
var basex = requireSrc();
|
|
20215
|
-
var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
20216
|
-
|
|
20217
|
-
bs58$1 = basex(ALPHABET);
|
|
20218
|
-
return bs58$1;
|
|
20113
|
+
// base-x encoding / decoding
|
|
20114
|
+
// Copyright (c) 2018 base-x contributors
|
|
20115
|
+
// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)
|
|
20116
|
+
// Distributed under the MIT software license, see the accompanying
|
|
20117
|
+
// file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
|
20118
|
+
function base (ALPHABET) {
|
|
20119
|
+
if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }
|
|
20120
|
+
const BASE_MAP = new Uint8Array(256);
|
|
20121
|
+
for (let j = 0; j < BASE_MAP.length; j++) {
|
|
20122
|
+
BASE_MAP[j] = 255;
|
|
20123
|
+
}
|
|
20124
|
+
for (let i = 0; i < ALPHABET.length; i++) {
|
|
20125
|
+
const x = ALPHABET.charAt(i);
|
|
20126
|
+
const xc = x.charCodeAt(0);
|
|
20127
|
+
if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }
|
|
20128
|
+
BASE_MAP[xc] = i;
|
|
20129
|
+
}
|
|
20130
|
+
const BASE = ALPHABET.length;
|
|
20131
|
+
const LEADER = ALPHABET.charAt(0);
|
|
20132
|
+
const FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up
|
|
20133
|
+
const iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up
|
|
20134
|
+
function encode (source) {
|
|
20135
|
+
// eslint-disable-next-line no-empty
|
|
20136
|
+
if (source instanceof Uint8Array) ; else if (ArrayBuffer.isView(source)) {
|
|
20137
|
+
source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
|
|
20138
|
+
} else if (Array.isArray(source)) {
|
|
20139
|
+
source = Uint8Array.from(source);
|
|
20140
|
+
}
|
|
20141
|
+
if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }
|
|
20142
|
+
if (source.length === 0) { return '' }
|
|
20143
|
+
// Skip & count leading zeroes.
|
|
20144
|
+
let zeroes = 0;
|
|
20145
|
+
let length = 0;
|
|
20146
|
+
let pbegin = 0;
|
|
20147
|
+
const pend = source.length;
|
|
20148
|
+
while (pbegin !== pend && source[pbegin] === 0) {
|
|
20149
|
+
pbegin++;
|
|
20150
|
+
zeroes++;
|
|
20151
|
+
}
|
|
20152
|
+
// Allocate enough space in big-endian base58 representation.
|
|
20153
|
+
const size = ((pend - pbegin) * iFACTOR + 1) >>> 0;
|
|
20154
|
+
const b58 = new Uint8Array(size);
|
|
20155
|
+
// Process the bytes.
|
|
20156
|
+
while (pbegin !== pend) {
|
|
20157
|
+
let carry = source[pbegin];
|
|
20158
|
+
// Apply "b58 = b58 * 256 + ch".
|
|
20159
|
+
let i = 0;
|
|
20160
|
+
for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {
|
|
20161
|
+
carry += (256 * b58[it1]) >>> 0;
|
|
20162
|
+
b58[it1] = (carry % BASE) >>> 0;
|
|
20163
|
+
carry = (carry / BASE) >>> 0;
|
|
20164
|
+
}
|
|
20165
|
+
if (carry !== 0) { throw new Error('Non-zero carry') }
|
|
20166
|
+
length = i;
|
|
20167
|
+
pbegin++;
|
|
20168
|
+
}
|
|
20169
|
+
// Skip leading zeroes in base58 result.
|
|
20170
|
+
let it2 = size - length;
|
|
20171
|
+
while (it2 !== size && b58[it2] === 0) {
|
|
20172
|
+
it2++;
|
|
20173
|
+
}
|
|
20174
|
+
// Translate the result into a string.
|
|
20175
|
+
let str = LEADER.repeat(zeroes);
|
|
20176
|
+
for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }
|
|
20177
|
+
return str
|
|
20178
|
+
}
|
|
20179
|
+
function decodeUnsafe (source) {
|
|
20180
|
+
if (typeof source !== 'string') { throw new TypeError('Expected String') }
|
|
20181
|
+
if (source.length === 0) { return new Uint8Array() }
|
|
20182
|
+
let psz = 0;
|
|
20183
|
+
// Skip and count leading '1's.
|
|
20184
|
+
let zeroes = 0;
|
|
20185
|
+
let length = 0;
|
|
20186
|
+
while (source[psz] === LEADER) {
|
|
20187
|
+
zeroes++;
|
|
20188
|
+
psz++;
|
|
20189
|
+
}
|
|
20190
|
+
// Allocate enough space in big-endian base256 representation.
|
|
20191
|
+
const size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.
|
|
20192
|
+
const b256 = new Uint8Array(size);
|
|
20193
|
+
// Process the characters.
|
|
20194
|
+
while (psz < source.length) {
|
|
20195
|
+
// Find code of next character
|
|
20196
|
+
const charCode = source.charCodeAt(psz);
|
|
20197
|
+
// Base map can not be indexed using char code
|
|
20198
|
+
if (charCode > 255) { return }
|
|
20199
|
+
// Decode character
|
|
20200
|
+
let carry = BASE_MAP[charCode];
|
|
20201
|
+
// Invalid character
|
|
20202
|
+
if (carry === 255) { return }
|
|
20203
|
+
let i = 0;
|
|
20204
|
+
for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {
|
|
20205
|
+
carry += (BASE * b256[it3]) >>> 0;
|
|
20206
|
+
b256[it3] = (carry % 256) >>> 0;
|
|
20207
|
+
carry = (carry / 256) >>> 0;
|
|
20208
|
+
}
|
|
20209
|
+
if (carry !== 0) { throw new Error('Non-zero carry') }
|
|
20210
|
+
length = i;
|
|
20211
|
+
psz++;
|
|
20212
|
+
}
|
|
20213
|
+
// Skip leading zeroes in b256.
|
|
20214
|
+
let it4 = size - length;
|
|
20215
|
+
while (it4 !== size && b256[it4] === 0) {
|
|
20216
|
+
it4++;
|
|
20217
|
+
}
|
|
20218
|
+
const vch = new Uint8Array(zeroes + (size - it4));
|
|
20219
|
+
let j = zeroes;
|
|
20220
|
+
while (it4 !== size) {
|
|
20221
|
+
vch[j++] = b256[it4++];
|
|
20222
|
+
}
|
|
20223
|
+
return vch
|
|
20224
|
+
}
|
|
20225
|
+
function decode (string) {
|
|
20226
|
+
const buffer = decodeUnsafe(string);
|
|
20227
|
+
if (buffer) { return buffer }
|
|
20228
|
+
throw new Error('Non-base' + BASE + ' character')
|
|
20229
|
+
}
|
|
20230
|
+
return {
|
|
20231
|
+
encode,
|
|
20232
|
+
decodeUnsafe,
|
|
20233
|
+
decode
|
|
20234
|
+
}
|
|
20219
20235
|
}
|
|
20220
20236
|
|
|
20221
|
-
var
|
|
20222
|
-
var bs58 =
|
|
20237
|
+
var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
20238
|
+
var bs58 = base(ALPHABET);
|
|
20223
20239
|
|
|
20224
|
-
var index = /*#__PURE__*/
|
|
20240
|
+
var index = /*#__PURE__*/Object.freeze({
|
|
20225
20241
|
__proto__: null,
|
|
20226
20242
|
default: bs58
|
|
20227
|
-
}
|
|
20243
|
+
});
|
|
20228
20244
|
|
|
20229
20245
|
const SURFNET_RPC_URL$1 = "https://surfpool.fly.dev";
|
|
20230
20246
|
let React;
|
|
@@ -21126,6 +21142,46 @@ function isMobileWalletAvailable() {
|
|
|
21126
21142
|
return detectAndroid();
|
|
21127
21143
|
}
|
|
21128
21144
|
const ED25519_SIGNATURE_LENGTH = 64;
|
|
21145
|
+
/**
|
|
21146
|
+
* On Android Chrome PWA (e.g. Solana Seeker in standalone mode), MWA's
|
|
21147
|
+
* transact() opens a WebSocket to ws://localhost:<port>/solana-wallet to
|
|
21148
|
+
* handshake with the wallet app on the device. Chrome guards localhost
|
|
21149
|
+
* connections behind the Local Network Access ("Apps on Device") permission
|
|
21150
|
+
* dialog. The dialog inherits the activity's window-focus state at spawn
|
|
21151
|
+
* time — so if focus is in transit (e.g. just after a Phantom-modal close
|
|
21152
|
+
* triggers a React commit), the dialog renders with grayed-out Allow/Block
|
|
21153
|
+
* buttons and only becomes interactive after a manual background→resume
|
|
21154
|
+
* (which forces an onPause→onResume cycle on the activity).
|
|
21155
|
+
*
|
|
21156
|
+
* Wait for window focus to settle, then yield one frame, before opening
|
|
21157
|
+
* the WebSocket. This makes the system dialog spawn into a focused activity
|
|
21158
|
+
* so its buttons are immediately tappable.
|
|
21159
|
+
*/
|
|
21160
|
+
async function awaitActivityFocus() {
|
|
21161
|
+
if (typeof document === 'undefined' || typeof window === 'undefined')
|
|
21162
|
+
return;
|
|
21163
|
+
if (!document.hasFocus()) {
|
|
21164
|
+
await new Promise((resolve) => {
|
|
21165
|
+
const onFocus = () => {
|
|
21166
|
+
window.removeEventListener('focus', onFocus);
|
|
21167
|
+
resolve();
|
|
21168
|
+
};
|
|
21169
|
+
window.addEventListener('focus', onFocus);
|
|
21170
|
+
// Fallback in case the focus event never fires (e.g. activity
|
|
21171
|
+
// already focused but document.hasFocus() momentarily lies during
|
|
21172
|
+
// a React commit). 600ms is a perceptual ceiling — beyond this
|
|
21173
|
+
// the user notices a stall, so we'd rather take the focus race
|
|
21174
|
+
// than block forever.
|
|
21175
|
+
setTimeout(() => {
|
|
21176
|
+
window.removeEventListener('focus', onFocus);
|
|
21177
|
+
resolve();
|
|
21178
|
+
}, 600);
|
|
21179
|
+
});
|
|
21180
|
+
}
|
|
21181
|
+
// Yield to next paint so any pending React commits / focus changes have
|
|
21182
|
+
// flushed before the WebSocket open spawns the system dialog.
|
|
21183
|
+
await new Promise((r) => requestAnimationFrame(() => r()));
|
|
21184
|
+
}
|
|
21129
21185
|
// Dynamically imported MWA protocol module
|
|
21130
21186
|
let mwaProtocolModule = null;
|
|
21131
21187
|
let mwaProtocolLoadPromise = null;
|
|
@@ -21138,7 +21194,7 @@ async function loadMwaProtocol() {
|
|
|
21138
21194
|
return mwaProtocolLoadPromise;
|
|
21139
21195
|
mwaProtocolLoadPromise = (async () => {
|
|
21140
21196
|
try {
|
|
21141
|
-
mwaProtocolModule = await import('./index.browser-
|
|
21197
|
+
mwaProtocolModule = await import('./index.browser-xJkO73vw.esm.js');
|
|
21142
21198
|
}
|
|
21143
21199
|
catch (e) {
|
|
21144
21200
|
console.warn('[SolanaMobileWallet] @solana-mobile/mobile-wallet-adapter-protocol-web3js not installed. Install it to enable Seeker wallet support.');
|
|
@@ -21160,7 +21216,7 @@ async function registerMobileWalletAdapter(config) {
|
|
|
21160
21216
|
if (typeof window === 'undefined')
|
|
21161
21217
|
return;
|
|
21162
21218
|
try {
|
|
21163
|
-
const walletStandardMobile = await import('./index.browser-
|
|
21219
|
+
const walletStandardMobile = await import('./index.browser-7dDfRU5G.esm.js');
|
|
21164
21220
|
const registerMwa = walletStandardMobile.registerMwa || ((_a = walletStandardMobile.default) === null || _a === void 0 ? void 0 : _a.registerMwa);
|
|
21165
21221
|
if (!registerMwa) {
|
|
21166
21222
|
console.warn('[SolanaMobileWallet] registerMwa not found in @solana-mobile/wallet-standard-mobile');
|
|
@@ -21304,6 +21360,7 @@ class SolanaMobileWalletProvider {
|
|
|
21304
21360
|
}
|
|
21305
21361
|
// Pre-fetch nonce from server while wallet is not yet connected
|
|
21306
21362
|
const nonce = await genAuthNonce();
|
|
21363
|
+
await awaitActivityFocus();
|
|
21307
21364
|
// Single transact() call: authorize + signMessages — one wallet popup
|
|
21308
21365
|
const result = await transact(async (wallet) => {
|
|
21309
21366
|
// Step 1: Authorize — user approves the dApp
|
|
@@ -21392,6 +21449,7 @@ class SolanaMobileWalletProvider {
|
|
|
21392
21449
|
await loadMwaProtocol();
|
|
21393
21450
|
const { transact } = mwaProtocolModule;
|
|
21394
21451
|
const authToken = this.authToken;
|
|
21452
|
+
await awaitActivityFocus();
|
|
21395
21453
|
await transact(async (wallet) => {
|
|
21396
21454
|
await wallet.deauthorize({ auth_token: authToken });
|
|
21397
21455
|
}, this.getAssociationConfig());
|
|
@@ -21417,6 +21475,7 @@ class SolanaMobileWalletProvider {
|
|
|
21417
21475
|
const { transact } = mwaProtocolModule;
|
|
21418
21476
|
const base64Addr = this.base64Address;
|
|
21419
21477
|
try {
|
|
21478
|
+
await awaitActivityFocus();
|
|
21420
21479
|
const signedMessages = await transact(async (wallet) => {
|
|
21421
21480
|
await this.reauthorizeWallet(wallet);
|
|
21422
21481
|
const messageBytes = getPlatform().textEncode(message);
|
|
@@ -21470,6 +21529,7 @@ class SolanaMobileWalletProvider {
|
|
|
21470
21529
|
}
|
|
21471
21530
|
}
|
|
21472
21531
|
try {
|
|
21532
|
+
await awaitActivityFocus();
|
|
21473
21533
|
const signedTransactions = await transact(async (wallet) => {
|
|
21474
21534
|
await this.reauthorizeWallet(wallet);
|
|
21475
21535
|
return wallet.signTransactions({ transactions: [transaction] });
|
|
@@ -21517,6 +21577,7 @@ class SolanaMobileWalletProvider {
|
|
|
21517
21577
|
}
|
|
21518
21578
|
if (isSurfnet) {
|
|
21519
21579
|
// Surfnet: sign-only, then submit to our specific RPC
|
|
21580
|
+
await awaitActivityFocus();
|
|
21520
21581
|
const signedTransactions = await transact(async (wallet) => {
|
|
21521
21582
|
await this.reauthorizeWallet(wallet);
|
|
21522
21583
|
return wallet.signTransactions({ transactions: [transaction] });
|
|
@@ -21536,6 +21597,7 @@ class SolanaMobileWalletProvider {
|
|
|
21536
21597
|
return signature;
|
|
21537
21598
|
}
|
|
21538
21599
|
// Non-surfnet: use signAndSendTransactions for wallet-optimized submission
|
|
21600
|
+
await awaitActivityFocus();
|
|
21539
21601
|
const signatures = await transact(async (wallet) => {
|
|
21540
21602
|
await this.reauthorizeWallet(wallet);
|
|
21541
21603
|
return wallet.signAndSendTransactions({
|
|
@@ -21619,6 +21681,7 @@ class SolanaMobileWalletProvider {
|
|
|
21619
21681
|
tx = result.tx;
|
|
21620
21682
|
}
|
|
21621
21683
|
if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {
|
|
21684
|
+
await awaitActivityFocus();
|
|
21622
21685
|
const [signedTx] = await transact(async (wallet) => {
|
|
21623
21686
|
await this.reauthorizeWallet(wallet);
|
|
21624
21687
|
return wallet.signTransactions({ transactions: [tx] });
|
|
@@ -21632,6 +21695,7 @@ class SolanaMobileWalletProvider {
|
|
|
21632
21695
|
}
|
|
21633
21696
|
if (isSurfnet) {
|
|
21634
21697
|
// Surfnet: sign then submit manually to our RPC
|
|
21698
|
+
await awaitActivityFocus();
|
|
21635
21699
|
const [signedTx] = await transact(async (wallet) => {
|
|
21636
21700
|
await this.reauthorizeWallet(wallet);
|
|
21637
21701
|
return wallet.signTransactions({ transactions: [tx] });
|
|
@@ -21660,6 +21724,7 @@ class SolanaMobileWalletProvider {
|
|
|
21660
21724
|
};
|
|
21661
21725
|
}
|
|
21662
21726
|
// Non-surfnet: use signAndSendTransactions
|
|
21727
|
+
await awaitActivityFocus();
|
|
21663
21728
|
const signatures = await transact(async (wallet) => {
|
|
21664
21729
|
await this.reauthorizeWallet(wallet);
|
|
21665
21730
|
return wallet.signAndSendTransactions({
|
|
@@ -22068,5 +22133,5 @@ class PrivyExpoProvider {
|
|
|
22068
22133
|
}
|
|
22069
22134
|
}
|
|
22070
22135
|
|
|
22071
|
-
export {
|
|
22072
|
-
//# sourceMappingURL=index-
|
|
22136
|
+
export { getCachedData as $, subscribe as A, useAuth as B, deserializeTransaction as C, getIdToken as D, setPlatform as E, getPlatform as F, PrivyWalletProvider as G, DEFAULT_TEST_ADDRESS as H, isMobileWalletAvailable as I, registerMobileWalletAdapter as J, PrivyExpoProvider as K, InsufficientBalanceError as L, MockAuthProvider as M, ServerSessionManager as N, OffchainAuthProvider as O, PhantomWalletProvider as P, buildSetDocumentsTransaction as Q, ReactNativeSessionManager as R, SolanaMobileWalletProvider as S, clearCache as T, closeAllSubscriptions as U, convertRemainingAccounts as V, WebSessionManager as W, createSessionWithPrivy as X, createSessionWithSignature as Y, genAuthNonce as Z, genSolanaMessage as _, bs58 as a, getMany as a0, reconnectWithNewAuth as a1, refreshSession as a2, signSessionCreateMessage as a3, bufferExports as b, getCurrentUser as c, onAuthLoadingChanged as d, getAuthLoading as e, logout as f, getDefaultExportFromCjs$1 as g, getConfig as h, init as i, getAuthProvider as j, get as k, login as l, setMany as m, setFile as n, onAuthStateChanged as o, getFiles as p, runQueryMany as q, runQuery as r, set as s, runExpression as t, runExpressionMany as u, signMessage as v, signTransaction as w, signAndSubmitTransaction as x, count as y, aggregate as z };
|
|
22137
|
+
//# sourceMappingURL=index-Bx_lLXRT.esm.js.map
|