@pooflabs/web 0.0.77 → 0.0.79-rc.1
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/index-6pNPzV1t.esm.js +6 -0
- package/dist/index-6pNPzV1t.esm.js.map +1 -0
- package/dist/{index-Bfk81d8_.js → index-BHGEc97p.js} +3 -3
- package/dist/{index-Bfk81d8_.js.map → index-BHGEc97p.js.map} +1 -1
- package/dist/{index-R7t9pRt_.esm.js → index-CiwYJvf8.esm.js} +3 -3
- package/dist/{index-R7t9pRt_.esm.js.map → index-CiwYJvf8.esm.js.map} +1 -1
- package/dist/{index-CFh1x-M0.esm.js → index-CsIXFm8d.esm.js} +50 -3
- package/dist/{index-CFh1x-M0.esm.js.map → index-CsIXFm8d.esm.js.map} +1 -1
- package/dist/{index-DDXzCx2W.js → index-D9BY44i-.js} +2 -2
- package/dist/index-D9BY44i-.js.map +1 -0
- package/dist/{index-DQVpAl5t.js → index-DwU9hjtr.js} +50 -3
- package/dist/{index-DQVpAl5t.js.map → index-DwU9hjtr.js.map} +1 -1
- package/dist/{index-CeQ8hE3s.esm.js → index-U-xlsKRI.esm.js} +2 -2
- package/dist/{index-CeQ8hE3s.esm.js.map → index-U-xlsKRI.esm.js.map} +1 -1
- package/dist/{index-KUU0aVzP.js → index-zS_Y-wbi.js} +2 -2
- package/dist/{index-KUU0aVzP.js.map → index-zS_Y-wbi.js.map} +1 -1
- package/dist/{index.browser-BE44CEaJ.esm.js → index.browser-CMEwqnEe.esm.js} +2 -2
- package/dist/{index.browser-BE44CEaJ.esm.js.map → index.browser-CMEwqnEe.esm.js.map} +1 -1
- package/dist/{index.browser-Di1_YZpi.js → index.browser-Cpi4W_1r.js} +2 -2
- package/dist/{index.browser-Di1_YZpi.js.map → index.browser-Cpi4W_1r.js.map} +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{index.native-DAyMVhFq.esm.js → index.native-CEf5PJ_g.esm.js} +4 -4
- package/dist/{index.native-DAyMVhFq.esm.js.map → index.native-CEf5PJ_g.esm.js.map} +1 -1
- package/dist/{index.native-CKd2b3_F.js → index.native-DtxPWD00.js} +4 -4
- package/dist/{index.native-CKd2b3_F.js.map → index.native-DtxPWD00.js.map} +1 -1
- package/dist/index.native.esm.js +1 -1
- package/dist/index.native.js +1 -1
- package/dist/{phantom-wallet-provider-DQ0uhl2v.esm.js → phantom-wallet-provider-B0UmUtfB.esm.js} +51 -4
- package/dist/{phantom-wallet-provider-DQ0uhl2v.esm.js.map → phantom-wallet-provider-B0UmUtfB.esm.js.map} +1 -1
- package/dist/{phantom-wallet-provider-DJ6qf2VB.js → phantom-wallet-provider-BbyQIlro.js} +51 -4
- package/dist/{phantom-wallet-provider-DJ6qf2VB.js.map → phantom-wallet-provider-BbyQIlro.js.map} +1 -1
- package/dist/{privy-wallet-provider-CMCv5g3O.js → privy-wallet-provider-CoQzq0F4.js} +3 -3
- package/dist/{privy-wallet-provider-CMCv5g3O.js.map → privy-wallet-provider-CoQzq0F4.js.map} +1 -1
- package/dist/{privy-wallet-provider-BhiHnphv.esm.js → privy-wallet-provider-DGjYglh7.esm.js} +3 -3
- package/dist/{privy-wallet-provider-BhiHnphv.esm.js.map → privy-wallet-provider-DGjYglh7.esm.js.map} +1 -1
- package/dist/{solana-mobile-wallet-provider-DaFNesCe.js → solana-mobile-wallet-provider-BLoovRsJ.js} +3 -3
- package/dist/{solana-mobile-wallet-provider-DaFNesCe.js.map → solana-mobile-wallet-provider-BLoovRsJ.js.map} +1 -1
- package/dist/{solana-mobile-wallet-provider-DSSk_6CR.esm.js → solana-mobile-wallet-provider-DIyP-Az5.esm.js} +3 -3
- package/dist/{solana-mobile-wallet-provider-DSSk_6CR.esm.js.map → solana-mobile-wallet-provider-DIyP-Az5.esm.js.map} +1 -1
- package/package.json +2 -2
- package/dist/index-CdOv7Nw2.esm.js +0 -6
- package/dist/index-CdOv7Nw2.esm.js.map +0 -1
- package/dist/index-DDXzCx2W.js.map +0 -1
|
@@ -15275,6 +15275,32 @@ async function confirmAndCheckTransaction(connection, signature) {
|
|
|
15275
15275
|
}
|
|
15276
15276
|
|
|
15277
15277
|
const VALID_PROVIDERS = ['injected', 'google', 'apple', 'deeplink', 'phantom'];
|
|
15278
|
+
// When the dApp runs inside an iframe whose parent origin is different from
|
|
15279
|
+
// (or can't inject into) the child frame — notably Phantom's Android in-app
|
|
15280
|
+
// browser, which injects window.phantom.solana only into the top frame —
|
|
15281
|
+
// the Phantom deeplink path tries to navigate phantom.app/ul/browse/... from
|
|
15282
|
+
// inside the iframe. Android App Links only hand off on top-level navigations,
|
|
15283
|
+
// and phantom.app refuses to be framed (X-Frame-Options: DENY), so the connect
|
|
15284
|
+
// fails. To get back to a working context we navigate the top window to the
|
|
15285
|
+
// dApp's own URL, dropping the iframe shell. Once top-level, the wallet
|
|
15286
|
+
// browser injects its provider and the normal injected flow succeeds.
|
|
15287
|
+
function isInIframe() {
|
|
15288
|
+
if (typeof window === 'undefined')
|
|
15289
|
+
return false;
|
|
15290
|
+
try {
|
|
15291
|
+
return window.top !== window.self;
|
|
15292
|
+
}
|
|
15293
|
+
catch (_a) {
|
|
15294
|
+
// Cross-origin access to window.top throws — if we can't read it, we're iframed.
|
|
15295
|
+
return true;
|
|
15296
|
+
}
|
|
15297
|
+
}
|
|
15298
|
+
function shouldBreakOutOfIframe(provider) {
|
|
15299
|
+
// Only break out when the user chose the deeplink provider. The modal only
|
|
15300
|
+
// offers deeplink on mobile when no injected Phantom is present, so this is
|
|
15301
|
+
// exactly the iframe-without-provider case we need to escape.
|
|
15302
|
+
return provider === 'deeplink' && isInIframe();
|
|
15303
|
+
}
|
|
15278
15304
|
// Dynamically import React and Phantom SDK - only when needed
|
|
15279
15305
|
let React$1;
|
|
15280
15306
|
let ReactDOM$1;
|
|
@@ -15295,7 +15321,7 @@ async function loadDependencies() {
|
|
|
15295
15321
|
const [reactModule, reactDomModule, phantomModule] = await Promise.all([
|
|
15296
15322
|
import('react'),
|
|
15297
15323
|
import('react-dom/client'),
|
|
15298
|
-
import('./index-
|
|
15324
|
+
import('./index-U-xlsKRI.esm.js')
|
|
15299
15325
|
]);
|
|
15300
15326
|
// Extract default export from ESM module namespace
|
|
15301
15327
|
// Dynamic import() returns { default: Module, ...exports }, not the module directly
|
|
@@ -15643,6 +15669,27 @@ class PhantomWalletProvider {
|
|
|
15643
15669
|
const handleWalletClick = async (options) => {
|
|
15644
15670
|
walletClickedRef.current = true;
|
|
15645
15671
|
setShowWalletModal(false);
|
|
15672
|
+
// If we're in an iframe and the user chose deeplink, Phantom's SDK
|
|
15673
|
+
// will navigate *this* iframe to phantom.app/ul/browse/..., which
|
|
15674
|
+
// Android App Links won't intercept and phantom.app won't let be
|
|
15675
|
+
// framed. Escape to top-level first so the wallet browser can
|
|
15676
|
+
// inject its provider and the normal injected flow takes over
|
|
15677
|
+
// on the user's next connect tap.
|
|
15678
|
+
if (shouldBreakOutOfIframe(options === null || options === void 0 ? void 0 : options.provider)) {
|
|
15679
|
+
try {
|
|
15680
|
+
// Same-site navigation (*.poof.new → *.poof.new) plus the
|
|
15681
|
+
// iframe's allow-top-navigation-by-user-activation sandbox
|
|
15682
|
+
// token make this go through.
|
|
15683
|
+
window.top.location.href = window.location.href;
|
|
15684
|
+
return;
|
|
15685
|
+
}
|
|
15686
|
+
catch (_a) {
|
|
15687
|
+
// Top-nav blocked (no sandbox grant, cross-origin top, etc.).
|
|
15688
|
+
// Fall through to the normal deeplink path — at least the
|
|
15689
|
+
// user gets the original broken-ish behavior instead of a
|
|
15690
|
+
// silently-dead button.
|
|
15691
|
+
}
|
|
15692
|
+
}
|
|
15646
15693
|
try {
|
|
15647
15694
|
if (options === null || options === void 0 ? void 0 : options.walletId) {
|
|
15648
15695
|
await connect({ provider: 'injected', walletId: options.walletId });
|
|
@@ -20771,7 +20818,7 @@ async function registerMobileWalletAdapter(config) {
|
|
|
20771
20818
|
if (typeof window === 'undefined')
|
|
20772
20819
|
return;
|
|
20773
20820
|
try {
|
|
20774
|
-
const walletStandardMobile = await import('./index.browser-
|
|
20821
|
+
const walletStandardMobile = await import('./index.browser-CMEwqnEe.esm.js');
|
|
20775
20822
|
const registerMwa = walletStandardMobile.registerMwa || ((_a = walletStandardMobile.default) === null || _a === void 0 ? void 0 : _a.registerMwa);
|
|
20776
20823
|
if (!registerMwa) {
|
|
20777
20824
|
console.warn('[SolanaMobileWallet] registerMwa not found in @solana-mobile/wallet-standard-mobile');
|
|
@@ -21680,4 +21727,4 @@ class PrivyExpoProvider {
|
|
|
21680
21727
|
}
|
|
21681
21728
|
|
|
21682
21729
|
export { getMany as $, useAuth as A, deserializeTransaction as B, getIdToken as C, setPlatform as D, getPlatform as E, PrivyWalletProvider as F, DEFAULT_TEST_ADDRESS as G, isMobileWalletAvailable as H, registerMobileWalletAdapter as I, PrivyExpoProvider as J, InsufficientBalanceError as K, ServerSessionManager as L, MockAuthProvider as M, buildSetDocumentsTransaction as N, OffchainAuthProvider as O, PhantomWalletProvider as P, clearCache as Q, ReactNativeSessionManager as R, SolanaMobileWalletProvider as S, closeAllSubscriptions as T, convertRemainingAccounts as U, createSessionWithPrivy as V, WebSessionManager as W, createSessionWithSignature as X, genAuthNonce as Y, genSolanaMessage as Z, getCachedData as _, getCurrentUser as a, reconnectWithNewAuth as a0, refreshSession as a1, signSessionCreateMessage as a2, bufferExports as b, onAuthLoadingChanged as c, getAuthLoading as d, logout as e, getConfig as f, getDefaultExportFromCjs$1 as g, getAuthProvider as h, init as i, get as j, setMany as k, login as l, setFile as m, getFiles as n, onAuthStateChanged as o, runQueryMany as p, runExpression as q, runQuery as r, set as s, runExpressionMany as t, signMessage as u, signTransaction as v, signAndSubmitTransaction as w, count as x, aggregate as y, subscribe as z };
|
|
21683
|
-
//# sourceMappingURL=index-
|
|
21730
|
+
//# sourceMappingURL=index-CsIXFm8d.esm.js.map
|