@bounded-sh/client 0.0.52 → 0.0.53-next.0

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 (58) hide show
  1. package/dist/auth/index.d.ts +1 -1
  2. package/dist/auth/providers/injected-wallet-types.d.ts +1 -1
  3. package/dist/auth/providers/phantom-wallet-provider.d.ts +0 -2
  4. package/dist/auth/providers/privy-wallet-provider.d.ts +3 -5
  5. package/dist/auth/solana-rpc.d.ts +1 -2
  6. package/dist/{email-auth-provider-6seVxrWq.js → email-auth-provider-BQ-DTX3z.js} +2 -2
  7. package/dist/{email-auth-provider-6seVxrWq.js.map → email-auth-provider-BQ-DTX3z.js.map} +1 -1
  8. package/dist/{email-auth-provider-D22p_2xV.mjs → email-auth-provider-CR7B2pob.mjs} +2 -2
  9. package/dist/{email-auth-provider-D22p_2xV.mjs.map → email-auth-provider-CR7B2pob.mjs.map} +1 -1
  10. package/dist/{email-auth-provider-uZbdT_Bx.mjs → email-auth-provider-CRFJd5Rp.mjs} +2 -2
  11. package/dist/{email-auth-provider-uZbdT_Bx.mjs.map → email-auth-provider-CRFJd5Rp.mjs.map} +1 -1
  12. package/dist/{email-auth-provider-BCI1_WLA.js → email-auth-provider-CyEhOnGQ.js} +2 -2
  13. package/dist/{email-auth-provider-BCI1_WLA.js.map → email-auth-provider-CyEhOnGQ.js.map} +1 -1
  14. package/dist/{guest-auth-provider-B_9cVFL1.mjs → guest-auth-provider-1GGM1eWA.mjs} +2 -2
  15. package/dist/{guest-auth-provider-B_9cVFL1.mjs.map → guest-auth-provider-1GGM1eWA.mjs.map} +1 -1
  16. package/dist/{guest-auth-provider-BrSO-CUp.js → guest-auth-provider-3cWfAi5V.js} +2 -2
  17. package/dist/{guest-auth-provider-BrSO-CUp.js.map → guest-auth-provider-3cWfAi5V.js.map} +1 -1
  18. package/dist/{guest-auth-provider-ShmskrcH.mjs → guest-auth-provider-BLzLLs7u.mjs} +2 -2
  19. package/dist/{guest-auth-provider-ShmskrcH.mjs.map → guest-auth-provider-BLzLLs7u.mjs.map} +1 -1
  20. package/dist/{guest-auth-provider-DY-u2wpK.js → guest-auth-provider-DkUngKob.js} +2 -2
  21. package/dist/{guest-auth-provider-DY-u2wpK.js.map → guest-auth-provider-DkUngKob.js.map} +1 -1
  22. package/dist/{index-D4jNluH9.js → index-C6p_-77w.js} +19 -29
  23. package/dist/index-C6p_-77w.js.map +1 -0
  24. package/dist/{index-BvUrIsky.mjs → index-Co7IqxVo.mjs} +20 -29
  25. package/dist/index-Co7IqxVo.mjs.map +1 -0
  26. package/dist/index.js +1 -1
  27. package/dist/index.mjs +1 -1
  28. package/dist/{index.native-2Mmuh7RB.js → index.native-BTPOnWux.js} +19 -29
  29. package/dist/index.native-BTPOnWux.js.map +1 -0
  30. package/dist/{index.native-gU1kSEmQ.mjs → index.native-BoKkzObx.mjs} +20 -29
  31. package/dist/index.native-BoKkzObx.mjs.map +1 -0
  32. package/dist/index.native.js +1 -1
  33. package/dist/index.native.mjs +1 -1
  34. package/dist/{injected-evm-wallet-provider-COM5BPuY.mjs → injected-evm-wallet-provider-Bsh00akg.mjs} +2 -2
  35. package/dist/{injected-evm-wallet-provider-COM5BPuY.mjs.map → injected-evm-wallet-provider-Bsh00akg.mjs.map} +1 -1
  36. package/dist/{injected-evm-wallet-provider-CNnMBwAY.mjs → injected-evm-wallet-provider-CA9ENSN4.mjs} +2 -2
  37. package/dist/{injected-evm-wallet-provider-CNnMBwAY.mjs.map → injected-evm-wallet-provider-CA9ENSN4.mjs.map} +1 -1
  38. package/dist/{injected-evm-wallet-provider-DoB2BLir.js → injected-evm-wallet-provider-Cjs3K7fU.js} +2 -2
  39. package/dist/{injected-evm-wallet-provider-DoB2BLir.js.map → injected-evm-wallet-provider-Cjs3K7fU.js.map} +1 -1
  40. package/dist/{injected-evm-wallet-provider-BEGvuTUU.js → injected-evm-wallet-provider-DCqeV702.js} +2 -2
  41. package/dist/{injected-evm-wallet-provider-BEGvuTUU.js.map → injected-evm-wallet-provider-DCqeV702.js.map} +1 -1
  42. package/dist/{injected-wallet-provider-CLeRnTLu.mjs → injected-wallet-provider-BwHOxPAR.mjs} +6 -8
  43. package/dist/injected-wallet-provider-BwHOxPAR.mjs.map +1 -0
  44. package/dist/{injected-wallet-provider-CyCGjf2G.js → injected-wallet-provider-CfzCTdM5.js} +6 -8
  45. package/dist/injected-wallet-provider-CfzCTdM5.js.map +1 -0
  46. package/dist/{injected-wallet-provider-g0md2vEj.js → injected-wallet-provider-CmhZtf9E.js} +6 -8
  47. package/dist/injected-wallet-provider-CmhZtf9E.js.map +1 -0
  48. package/dist/{injected-wallet-provider-CGoMdKhp.mjs → injected-wallet-provider-uF4yZt8l.mjs} +6 -8
  49. package/dist/injected-wallet-provider-uF4yZt8l.mjs.map +1 -0
  50. package/package.json +2 -2
  51. package/dist/index-BvUrIsky.mjs.map +0 -1
  52. package/dist/index-D4jNluH9.js.map +0 -1
  53. package/dist/index.native-2Mmuh7RB.js.map +0 -1
  54. package/dist/index.native-gU1kSEmQ.mjs.map +0 -1
  55. package/dist/injected-wallet-provider-CGoMdKhp.mjs.map +0 -1
  56. package/dist/injected-wallet-provider-CLeRnTLu.mjs.map +0 -1
  57. package/dist/injected-wallet-provider-CyCGjf2G.js.map +0 -1
  58. package/dist/injected-wallet-provider-g0md2vEj.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"injected-evm-wallet-provider-BEGvuTUU.js","sources":["../.rollup-tmp/auth/providers/injected-evm-wallet-provider.js"],"sourcesContent":["import { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSiweMessage, getConfig, normalizeEvmAddress, assertCanonicalBoundedRuntimeWriteCalldata, } from '@bounded-sh/core';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { defaultInjectedEvmProvider, } from './injected-evm-wallet-types';\n// Re-export the type surface + discovery helper for callers who import the\n// provider module directly.\nexport { defaultInjectedEvmProvider };\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\n// Must equal the authMethod the registry (auth/index.ts) sets as currentAuthMethod,\n// so clearIncompatibleSession() keeps (not wipes) this session on the next init().\nconst INJECTED_EVM_AUTH_METHOD = 'evm-wallet';\n// The /session issuer's discriminator for the SIWE (EIP-4361 secp256k1) exchange.\nconst SIWE_SESSION_METHOD = 'siwe';\nconst NO_WALLET_ERR = 'No injected EVM wallet found. Install a wallet like MetaMask (metamask.io) or Rabby and try again, ' +\n 'or pass config.evmWalletConfig.getProvider to point at your wallet.';\nconst NO_SOL_TX_ERR = 'EVM wallet login signs+submits transactions in one step (eth_sendTransaction) and has no Solana ' +\n 'transaction surface. Use an onchain WRITE (setMany) — the worker returns a pre-built EVM tx that ' +\n 'runTransaction submits — instead of signTransaction/signAndSubmitTransaction.';\n// Bounded polling for the tx receipt: ~60s at 2s cadence (L2 blocks are seconds).\nconst RECEIPT_POLL_ATTEMPTS = 30;\nconst RECEIPT_POLL_INTERVAL_MS = 2000;\nfunction normalizeConfig(config) {\n var _a;\n if (config.chainId !== undefined && (!Number.isSafeInteger(config.chainId) || config.chainId <= 0)) {\n throw new Error('EVM wallet chainId must be a positive safe integer');\n }\n let runtimeAddress;\n if (config.runtimeAddress !== undefined) {\n runtimeAddress = (_a = normalizeEvmAddress(config.runtimeAddress)) !== null && _a !== void 0 ? _a : undefined;\n if (!runtimeAddress)\n throw new Error('EVM wallet runtimeAddress is invalid');\n if (config.chainId === undefined)\n throw new Error('EVM wallet runtimeAddress requires an explicit chainId');\n }\n let runtimeAddresses;\n if (config.runtimeAddresses !== undefined) {\n runtimeAddresses = {};\n for (const [rawChainId, rawAddress] of Object.entries(config.runtimeAddresses)) {\n const chainId = Number(rawChainId);\n const address = normalizeEvmAddress(rawAddress);\n if (!Number.isSafeInteger(chainId) || chainId <= 0 || String(chainId) !== rawChainId || !address) {\n throw new Error(`Invalid EVM runtime allowlist entry for chain ${rawChainId}`);\n }\n runtimeAddresses[rawChainId] = address;\n }\n }\n return Object.assign(Object.assign({}, config), { runtimeAddress, runtimeAddresses });\n}\nexport class InjectedEvmWalletProvider {\n constructor(config = {}) {\n this.authenticatedAddress = null;\n if (typeof window === 'undefined') {\n throw new Error('InjectedEvmWalletProvider can only be instantiated in a browser environment');\n }\n const normalized = normalizeConfig(config);\n // Singleton so the SDK reuses one instance (mirrors the other providers).\n if (InjectedEvmWalletProvider.instance) {\n InjectedEvmWalletProvider.instance.config = normalized;\n InjectedEvmWalletProvider.instance.authenticatedAddress = null;\n return InjectedEvmWalletProvider.instance;\n }\n this.config = normalized;\n InjectedEvmWalletProvider.instance = this;\n }\n // @user.address (the Solana wallet) is null for an EVM-wallet login. User.address\n // is typed `string` for legacy reasons — email logins cast the same null the same\n // way (email-auth-provider.ts) — so the null is cast here in one place.\n evmUser(address) {\n return { id: address, address: null, evmAddress: address, provider: this };\n }\n resolveProvider() {\n var _a;\n const provider = (_a = (this.config.getProvider ? this.config.getProvider() : null)) !== null && _a !== void 0 ? _a : defaultInjectedEvmProvider();\n if (!provider)\n throw new Error(NO_WALLET_ERR);\n return provider;\n }\n /** Connect the injected wallet and return its canonical lowercase EVM address. */\n async connectAddress(provider) {\n const accounts = await provider.request({ method: 'eth_requestAccounts' });\n const raw = Array.isArray(accounts) ? accounts[0] : undefined;\n const address = normalizeEvmAddress(raw);\n if (!address)\n throw new Error('Wallet did not return a valid EVM address on connect');\n return address;\n }\n /** Current chain id the wallet is connected to (EIP-155 number), or null. */\n async currentChainId(provider) {\n try {\n const hex = await provider.request({ method: 'eth_chainId' });\n if (typeof hex !== 'string' || !/^0x[0-9a-fA-F]+$/.test(hex))\n return null;\n const n = Number(BigInt(hex));\n return Number.isSafeInteger(n) && n > 0 ? n : null;\n }\n catch (_a) {\n return null;\n }\n }\n async login() {\n var _a;\n setAuthLoading(true);\n try {\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider);\n // Reuse a still-valid session for THIS wallet.\n const existing = await SessionManager().getSession();\n if (existing && existing.address === address) {\n const user = this.evmUser(address);\n this.authenticatedAddress = address;\n setCurrentUser(user);\n this.markAuthMethod();\n return user;\n }\n // SIWE: nonce -> canonical EIP-4361 prompt -> the wallet personal_sign's it.\n const nonce = await genAuthNonce();\n const appId = (await getConfig()).appId;\n const chainId = (_a = this.config.chainId) !== null && _a !== void 0 ? _a : await this.currentChainId(provider);\n if (chainId === null)\n throw new Error('Could not verify the EVM wallet chain for SIWE login');\n const message = genSiweMessage(address, nonce, appId, this.resolveDomain(), this.resolveUri(), { chainId });\n // personal_sign(message, address) -> 0x r‖s‖v hex (the shape the\n // bounded-auth verifier's recoverSiweSigner consumes). The raw UTF-8\n // message is signed under the EIP-191 envelope the verifier hashes.\n const signature = await provider.request({\n method: 'personal_sign',\n params: [message, address],\n });\n const result = await createSessionWithSignature(address, message, signature, SIWE_SESSION_METHOD);\n await SessionManager().storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n this.markAuthMethod();\n const user = this.evmUser(address);\n this.authenticatedAddress = address;\n setCurrentUser(user);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n }\n resolveDomain() {\n const actual = window.location.host.toLowerCase();\n if (this.config.domain && this.config.domain.toLowerCase() !== actual) {\n throw new Error('SIWE domain override must match the current browser origin');\n }\n return actual;\n }\n resolveUri() {\n const actual = window.location.origin.toLowerCase();\n if (this.config.uri) {\n let configured;\n try {\n configured = new URL(this.config.uri).origin.toLowerCase();\n }\n catch (_a) {\n throw new Error('SIWE URI override must be an absolute URL');\n }\n if (configured !== actual)\n throw new Error('SIWE URI override must match the current browser origin');\n }\n return actual;\n }\n markAuthMethod() {\n try {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, INJECTED_EVM_AUTH_METHOD);\n }\n catch ( /* no storage */_a) { /* no storage */ }\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (!session)\n return null;\n // An EVM-wallet session stores the EVM address as its address; @user.address\n // (the Solana wallet) is null for this login.\n const address = normalizeEvmAddress(session.address);\n if (!address) {\n SessionManager().clearSession();\n return null;\n }\n this.authenticatedAddress = address;\n const user = this.evmUser(address);\n setCurrentUser(user);\n return user;\n }\n async logout() {\n // EIP-1193 has no standard disconnect; clearing the Bounded session is the\n // logout. (wallet_revokePermissions is non-standard/opt-in — skip it.)\n SessionManager().clearSession();\n this.authenticatedAddress = null;\n setCurrentUser(null);\n }\n // --- Signing surface -------------------------------------------------------\n /** App-facing message signing: EIP-191 personal_sign, returns 0x r‖s‖v hex. */\n async signMessage(message) {\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider);\n if (!this.authenticatedAddress || address !== this.authenticatedAddress) {\n throw new Error('The connected EVM wallet account changed after login. Sign in again before signing.');\n }\n return provider.request({ method: 'personal_sign', params: [message, address] });\n }\n // Solana-typed methods are structurally unsupported on an EVM wallet — the\n // EVM onchain write goes through runTransaction (eth_sendTransaction).\n async signTransaction(_transaction) {\n throw new Error(NO_SOL_TX_ERR);\n }\n async signAndSubmitTransaction(_transaction, _feePayer) {\n throw new Error(NO_SOL_TX_ERR);\n }\n /**\n * Onchain write path: submit the worker's PRE-BUILT EIP-1559 tx via\n * eth_sendTransaction (the injected wallet signs + submits in one step), then\n * poll for the receipt. The EVM branch of operations.ts's 202 dispatch calls\n * this with the pre-built payload in the EVM slot and the Solana slot undefined.\n */\n async runTransaction(evmTransactionData, solTransactionData, options) {\n var _a, _b, _c;\n const evmTx = evmTransactionData;\n if (evmTx && solTransactionData) {\n throw new Error('A transaction cannot target EVM and Solana at the same time.');\n }\n if (!evmTx || !normalizeEvmAddress(evmTx.to) || typeof evmTx.data !== 'string' || !/^0x(?:[0-9a-fA-F]{2})+$/.test(evmTx.data)) {\n throw new Error('EVM transaction data (pre-built { to, data, chainId }) is required for an EVM onchain write');\n }\n // Exact decode, rather than a four-byte prefix check: permits the\n // ordinary and attested document-write entrypoints while rejecting\n // malformed/trailing calldata before the wallet sees a signing prompt.\n assertCanonicalBoundedRuntimeWriteCalldata(evmTx.data);\n if (!Number.isSafeInteger(evmTx.chainId) || evmTx.chainId <= 0) {\n throw new Error('EVM transaction chainId is required and must be a positive safe integer');\n }\n const chainId = evmTx.chainId;\n const trustedRuntime = (_b = (_a = this.config.runtimeAddresses) === null || _a === void 0 ? void 0 : _a[String(chainId)]) !== null && _b !== void 0 ? _b : (this.config.chainId === chainId ? this.config.runtimeAddress : undefined);\n if (!trustedRuntime)\n throw new Error(`No trusted BoundedRuntime address configured for EVM chain ${chainId}`);\n if (normalizeEvmAddress(evmTx.to) !== trustedRuntime) {\n throw new Error('EVM transaction target is not the configured BoundedRuntime');\n }\n if (evmTx.nonce !== undefined) {\n throw new Error('Server-supplied EVM nonces are not accepted');\n }\n try {\n if (BigInt((_c = evmTx.value) !== null && _c !== void 0 ? _c : '0') !== BigInt(0)) {\n throw new Error('BoundedRuntime.setDocuments cannot transfer native value');\n }\n }\n catch (error) {\n if (error instanceof Error && error.message.includes('cannot transfer'))\n throw error;\n throw new Error('Invalid EVM transaction value');\n }\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n // Injected EVM wallets sign+submit atomically; eth_signTransaction is not\n // broadly supported (MetaMask removed it), so we cannot return a signed-\n // but-unsubmitted tx here. Fail clearly instead of silently submitting.\n throw new Error('shouldSubmitTx:false is unsupported for injected EVM wallets (they sign and submit atomically).');\n }\n const provider = this.resolveProvider();\n const from = await this.connectAddress(provider);\n if (!this.authenticatedAddress || from !== this.authenticatedAddress) {\n throw new Error('The connected EVM wallet account changed after login. Sign in again before submitting this write.');\n }\n // Chain-switch guard: the pre-built tx names the chain it MUST execute on.\n if (typeof evmTx.chainId === 'number') {\n const current = await this.currentChainId(provider);\n if (current === null)\n throw new Error('Could not verify the EVM wallet chain; refusing to submit the transaction.');\n if (current !== evmTx.chainId) {\n const targetHex = '0x' + evmTx.chainId.toString(16);\n try {\n await provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: targetHex }],\n });\n }\n catch (err) {\n throw new Error(`EVM wallet is on chain ${current} but this write targets chain ${evmTx.chainId}, ` +\n `and the chain switch was rejected or failed${(err === null || err === void 0 ? void 0 : err.message) ? `: ${err.message}` : ''}. ` +\n `Switch your wallet to chain ${evmTx.chainId} and retry.`);\n }\n const switched = await this.currentChainId(provider);\n if (switched !== evmTx.chainId) {\n throw new Error(`EVM wallet did not switch to required chain ${evmTx.chainId}; refusing to submit.`);\n }\n }\n }\n const txParams = { from, to: normalizeEvmAddress(evmTx.to), data: evmTx.data.toLowerCase() };\n txParams.value = '0x0';\n // Gas, fee and nonce hints come from the server and are not part of the\n // governed action. Deliberately omit them: the wallet estimates locally,\n // preventing a compromised response from forcing an abusive fee/nonce.\n const txHash = await provider.request({\n method: 'eth_sendTransaction',\n params: [txParams],\n });\n if (typeof txHash !== 'string' || !/^0x[0-9a-fA-F]{64}$/.test(txHash)) {\n throw new Error('EVM wallet returned an invalid transaction hash');\n }\n const receipt = await this.waitForReceipt(provider, txHash);\n if (!receipt || typeof receipt.status !== 'string' || !/^0x[0-9a-fA-F]+$/.test(receipt.status)) {\n throw new Error(`EVM transaction ${txHash} returned an invalid receipt status`);\n }\n if (BigInt(receipt.status) !== BigInt(1)) {\n throw new Error(`EVM transaction ${txHash} reverted on-chain`);\n }\n if (typeof receipt.blockNumber !== 'string' || !/^0x[0-9a-fA-F]+$/.test(receipt.blockNumber)) {\n throw new Error(`EVM transaction ${txHash} returned an invalid block number`);\n }\n const blockNumber = BigInt(receipt.blockNumber);\n if (blockNumber > BigInt(Number.MAX_SAFE_INTEGER))\n throw new Error('EVM receipt block number exceeds the SDK safe-integer range');\n if (typeof receipt.gasUsed !== 'string' || !/^0x[0-9a-fA-F]+$/.test(receipt.gasUsed)) {\n throw new Error(`EVM transaction ${txHash} returned invalid gas usage`);\n }\n return {\n transactionSignature: txHash,\n blockNumber: Number(blockNumber),\n gasUsed: BigInt(receipt.gasUsed).toString(),\n data: receipt,\n };\n }\n /** Poll eth_getTransactionReceipt until it lands (bounded retries) or throw. */\n async waitForReceipt(provider, txHash) {\n for (let attempt = 0; attempt < RECEIPT_POLL_ATTEMPTS; attempt++) {\n const receipt = await provider.request({\n method: 'eth_getTransactionReceipt',\n params: [txHash],\n });\n if (receipt)\n return receipt;\n await new Promise((r) => setTimeout(r, RECEIPT_POLL_INTERVAL_MS));\n }\n throw new Error(`EVM transaction ${txHash} was submitted but no receipt confirmed within ` +\n `${(RECEIPT_POLL_ATTEMPTS * RECEIPT_POLL_INTERVAL_MS) / 1000}s. It may still land; check the explorer.`);\n }\n async getNativeMethods() {\n return this.resolveProvider();\n }\n}\nInjectedEvmWalletProvider.instance = null;\n"],"names":["normalizeEvmAddress","defaultInjectedEvmProvider","setAuthLoading","SessionManager","setCurrentUser","genAuthNonce","getConfig","genSiweMessage","createSessionWithSignature","getPlatform","assertCanonicalBoundedRuntimeWriteCalldata"],"mappings":";;;;;;AAOA,MAAM,sBAAsB,GAAG,0BAA0B;AACzD;AACA;AACA,MAAM,wBAAwB,GAAG,YAAY;AAC7C;AACA,MAAM,mBAAmB,GAAG,MAAM;AAClC,MAAM,aAAa,GAAG,qGAAqG;AAC3H,IAAI,qEAAqE;AACzE,MAAM,aAAa,GAAG,kGAAkG;AACxH,IAAI,mGAAmG;AACvG,IAAI,+EAA+E;AACnF;AACA,MAAM,qBAAqB,GAAG,EAAE;AAChC,MAAM,wBAAwB,GAAG,IAAI;AACrC,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE;AACxG,QAAQ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;AAC7E,IAAI;AACJ,IAAI,IAAI,cAAc;AACtB,IAAI,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;AAC7C,QAAQ,cAAc,GAAG,CAAC,EAAE,GAAGA,wBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS;AACrH,QAAQ,IAAI,CAAC,cAAc;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AACnE,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;AACxC,YAAY,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;AACrF,IAAI;AACJ,IAAI,IAAI,gBAAgB;AACxB,IAAI,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;AAC/C,QAAQ,gBAAgB,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;AACxF,YAAY,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9C,YAAY,MAAM,OAAO,GAAGA,wBAAmB,CAAC,UAAU,CAAC;AAC3D,YAAY,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,OAAO,EAAE;AAC9G,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,8CAA8C,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9F,YAAY;AACZ,YAAY,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO;AAClD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;AACzF;AACO,MAAM,yBAAyB,CAAC;AACvC,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE;AAC7B,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI;AACxC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC3C,YAAY,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC;AAC1G,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;AAClD;AACA,QAAQ,IAAI,yBAAyB,CAAC,QAAQ,EAAE;AAChD,YAAY,yBAAyB,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU;AAClE,YAAY,yBAAyB,CAAC,QAAQ,CAAC,oBAAoB,GAAG,IAAI;AAC1E,YAAY,OAAO,yBAAyB,CAAC,QAAQ;AACrD,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,GAAG,UAAU;AAChC,QAAQ,yBAAyB,CAAC,QAAQ,GAAG,IAAI;AACjD,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,CAAC,OAAO,EAAE;AACrB,QAAQ,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AAClF,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAGC,gCAA0B,EAAE;AAC1J,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC;AAC1C,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ;AACA,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE;AACnC,QAAQ,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;AAClF,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS;AACrE,QAAQ,MAAM,OAAO,GAAGD,wBAAmB,CAAC,GAAG,CAAC;AAChD,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;AACnF,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ;AACA,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE;AACnC,QAAQ,IAAI;AACZ,YAAY,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACzE,YAAY,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;AACxE,gBAAgB,OAAO,IAAI;AAC3B,YAAY,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACzC,YAAY,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;AAC9D,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,IAAI,EAAE;AACd,QAAQE,oBAAc,CAAC,IAAI,CAAC;AAC5B,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AACnD,YAAY,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC/D;AACA,YAAY,MAAM,QAAQ,GAAG,MAAMC,4BAAc,EAAE,CAAC,UAAU,EAAE;AAChE,YAAY,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE;AAC1D,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAClD,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,OAAO;AACnD,gBAAgBC,oBAAc,CAAC,IAAI,CAAC;AACpC,gBAAgB,IAAI,CAAC,cAAc,EAAE;AACrC,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ;AACA,YAAY,MAAM,KAAK,GAAG,MAAMC,iBAAY,EAAE;AAC9C,YAAY,MAAM,KAAK,GAAG,CAAC,MAAMC,cAAS,EAAE,EAAE,KAAK;AACnD,YAAY,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC3H,YAAY,IAAI,OAAO,KAAK,IAAI;AAChC,gBAAgB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;AACvF,YAAY,MAAM,OAAO,GAAGC,mBAAc,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;AACvH;AACA;AACA;AACA,YAAY,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;AACrD,gBAAgB,MAAM,EAAE,eAAe;AACvC,gBAAgB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AAC1C,aAAa,CAAC;AACd,YAAY,MAAM,MAAM,GAAG,MAAMC,+BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,CAAC;AAC7G,YAAY,MAAML,4BAAc,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AACjH,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC9C,YAAY,IAAI,CAAC,oBAAoB,GAAG,OAAO;AAC/C,YAAYC,oBAAc,CAAC,IAAI,CAAC;AAChC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,gBAAgB;AAChB,YAAYF,oBAAc,CAAC,KAAK,CAAC;AACjC,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;AACzD,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;AAC/E,YAAY,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;AACzF,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3D,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAC7B,YAAY,IAAI,UAAU;AAC1B,YAAY,IAAI;AAChB,gBAAgB,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE;AAC1E,YAAY;AACZ,YAAY,OAAO,EAAE,EAAE;AACvB,gBAAgB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;AAC5E,YAAY;AACZ,YAAY,IAAI,UAAU,KAAK,MAAM;AACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC;AAC1F,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI;AACZ,YAAYO,iBAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;AAC3F,QAAQ;AACR,QAAQ,wBAAwB,EAAE,EAAE,mBAAmB;AACvD,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,MAAM,OAAO,GAAG,MAAMN,4BAAc,EAAE,CAAC,UAAU,EAAE;AAC3D,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,OAAO,IAAI;AACvB;AACA;AACA,QAAQ,MAAM,OAAO,GAAGH,wBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;AAC5D,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAYG,4BAAc,EAAE,CAAC,YAAY,EAAE;AAC3C,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,CAAC,oBAAoB,GAAG,OAAO;AAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1C,QAAQC,oBAAc,CAAC,IAAI,CAAC;AAC5B,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG;AACnB;AACA;AACA,QAAQD,4BAAc,EAAE,CAAC,YAAY,EAAE;AACvC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI;AACxC,QAAQC,oBAAc,CAAC,IAAI,CAAC;AAC5B,IAAI;AACJ;AACA;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AAC/C,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,OAAO,KAAK,IAAI,CAAC,oBAAoB,EAAE;AACjF,YAAY,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC;AAClH,QAAQ;AACR,QAAQ,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;AACxF,IAAI;AACJ;AACA;AACA,IAAI,MAAM,eAAe,CAAC,YAAY,EAAE;AACxC,QAAQ,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC;AACtC,IAAI;AACJ,IAAI,MAAM,wBAAwB,CAAC,YAAY,EAAE,SAAS,EAAE;AAC5D,QAAQ,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC;AACtC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,EAAE;AAC1E,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AACtB,QAAQ,MAAM,KAAK,GAAG,kBAAkB;AACxC,QAAQ,IAAI,KAAK,IAAI,kBAAkB,EAAE;AACzC,YAAY,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC;AAC3F,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,IAAI,CAACJ,wBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACvI,YAAY,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC;AAC1H,QAAQ;AACR;AACA;AACA;AACA,QAAQU,+CAA0C,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9D,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,EAAE;AACxE,YAAY,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;AACtG,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;AACrC,QAAQ,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC;AAC9O,QAAQ,IAAI,CAAC,cAAc;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,2DAA2D,EAAE,OAAO,CAAC,CAAC,CAAC;AACpG,QAAQ,IAAIV,wBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,cAAc,EAAE;AAC9D,YAAY,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;AAC1F,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;AACvC,YAAY,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AAC1E,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AAC/F,gBAAgB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;AAC3F,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AACnF,gBAAgB,MAAM,KAAK;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;AAC5D,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,MAAM,KAAK,EAAE;AAClG;AACA;AACA;AACA,YAAY,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC;AAC9H,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AAC/C,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE;AAC9E,YAAY,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC;AAChI,QAAQ;AACR;AACA,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC/C,YAAY,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC/D,YAAY,IAAI,OAAO,KAAK,IAAI;AAChC,gBAAgB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC;AAC7G,YAAY,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE;AAC3C,gBAAgB,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AACnE,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,QAAQ,CAAC,OAAO,CAAC;AAC3C,wBAAwB,MAAM,EAAE,4BAA4B;AAC5D,wBAAwB,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACxD,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,gBAAgB,OAAO,GAAG,EAAE;AAC5B,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,OAAO,CAAC,8BAA8B,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;AACvH,wBAAwB,CAAC,2CAA2C,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;AAC3J,wBAAwB,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAClF,gBAAgB;AAChB,gBAAgB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AACpE,gBAAgB,IAAI,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE;AAChD,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACxH,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,EAAEA,wBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACpG,QAAQ,QAAQ,CAAC,KAAK,GAAG,KAAK;AAC9B;AACA;AACA;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;AAC9C,YAAY,MAAM,EAAE,qBAAqB;AACzC,YAAY,MAAM,EAAE,CAAC,QAAQ,CAAC;AAC9B,SAAS,CAAC;AACV,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC/E,YAAY,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AAC9E,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;AACnE,QAAQ,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACxG,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,mCAAmC,CAAC,CAAC;AAC3F,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AAClD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC1E,QAAQ;AACR,QAAQ,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACtG,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,iCAAiC,CAAC,CAAC;AACzF,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;AACvD,QAAQ,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;AACzD,YAAY,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;AAC1F,QAAQ,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9F,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,2BAA2B,CAAC,CAAC;AACnF,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,oBAAoB,EAAE,MAAM;AACxC,YAAY,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;AAC5C,YAAY,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;AACvD,YAAY,IAAI,EAAE,OAAO;AACzB,SAAS;AACT,IAAI;AACJ;AACA,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC3C,QAAQ,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,qBAAqB,EAAE,OAAO,EAAE,EAAE;AAC1E,YAAY,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;AACnD,gBAAgB,MAAM,EAAE,2BAA2B;AACnD,gBAAgB,MAAM,EAAE,CAAC,MAAM,CAAC;AAChC,aAAa,CAAC;AACd,YAAY,IAAI,OAAO;AACvB,gBAAgB,OAAO,OAAO;AAC9B,YAAY,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC;AAC7E,QAAQ;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,+CAA+C,CAAC;AAClG,YAAY,CAAC,EAAE,CAAC,qBAAqB,GAAG,wBAAwB,IAAI,IAAI,CAAC,yCAAyC,CAAC,CAAC;AACpH,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,eAAe,EAAE;AACrC,IAAI;AACJ;AACA,yBAAyB,CAAC,QAAQ,GAAG,IAAI;;;;;"}
