@bounded-sh/client 0.0.117 → 0.0.118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/auth/bounded-login-widget.d.ts +5 -0
  2. package/dist/auth/providers/transaction-utils.d.ts +5 -3
  3. package/dist/connections.d.ts +5 -1
  4. package/dist/{email-auth-provider-CMfwB-Uj.mjs → email-auth-provider-B9cZ-puM.mjs} +2 -2
  5. package/dist/{email-auth-provider-C5bYKzpN.mjs.map → email-auth-provider-B9cZ-puM.mjs.map} +1 -1
  6. package/dist/{email-auth-provider-BCWTczE2.js → email-auth-provider-BYiK3ZCv.js} +2 -2
  7. package/dist/{email-auth-provider-BCWTczE2.js.map → email-auth-provider-BYiK3ZCv.js.map} +1 -1
  8. package/dist/{email-auth-provider-3tuw_aDK.js → email-auth-provider-C-qQ46kD.js} +2 -2
  9. package/dist/{email-auth-provider-3tuw_aDK.js.map → email-auth-provider-C-qQ46kD.js.map} +1 -1
  10. package/dist/{email-auth-provider-C5bYKzpN.mjs → email-auth-provider-DFHalX9c.mjs} +2 -2
  11. package/dist/{email-auth-provider-CMfwB-Uj.mjs.map → email-auth-provider-DFHalX9c.mjs.map} +1 -1
  12. package/dist/{guest-auth-provider-CsM_SuGH.mjs → guest-auth-provider-BRq3JB0_.mjs} +2 -2
  13. package/dist/{guest-auth-provider-CsM_SuGH.mjs.map → guest-auth-provider-BRq3JB0_.mjs.map} +1 -1
  14. package/dist/{guest-auth-provider-DkX8cQqr.js → guest-auth-provider-D1q3C5uC.js} +2 -2
  15. package/dist/{guest-auth-provider-DkX8cQqr.js.map → guest-auth-provider-D1q3C5uC.js.map} +1 -1
  16. package/dist/{guest-auth-provider-_jdqZKUo.js → guest-auth-provider-g5-T58yA.js} +2 -2
  17. package/dist/{guest-auth-provider-_jdqZKUo.js.map → guest-auth-provider-g5-T58yA.js.map} +1 -1
  18. package/dist/{guest-auth-provider-DH4iA0oS.mjs → guest-auth-provider-i8-RL0js.mjs} +2 -2
  19. package/dist/{guest-auth-provider-DH4iA0oS.mjs.map → guest-auth-provider-i8-RL0js.mjs.map} +1 -1
  20. package/dist/{index-DrVV40Si.js → index-eMCWYiRe.js} +83 -66
  21. package/dist/index-eMCWYiRe.js.map +1 -0
  22. package/dist/{index-Sx-Caknc.mjs → index-xNGb1ROp.mjs} +84 -67
  23. package/dist/index-xNGb1ROp.mjs.map +1 -0
  24. package/dist/index.js +1 -1
  25. package/dist/index.mjs +1 -1
  26. package/dist/{index.native-CMNMw3Pe.js → index.native-ByI3rRu4.js} +47 -50
  27. package/dist/index.native-ByI3rRu4.js.map +1 -0
  28. package/dist/{index.native-DfDVa7MG.mjs → index.native-YmmnwqEw.mjs} +48 -51
  29. package/dist/index.native-YmmnwqEw.mjs.map +1 -0
  30. package/dist/index.native.js +1 -1
  31. package/dist/index.native.mjs +1 -1
  32. package/dist/{injected-evm-wallet-provider-BCZQuyPF.mjs → injected-evm-wallet-provider--x3yWNps.mjs} +2 -2
  33. package/dist/{injected-evm-wallet-provider-BCZQuyPF.mjs.map → injected-evm-wallet-provider--x3yWNps.mjs.map} +1 -1
  34. package/dist/{injected-evm-wallet-provider-CVMhv4xf.js → injected-evm-wallet-provider-BIYAL_NZ.js} +2 -2
  35. package/dist/{injected-evm-wallet-provider-CVMhv4xf.js.map → injected-evm-wallet-provider-BIYAL_NZ.js.map} +1 -1
  36. package/dist/{injected-evm-wallet-provider-CUNTCT-a.js → injected-evm-wallet-provider-BMjQaUiB.js} +2 -2
  37. package/dist/{injected-evm-wallet-provider-CUNTCT-a.js.map → injected-evm-wallet-provider-BMjQaUiB.js.map} +1 -1
  38. package/dist/{injected-evm-wallet-provider-E7eCpvLr.mjs → injected-evm-wallet-provider-BoLGCVqD.mjs} +2 -2
  39. package/dist/{injected-evm-wallet-provider-E7eCpvLr.mjs.map → injected-evm-wallet-provider-BoLGCVqD.mjs.map} +1 -1
  40. package/dist/{injected-wallet-provider-BroBvwi6.js → injected-wallet-provider-D3fVFadN.js} +14 -5
  41. package/dist/{injected-wallet-provider-BroBvwi6.js.map → injected-wallet-provider-D3fVFadN.js.map} +1 -1
  42. package/dist/{injected-wallet-provider-BoRoxrEl.mjs → injected-wallet-provider-DSOjJP3u.mjs} +14 -5
  43. package/dist/{injected-wallet-provider-BoRoxrEl.mjs.map → injected-wallet-provider-DSOjJP3u.mjs.map} +1 -1
  44. package/dist/{injected-wallet-provider-ezYLhye8.mjs → injected-wallet-provider-DuWTw-fM.mjs} +14 -5
  45. package/dist/{injected-wallet-provider-ezYLhye8.mjs.map → injected-wallet-provider-DuWTw-fM.mjs.map} +1 -1
  46. package/dist/{injected-wallet-provider-BqYJQDGu.js → injected-wallet-provider-zXw__lyf.js} +14 -5
  47. package/dist/{injected-wallet-provider-BqYJQDGu.js.map → injected-wallet-provider-zXw__lyf.js.map} +1 -1
  48. package/package.json +2 -2
  49. package/dist/index-DrVV40Si.js.map +0 -1
  50. package/dist/index-Sx-Caknc.mjs.map +0 -1
  51. package/dist/index.native-CMNMw3Pe.js.map +0 -1
  52. package/dist/index.native-DfDVa7MG.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { getConfig, getActiveSessionManager, WebSessionManager, ReactNativeSessionManager, revokeSession, reconnectWithNewAuth, deriveUserIdentityFromIdToken, init as init$2, onSessionCleared, onSessionChange, subscribe, getFreshAuthToken, getSessionGeneration, getIdToken as getIdToken$1, getConfiguredAppId, setWithVenueGrant, writeNotAppliedPhase, waitForSetResult, reconcileSetResult, resolveVenueRpcUrl, genAuthNonce, genSolanaMessage, createSessionWithSignature } from '@bounded-sh/core';