1
+ {"version":3,"file":"injected-evm-wallet-provider-DCqeV702.js","sources":["../.rollup-tmp/auth/providers/injected-evm-wallet-provider.js"],"sourcesContent":["import { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSiweMessage, getConfig, normalizeEvmAddress, assertCanonicalBoundedRuntimeWriteCalldata, } from '@bounded-sh/core';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { defaultInjectedEvmProvider, } from './injected-evm-wallet-types';\n// Re-export the type surface + discovery helper for callers who import the\n// provider module directly.\nexport { defaultInjectedEvmProvider };\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\n// Must equal the authMethod the registry (auth/index.ts) sets as currentAuthMethod,\n// so clearIncompatibleSession() keeps (not wipes) this session on the next init().\nconst INJECTED_EVM_AUTH_METHOD = 'evm-wallet';\n// The /session issuer's discriminator for the SIWE (EIP-4361 secp256k1) exchange.\nconst SIWE_SESSION_METHOD = 'siwe';\nconst NO_WALLET_ERR = 'No injected EVM wallet found. Install a wallet like MetaMask (metamask.io) or Rabby and try again, ' +\n 'or pass config.evmWalletConfig.getProvider to point at your wallet.';\nconst NO_SOL_TX_ERR = 'EVM wallet login signs+submits transactions in one step (eth_sendTransaction) and has no Solana ' +\n 'transaction surface. Use an onchain WRITE (setMany) — the worker returns a pre-built EVM tx that ' +\n 'runTransaction submits — instead of signTransaction/signAndSubmitTransaction.';\n// Bounded polling for the tx receipt: ~60s at 2s cadence (L2 blocks are seconds).\nconst RECEIPT_POLL_ATTEMPTS = 30;\nconst RECEIPT_POLL_INTERVAL_MS = 2000;\nfunction normalizeConfig(config) {\n var _a;\n if (config.chainId !== undefined && (!Number.isSafeInteger(config.chainId) || config.chainId <= 0)) {\n throw new Error('EVM wallet chainId must be a positive safe integer');\n }\n let runtimeAddress;\n if (config.runtimeAddress !== undefined) {\n runtimeAddress = (_a = normalizeEvmAddress(config.runtimeAddress)) !== null && _a !== void 0 ? _a : undefined;\n if (!runtimeAddress)\n throw new Error('EVM wallet runtimeAddress is invalid');\n if (config.chainId === undefined)\n throw new Error('EVM wallet runtimeAddress requires an explicit chainId');\n }\n let runtimeAddresses;\n if (config.runtimeAddresses !== undefined) {\n runtimeAddresses = {};\n for (const [rawChainId, rawAddress] of Object.entries(config.runtimeAddresses)) {\n const chainId = Number(rawChainId);\n const address = normalizeEvmAddress(rawAddress);\n if (!Number.isSafeInteger(chainId) || chainId <= 0 || String(chainId) !== rawChainId || !address) {\n throw new Error(`Invalid EVM runtime allowlist entry for chain ${rawChainId}`);\n }\n runtimeAddresses[rawChainId] = address;\n }\n }\n return Object.assign(Object.assign({}, config), { runtimeAddress, runtimeAddresses });\n}\nexport class InjectedEvmWalletProvider {\n constructor(config = {}) {\n this.authenticatedAddress = null;\n if (typeof window === 'undefined') {\n throw new Error('InjectedEvmWalletProvider can only be instantiated in a browser environment');\n }\n const normalized = normalizeConfig(config);\n // Singleton so the SDK reuses one instance (mirrors the other providers).\n if (InjectedEvmWalletProvider.instance) {\n InjectedEvmWalletProvider.instance.config = normalized;\n InjectedEvmWalletProvider.instance.authenticatedAddress = null;\n return InjectedEvmWalletProvider.instance;\n }\n this.config = normalized;\n InjectedEvmWalletProvider.instance = this;\n }\n // @user.address (the Solana wallet) is null for an EVM-wallet login. User.address\n // is typed `string` for legacy reasons — email logins cast the same null the same\n // way (email-auth-provider.ts) — so the null is cast here in one place.\n evmUser(address) {\n return { id: address, address: null, evmAddress: address, provider: this };\n }\n resolveProvider() {\n var _a;\n const provider = (_a = (this.config.getProvider ? this.config.getProvider() : null)) !== null && _a !== void 0 ? _a : defaultInjectedEvmProvider();\n if (!provider)\n throw new Error(NO_WALLET_ERR);\n return provider;\n }\n /** Connect the injected wallet and return its canonical lowercase EVM address. */\n async connectAddress(provider) {\n const accounts = await provider.request({ method: 'eth_requestAccounts' });\n const raw = Array.isArray(accounts) ? accounts[0] : undefined;\n const address = normalizeEvmAddress(raw);\n if (!address)\n throw new Error('Wallet did not return a valid EVM address on connect');\n return address;\n }\n /** Current chain id the wallet is connected to (EIP-155 number), or null. */\n async currentChainId(provider) {\n try {\n const hex = await provider.request({ method: 'eth_chainId' });\n if (typeof hex !== 'string' || !/^0x[0-9a-fA-F]+$/.test(hex))\n return null;\n const n = Number(BigInt(hex));\n return Number.isSafeInteger(n) && n > 0 ? n : null;\n }\n catch (_a) {\n return null;\n }\n }\n async login() {\n var _a;\n setAuthLoading(true);\n try {\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider);\n // Reuse a still-valid session for THIS wallet.\n const existing = await SessionManager().getSession();\n if (existing && existing.address === address) {\n const user = this.evmUser(address);\n this.authenticatedAddress = address;\n setCurrentUser(user);\n this.markAuthMethod();\n return user;\n }\n // SIWE: nonce -> canonical EIP-4361 prompt -> the wallet personal_sign's it.\n const nonce = await genAuthNonce();\n const appId = (await getConfig()).appId;\n const chainId = (_a = this.config.chainId) !== null && _a !== void 0 ? _a : await this.currentChainId(provider);\n if (chainId === null)\n throw new Error('Could not verify the EVM wallet chain for SIWE login');\n const message = genSiweMessage(address, nonce, appId, this.resolveDomain(), this.resolveUri(), { chainId });\n // personal_sign(message, address) -> 0x r‖s‖v hex (the shape the\n // bounded-auth verifier's recoverSiweSigner consumes). The raw UTF-8\n // message is signed under the EIP-191 envelope the verifier hashes.\n const signature = await provider.request({\n method: 'personal_sign',\n params: [message, address],\n });\n const result = await createSessionWithSignature(address, message, signature, SIWE_SESSION_METHOD);\n await SessionManager().storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n this.markAuthMethod();\n const user = this.evmUser(address);\n this.authenticatedAddress = address;\n setCurrentUser(user);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n }\n resolveDomain() {\n const actual = window.location.host.toLowerCase();\n if (this.config.domain && this.config.domain.toLowerCase() !== actual) {\n throw new Error('SIWE domain override must match the current browser origin');\n }\n return actual;\n }\n resolveUri() {\n const actual = window.location.origin.toLowerCase();\n if (this.config.uri) {\n let configured;\n try {\n configured = new URL(this.config.uri).origin.toLowerCase();\n }\n catch (_a) {\n throw new Error('SIWE URI override must be an absolute URL');\n }\n if (configured !== actual)\n throw new Error('SIWE URI override must match the current browser origin');\n }\n return actual;\n }\n markAuthMethod() {\n try {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, INJECTED_EVM_AUTH_METHOD);\n }\n catch ( /* no storage */_a) { /* no storage */ }\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (!session)\n return null;\n // An EVM-wallet session stores the EVM address as its address; @user.address\n // (the Solana wallet) is null for this login.\n const address = normalizeEvmAddress(session.address);\n if (!address) {\n SessionManager().clearSession();\n return null;\n }\n this.authenticatedAddress = address;\n const user = this.evmUser(address);\n setCurrentUser(user);\n return user;\n }\n async logout() {\n // EIP-1193 has no standard disconnect; clearing the Bounded session is the\n // logout. (wallet_revokePermissions is non-standard/opt-in — skip it.)\n SessionManager().clearSession();\n this.authenticatedAddress = null;\n setCurrentUser(null);\n }\n // --- Signing surface -------------------------------------------------------\n /** App-facing message signing: EIP-191 personal_sign, returns 0x r‖s‖v hex. */\n async signMessage(message) {\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider);\n if (!this.authenticatedAddress || address !== this.authenticatedAddress) {\n throw new Error('The connected EVM wallet account changed after login. Sign in again before signing.');\n }\n return provider.request({ method: 'personal_sign', params: [message, address] });\n }\n // Solana-typed methods are structurally unsupported on an EVM wallet — the\n // EVM onchain write goes through runTransaction (eth_sendTransaction).\n async signTransaction(_transaction) {\n throw new Error(NO_SOL_TX_ERR);\n }\n async signAndSubmitTransaction(_transaction, _feePayer) {\n throw new Error(NO_SOL_TX_ERR);\n }\n /**\n * Onchain write path: submit the worker's PRE-BUILT EIP-1559 tx via\n * eth_sendTransaction (the injected wallet signs + submits in one step), then\n * poll for the receipt. The EVM branch of operations.ts's 202 dispatch calls\n * this with the pre-built payload in the EVM slot and the Solana slot undefined.\n */\n async runTransaction(evmTransactionData, solTransactionData, options) {\n var _a, _b, _c;\n const evmTx = evmTransactionData;\n if (evmTx && solTransactionData) {\n throw new Error('A transaction cannot target EVM and Solana at the same time.');\n }\n if (!evmTx || !normalizeEvmAddress(evmTx.to) || typeof evmTx.data !== 'string' || !/^0x(?:[0-9a-fA-F]{2})+$/.test(evmTx.data)) {\n throw new Error('EVM transaction data (pre-built { to, data, chainId }) is required for an EVM onchain write');\n }\n // Exact decode, rather than a four-byte prefix check: permits the\n // ordinary and attested document-write entrypoints while rejecting\n // malformed/trailing calldata before the wallet sees a signing prompt.\n assertCanonicalBoundedRuntimeWriteCalldata(evmTx.data);\n if (!Number.isSafeInteger(evmTx.chainId) || evmTx.chainId <= 0) {\n throw new Error('EVM transaction chainId is required and must be a positive safe integer');\n }\n const chainId = evmTx.chainId;\n const trustedRuntime = (_b = (_a = this.config.runtimeAddresses) === null || _a === void 0 ? void 0 : _a[String(chainId)]) !== null && _b !== void 0 ? _b : (this.config.chainId === chainId ? this.config.runtimeAddress : undefined);\n if (!trustedRuntime)\n throw new Error(`No trusted BoundedRuntime address configured for EVM chain ${chainId}`);\n if (normalizeEvmAddress(evmTx.to) !== trustedRuntime) {\n throw new Error('EVM transaction target is not the configured BoundedRuntime');\n }\n if (evmTx.nonce !== undefined) {\n throw new Error('Server-supplied EVM nonces are not accepted');\n }\n try {\n if (BigInt((_c = evmTx.value) !== null && _c !== void 0 ? _c : '0') !== BigInt(0)) {\n throw new Error('BoundedRuntime.setDocuments cannot transfer native value');\n }\n }\n catch (error) {\n if (error instanceof Error && error.message.includes('cannot transfer'))\n throw error;\n throw new Error('Invalid EVM transaction value');\n }\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n // Injected EVM wallets sign+submit atomically; eth_signTransaction is not\n // broadly supported (MetaMask removed it), so we cannot return a signed-\n // but-unsubmitted tx here. Fail clearly instead of silently submitting.\n throw new Error('shouldSubmitTx:false is unsupported for injected EVM wallets (they sign and submit atomically).');\n }\n const provider = this.resolveProvider();\n const from = await this.connectAddress(provider);\n if (!this.authenticatedAddress || from !== this.authenticatedAddress) {\n throw new Error('The connected EVM wallet account changed after login. Sign in again before submitting this write.');\n }\n // Chain-switch guard: the pre-built tx names the chain it MUST execute on.\n if (typeof evmTx.chainId === 'number') {\n const current = await this.currentChainId(provider);\n if (current === null)\n throw new Error('Could not verify the EVM wallet chain; refusing to submit the transaction.');\n if (current !== evmTx.chainId) {\n const targetHex = '0x' + evmTx.chainId.toString(16);\n try {\n await provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: targetHex }],\n });\n }\n catch (err) {\n throw new Error(`EVM wallet is on chain ${current} but this write targets chain ${evmTx.chainId}, ` +\n `and the chain switch was rejected or failed${(err === null || err === void 0 ? void 0 : err.message) ? `: ${err.message}` : ''}. ` +\n `Switch your wallet to chain ${evmTx.chainId} and retry.`);\n }\n const switched = await this.currentChainId(provider);\n if (switched !== evmTx.chainId) {\n throw new Error(`EVM wallet did not switch to required chain ${evmTx.chainId}; refusing to submit.`);\n }\n }\n }\n const txParams = { from, to: normalizeEvmAddress(evmTx.to), data: evmTx.data.toLowerCase() };\n txParams.value = '0x0';\n // Gas, fee and nonce hints come from the server and are not part of the\n // governed action. Deliberately omit them: the wallet estimates locally,\n // preventing a compromised response from forcing an abusive fee/nonce.\n const txHash = await provider.request({\n method: 'eth_sendTransaction',\n params: [txParams],\n });\n if (typeof txHash !== 'string' || !/^0x[0-9a-fA-F]{64}$/.test(txHash)) {\n throw new Error('EVM wallet returned an invalid transaction hash');\n }\n const receipt = await this.waitForReceipt(provider, txHash);\n if (!receipt || typeof receipt.status !== 'string' || !/^0x[0-9a-fA-F]+$/.test(receipt.status)) {\n throw new Error(`EVM transaction ${txHash} returned an invalid receipt status`);\n }\n if (BigInt(receipt.status) !== BigInt(1)) {\n throw new Error(`EVM transaction ${txHash} reverted on-chain`);\n }\n if (typeof receipt.blockNumber !== 'string' || !/^0x[0-9a-fA-F]+$/.test(receipt.blockNumber)) {\n throw new Error(`EVM transaction ${txHash} returned an invalid block number`);\n }\n const blockNumber = BigInt(receipt.blockNumber);\n if (blockNumber > BigInt(Number.MAX_SAFE_INTEGER))\n throw new Error('EVM receipt block number exceeds the SDK safe-integer range');\n if (typeof receipt.gasUsed !== 'string' || !/^0x[0-9a-fA-F]+$/.test(receipt.gasUsed)) {\n throw new Error(`EVM transaction ${txHash} returned invalid gas usage`);\n }\n return {\n transactionSignature: txHash,\n blockNumber: Number(blockNumber),\n gasUsed: BigInt(receipt.gasUsed).toString(),\n data: receipt,\n };\n }\n /** Poll eth_getTransactionReceipt until it lands (bounded retries) or throw. */\n async waitForReceipt(provider, txHash) {\n for (let attempt = 0; attempt < RECEIPT_POLL_ATTEMPTS; attempt++) {\n const receipt = await provider.request({\n method: 'eth_getTransactionReceipt',\n params: [txHash],\n });\n if (receipt)\n return receipt;\n await new Promise((r) => setTimeout(r, RECEIPT_POLL_INTERVAL_MS));\n }\n throw new Error(`EVM transaction ${txHash} was submitted but no receipt confirmed within ` +\n `${(RECEIPT_POLL_ATTEMPTS * RECEIPT_POLL_INTERVAL_MS) / 1000}s. It may still land; check the explorer.`);\n }\n async getNativeMethods() {\n return this.resolveProvider();\n }\n}\nInjectedEvmWalletProvider.instance = null;\n"],"names":["normalizeEvmAddress","defaultInjectedEvmProvider","setAuthLoading","SessionManager","setCurrentUser","genAuthNonce","getConfig","genSiweMessage","createSessionWithSignature","getPlatform","assertCanonicalBoundedRuntimeWriteCalldata"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { getActiveSessionManager, genAuthNonce, genSolanaMessage, createSessionWithSignature, convertRemainingAccounts, buildSetDocumentsTransaction } from '@bounded-sh/core';
2
- import { n as normalizeSolanaRpcUrl, c as setAuthLoading, s as setCurrentUser, g as getPlatform, d as bufferExports, f as bs58, i as confirmAndCheckTransaction, r as resolveSolanaRpcUrl, S as SURFNET_RPC_URL } from './index.native-gU1kSEmQ.mjs';
2
+ import { n as normalizeSolanaRpcUrl, c as setAuthLoading, s as setCurrentUser, g as getPlatform, d as bufferExports, f as bs58, i as confirmAndCheckTransaction, r as resolveSolanaRpcUrl } from './index.native-BoKkzObx.mjs';
3
3
  import 'react';
4
4
 
5
5
  /**
@@ -158,7 +158,6 @@ class InjectedWalletProvider {
158
158
  const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));
159
159
  const rpcUrl = this.getRpcUrl();
160
160
  const connection = new Connection(rpcUrl, 'confirmed');
161
- const isSurfnet = rpcUrl === SURFNET_RPC_URL;
162
161
  // Set a fresh blockhash on the tx (mirrors the other providers).
163
162
  const { blockhash } = await connection.getLatestBlockhash('confirmed');
164
163
  const isLegacy = 'recentBlockhash' in transaction &&
@@ -172,9 +171,9 @@ class InjectedWalletProvider {
172
171
  else {
173
172
  transaction.message.recentBlockhash = blockhash;
174
173
  }
175
- // Prefer the wallet's native signAndSend on live networks; fall back to
176
- // sign + manual submit (needed for surfnet / wallets without send).
177
- if (!isSurfnet && typeof provider.signAndSendTransaction === 'function') {
174
+ // Prefer the wallet's native signAndSend; fall back to
175
+ // sign + manual submit for wallets without send.
176
+ if (typeof provider.signAndSendTransaction === 'function') {
178
177
  const res = await provider.signAndSendTransaction(transaction);
179
178
  const signature = res.signature;
180
179
  await confirmAndCheckTransaction(connection, signature);
@@ -206,7 +205,6 @@ class InjectedWalletProvider {
206
205
  const publicKey = new PublicKey(address);
207
206
  const rpcUrl = this.getRpcUrl(solTransactionData.network);
208
207
  const connection = new Connection(rpcUrl, 'confirmed');
209
- const isSurfnet = rpcUrl === SURFNET_RPC_URL;
210
208
  const app_id = solTransactionData.appId;
211
209
  if (!app_id)
212
210
  throw new Error('App ID is required');
@@ -250,7 +248,7 @@ class InjectedWalletProvider {
250
248
  return { signedTransaction: signedTx, blockNumber: 0, gasUsed: '0', data: '' };
251
249
  }
252
250
  let signature;
253
- if (!isSurfnet && typeof provider.signAndSendTransaction === 'function') {
251
+ if (typeof provider.signAndSendTransaction === 'function') {
254
252
  const res = await provider.signAndSendTransaction(tx);
255
253
  signature = res.signature;
256
254
  }
@@ -276,4 +274,4 @@ class InjectedWalletProvider {
276
274
  InjectedWalletProvider.instance = null;
277
275
 
278
276
  export { InjectedWalletProvider, defaultInjectedProvider };
279
- //# sourceMappingURL=injected-wallet-provider-CLeRnTLu.mjs.map
277
+ //# sourceMappingURL=injected-wallet-provider-BwHOxPAR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injected-wallet-provider-BwHOxPAR.mjs","sources":["../.rollup-tmp/auth/providers/injected-wallet-types.js","../.rollup-tmp/auth/providers/injected-wallet-provider.js"],"sourcesContent":["/**\n * Default provider discovery: Phantom-first, then any Wallet-Standard\n * `window.solana`. Kept tiny + synchronous (no heavy imports) so it works inside\n * a user gesture and can be eagerly exported from the SDK entry.\n */\nexport function defaultInjectedProvider() {\n var _a;\n if (typeof window === 'undefined')\n return null;\n const w = window;\n const phantom = (_a = w === null || w === void 0 ? void 0 : w.phantom) === null || _a === void 0 ? void 0 : _a.solana;\n if (phantom && typeof phantom.signMessage === 'function')\n return phantom;\n const generic = w === null || w === void 0 ? void 0 : w.solana;\n if (generic && typeof generic.signMessage === 'function')\n return generic;\n return null;\n}\n","import { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts, } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport bs58 from 'bs58';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { normalizeSolanaRpcUrl, resolveSolanaRpcUrl } from '../solana-rpc';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport { defaultInjectedProvider, } from './injected-wallet-types';\n// Re-export the type surface + discovery helper for callers who import the\n// provider module directly.\nexport { defaultInjectedProvider };\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\nconst INJECTED_AUTH_METHOD = 'phantom';\nconst NO_WALLET_ERR = 'No injected Solana wallet found. Install a wallet like Phantom (phantom.app) and try again, ' +\n 'or pass config.injectedWalletConfig.getProvider to point at your wallet.';\nexport class InjectedWalletProvider {\n constructor(config = {}, networkUrl = null, configuredNetwork = null) {\n var _a;\n if (typeof window === 'undefined') {\n throw new Error('InjectedWalletProvider can only be instantiated in a browser environment');\n }\n // `config.rpcUrl` is the legacy wallet-login-local override. Normalize\n // it before precedence so an empty legacy value cannot shadow the\n // current top-level config.rpcUrl. Re-initialization must also replace\n // every singleton field; otherwise a previous app's provider/RPC can\n // survive getAuthProvider()'s config-key rotation.\n const resolvedNetworkUrl = (_a = normalizeSolanaRpcUrl(config.rpcUrl)) !== null && _a !== void 0 ? _a : normalizeSolanaRpcUrl(networkUrl);\n const localNetwork = typeof config.network === 'string' && config.network.trim() !== ''\n ? config.network.trim()\n : null;\n const resolvedConfiguredNetwork = localNetwork !== null && localNetwork !== void 0 ? localNetwork : (typeof configuredNetwork === 'string' && configuredNetwork.trim() !== ''\n ? configuredNetwork.trim()\n : null);\n // Singleton so the SDK reuses one instance (mirrors the other providers).\n if (InjectedWalletProvider.instance) {\n InjectedWalletProvider.instance.config = Object.assign({}, config);\n InjectedWalletProvider.instance.networkUrl = resolvedNetworkUrl;\n InjectedWalletProvider.instance.configuredNetwork = resolvedConfiguredNetwork;\n return InjectedWalletProvider.instance;\n }\n this.config = Object.assign({}, config);\n this.networkUrl = resolvedNetworkUrl;\n this.configuredNetwork = resolvedConfiguredNetwork;\n InjectedWalletProvider.instance = this;\n }\n resolveProvider() {\n var _a;\n const provider = (_a = (this.config.getProvider ? this.config.getProvider() : null)) !== null && _a !== void 0 ? _a : defaultInjectedProvider();\n if (!provider)\n throw new Error(NO_WALLET_ERR);\n return provider;\n }\n /** Connect the injected wallet (if needed) and return its Solana address. */\n async connectAddress(provider, onlyIfTrusted = false) {\n var _a, _b;\n // Already connected — reuse the pubkey.\n if (provider.publicKey && ((_a = provider.isConnected) !== null && _a !== void 0 ? _a : true)) {\n return provider.publicKey.toString();\n }\n const res = await provider.connect(onlyIfTrusted ? { onlyIfTrusted: true } : undefined);\n const pk = (_b = res === null || res === void 0 ? void 0 : res.publicKey) !== null && _b !== void 0 ? _b : provider.publicKey;\n if (!pk)\n throw new Error('Wallet did not return a public key on connect');\n return pk.toString();\n }\n async login() {\n var _a;\n setAuthLoading(true);\n try {\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider);\n // Reuse a still-valid session for THIS wallet.\n const existing = await SessionManager().getSession();\n if (existing && existing.address === address) {\n const user = { address, id: address, provider: this };\n setCurrentUser(user);\n this.markAuthMethod();\n return user;\n }\n // SIWS: nonce -> canonical prompt -> the wallet signs it locally.\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n const messageBytes = getPlatform().textEncode(message);\n const signResult = await provider.signMessage(messageBytes, 'utf8');\n const signatureBytes = (_a = signResult === null || signResult === void 0 ? void 0 : signResult.signature) !== null && _a !== void 0 ? _a : signResult;\n // base64 detached ed25519 signature — matches guest/privy providers and\n // the bounded-auth issuer's base64ToBytes() verify path.\n const signature = Buffer.from(signatureBytes).toString('base64');\n const result = await createSessionWithSignature(address, message, signature);\n await SessionManager().storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n this.markAuthMethod();\n const user = { address, id: address, provider: this };\n setCurrentUser(user);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n }\n markAuthMethod() {\n // Mark the auth method so clearIncompatibleSession() doesn't wipe this\n // wallet session on the next init().\n try {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, INJECTED_AUTH_METHOD);\n }\n catch ( /* no storage */_a) { /* no storage */ }\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (!session)\n return null;\n const user = { address: session.address, id: session.address, provider: this };\n setCurrentUser(user);\n return user;\n }\n async logout() {\n // Clear the Bounded session; best-effort disconnect the wallet.\n SessionManager().clearSession();\n try {\n const provider = this.config.getProvider ? this.config.getProvider() : defaultInjectedProvider();\n if (provider && typeof provider.disconnect === 'function')\n await provider.disconnect();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n setCurrentUser(null);\n }\n // --- Full local-keypair signing surface (the wallet's OWN methods) --------\n async signMessage(message) {\n var _a;\n const provider = this.resolveProvider();\n await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const messageBytes = getPlatform().textEncode(message);\n const res = await provider.signMessage(messageBytes, 'utf8');\n const signatureBytes = (_a = res === null || res === void 0 ? void 0 : res.signature) !== null && _a !== void 0 ? _a : res;\n // base58 is the standard Solana signature encoding for app-facing signMessage.\n return bs58.encode(signatureBytes instanceof Uint8Array ? signatureBytes : new Uint8Array(signatureBytes));\n }\n async signTransaction(transaction) {\n const provider = this.resolveProvider();\n await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n return provider.signTransaction(transaction);\n }\n async signAndSubmitTransaction(transaction, _feePayer) {\n const { Connection, PublicKey } = await import(\"@solana/web3.js\");\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Set a fresh blockhash on the tx (mirrors the other providers).\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n const isLegacy = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacy) {\n const legacy = transaction;\n legacy.recentBlockhash = blockhash;\n if (!legacy.feePayer)\n legacy.feePayer = new PublicKey(address);\n }\n else {\n transaction.message.recentBlockhash = blockhash;\n }\n // Prefer the wallet's native signAndSend; fall back to\n // sign + manual submit for wallets without send.\n if (typeof provider.signAndSendTransaction === 'function') {\n const res = await provider.signAndSendTransaction(transaction);\n const signature = res.signature;\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n const signed = await provider.signTransaction(transaction);\n const raw = signed.serialize();\n const signature = await connection.sendRawTransaction(raw);\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n /**\n * Onchain write path (mirrors the other wallet providers): build the Bounded\n * set-documents transaction with the injected wallet as payer, then sign +\n * submit with the wallet's own keypair.\n */\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a, _b;\n const [chainSdk, programSdk] = await Promise.all([\n import(\"@solana/web3.js\"),\n import(\"@coral-xyz/anchor\"),\n ]);\n const { Connection, PublicKey, VersionedTransaction } = chainSdk;\n if (!solTransactionData) {\n throw new Error('Solana transaction data is required for wallet login');\n }\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const publicKey = new PublicKey(address);\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const app_id = solTransactionData.appId;\n if (!app_id)\n throw new Error('App ID is required');\n const walletAdapter = {\n publicKey,\n signTransaction: async (tx) => provider.signTransaction(tx),\n signAllTransactions: async (txs) => provider.signAllTransactions\n ? provider.signAllTransactions(txs)\n : Promise.all(txs.map((t) => provider.signTransaction(t))),\n };\n const ProviderClass = programSdk[['Anch', 'orProvider'].join('')];\n const programProvider = new ProviderClass(connection, walletAdapter, ProviderClass.defaultOptions());\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n let tx;\n if (solTransactionData.signedTransaction) {\n // Server co-signed (CPI attestation) — just add the wallet signature.\n tx = VersionedTransaction.deserialize(Buffer.from(solTransactionData.signedTransaction, 'base64'));\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, programProvider, publicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData,\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n tx = result.tx;\n }\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n const signedTx = await walletAdapter.signTransaction(tx);\n return { signedTransaction: signedTx, blockNumber: 0, gasUsed: '0', data: '' };\n }\n let signature;\n if (typeof provider.signAndSendTransaction === 'function') {\n const res = await provider.signAndSendTransaction(tx);\n signature = res.signature;\n }\n else {\n const signedTx = await walletAdapter.signTransaction(tx);\n signature = await connection.sendRawTransaction(signedTx.serialize());\n }\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_b = (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.fee) === null || _b === void 0 ? void 0 : _b.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n async getNativeMethods() {\n return this.resolveProvider();\n }\n getRpcUrl(network) {\n return resolveSolanaRpcUrl(this.networkUrl, network !== null && network !== void 0 ? network : this.configuredNetwork, 'Wallet-login Solana transaction');\n }\n}\nInjectedWalletProvider.instance = null;\n"],"names":["SessionManager","Buffer"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var core = require('@bounded-sh/core');
4
- var index = require('./index-D4jNluH9.js');
4
+ var index = require('./index-C6p_-77w.js');
5
5
  require('react');
6
6
 
7
7
  const STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';
@@ -141,7 +141,6 @@ class InjectedWalletProvider {
141
141
  const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));
142
142
  const rpcUrl = this.getRpcUrl();
143
143
  const connection = new Connection(rpcUrl, 'confirmed');
144
- const isSurfnet = rpcUrl === index.SURFNET_RPC_URL;
145
144
  // Set a fresh blockhash on the tx (mirrors the other providers).
146
145
  const { blockhash } = await connection.getLatestBlockhash('confirmed');
147
146
  const isLegacy = 'recentBlockhash' in transaction &&
@@ -155,9 +154,9 @@ class InjectedWalletProvider {
155
154
  else {
156
155
  transaction.message.recentBlockhash = blockhash;
157
156
  }
158
- // Prefer the wallet's native signAndSend on live networks; fall back to
159
- // sign + manual submit (needed for surfnet / wallets without send).
160
- if (!isSurfnet && typeof provider.signAndSendTransaction === 'function') {
157
+ // Prefer the wallet's native signAndSend; fall back to
158
+ // sign + manual submit for wallets without send.
159
+ if (typeof provider.signAndSendTransaction === 'function') {
161
160
  const res = await provider.signAndSendTransaction(transaction);
162
161
  const signature = res.signature;
163
162
  await index.confirmAndCheckTransaction(connection, signature);
@@ -189,7 +188,6 @@ class InjectedWalletProvider {
189
188
  const publicKey = new PublicKey(address);
190
189
  const rpcUrl = this.getRpcUrl(solTransactionData.network);
191
190
  const connection = new Connection(rpcUrl, 'confirmed');
192
- const isSurfnet = rpcUrl === index.SURFNET_RPC_URL;
193
191
  const app_id = solTransactionData.appId;
194
192
  if (!app_id)
195
193
  throw new Error('App ID is required');
@@ -233,7 +231,7 @@ class InjectedWalletProvider {
233
231
  return { signedTransaction: signedTx, blockNumber: 0, gasUsed: '0', data: '' };
234
232
  }
235
233
  let signature;
236
- if (!isSurfnet && typeof provider.signAndSendTransaction === 'function') {
234
+ if (typeof provider.signAndSendTransaction === 'function') {
237
235
  const res = await provider.signAndSendTransaction(tx);
238
236
  signature = res.signature;
239
237
  }
@@ -260,4 +258,4 @@ InjectedWalletProvider.instance = null;
260
258
 
261
259
  exports.defaultInjectedProvider = index.defaultInjectedProvider;
262
260
  exports.InjectedWalletProvider = InjectedWalletProvider;
263
- //# sourceMappingURL=injected-wallet-provider-CyCGjf2G.js.map
261
+ //# sourceMappingURL=injected-wallet-provider-CfzCTdM5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injected-wallet-provider-CfzCTdM5.js","sources":["../.rollup-tmp/auth/providers/injected-wallet-provider.js"],"sourcesContent":["import { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts, } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport bs58 from 'bs58';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { normalizeSolanaRpcUrl, resolveSolanaRpcUrl } from '../solana-rpc';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport { defaultInjectedProvider, } from './injected-wallet-types';\n// Re-export the type surface + discovery helper for callers who import the\n// provider module directly.\nexport { defaultInjectedProvider };\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\nconst INJECTED_AUTH_METHOD = 'phantom';\nconst NO_WALLET_ERR = 'No injected Solana wallet found. Install a wallet like Phantom (phantom.app) and try again, ' +\n 'or pass config.injectedWalletConfig.getProvider to point at your wallet.';\nexport class InjectedWalletProvider {\n constructor(config = {}, networkUrl = null, configuredNetwork = null) {\n var _a;\n if (typeof window === 'undefined') {\n throw new Error('InjectedWalletProvider can only be instantiated in a browser environment');\n }\n // `config.rpcUrl` is the legacy wallet-login-local override. Normalize\n // it before precedence so an empty legacy value cannot shadow the\n // current top-level config.rpcUrl. Re-initialization must also replace\n // every singleton field; otherwise a previous app's provider/RPC can\n // survive getAuthProvider()'s config-key rotation.\n const resolvedNetworkUrl = (_a = normalizeSolanaRpcUrl(config.rpcUrl)) !== null && _a !== void 0 ? _a : normalizeSolanaRpcUrl(networkUrl);\n const localNetwork = typeof config.network === 'string' && config.network.trim() !== ''\n ? config.network.trim()\n : null;\n const resolvedConfiguredNetwork = localNetwork !== null && localNetwork !== void 0 ? localNetwork : (typeof configuredNetwork === 'string' && configuredNetwork.trim() !== ''\n ? configuredNetwork.trim()\n : null);\n // Singleton so the SDK reuses one instance (mirrors the other providers).\n if (InjectedWalletProvider.instance) {\n InjectedWalletProvider.instance.config = Object.assign({}, config);\n InjectedWalletProvider.instance.networkUrl = resolvedNetworkUrl;\n InjectedWalletProvider.instance.configuredNetwork = resolvedConfiguredNetwork;\n return InjectedWalletProvider.instance;\n }\n this.config = Object.assign({}, config);\n this.networkUrl = resolvedNetworkUrl;\n this.configuredNetwork = resolvedConfiguredNetwork;\n InjectedWalletProvider.instance = this;\n }\n resolveProvider() {\n var _a;\n const provider = (_a = (this.config.getProvider ? this.config.getProvider() : null)) !== null && _a !== void 0 ? _a : defaultInjectedProvider();\n if (!provider)\n throw new Error(NO_WALLET_ERR);\n return provider;\n }\n /** Connect the injected wallet (if needed) and return its Solana address. */\n async connectAddress(provider, onlyIfTrusted = false) {\n var _a, _b;\n // Already connected — reuse the pubkey.\n if (provider.publicKey && ((_a = provider.isConnected) !== null && _a !== void 0 ? _a : true)) {\n return provider.publicKey.toString();\n }\n const res = await provider.connect(onlyIfTrusted ? { onlyIfTrusted: true } : undefined);\n const pk = (_b = res === null || res === void 0 ? void 0 : res.publicKey) !== null && _b !== void 0 ? _b : provider.publicKey;\n if (!pk)\n throw new Error('Wallet did not return a public key on connect');\n return pk.toString();\n }\n async login() {\n var _a;\n setAuthLoading(true);\n try {\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider);\n // Reuse a still-valid session for THIS wallet.\n const existing = await SessionManager().getSession();\n if (existing && existing.address === address) {\n const user = { address, id: address, provider: this };\n setCurrentUser(user);\n this.markAuthMethod();\n return user;\n }\n // SIWS: nonce -> canonical prompt -> the wallet signs it locally.\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n const messageBytes = getPlatform().textEncode(message);\n const signResult = await provider.signMessage(messageBytes, 'utf8');\n const signatureBytes = (_a = signResult === null || signResult === void 0 ? void 0 : signResult.signature) !== null && _a !== void 0 ? _a : signResult;\n // base64 detached ed25519 signature — matches guest/privy providers and\n // the bounded-auth issuer's base64ToBytes() verify path.\n const signature = Buffer.from(signatureBytes).toString('base64');\n const result = await createSessionWithSignature(address, message, signature);\n await SessionManager().storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n this.markAuthMethod();\n const user = { address, id: address, provider: this };\n setCurrentUser(user);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n }\n markAuthMethod() {\n // Mark the auth method so clearIncompatibleSession() doesn't wipe this\n // wallet session on the next init().\n try {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, INJECTED_AUTH_METHOD);\n }\n catch ( /* no storage */_a) { /* no storage */ }\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (!session)\n return null;\n const user = { address: session.address, id: session.address, provider: this };\n setCurrentUser(user);\n return user;\n }\n async logout() {\n // Clear the Bounded session; best-effort disconnect the wallet.\n SessionManager().clearSession();\n try {\n const provider = this.config.getProvider ? this.config.getProvider() : defaultInjectedProvider();\n if (provider && typeof provider.disconnect === 'function')\n await provider.disconnect();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n setCurrentUser(null);\n }\n // --- Full local-keypair signing surface (the wallet's OWN methods) --------\n async signMessage(message) {\n var _a;\n const provider = this.resolveProvider();\n await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const messageBytes = getPlatform().textEncode(message);\n const res = await provider.signMessage(messageBytes, 'utf8');\n const signatureBytes = (_a = res === null || res === void 0 ? void 0 : res.signature) !== null && _a !== void 0 ? _a : res;\n // base58 is the standard Solana signature encoding for app-facing signMessage.\n return bs58.encode(signatureBytes instanceof Uint8Array ? signatureBytes : new Uint8Array(signatureBytes));\n }\n async signTransaction(transaction) {\n const provider = this.resolveProvider();\n await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n return provider.signTransaction(transaction);\n }\n async signAndSubmitTransaction(transaction, _feePayer) {\n const { Connection, PublicKey } = await import(\"@solana/web3.js\");\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Set a fresh blockhash on the tx (mirrors the other providers).\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n const isLegacy = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacy) {\n const legacy = transaction;\n legacy.recentBlockhash = blockhash;\n if (!legacy.feePayer)\n legacy.feePayer = new PublicKey(address);\n }\n else {\n transaction.message.recentBlockhash = blockhash;\n }\n // Prefer the wallet's native signAndSend; fall back to\n // sign + manual submit for wallets without send.\n if (typeof provider.signAndSendTransaction === 'function') {\n const res = await provider.signAndSendTransaction(transaction);\n const signature = res.signature;\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n const signed = await provider.signTransaction(transaction);\n const raw = signed.serialize();\n const signature = await connection.sendRawTransaction(raw);\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n /**\n * Onchain write path (mirrors the other wallet providers): build the Bounded\n * set-documents transaction with the injected wallet as payer, then sign +\n * submit with the wallet's own keypair.\n */\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a, _b;\n const [chainSdk, programSdk] = await Promise.all([\n import(\"@solana/web3.js\"),\n import(\"@coral-xyz/anchor\"),\n ]);\n const { Connection, PublicKey, VersionedTransaction } = chainSdk;\n if (!solTransactionData) {\n throw new Error('Solana transaction data is required for wallet login');\n }\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const publicKey = new PublicKey(address);\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const app_id = solTransactionData.appId;\n if (!app_id)\n throw new Error('App ID is required');\n const walletAdapter = {\n publicKey,\n signTransaction: async (tx) => provider.signTransaction(tx),\n signAllTransactions: async (txs) => provider.signAllTransactions\n ? provider.signAllTransactions(txs)\n : Promise.all(txs.map((t) => provider.signTransaction(t))),\n };\n const ProviderClass = programSdk[['Anch', 'orProvider'].join('')];\n const programProvider = new ProviderClass(connection, walletAdapter, ProviderClass.defaultOptions());\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n let tx;\n if (solTransactionData.signedTransaction) {\n // Server co-signed (CPI attestation) — just add the wallet signature.\n tx = VersionedTransaction.deserialize(Buffer.from(solTransactionData.signedTransaction, 'base64'));\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, programProvider, publicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData,\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n tx = result.tx;\n }\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n const signedTx = await walletAdapter.signTransaction(tx);\n return { signedTransaction: signedTx, blockNumber: 0, gasUsed: '0', data: '' };\n }\n let signature;\n if (typeof provider.signAndSendTransaction === 'function') {\n const res = await provider.signAndSendTransaction(tx);\n signature = res.signature;\n }\n else {\n const signedTx = await walletAdapter.signTransaction(tx);\n signature = await connection.sendRawTransaction(signedTx.serialize());\n }\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_b = (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.fee) === null || _b === void 0 ? void 0 : _b.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n async getNativeMethods() {\n return this.resolveProvider();\n }\n getRpcUrl(network) {\n return resolveSolanaRpcUrl(this.networkUrl, network !== null && network !== void 0 ? network : this.configuredNetwork, 'Wallet-login Solana transaction');\n }\n}\nInjectedWalletProvider.instance = null;\n"],"names":["normalizeSolanaRpcUrl","defaultInjectedProvider","setAuthLoading","SessionManager","setCurrentUser","genAuthNonce","genSolanaMessage","getPlatform","Buffer","createSessionWithSignature","bs58","confirmAndCheckTransaction","convertRemainingAccounts","buildSetDocumentsTransaction","resolveSolanaRpcUrl"],"mappings":";;;;;;AAWA,MAAM,sBAAsB,GAAG,0BAA0B;AACzD,MAAM,oBAAoB,GAAG,SAAS;AACtC,MAAM,aAAa,GAAG,8FAA8F;AACpH,IAAI,0EAA0E;AACvE,MAAM,sBAAsB,CAAC;AACpC,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,UAAU,GAAG,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAE;AAC1E,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC3C,YAAY,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC;AACvG,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,kBAAkB,GAAG,CAAC,EAAE,GAAGA,2BAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAGA,2BAAqB,CAAC,UAAU,CAAC;AACjJ,QAAQ,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK;AAC7F,cAAc,MAAM,CAAC,OAAO,CAAC,IAAI;AACjC,cAAc,IAAI;AAClB,QAAQ,MAAM,yBAAyB,GAAG,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,MAAM,GAAG,YAAY,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK;AACnL,cAAc,iBAAiB,CAAC,IAAI;AACpC,cAAc,IAAI,CAAC;AACnB;AACA,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE;AAC7C,YAAY,sBAAsB,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AAC9E,YAAY,sBAAsB,CAAC,QAAQ,CAAC,UAAU,GAAG,kBAAkB;AAC3E,YAAY,sBAAsB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,yBAAyB;AACzF,YAAY,OAAO,sBAAsB,CAAC,QAAQ;AAClD,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AAC/C,QAAQ,IAAI,CAAC,UAAU,GAAG,kBAAkB;AAC5C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,yBAAyB;AAC1D,QAAQ,sBAAsB,CAAC,QAAQ,GAAG,IAAI;AAC9C,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAGC,6BAAuB,EAAE;AACvJ,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC;AAC1C,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ;AACA,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,KAAK,EAAE;AAC1D,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB;AACA,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;AACvG,YAAY,OAAO,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;AAChD,QAAQ;AACR,QAAQ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;AAC/F,QAAQ,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS;AACrI,QAAQ,IAAI,CAAC,EAAE;AACf,YAAY,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;AAC5E,QAAQ,OAAO,EAAE,CAAC,QAAQ,EAAE;AAC5B,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,IAAI,EAAE;AACd,QAAQC,oBAAc,CAAC,IAAI,CAAC;AAC5B,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AACnD,YAAY,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC/D;AACA,YAAY,MAAM,QAAQ,GAAG,MAAMC,4BAAc,EAAE,CAAC,UAAU,EAAE;AAChE,YAAY,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE;AAC1D,gBAAgB,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AACrE,gBAAgBC,oBAAc,CAAC,IAAI,CAAC;AACpC,gBAAgB,IAAI,CAAC,cAAc,EAAE;AACrC,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ;AACA,YAAY,MAAM,KAAK,GAAG,MAAMC,iBAAY,EAAE;AAC9C,YAAY,MAAM,OAAO,GAAG,MAAMC,qBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;AAClE,YAAY,MAAM,YAAY,GAAGC,iBAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;AAClE,YAAY,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC;AAC/E,YAAY,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,UAAU;AAClK;AACA;AACA,YAAY,MAAM,SAAS,GAAGC,0BAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5E,YAAY,MAAM,MAAM,GAAG,MAAMC,+BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;AACxF,YAAY,MAAMN,4BAAc,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AACjH,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjE,YAAYC,oBAAc,CAAC,IAAI,CAAC;AAChC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,gBAAgB;AAChB,YAAYF,oBAAc,CAAC,KAAK,CAAC;AACjC,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB;AACA;AACA,QAAQ,IAAI;AACZ,YAAYK,iBAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;AACvF,QAAQ;AACR,QAAQ,wBAAwB,EAAE,EAAE,mBAAmB;AACvD,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,MAAM,OAAO,GAAG,MAAMJ,4BAAc,EAAE,CAAC,UAAU,EAAE;AAC3D,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AACtF,QAAQC,oBAAc,CAAC,IAAI,CAAC;AAC5B,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG;AACnB;AACA,QAAQD,4BAAc,EAAE,CAAC,YAAY,EAAE;AACvC,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAGF,6BAAuB,EAAE;AAC5G,YAAY,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU;AACrE,gBAAgB,MAAM,QAAQ,CAAC,UAAU,EAAE;AAC3C,QAAQ;AACR,QAAQ,oBAAoB,EAAE,EAAE,eAAe;AAC/C,QAAQG,oBAAc,CAAC,IAAI,CAAC;AAC5B,IAAI;AACJ;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AAC/C,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC5F,QAAQ,MAAM,YAAY,GAAGG,iBAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;AAC9D,QAAQ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC;AACpE,QAAQ,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG;AAClI;AACA,QAAQ,OAAOG,UAAI,CAAC,MAAM,CAAC,cAAc,YAAY,UAAU,GAAG,cAAc,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;AAClH,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,WAAW,EAAE;AACvC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AAC/C,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC5F,QAAQ,OAAO,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC;AACpD,IAAI;AACJ,IAAI,MAAM,wBAAwB,CAAC,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,iBAAiB,CAAC;AACzE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AAC/C,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC5G,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AACvC,QAAQ,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC;AAC9D;AACA,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC;AAC9E,QAAQ,MAAM,QAAQ,GAAG,iBAAiB,IAAI,WAAW;AACzD,YAAY,EAAE,SAAS,IAAI,WAAW,IAAI,mBAAmB,IAAI,WAAW,CAAC,OAAO,CAAC;AACrF,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,MAAM,MAAM,GAAG,WAAW;AACtC,YAAY,MAAM,CAAC,eAAe,GAAG,SAAS;AAC9C,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ;AAChC,gBAAgB,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC;AACxD,QAAQ;AACR,aAAa;AACb,YAAY,WAAW,CAAC,OAAO,CAAC,eAAe,GAAG,SAAS;AAC3D,QAAQ;AACR;AACA;AACA,QAAQ,IAAI,OAAO,QAAQ,CAAC,sBAAsB,KAAK,UAAU,EAAE;AACnE,YAAY,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,sBAAsB,CAAC,WAAW,CAAC;AAC1E,YAAY,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS;AAC3C,YAAY,MAAMC,gCAA0B,CAAC,UAAU,EAAE,SAAS,CAAC;AACnE,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC;AAClE,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE;AACtC,QAAQ,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC;AAClE,QAAQ,MAAMA,gCAA0B,CAAC,UAAU,EAAE,SAAS,CAAC;AAC/D,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE;AAC3E,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACzD,YAAY,OAAO,iBAAiB,CAAC;AACrC,YAAY,OAAO,mBAAmB,CAAC;AACvC,SAAS,CAAC;AACV,QAAQ,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,QAAQ;AACxE,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,YAAY,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;AACnF,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AAC/C,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC5G,QAAQ,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC;AAChD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACjE,QAAQ,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC;AAC9D,QAAQ,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK;AAC/C,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AACjD,QAAQ,MAAM,aAAa,GAAG;AAC9B,YAAY,SAAS;AACrB,YAAY,eAAe,EAAE,OAAO,EAAE,KAAK,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;AACvE,YAAY,mBAAmB,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC;AACzD,kBAAkB,QAAQ,CAAC,mBAAmB,CAAC,GAAG;AAClD,kBAAkB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,SAAS;AACT,QAAQ,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzE,QAAQ,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,cAAc,EAAE,CAAC;AAC5G,QAAQ,MAAM,iBAAiB,GAAGC,6BAAwB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;AAC1G,QAAQ,MAAM,YAAY,GAAG,EAAE;AAC/B,QAAQ,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE;AAC7C,YAAY,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClF,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;AACrE,gBAAgB,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU;AAC3E,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,kBAAkB,CAAC,iBAAiB,EAAE;AAClD;AACA,YAAY,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAACJ,0BAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAC9G,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,MAAM,GAAG,MAAMK,iCAA4B,CAAC,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE;AACxI,gBAAgB,MAAM;AACtB,gBAAgB,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe;AACvE,gBAAgB,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW;AACtE,gBAAgB,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;AAC3D,aAAa,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAC,eAAe,EAAE,KAAK,EAAE,kBAAkB,CAAC,sBAAsB,CAAC;AAC7I,YAAY,EAAE,GAAG,MAAM,CAAC,EAAE;AAC1B,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,MAAM,KAAK,EAAE;AAClG,YAAY,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC;AACpE,YAAY,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AAC1F,QAAQ;AACR,QAAQ,IAAI,SAAS;AACrB,QAAQ,IAAI,OAAO,QAAQ,CAAC,sBAAsB,KAAK,UAAU,EAAE;AACnE,YAAY,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;AACjE,YAAY,SAAS,GAAG,GAAG,CAAC,SAAS;AACrC,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC;AACpE,YAAY,SAAS,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;AACjF,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,MAAMF,gCAA0B,CAAC,UAAU,EAAE,SAAS,CAAC;AAC9E,QAAQ,OAAO;AACf,YAAY,oBAAoB,EAAE,SAAS;AAC3C,YAAY,WAAW,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC;AAC3F,YAAY,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,GAAG;AACtM,YAAY,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI;AAC7E,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,eAAe,EAAE;AACrC,IAAI;AACJ,IAAI,SAAS,CAAC,OAAO,EAAE;AACvB,QAAQ,OAAOG,yBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;AACjK,IAAI;AACJ;AACA,sBAAsB,CAAC,QAAQ,GAAG,IAAI;;;;;"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var core = require('@bounded-sh/core');
4
- var index_native = require('./index.native-2Mmuh7RB.js');
4
+ var index_native = require('./index.native-BTPOnWux.js');
5
5
  require('react');
6
6
 
7
7
  /**
@@ -160,7 +160,6 @@ class InjectedWalletProvider {
160
160
  const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));
161
161
  const rpcUrl = this.getRpcUrl();
162
162
  const connection = new Connection(rpcUrl, 'confirmed');
163
- const isSurfnet = rpcUrl === index_native.SURFNET_RPC_URL;
164
163
  // Set a fresh blockhash on the tx (mirrors the other providers).
165
164
  const { blockhash } = await connection.getLatestBlockhash('confirmed');
166
165
  const isLegacy = 'recentBlockhash' in transaction &&
@@ -174,9 +173,9 @@ class InjectedWalletProvider {
174
173
  else {
175
174
  transaction.message.recentBlockhash = blockhash;
176
175
  }
177
- // Prefer the wallet's native signAndSend on live networks; fall back to
178
- // sign + manual submit (needed for surfnet / wallets without send).
179
- if (!isSurfnet && typeof provider.signAndSendTransaction === 'function') {
176
+ // Prefer the wallet's native signAndSend; fall back to
177
+ // sign + manual submit for wallets without send.
178
+ if (typeof provider.signAndSendTransaction === 'function') {
180
179
  const res = await provider.signAndSendTransaction(transaction);
181
180
  const signature = res.signature;
182
181
  await index_native.confirmAndCheckTransaction(connection, signature);
@@ -208,7 +207,6 @@ class InjectedWalletProvider {
208
207
  const publicKey = new PublicKey(address);
209
208
  const rpcUrl = this.getRpcUrl(solTransactionData.network);
210
209
  const connection = new Connection(rpcUrl, 'confirmed');
211
- const isSurfnet = rpcUrl === index_native.SURFNET_RPC_URL;
212
210
  const app_id = solTransactionData.appId;
213
211
  if (!app_id)
214
212
  throw new Error('App ID is required');
@@ -252,7 +250,7 @@ class InjectedWalletProvider {
252
250
  return { signedTransaction: signedTx, blockNumber: 0, gasUsed: '0', data: '' };
253
251
  }
254
252
  let signature;
255
- if (!isSurfnet && typeof provider.signAndSendTransaction === 'function') {
253
+ if (typeof provider.signAndSendTransaction === 'function') {
256
254
  const res = await provider.signAndSendTransaction(tx);
257
255
  signature = res.signature;
258
256
  }
@@ -279,4 +277,4 @@ InjectedWalletProvider.instance = null;
279
277
 
280
278
  exports.InjectedWalletProvider = InjectedWalletProvider;
281
279
  exports.defaultInjectedProvider = defaultInjectedProvider;
282
- //# sourceMappingURL=injected-wallet-provider-g0md2vEj.js.map
280
+ //# sourceMappingURL=injected-wallet-provider-CmhZtf9E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injected-wallet-provider-CmhZtf9E.js","sources":["../.rollup-tmp/auth/providers/injected-wallet-types.js","../.rollup-tmp/auth/providers/injected-wallet-provider.js"],"sourcesContent":["/**\n * Default provider discovery: Phantom-first, then any Wallet-Standard\n * `window.solana`. Kept tiny + synchronous (no heavy imports) so it works inside\n * a user gesture and can be eagerly exported from the SDK entry.\n */\nexport function defaultInjectedProvider() {\n var _a;\n if (typeof window === 'undefined')\n return null;\n const w = window;\n const phantom = (_a = w === null || w === void 0 ? void 0 : w.phantom) === null || _a === void 0 ? void 0 : _a.solana;\n if (phantom && typeof phantom.signMessage === 'function')\n return phantom;\n const generic = w === null || w === void 0 ? void 0 : w.solana;\n if (generic && typeof generic.signMessage === 'function')\n return generic;\n return null;\n}\n","import { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts, } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport bs58 from 'bs58';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { normalizeSolanaRpcUrl, resolveSolanaRpcUrl } from '../solana-rpc';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport { defaultInjectedProvider, } from './injected-wallet-types';\n// Re-export the type surface + discovery helper for callers who import the\n// provider module directly.\nexport { defaultInjectedProvider };\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\nconst INJECTED_AUTH_METHOD = 'phantom';\nconst NO_WALLET_ERR = 'No injected Solana wallet found. Install a wallet like Phantom (phantom.app) and try again, ' +\n 'or pass config.injectedWalletConfig.getProvider to point at your wallet.';\nexport class InjectedWalletProvider {\n constructor(config = {}, networkUrl = null, configuredNetwork = null) {\n var _a;\n if (typeof window === 'undefined') {\n throw new Error('InjectedWalletProvider can only be instantiated in a browser environment');\n }\n // `config.rpcUrl` is the legacy wallet-login-local override. Normalize\n // it before precedence so an empty legacy value cannot shadow the\n // current top-level config.rpcUrl. Re-initialization must also replace\n // every singleton field; otherwise a previous app's provider/RPC can\n // survive getAuthProvider()'s config-key rotation.\n const resolvedNetworkUrl = (_a = normalizeSolanaRpcUrl(config.rpcUrl)) !== null && _a !== void 0 ? _a : normalizeSolanaRpcUrl(networkUrl);\n const localNetwork = typeof config.network === 'string' && config.network.trim() !== ''\n ? config.network.trim()\n : null;\n const resolvedConfiguredNetwork = localNetwork !== null && localNetwork !== void 0 ? localNetwork : (typeof configuredNetwork === 'string' && configuredNetwork.trim() !== ''\n ? configuredNetwork.trim()\n : null);\n // Singleton so the SDK reuses one instance (mirrors the other providers).\n if (InjectedWalletProvider.instance) {\n InjectedWalletProvider.instance.config = Object.assign({}, config);\n InjectedWalletProvider.instance.networkUrl = resolvedNetworkUrl;\n InjectedWalletProvider.instance.configuredNetwork = resolvedConfiguredNetwork;\n return InjectedWalletProvider.instance;\n }\n this.config = Object.assign({}, config);\n this.networkUrl = resolvedNetworkUrl;\n this.configuredNetwork = resolvedConfiguredNetwork;\n InjectedWalletProvider.instance = this;\n }\n resolveProvider() {\n var _a;\n const provider = (_a = (this.config.getProvider ? this.config.getProvider() : null)) !== null && _a !== void 0 ? _a : defaultInjectedProvider();\n if (!provider)\n throw new Error(NO_WALLET_ERR);\n return provider;\n }\n /** Connect the injected wallet (if needed) and return its Solana address. */\n async connectAddress(provider, onlyIfTrusted = false) {\n var _a, _b;\n // Already connected — reuse the pubkey.\n if (provider.publicKey && ((_a = provider.isConnected) !== null && _a !== void 0 ? _a : true)) {\n return provider.publicKey.toString();\n }\n const res = await provider.connect(onlyIfTrusted ? { onlyIfTrusted: true } : undefined);\n const pk = (_b = res === null || res === void 0 ? void 0 : res.publicKey) !== null && _b !== void 0 ? _b : provider.publicKey;\n if (!pk)\n throw new Error('Wallet did not return a public key on connect');\n return pk.toString();\n }\n async login() {\n var _a;\n setAuthLoading(true);\n try {\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider);\n // Reuse a still-valid session for THIS wallet.\n const existing = await SessionManager().getSession();\n if (existing && existing.address === address) {\n const user = { address, id: address, provider: this };\n setCurrentUser(user);\n this.markAuthMethod();\n return user;\n }\n // SIWS: nonce -> canonical prompt -> the wallet signs it locally.\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n const messageBytes = getPlatform().textEncode(message);\n const signResult = await provider.signMessage(messageBytes, 'utf8');\n const signatureBytes = (_a = signResult === null || signResult === void 0 ? void 0 : signResult.signature) !== null && _a !== void 0 ? _a : signResult;\n // base64 detached ed25519 signature — matches guest/privy providers and\n // the bounded-auth issuer's base64ToBytes() verify path.\n const signature = Buffer.from(signatureBytes).toString('base64');\n const result = await createSessionWithSignature(address, message, signature);\n await SessionManager().storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n this.markAuthMethod();\n const user = { address, id: address, provider: this };\n setCurrentUser(user);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n }\n markAuthMethod() {\n // Mark the auth method so clearIncompatibleSession() doesn't wipe this\n // wallet session on the next init().\n try {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, INJECTED_AUTH_METHOD);\n }\n catch ( /* no storage */_a) { /* no storage */ }\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (!session)\n return null;\n const user = { address: session.address, id: session.address, provider: this };\n setCurrentUser(user);\n return user;\n }\n async logout() {\n // Clear the Bounded session; best-effort disconnect the wallet.\n SessionManager().clearSession();\n try {\n const provider = this.config.getProvider ? this.config.getProvider() : defaultInjectedProvider();\n if (provider && typeof provider.disconnect === 'function')\n await provider.disconnect();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n setCurrentUser(null);\n }\n // --- Full local-keypair signing surface (the wallet's OWN methods) --------\n async signMessage(message) {\n var _a;\n const provider = this.resolveProvider();\n await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const messageBytes = getPlatform().textEncode(message);\n const res = await provider.signMessage(messageBytes, 'utf8');\n const signatureBytes = (_a = res === null || res === void 0 ? void 0 : res.signature) !== null && _a !== void 0 ? _a : res;\n // base58 is the standard Solana signature encoding for app-facing signMessage.\n return bs58.encode(signatureBytes instanceof Uint8Array ? signatureBytes : new Uint8Array(signatureBytes));\n }\n async signTransaction(transaction) {\n const provider = this.resolveProvider();\n await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n return provider.signTransaction(transaction);\n }\n async signAndSubmitTransaction(transaction, _feePayer) {\n const { Connection, PublicKey } = await import(\"@solana/web3.js\");\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Set a fresh blockhash on the tx (mirrors the other providers).\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n const isLegacy = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacy) {\n const legacy = transaction;\n legacy.recentBlockhash = blockhash;\n if (!legacy.feePayer)\n legacy.feePayer = new PublicKey(address);\n }\n else {\n transaction.message.recentBlockhash = blockhash;\n }\n // Prefer the wallet's native signAndSend; fall back to\n // sign + manual submit for wallets without send.\n if (typeof provider.signAndSendTransaction === 'function') {\n const res = await provider.signAndSendTransaction(transaction);\n const signature = res.signature;\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n const signed = await provider.signTransaction(transaction);\n const raw = signed.serialize();\n const signature = await connection.sendRawTransaction(raw);\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n /**\n * Onchain write path (mirrors the other wallet providers): build the Bounded\n * set-documents transaction with the injected wallet as payer, then sign +\n * submit with the wallet's own keypair.\n */\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a, _b;\n const [chainSdk, programSdk] = await Promise.all([\n import(\"@solana/web3.js\"),\n import(\"@coral-xyz/anchor\"),\n ]);\n const { Connection, PublicKey, VersionedTransaction } = chainSdk;\n if (!solTransactionData) {\n throw new Error('Solana transaction data is required for wallet login');\n }\n const provider = this.resolveProvider();\n const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));\n const publicKey = new PublicKey(address);\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const app_id = solTransactionData.appId;\n if (!app_id)\n throw new Error('App ID is required');\n const walletAdapter = {\n publicKey,\n signTransaction: async (tx) => provider.signTransaction(tx),\n signAllTransactions: async (txs) => provider.signAllTransactions\n ? provider.signAllTransactions(txs)\n : Promise.all(txs.map((t) => provider.signTransaction(t))),\n };\n const ProviderClass = programSdk[['Anch', 'orProvider'].join('')];\n const programProvider = new ProviderClass(connection, walletAdapter, ProviderClass.defaultOptions());\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n let tx;\n if (solTransactionData.signedTransaction) {\n // Server co-signed (CPI attestation) — just add the wallet signature.\n tx = VersionedTransaction.deserialize(Buffer.from(solTransactionData.signedTransaction, 'base64'));\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, programProvider, publicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData,\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n tx = result.tx;\n }\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n const signedTx = await walletAdapter.signTransaction(tx);\n return { signedTransaction: signedTx, blockNumber: 0, gasUsed: '0', data: '' };\n }\n let signature;\n if (typeof provider.signAndSendTransaction === 'function') {\n const res = await provider.signAndSendTransaction(tx);\n signature = res.signature;\n }\n else {\n const signedTx = await walletAdapter.signTransaction(tx);\n signature = await connection.sendRawTransaction(signedTx.serialize());\n }\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_b = (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.fee) === null || _b === void 0 ? void 0 : _b.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n async getNativeMethods() {\n return this.resolveProvider();\n }\n getRpcUrl(network) {\n return resolveSolanaRpcUrl(this.networkUrl, network !== null && network !== void 0 ? network : this.configuredNetwork, 'Wallet-login Solana transaction');\n }\n}\nInjectedWalletProvider.instance = null;\n"],"names":["normalizeSolanaRpcUrl","setAuthLoading","SessionManager","setCurrentUser","genAuthNonce","genSolanaMessage","getPlatform","Buffer","createSessionWithSignature","bs58","confirmAndCheckTransaction","convertRemainingAccounts","buildSetDocumentsTransaction","resolveSolanaRpcUrl"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { getActiveSessionManager, genAuthNonce, genSolanaMessage, createSessionWithSignature, convertRemainingAccounts, buildSetDocumentsTransaction } from '@bounded-sh/core';
2
- import { n as normalizeSolanaRpcUrl, d as defaultInjectedProvider, c as setAuthLoading, s as setCurrentUser, g as getPlatform, f as bufferExports, i as bs58, j as confirmAndCheckTransaction, r as resolveSolanaRpcUrl, S as SURFNET_RPC_URL } from './index-BvUrIsky.mjs';
2
+ import { n as normalizeSolanaRpcUrl, d as defaultInjectedProvider, c as setAuthLoading, s as setCurrentUser, g as getPlatform, f as bufferExports, i as bs58, j as confirmAndCheckTransaction, r as resolveSolanaRpcUrl } from './index-Co7IqxVo.mjs';
3
3
  import 'react';
4
4
 
5
5
  const STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';
@@ -139,7 +139,6 @@ class InjectedWalletProvider {
139
139
  const address = await this.connectAddress(provider, true).catch(() => this.connectAddress(provider));
140
140
  const rpcUrl = this.getRpcUrl();
141
141
  const connection = new Connection(rpcUrl, 'confirmed');
142
- const isSurfnet = rpcUrl === SURFNET_RPC_URL;
143
142
  // Set a fresh blockhash on the tx (mirrors the other providers).
144
143
  const { blockhash } = await connection.getLatestBlockhash('confirmed');
145
144
  const isLegacy = 'recentBlockhash' in transaction &&
@@ -153,9 +152,9 @@ class InjectedWalletProvider {
153
152
  else {
154
153
  transaction.message.recentBlockhash = blockhash;
155
154
  }
156
- // Prefer the wallet's native signAndSend on live networks; fall back to
157
- // sign + manual submit (needed for surfnet / wallets without send).
158
- if (!isSurfnet && typeof provider.signAndSendTransaction === 'function') {
155
+ // Prefer the wallet's native signAndSend; fall back to
156
+ // sign + manual submit for wallets without send.
157
+ if (typeof provider.signAndSendTransaction === 'function') {
159
158
  const res = await provider.signAndSendTransaction(transaction);
160
159
  const signature = res.signature;
161
160
  await confirmAndCheckTransaction(connection, signature);
@@ -187,7 +186,6 @@ class InjectedWalletProvider {
187
186
  const publicKey = new PublicKey(address);
188
187
  const rpcUrl = this.getRpcUrl(solTransactionData.network);
189
188
  const connection = new Connection(rpcUrl, 'confirmed');
190
- const isSurfnet = rpcUrl === SURFNET_RPC_URL;
191
189
  const app_id = solTransactionData.appId;
192
190
  if (!app_id)
193
191
  throw new Error('App ID is required');
@@ -231,7 +229,7 @@ class InjectedWalletProvider {
231
229
  return { signedTransaction: signedTx, blockNumber: 0, gasUsed: '0', data: '' };
232
230
  }
233
231
  let signature;
234
- if (!isSurfnet && typeof provider.signAndSendTransaction === 'function') {
232
+ if (typeof provider.signAndSendTransaction === 'function') {
235
233
  const res = await provider.signAndSendTransaction(tx);
236
234
  signature = res.signature;
237
235
  }
@@ -257,4 +255,4 @@ class InjectedWalletProvider {
257
255
  InjectedWalletProvider.instance = null;
258
256
 
259
257
  export { InjectedWalletProvider, defaultInjectedProvider };
260
- //# sourceMappingURL=injected-wallet-provider-CGoMdKhp.mjs.map
258
+ //# sourceMappingURL=injected-wallet-provider-uF4yZt8l.mjs.map