1
+ import { getConfig, getActiveSessionManager, confirmSignature, WebSessionManager, ReactNativeSessionManager, revokeSession, reconnectWithNewAuth, deriveUserIdentityFromIdToken, init as init$2, onSessionCleared, onSessionChange, subscribe, getFreshAuthToken, getSessionGeneration, getIdToken as getIdToken$1, getConfiguredAppId, setWithVenueGrant, writeNotAppliedPhase, waitForSetResult, reconcileSetResult, resolveVenueRpcUrl, genAuthNonce, genSolanaMessage, createSessionWithSignature } from '@bounded-sh/core';
2
2
  import * as React from 'react';
3
3
 
4
4
  function walletContextFromClaims(claims, baseUrl, expectedAppId, tenantOrigin) {
@@ -5232,10 +5232,9 @@ async function signAndSubmitTransactionWithTurnkey(transaction, feePayer) {
5232
5232
  // has signed silently invalidates their signature - signTransactionWithTurnkey only ADDS the
5233
5233
  // Turnkey signature, it never re-signs the others. So only refresh the blockhash while the
5234
5234
  // transaction is still unsigned; once a real signature is present, preserve the caller's message
5235
- // verbatim and confirm against the blockhash it already carries.
5236
- const hasSignature = transactionHasSignature$1(transaction);
5237
- let confirmBlockhash = blockhash;
5238
- if (!hasSignature) {
5235
+ // verbatim. The confirmation is fenced on the lifetime read above either way: for a pre-signed
5236
+ // transaction that is a superset of the one its signers fenced on, never a shorter wait.
5237
+ if (!transactionHasSignature$1(transaction)) {
5239
5238
  if (isLegacy) {
5240
5239
  const legacy = transaction;
5241
5240
  legacy.recentBlockhash = blockhash;
@@ -5251,19 +5250,17 @@ async function signAndSubmitTransactionWithTurnkey(transaction, feePayer) {
5251
5250
  transaction.message.recentBlockhash = blockhash;
5252
5251
  }
5253
5252
  }
5254
- else {
5255
- confirmBlockhash = (isLegacy
5256
- ? transaction.recentBlockhash
5257
- : transaction.message.recentBlockhash) || blockhash;
5258
- }
5259
5253
  const signed = await signTransactionWithTurnkey(transaction);
5260
5254
  const signature = await connection.sendRawTransaction(signed.serialize(), {
5261
5255
  skipPreflight: false,
5262
5256
  maxRetries: 3,
5263
5257
  });
5264
- const confirmation = await connection.confirmTransaction({ signature, blockhash: confirmBlockhash, lastValidBlockHeight }, 'confirmed');
5265
- if (confirmation.value.err) {
5266
- throw new Error(`Turnkey transaction failed: ${JSON.stringify(confirmation.value.err)}`);
5258
+ const confirmation = await confirmSignature(connection, { signature, lastValidBlockHeight });
5259
+ if (!confirmation.landed) {
5260
+ throw new Error(`Turnkey transaction ${signature} was not confirmed: ${confirmation.reason}. Check its status before sending it again.`);
5261
+ }
5262
+ if (confirmation.status.err) {
5263
+ throw new Error(`Turnkey transaction failed: ${JSON.stringify(confirmation.status.err)}`);
5267
5264
  }
5268
5265
  return signature;
5269
5266
  }
@@ -6475,7 +6472,7 @@ async function getAuthProvider(config, fromStorage = false) {
6475
6472
  // manager as legacy email sessions. Human login should be started
6476
6473
  // with loginWithRedirect(); this provider is kept as the restore and
6477
6474
  // logout surface for those sessions.
6478
- currentAuthProvider = new (await import('./email-auth-provider-CMfwB-Uj.mjs')).EmailAuthProvider();
6475
+ currentAuthProvider = new (await import('./email-auth-provider-B9cZ-puM.mjs')).EmailAuthProvider();
6479
6476
  break;
6480
6477
  case "phantom": {
6481
6478
  // First-class Solana WALLET LOGIN (the poof/TaroBase-style "connect
@@ -6517,7 +6514,7 @@ async function getAuthProvider(config, fromStorage = false) {
6517
6514
  // (bounded-login-widget.ts), so registration never counts as
6518
6515
  // evidence the user has a wallet.
6519
6516
  await ensureSolanaMobileWalletRegistered(config, configuredNetwork);
6520
- const { InjectedWalletProvider } = await import('./injected-wallet-provider-ezYLhye8.mjs');
6517
+ const { InjectedWalletProvider } = await import('./injected-wallet-provider-DuWTw-fM.mjs');
6521
6518
  currentAuthProvider = new InjectedWalletProvider(resolveInjectedWalletConfig(config), rpcUrl, configuredNetwork);
6522
6519
  break;
6523
6520
  }
@@ -6530,7 +6527,7 @@ async function getAuthProvider(config, fromStorage = false) {
6530
6527
  // Selecting authMethod:'evm-wallet' IS the opt-in — pass evmWalletConfig
6531
6528
  // to point at a specific wallet or set chainId/domain.
6532
6529
  const evmWalletConfig = ((_a = config.evmWalletConfig) !== null && _a !== void 0 ? _a : {});
6533
- const { InjectedEvmWalletProvider } = await import('./injected-evm-wallet-provider-BCZQuyPF.mjs');
6530
+ const { InjectedEvmWalletProvider } = await import('./injected-evm-wallet-provider--x3yWNps.mjs');
6534
6531
  currentAuthProvider = new InjectedEvmWalletProvider(evmWalletConfig);
6535
6532
  break;
6536
6533
  }
@@ -6555,7 +6552,7 @@ async function getAuthProvider(config, fromStorage = false) {
6555
6552
  break;
6556
6553
  case "guest":
6557
6554
  // Anonymous auth: a device-local ed25519 keypair signs the challenge.
6558
- currentAuthProvider = new (await import('./guest-auth-provider-DH4iA0oS.mjs')).GuestAuthProvider();
6555
+ currentAuthProvider = new (await import('./guest-auth-provider-i8-RL0js.mjs')).GuestAuthProvider();
6559
6556
  break;
6560
6557
  }
6561
6558
  if (!currentAuthProvider) {
@@ -6617,7 +6614,7 @@ async function signInAnonymously() {
6617
6614
  // Lazy-load the guest provider so its ed25519/web3 dependencies stay out of
6618
6615
  // the main bundle for data-only apps. Specifier is a static string literal
6619
6616
  // so bundle-splitting can see it.
6620
- const provider = new (await import('./guest-auth-provider-DH4iA0oS.mjs')).GuestAuthProvider();
6617
+ const provider = new (await import('./guest-auth-provider-i8-RL0js.mjs')).GuestAuthProvider();
6621
6618
  setAuthLoading(true); // reflect "signing in…" while the guest keypair session is minted
6622
6619
  // adoptSessionProvider awaits only getConfig() (already resolved here) and then
6623
6620
  // runs every write - provider/method/config/marker/user - in one synchronous
@@ -6788,7 +6785,7 @@ function ensureSharedWalletLoginReady() {
6788
6785
  if (!sharedWalletReady) {
6789
6786
  sharedWalletReady = (async () => {
6790
6787
  await getConfig();
6791
- await import('./injected-wallet-provider-ezYLhye8.mjs');
6788
+ await import('./injected-wallet-provider-DuWTw-fM.mjs');
6792
6789
  })().catch((error) => {
6793
6790
  sharedWalletReady = null;
6794
6791
  throw error;
@@ -6893,7 +6890,7 @@ async function loginWithWallet(options) {
6893
6890
  await ensureSharedWalletLoginReady();
6894
6891
  else
6895
6892
  await ensureWalletLoginReady();
6896
- const { InjectedWalletProvider } = await import('./injected-wallet-provider-ezYLhye8.mjs');
6893
+ const { InjectedWalletProvider } = await import('./injected-wallet-provider-DuWTw-fM.mjs');
6897
6894
  // Keep the RAW wallet provider: the offchain wrapper forwards only a fixed
6898
6895
  // set of methods, so cleanup below must speak to the provider that actually
6899
6896
  // holds the config rather than to whatever is wrapping it.
@@ -8431,6 +8428,18 @@ function walletGlyph() {
8431
8428
  svg.append(rect, dot);
8432
8429
  return svg;
8433
8430
  }
8431
+ /** Whether the card shows "Powered by Bounded": the caller decides, else it is off on OpenApps pages. */
8432
+ function showsAttribution(opts) {
8433
+ if (typeof opts.attribution === "boolean")
8434
+ return opts.attribution;
8435
+ try {
8436
+ const host = location.hostname.toLowerCase();
8437
+ return !(host === "openapps.xyz" || host.endsWith(".openapps.xyz"));
8438
+ }
8439
+ catch (_a) {
8440
+ return true;
8441
+ }
8442
+ }
8434
8443
  function isInjectedProvider(v) {
8435
8444
  return supportsWalletSignIn(v);
8436
8445
  }
@@ -9070,13 +9079,15 @@ async function prepareAndOpen(opts, pending) {
9070
9079
  : "Add a method, or make sure wallet login is enabled and the mobile adapter is installed."));
9071
9080
  }
9072
9081
  card.appendChild(status);
9073
- const foot = el("div", "foot");
9074
- const poweredBy = el("a", undefined, "Powered by Bounded");
9075
- poweredBy.href = "https://bounded.sh";
9076
- poweredBy.target = "_blank";
9077
- poweredBy.rel = "noopener";
9078
- foot.appendChild(poweredBy);
9079
- card.appendChild(foot);
9082
+ if (showsAttribution(opts)) {
9083
+ const foot = el("div", "foot");
9084
+ const poweredBy = el("a", undefined, "Powered by Bounded");
9085
+ poweredBy.href = "https://bounded.sh";
9086
+ poweredBy.target = "_blank";
9087
+ poweredBy.rel = "noopener";
9088
+ foot.appendChild(poweredBy);
9089
+ card.appendChild(foot);
9090
+ }
9080
9091
  return card;
9081
9092
  };
9082
9093
  // Solana Mobile leaves the page to sign in: the nonce fetch that precedes
@@ -9229,13 +9240,15 @@ async function prepareAndOpen(opts, pending) {
9229
9240
  frame.style.cssText = "width:100%;height:210px;border:0;background:transparent;color-scheme:dark";
9230
9241
  card.appendChild(frame);
9231
9242
  card.appendChild(status);
9232
- const foot = el("div", "foot");
9233
- const poweredBy = el("a", undefined, "Powered by Bounded");
9234
- poweredBy.href = "https://bounded.sh";
9235
- poweredBy.target = "_blank";
9236
- poweredBy.rel = "noopener";
9237
- foot.appendChild(poweredBy);
9238
- card.appendChild(foot);
9243
+ if (showsAttribution(opts)) {
9244
+ const foot = el("div", "foot");
9245
+ const poweredBy = el("a", undefined, "Powered by Bounded");
9246
+ poweredBy.href = "https://bounded.sh";
9247
+ poweredBy.target = "_blank";
9248
+ poweredBy.rel = "noopener";
9249
+ foot.appendChild(poweredBy);
9250
+ card.appendChild(foot);
9251
+ }
9239
9252
  // Running the frame MINTS a session, so it takes the lock like every other lane. Abandoning
9240
9253
  // via Back settles it so the next lane the user picks is not refused by a claim nobody owns.
9241
9254
  const attempt = beginAttempt();
@@ -10787,7 +10800,11 @@ async function onramp(options = {}) {
10787
10800
  // Only identity is kept: the provider token is discarded after one profile read.
10788
10801
  // The return page must be on an origin that serves this app (its bounded.page or
10789
10802
  // custom domain, or an origin the owner registered, such as localhost).
10790
- /** `code` is the platform's error code, e.g. `cancelled`, `x_link_expired`, `connection_return_origin_not_allowed`. */
10803
+ /**
10804
+ * `code` is the platform's error code, e.g. `cancelled`, `x_link_expired`, `connection_return_origin_not_allowed`,
10805
+ * or `x_account_linked_elsewhere` when the app's policy sets `auth.connections.x.unique` and another user
10806
+ * of the app already linked that X account.
10807
+ */
10791
10808
  class ConnectionError extends Error {
10792
10809
  constructor(code) {
10793
10810
  super(`Connection failed: ${code}`);
@@ -11536,35 +11553,29 @@ async function getParsedTransactionCompat(connection, signature) {
11536
11553
  }
11537
11554
  }
11538
11555
  /**
11539
- * Polls getSignatureStatuses until the transaction is confirmed, then checks for errors.
11540
- * Throws if the transaction failed on-chain. Returns parsed transaction info on success.
11556
+ * Waits for a broadcast signature by HTTPS status polling, fenced on the blockhash
11557
+ * lifetime it was signed against (core's `confirmSignature`), then checks for an
11558
+ * on-chain error. Throws if the transaction failed on-chain or was not seen before
11559
+ * the fence closed. Returns parsed transaction info on success.
11541
11560
  */
11542
- async function confirmAndCheckTransaction(connection, signature) {
11561
+ async function confirmAndCheckTransaction(connection, signature, lastValidBlockHeight) {
11543
11562
  var _a;
11544
- const maxAttempts = 15;
11545
- for (let i = 0; i < maxAttempts; i++) {
11546
- const { value } = await connection.getSignatureStatuses([signature]);
11547
- const status = value[0];
11548
- if (status) {
11549
- if (status.err) {
11550
- let logMessages;
11551
- try {
11552
- const txInfo = await getParsedTransactionCompat(connection, signature);
11553
- logMessages = (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.logMessages;
11554
- }
11555
- catch (_b) {
11556
- // Log retrieval is diagnostic only; the on-chain error is the verdict.
11557
- }
11558
- const errorMessage = extractTransactionError(status.err, logMessages);
11559
- throw new Error(`Transaction failed: ${errorMessage}`);
11560
- }
11561
- if (status.confirmationStatus === 'confirmed' || status.confirmationStatus === 'finalized') {
11562
- return await getParsedTransactionCompat(connection, signature);
11563
- }
11563
+ const confirmation = await confirmSignature(connection, { signature, lastValidBlockHeight });
11564
+ if (!confirmation.landed) {
11565
+ throw new Error(`Transaction ${signature} was not confirmed: ${confirmation.reason}. Check its status before sending it again.`);
11566
+ }
11567
+ if (confirmation.status.err) {
11568
+ let logMessages;
11569
+ try {
11570
+ const txInfo = await getParsedTransactionCompat(connection, signature);
11571
+ logMessages = (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.logMessages;
11564
11572
  }
11565
- await new Promise(resolve => setTimeout(resolve, 1000));
11573
+ catch (_b) {
11574
+ // Log retrieval is diagnostic only; the on-chain error is the verdict.
11575
+ }
11576
+ throw new Error(`Transaction failed: ${extractTransactionError(confirmation.status.err, logMessages)}`);
11566
11577
  }
11567
- throw new Error('Transaction confirmation timeout');
11578
+ return getParsedTransactionCompat(connection, signature);
11568
11579
  }
11569
11580
 
11570
11581
  /**
@@ -11734,24 +11745,30 @@ class PrivyExpoProvider {
11734
11745
  // included), so refreshing the blockhash after any signer (sponsor / co-signer)
11735
11746
  // has signed silently invalidates their signature. Only refresh while the
11736
11747
  // transaction is still unsigned; once a real signature is present, submit the
11737
- // caller's transaction verbatim.
11748
+ // caller's transaction verbatim. Either way the confirmation is fenced on a
11749
+ // lifetime read now: for a pre-signed transaction that is a superset of the
11750
+ // one its signers fenced on, never a shorter wait.
11751
+ let lastValidBlockHeight;
11738
11752
  if (!transactionHasSignature(transaction)) {
11753
+ const { blockhash, lastValidBlockHeight: freshLastValid } = await connection.getLatestBlockhash('confirmed');
11754
+ lastValidBlockHeight = freshLastValid;
11739
11755
  const isLegacyTx = 'recentBlockhash' in transaction &&
11740
11756
  !('message' in transaction && 'staticAccountKeys' in transaction.message);
11741
11757
  if (isLegacyTx) {
11742
11758
  const legacyTx = transaction;
11743
- const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');
11744
11759
  legacyTx.recentBlockhash = blockhash;
11745
11760
  legacyTx.lastValidBlockHeight = lastValidBlockHeight;
11746
11761
  legacyTx.feePayer = feePayer || new PublicKey(wallet.address);
11747
11762
  }
11748
11763
  else {
11749
11764
  const versionedTx = transaction;
11750
- const { blockhash } = await connection.getLatestBlockhash('confirmed');
11751
11765
  versionedTx.message.recentBlockhash = blockhash;
11752
11766
  }
11753
11767
  }
11754
- const { signature } = await this.signAndSubmitInternal(transaction, wallet, connection);
11768
+ else {
11769
+ ({ lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed'));
11770
+ }
11771
+ const { signature } = await this.signAndSubmitInternal(transaction, wallet, connection, lastValidBlockHeight);
11755
11772
  return signature;
11756
11773
  }
11757
11774
  async restoreSession(beforeCommit) {
@@ -11822,11 +11839,11 @@ class PrivyExpoProvider {
11822
11839
  `Sign in again before ${action}.`);
11823
11840
  }
11824
11841
  }
11825
- async signAndSubmitInternal(transaction, wallet, connection) {
11842
+ async signAndSubmitInternal(transaction, wallet, connection, lastValidBlockHeight) {
11826
11843
  // Use Privy's combined sign+send
11827
11844
  const result = await wallet.signAndSendTransaction(transaction, connection);
11828
11845
  const signature = result.signature;
11829
- const txInfo = await confirmAndCheckTransaction(connection, signature);
11846
+ const txInfo = await confirmAndCheckTransaction(connection, signature, lastValidBlockHeight);
11830
11847
  return { signature, txInfo };
11831
11848
  }
11832
11849
  // The constructor rpcUrl wins, then init()'s rpcUrl, then the platform RPC
@@ -12252,4 +12269,4 @@ function init(config = {}) {
12252
12269
  }
12253
12270
 
12254
12271
  export { onramp as $, logout as A, getAuthProvider as B, signInAnonymously as C, loginWithPrivy as D, loginWithWallet as E, ensureWalletLoginReady as F, ensureSharedWalletLoginReady as G, preloadWalletLogin as H, loginWithRedirect as I, completeLoginFromRedirect as J, getLoginReturnError as K, loginWithPopup as L, openBoundedWidget as M, ensureSignedIn as N, useAuth as O, useQuery as P, useBuildRun as Q, apps as R, SELECTED_WALLET_UNAVAILABLE_ERR as S, signSolanaMessageViaTurnkey as T, getOrCreateTurnkeyWallet as U, openTurnkeyKeyExport as V, WalletConfigError as W, getTurnkeyWalletSessionState as X, getTurnkeyWalletRecoveryUrl as Y, startTurnkeyEmailLogin as Z, getIdToken as _, signMessageWithTurnkey as a, onrampQuote as a0, onrampStatus as a1, connect as a2, completeConnection as a3, getConnections as a4, disconnect as a5, ConnectionError as a6, fundVenueEscrow as a7, disputeVenueEscrow as a8, getVenueEscrow as a9, VenueEscrowError as aa, setPlatform as ab, OffchainAuthProvider as ac, PrivyExpoProvider as ad, requestEip6963Providers as ae, connectBroadcast as af, connectServiceSession as ag, builds as ah, BuildsApiError as ai, mediaAgentTools as aj, NON_TERMINAL_STATES as ak, TERMINAL_STATES as al, RUN_STATES as am, PARK_REASONS as an, FAILURE_REASONS as ao, BUILD_REVIEW_CAPABILITY_SCHEMA as ap, BUILD_REVIEW_CAPABILITY_REFRESH_SCHEMA as aq, BUILD_DELEGATED_REVIEW_CAPABILITY_SCHEMA as ar, signTransactionWithTurnkey as b, signTransactionV1WithTurnkey as c, signAndSubmitTransactionWithTurnkey as d, bs58 as e, defaultInjectedProvider as f, getPlatform as g, hasTurnkeyWallet as h, firstStandardWalletProvider as i, setAuthLoading as j, supportsWalletSignIn as k, bufferExports as l, setStoredAuthMethod as m, normalizeSolanaRpcUrl as n, confirmAndCheckTransaction as o, defaultInjectedEvmProvider as p, init as q, resolveSolanaRpcUrl as r, setCurrentUser as s, transactionHasSignature as t, getCurrentUser as u, onAuthStateChanged as v, onAuthLoadingChanged as w, getAuthLoading as x, waitForAuthReady as y, login as z };
12255
- //# sourceMappingURL=index-Sx-Caknc.mjs.map
12272
+ //# sourceMappingURL=index-xNGb1ROp.mjs.map