@tuwaio/satellite-solana 1.0.0-fix-test-alpha.34.4f76a87 → 1.0.0-fix-test-alpha.35.fe44df5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var orbitCore=require('@tuwaio/orbit-core'),orbitSolana=require('@tuwaio/orbit-solana'),satelliteCore=require('@tuwaio/satellite-core'),gill=require('gill'),features=require('@wallet-standard/features'),ui=require('@wallet-standard/ui'),uiRegistry=require('@wallet-standard/ui-registry'),core=require('@wallet-standard/core'),walletStandardMobile=require('@solana-mobile/wallet-standard-mobile');async function L(j,M){let I=ui.getWalletFeature(j,features.StandardConnect),{accounts:D}=await I.connect(M);return {uiWallet:orbitSolana.getAvailableWallets().filter(u=>u.accounts.find(N=>N.address.toLowerCase()===D[0].address.toLowerCase()))[0],accounts:D.map(u=>uiRegistry.getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(uiRegistry.getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(j),u))}}async function e(j){let M=ui.getWalletFeature(j,features.StandardDisconnect);j.name!=="Impersonated Connector"&&await M?.disconnect();}function H({rpcUrls:j}){return {key:orbitCore.OrbitAdapter.SOLANA,async connect({walletType:M,chainId:I}){let g=orbitSolana.getAvailableWallets().find(u=>orbitCore.getWalletTypeFromConnectorName(orbitCore.OrbitAdapter.SOLANA,satelliteCore.formatWalletName(u.name))===M);if(!g)throw new Error("Cannot find connector with this wallet type");try{let{uiWallet:u,accounts:N}=await L(g),y=orbitSolana.getCluster({cluster:I});return {walletType:M,address:N[0].address,chainId:y,rpcURL:orbitSolana.getRpcUrlForCluster({cluster:y,rpcUrls:j}),isConnected:!0,isContractAddress:!1,walletIcon:u?.icon?.trim(),connectedAccount:N[0],connectedWallet:u}}catch(u){throw new Error(u instanceof Error?u.message:String(u))}},async disconnect(M){if(M&&M?.connectedWallet)await e(M.connectedWallet);else {let D=orbitSolana.getAvailableWallets().filter(g=>g.accounts.length>0);await Promise.allSettled(D.map(async g=>{try{await e(g);}catch{}}));}},getConnectors(){let M=orbitSolana.getAvailableWallets();return {adapter:orbitCore.OrbitAdapter.SOLANA,connectors:M}},async checkAndSwitchNetwork(M,I,D){if(I!==M&&D){let g=orbitSolana.getCluster({cluster:M});D({chainId:g,rpcURL:orbitSolana.getRpcUrlForCluster({cluster:g,rpcUrls:j})});}},getBalance:async(M,I)=>{let g=await orbitSolana.createSolanaRPC({rpcUrlOrMoniker:orbitSolana.getCluster({cluster:I}),rpcUrls:j}).getBalance(gill.address(M)).send();return {value:gill.lamportsToSol(g.value),symbol:"SOL"}},getExplorerUrl(M,I){return orbitSolana.getSolanaExplorerLink(M,I)},async getName(M){return orbitSolana.getSolanaAddressName(M)},async getAvatar(M){return orbitSolana.getSolanaAddressAvatar(M)}}}function k(){return {accounts:[{chains:["solana:mainnet","solana:devnet","solana:testnet"],features:["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage","solana:signIn"],address:satelliteCore.impersonatedHelpers.getImpersonated()??"",publicKey:new Uint8Array(Object.values({0:145,1:169,2:59,3:126,4:25,5:176,6:207,7:212,8:193,9:78,10:109,11:111,12:190,13:162,14:186,15:19,16:28,17:207,18:193,19:33,20:95,21:123,22:148,23:163,24:5,25:73,26:234,27:15,28:152,29:10,30:90,31:80}))}],features:["standard:connect","standard:disconnect","solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"].reduce((j,M)=>(j[M]={},j),{}),chains:["solana:mainnet","solana:devnet","solana:testnet"],icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2IDBDMjQuODQgMCAzMiA3LjE2IDMyIDE2QzMyIDI0Ljg0IDI0Ljg0IDMyIDE2IDMyQzcuMTYgMzIgMCAyNC44NCAwIDE2QzAgNy4xNiA3LjE2IDAgMTYgMFoiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41NCAyLjAxSDE4LjA3QzE4LjU3IDIuMSAxOS4wNiAyLjI0IDE5LjU1IDIuNDNDMTkuNzYgMi42OCAxOS43NCAyLjkxIDE5LjUgMy4xMkMxOS4zNyAzLjE1IDE5LjI0IDMuMTUgMTkuMTEgMy4xMkMxNy4yNSAyLjQ3IDE1LjU2IDIuNzcgMTQuMDQgNC4wMUMxNi40MyA0LjcxIDE3Ljg4IDYuMjggMTguNCA4LjcxQzE4LjUyIDkuNTYgMTguNDggMTAuMzkgMTguMjggMTEuMjJDMTkuMTUgMTEuMjIgMjAuMDIgMTEuMjIgMjAuODkgMTEuMkMyMS4yOCAxMC44IDIxLjU5IDEwLjM1IDIxLjgzIDkuODVDMjEuMzggOS40IDIxLjE4IDguODYgMjEuMjQgOC4yMkMyMC4wOSA4LjMgMTkuNDUgNy43OCAxOS4zMiA2LjY0QzE5LjQ2IDUuNTIgMjAuMSA0Ljk3IDIxLjI0IDUuMDFDMjEuMjYgNC44MyAyMS4yMiA0LjY2IDIxLjEyIDQuNTJMMjAuMjMgMy42M0MyMC4yMSAzLjE4IDIwLjQyIDMuMDMgMjAuODUgMy4xNkMyMS4wOSAzLjM1IDIxLjMxIDMuNTUgMjEuNTEgMy43OEMyMi4yMiAyLjk5IDIzLjAxIDIuODkgMjMuOSAzLjQ2QzI0LjM0IDMuODggMjQuNTIgNC40IDI0LjQ0IDUuMDFDMjUuOTMgNS4wMyAyNi41NSA1Ljc3IDI2LjI5IDcuMjNDMjYuMjEgNy40IDI2LjEyIDcuNTcgMjYuMDIgNy43MkMyNi41NSA4LjMxIDI2Ljg5IDkgMjcuMDMgOS43OUMyNy4xMSAxNC4zOSAyNy4xMyAxOC45OCAyNy4wOCAyMy41OEMyNi44OSAyNS4xNiAyNi4wOCAyNi4yOSAyNC42NCAyNi45NUMyNC4zNSAyNy4wNSAyNC4wNSAyNy4xNSAyMy43NSAyNy4yMkg3LjJDNS44OSAyNi44OSA1LjE1IDI2LjA1IDQuOTYgMjQuNzFDNC45MyAxOS40NyA0LjkzIDE0LjI0IDQuOTYgOUM1LjI2IDcuMzggNi4yNCA2LjU0IDcuODkgNi40NkM5LjE1IDQuNjkgMTAuODcgMy44MiAxMy4wNiAzLjg1QzE0LjAyIDIuODQgMTUuMTkgMi4yMyAxNi41NiAyTDE2LjU0IDIuMDFaTTIyLjY1IDMuODhDMjMuMDQgMy44NSAyMy4zNSA0IDIzLjU2IDQuMzJDMjMuNjIgNC43MSAyMy42NSA1LjExIDIzLjY2IDUuNUMyMy42OCA1LjYyIDIzLjczIDUuNzEgMjMuODMgNS43N0MyNC4yNCA1Ljc3IDI0LjY1IDUuODEgMjUuMDYgNS44N0MyNS41NSA2LjEzIDI1LjY5IDYuNTIgMjUuNDggNy4wM0MyNS40MSA3LjE3IDI1LjMgNy4yOCAyNS4xNiA3LjM1QzI0Ljc3IDcuNDEgMjQuMzcgNy40NCAyMy45OCA3LjQ1QzIzLjg2IDcuNDcgMjMuNzcgNy41MiAyMy43MSA3LjYyTDIzLjU2IDguOTVDMjMuMjQgOS40MSAyMi44NCA5LjUgMjIuMzUgOS4yMkMyMi4yMiA5LjEyIDIyLjEzIDkgMjIuMDggOC44NUMyMi4wMiA4LjQ0IDIxLjk5IDguMDMgMjEuOTggNy42MkMyMS45MiA3LjUyIDIxLjgyIDcuNDYgMjEuNzEgNy40NUwyMC42MyA3LjRDMjAuMTcgNy4xNiAyMC4wMSA2Ljc5IDIwLjE2IDYuMjlDMjAuMyA2LjAyIDIwLjUyIDUuODYgMjAuODIgNS44MkwyMS44MSA1Ljc3QzIxLjgxIDUuNzcgMjEuOSA1LjczIDIxLjkzIDUuN0MyMS45OCA1LjI4IDIyLjAzIDQuODUgMjIuMDggNC40MkMyMi4yIDQuMTYgMjIuMzkgMy45OCAyMi42NSAzLjg4Wk0xMi4xNiA0LjY3QzE0LjU3IDQuNTggMTYuMjggNS42MSAxNy4zMSA3Ljc3QzE3Ljc1IDguODkgMTcuNzkgMTAuMDIgMTcuNDMgMTEuMTdDMTYuNTkgMTEuMjMgMTUuNzYgMTEuMjQgMTQuOTIgMTEuMTlDMTUuNDggMTAuNTEgMTUuNDQgOS44NyAxNC44MiA5LjI3QzE0LjU2IDkuMTQgMTQuMjggOS4wOCAxMy45OCA5LjFDMTQgOC4xNSAxMy45OCA3LjE5IDEzLjkxIDYuMjRDMTMuNyA1LjgzIDEzLjM2IDUuNjYgMTIuOSA1LjcyQzEyLjczIDUuNzUgMTIuNTkgNS44MSAxMi40NiA1LjkyQzExLjc0IDYuODQgMTEuMDMgNy43NyAxMC4zMiA4LjdDMTAuMDQgOS4xNSAxMC4wMyA5LjYxIDEwLjI3IDEwLjA4QzEwLjQyIDEwLjI4IDEwLjYxIDEwLjQyIDEwLjg0IDEwLjVDMTEuMTggMTAuNTIgMTEuNTMgMTAuNTMgMTEuODcgMTAuNTJWMTEuMjFDMTAuNTcgMTEuMjMgOS4yOCAxMS4yMSA3Ljk4IDExLjE2QzcuNCA5LjA2IDcuOSA3LjI4IDkuNTEgNS44MkMxMC4zIDUuMiAxMS4xOSA0LjgyIDEyLjE3IDQuNjZMMTIuMTYgNC42N1pNMTIuOTkgNi40OUMxMy4wNiA2LjQ5IDEzLjEyIDYuNTIgMTMuMTYgNi41OUwxMy4yMSA5LjY0QzEzLjI1IDkuNzMgMTMuMzEgOS44IDEzLjM4IDkuODZMMTQuMjcgOS45MUMxNC40OSA5Ljk5IDE0LjU3IDEwLjE1IDE0LjQ5IDEwLjM4QzE0LjMxIDEwLjY2IDE0LjEyIDEwLjkzIDEzLjkyIDExLjE5QzEzLjQ5IDExLjIxIDEzLjA3IDExLjIyIDEyLjY0IDExLjIxQzEyLjY0IDEwLjggMTIuNjQgMTAuMzkgMTIuNjIgOS45OEMxMi41OCA5LjkxIDEyLjUyIDkuODUgMTIuNDUgOS44MUwxMS4xNyA5Ljc2QzEwLjg3IDkuNjYgMTAuOCA5LjQ3IDEwLjk1IDkuMTlDMTEuNjUgOC4zIDEyLjM0IDcuNCAxMi45OSA2LjQ4VjYuNDlaTTcuMTggNy4zM0g3LjM4QzYuOSA4LjU2IDYuODEgOS44MiA3LjEzIDExLjFDNi41NCAxMC45NyA2LjEyIDEwLjYxIDUuODcgMTAuMDRDNS41MSA4Ljc1IDUuOTUgNy44NSA3LjE4IDcuMzNaTTI1LjE2IDguMTZDMjUuMjEgOC4xNiAyNS4yNiA4LjE2IDI1LjMxIDguMThDMjUuODYgOC43NSAyNi4xOCA5LjQzIDI2LjI3IDEwLjIyQzI2LjMgMTEuMDkgMjYuMyAxMS45NiAyNi4yNyAxMi44M0MyNS42NCAxMS45NyAyNC44IDExLjQ1IDIzLjczIDExLjI4QzIzLjEyIDExLjIzIDIyLjUyIDExLjIgMjEuOTEgMTEuMThDMjIuMTcgMTAuODcgMjIuMzkgMTAuNTIgMjIuNTUgMTAuMTVDMjMuODYgMTAuMTcgMjQuNDkgOS41MyAyNC40MiA4LjJDMjQuNjggOC4yMiAyNC45MiA4LjIgMjUuMTYgOC4xNVY4LjE2Wk01LjcgMTEuMjJDNi4xMSAxMS42MiA2LjYxIDExLjg3IDcuMTggMTEuOThMMjMuMjQgMTIuMDNDMjQuNjYgMTIuMTYgMjUuNjIgMTIuOSAyNi4xMiAxNC4yMkMyNi4xOSAxNC40NiAyNi4yNCAxNC43MSAyNi4yNyAxNC45NkMyNi4zIDE3LjgyIDI2LjMgMjAuNjcgMjYuMjcgMjMuNTNDMjYuMDYgMjQuOTcgMjUuMjcgMjUuOTEgMjMuODggMjYuMzZDMjMuNjQgMjYuNDEgMjMuMzkgMjYuNDQgMjMuMTQgMjYuNDZDMjEuODggMjYuNDggMjAuNjEgMjYuNDkgMTkuMzUgMjYuNDhDMTkuMzUgMjUuMTUgMTkuMzUgMjMuODIgMTkuMzcgMjIuNDlMMjAuOTIgMjAuOTRDMjIuMzQgMjAuOSAyMy4wMSAyMC4xNiAyMi45MSAxOC43NUMyMi42NyAxNy44NyAyMi4xIDE3LjQxIDIxLjE5IDE3LjM3QzE5Ljk5IDE3LjQ5IDE5LjM4IDE4LjE3IDE5LjM3IDE5LjM5TDE3LjQ1IDIxLjMxQzE3LjM3IDIxLjQyIDE3LjMxIDIxLjUzIDE3LjI1IDIxLjY1QzE3LjE4IDIzLjI2IDE3LjE1IDI0Ljg3IDE3LjE4IDI2LjQ4SDE2Ljc0QzE2Ljc0IDI0LjIgMTYuNzQgMjEuOTIgMTYuNzIgMTkuNjNDMTYuNjggMTkuNTEgMTYuNjMgMTkuMzkgMTYuNTcgMTkuMjlMMTUuNDQgMTguMTZDMTUuNDQgMTYuOTMgMTQuODMgMTYuMjQgMTMuNjIgMTYuMDlDMTIuMzMgMTYuMjYgMTEuNzUgMTcgMTEuOSAxOC4zMUMxMi4yMSAxOS4yNCAxMi44NiAxOS42OSAxMy44NSAxOS42NkwxNC41NiAyMC4zN0MxNC41NiAyMC42NyAxNC42IDIwLjk3IDE0LjY2IDIxLjI2QzE0LjkxIDIxLjQ3IDE1LjE0IDIxLjQ1IDE1LjM1IDIxLjIxQzE1LjM4IDIwLjgyIDE1LjM4IDIwLjQyIDE1LjM1IDIwLjAzQzE1LjE1IDE5Ljc4IDE0LjkyIDE5LjU0IDE0LjY5IDE5LjMyQzE0Ljg0IDE5LjIyIDE0Ljk4IDE5LjEgMTUuMDggMTguOTVDMTUuMzggMTkuMjIgMTUuNjYgMTkuNSAxNS45NCAxOS43OUMxNS45NiAyMi4wMiAxNS45NyAyNC4yNiAxNS45NiAyNi40OUgxNS4zN0MxNS4zNyAyNS4xMSAxNS4zNyAyMy43MyAxNS4zNSAyMi4zNUMxNS4yIDIyLjEgMTUgMjIuMDQgMTQuNzMgMjIuMThDMTQuNjggMjIuMjUgMTQuNjQgMjIuMzIgMTQuNjEgMjIuNEMxNC41OSAyMy43NiAxNC41OCAyNS4xMyAxNC41OSAyNi40OUgxNC4xNUMxNC4xNSAyNS41IDE0LjE1IDI0LjUyIDE0LjEzIDIzLjUzQzE0LjExIDIzLjQ0IDE0LjA3IDIzLjM2IDE0LjAzIDIzLjI4QzEzLjM2IDIyLjU2IDEyLjY3IDIxLjg1IDExLjk2IDIxLjE2QzExLjkgMTkuNjggMTEuMTQgMTkuMDMgOS42NyAxOS4yMUM4LjY1IDE5LjYyIDguMjUgMjAuMzcgOC40NiAyMS40NUM4LjggMjIuMzMgOS40NSAyMi43NSAxMC40MSAyMi43MUwxMS45NiAyNC4yNkMxMS45OCAyNSAxMS45OSAyNS43NCAxMS45OCAyNi40OEMxMC40MiAyNi41IDguODYgMjYuNDggNy4zIDI2LjQxQzYuNCAyNi4xNyA1Ljg4IDI1LjU4IDUuNzUgMjQuNjZDNS43MyAyMC4xOCA1LjcyIDE1LjcgNS43MyAxMS4yMUw1LjcgMTEuMjJaTTEzLjQ5IDE2Ljg4QzE0LjMzIDE2Ljk0IDE0LjY4IDE3LjM4IDE0LjU1IDE4LjIxQzE0LjIzIDE4LjgzIDEzLjc1IDE5IDEzLjEgMTguNzNDMTIuNjQgMTguMzYgMTIuNTQgMTcuOTEgMTIuNzggMTcuMzhDMTIuOTYgMTcuMTIgMTMuMiAxNi45NiAxMy40OSAxNi44OVYxNi44OFpNMjAuOTIgMTguMTZDMjEuODEgMTguMTMgMjIuMjEgMTguNTYgMjIuMTMgMTkuNDRDMjEuOCAyMC4xMSAyMS4zIDIwLjI5IDIwLjYzIDE5Ljk2QzIwLjA5IDE5LjQ3IDIwLjA1IDE4Ljk2IDIwLjUzIDE4LjQxQzIwLjY1IDE4LjMgMjAuNzggMTguMjIgMjAuOTIgMTguMTZaTTkuOTQgMTkuOTRDMTAuNzggMTkuOTQgMTEuMTYgMjAuMzQgMTEuMSAyMS4xN0MxMC44MiAyMS44NSAxMC4zNCAyMi4wNiA5LjY1IDIxLjc5QzkuMDIgMjEuMjUgOSAyMC43IDkuNiAyMC4xMkw5Ljk0IDE5Ljk1VjE5Ljk0Wk0xOS42OSAyMC4xOEMxOS44NSAyMC4zMSAxOS45OSAyMC40NSAyMC4xMyAyMC42QzE5LjYgMjEuMTIgMTkuMDggMjEuNjUgMTguNTggMjIuMkMxOC41NiAyMy42MyAxOC41NSAyNS4wNiAxOC41NiAyNi40OEgxNy45N0MxNy45NyAyNC45NyAxNy45NyAyMy40NiAxNy45OSAyMS45NUMxOC41NSAyMS4zNSAxOS4xMSAyMC43NiAxOS42OSAyMC4xOFpNMTEuNTYgMjJDMTIuMTggMjIuNTMgMTIuNzcgMjMuMTEgMTMuMzEgMjMuNzJDMTMuMzMgMjQuNjQgMTMuMzQgMjUuNTYgMTMuMzMgMjYuNDhIMTIuNzRDMTIuNzQgMjUuNjMgMTIuNzQgMjQuNzcgMTIuNzIgMjMuOTJMMTEuMjQgMjIuNDRDMTEuMjQgMjIuNDQgMTEuMjEgMjIuMzcgMTEuMjQgMjIuMzRDMTEuMzYgMjIuMjMgMTEuNDYgMjIuMTIgMTEuNTYgMjJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4=",name:"Impersonated Connector",version:"1.0.0"}}function jM(){core.registerWallet({...k()});}function gM({rpcUrls:j,...M}){if(typeof window>"u")return;if(!window.isSecureContext){console.warn("Solana Mobile Connectors not loaded: https connection required");return}let I=Object.keys(j).map(D=>`solana:${D}`);if(I.length===0){console.warn("Solana Mobile Connectors not loaded: no chains provided");return}walletStandardMobile.registerMwa({appIdentity:{uri:M?.appUrl,icon:M?.appLogoUrl,name:M?.appName},authorizationCache:walletStandardMobile.createDefaultAuthorizationCache(),chains:I,chainSelector:walletStandardMobile.createDefaultChainSelector(),onWalletNotFound:walletStandardMobile.createDefaultWalletNotFoundHandler()});}exports.connect=L;exports.disconnect=e;exports.impersonatedConnector=k;exports.initializeSolanaMobileConnectors=gM;exports.registerImpersonated=jM;exports.satelliteSolanaAdapter=H;//# sourceMappingURL=index.js.map
|
|
1
|
+
'use strict';var orbitCore=require('@tuwaio/orbit-core'),orbitSolana=require('@tuwaio/orbit-solana'),satelliteCore=require('@tuwaio/satellite-core'),gill=require('gill'),features=require('@wallet-standard/features'),ui=require('@wallet-standard/ui'),uiRegistry=require('@wallet-standard/ui-registry'),core=require('@wallet-standard/core'),walletStandardMobile=require('@solana-mobile/wallet-standard-mobile');async function L(j,M){let I=ui.getWalletFeature(j,features.StandardConnect),{accounts:D}=await I.connect(M);return {uiWallet:orbitSolana.getAvailableWallets().filter(u=>u.accounts.find(N=>N.address.toLowerCase()===D[0].address.toLowerCase()))[0],accounts:D.map(u=>uiRegistry.getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(uiRegistry.getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(j),u))}}async function e(j){await ui.getWalletFeature(j,features.StandardDisconnect)?.disconnect();}function H({rpcUrls:j}){return {key:orbitCore.OrbitAdapter.SOLANA,async connect({walletType:M,chainId:I}){let g=orbitSolana.getAvailableWallets().find(u=>orbitCore.getWalletTypeFromConnectorName(orbitCore.OrbitAdapter.SOLANA,satelliteCore.formatWalletName(u.name))===M);if(!g)throw new Error("Cannot find connector with this wallet type");try{let{uiWallet:u,accounts:N}=await L(g),y=orbitSolana.getCluster({cluster:I});return {walletType:M,address:N[0].address,chainId:y,rpcURL:orbitSolana.getRpcUrlForCluster({cluster:y,rpcUrls:j}),isConnected:!0,isContractAddress:!1,walletIcon:u?.icon?.trim(),connectedAccount:N[0],connectedWallet:u}}catch(u){throw new Error(u instanceof Error?u.message:String(u))}},async disconnect(M){if(M&&M?.connectedWallet)await e(M.connectedWallet);else {let D=orbitSolana.getAvailableWallets().filter(g=>g.accounts.length>0);await Promise.allSettled(D.map(async g=>{try{await e(g);}catch{}}));}},getConnectors(){let M=orbitSolana.getAvailableWallets();return {adapter:orbitCore.OrbitAdapter.SOLANA,connectors:M}},async checkAndSwitchNetwork(M,I,D){if(I!==M&&D){let g=orbitSolana.getCluster({cluster:M});D({chainId:g,rpcURL:orbitSolana.getRpcUrlForCluster({cluster:g,rpcUrls:j})});}},getBalance:async(M,I)=>{let g=await orbitSolana.createSolanaRPC({rpcUrlOrMoniker:orbitSolana.getCluster({cluster:I}),rpcUrls:j}).getBalance(gill.address(M)).send();return {value:gill.lamportsToSol(g.value),symbol:"SOL"}},getExplorerUrl(M,I){return orbitSolana.getSolanaExplorerLink(M,I)},async getName(M){return orbitSolana.getSolanaAddressName(M)},async getAvatar(M){return orbitSolana.getSolanaAddressAvatar(M)}}}function k(){return {accounts:[{chains:["solana:mainnet","solana:devnet","solana:testnet"],features:["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage","solana:signIn"],address:satelliteCore.impersonatedHelpers.getImpersonated()??"",publicKey:new Uint8Array(Object.values({0:145,1:169,2:59,3:126,4:25,5:176,6:207,7:212,8:193,9:78,10:109,11:111,12:190,13:162,14:186,15:19,16:28,17:207,18:193,19:33,20:95,21:123,22:148,23:163,24:5,25:73,26:234,27:15,28:152,29:10,30:90,31:80}))}],features:["standard:connect","standard:disconnect","solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"].reduce((j,M)=>(j[M]={},j),{}),chains:["solana:mainnet","solana:devnet","solana:testnet"],icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2IDBDMjQuODQgMCAzMiA3LjE2IDMyIDE2QzMyIDI0Ljg0IDI0Ljg0IDMyIDE2IDMyQzcuMTYgMzIgMCAyNC44NCAwIDE2QzAgNy4xNiA3LjE2IDAgMTYgMFoiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41NCAyLjAxSDE4LjA3QzE4LjU3IDIuMSAxOS4wNiAyLjI0IDE5LjU1IDIuNDNDMTkuNzYgMi42OCAxOS43NCAyLjkxIDE5LjUgMy4xMkMxOS4zNyAzLjE1IDE5LjI0IDMuMTUgMTkuMTEgMy4xMkMxNy4yNSAyLjQ3IDE1LjU2IDIuNzcgMTQuMDQgNC4wMUMxNi40MyA0LjcxIDE3Ljg4IDYuMjggMTguNCA4LjcxQzE4LjUyIDkuNTYgMTguNDggMTAuMzkgMTguMjggMTEuMjJDMTkuMTUgMTEuMjIgMjAuMDIgMTEuMjIgMjAuODkgMTEuMkMyMS4yOCAxMC44IDIxLjU5IDEwLjM1IDIxLjgzIDkuODVDMjEuMzggOS40IDIxLjE4IDguODYgMjEuMjQgOC4yMkMyMC4wOSA4LjMgMTkuNDUgNy43OCAxOS4zMiA2LjY0QzE5LjQ2IDUuNTIgMjAuMSA0Ljk3IDIxLjI0IDUuMDFDMjEuMjYgNC44MyAyMS4yMiA0LjY2IDIxLjEyIDQuNTJMMjAuMjMgMy42M0MyMC4yMSAzLjE4IDIwLjQyIDMuMDMgMjAuODUgMy4xNkMyMS4wOSAzLjM1IDIxLjMxIDMuNTUgMjEuNTEgMy43OEMyMi4yMiAyLjk5IDIzLjAxIDIuODkgMjMuOSAzLjQ2QzI0LjM0IDMuODggMjQuNTIgNC40IDI0LjQ0IDUuMDFDMjUuOTMgNS4wMyAyNi41NSA1Ljc3IDI2LjI5IDcuMjNDMjYuMjEgNy40IDI2LjEyIDcuNTcgMjYuMDIgNy43MkMyNi41NSA4LjMxIDI2Ljg5IDkgMjcuMDMgOS43OUMyNy4xMSAxNC4zOSAyNy4xMyAxOC45OCAyNy4wOCAyMy41OEMyNi44OSAyNS4xNiAyNi4wOCAyNi4yOSAyNC42NCAyNi45NUMyNC4zNSAyNy4wNSAyNC4wNSAyNy4xNSAyMy43NSAyNy4yMkg3LjJDNS44OSAyNi44OSA1LjE1IDI2LjA1IDQuOTYgMjQuNzFDNC45MyAxOS40NyA0LjkzIDE0LjI0IDQuOTYgOUM1LjI2IDcuMzggNi4yNCA2LjU0IDcuODkgNi40NkM5LjE1IDQuNjkgMTAuODcgMy44MiAxMy4wNiAzLjg1QzE0LjAyIDIuODQgMTUuMTkgMi4yMyAxNi41NiAyTDE2LjU0IDIuMDFaTTIyLjY1IDMuODhDMjMuMDQgMy44NSAyMy4zNSA0IDIzLjU2IDQuMzJDMjMuNjIgNC43MSAyMy42NSA1LjExIDIzLjY2IDUuNUMyMy42OCA1LjYyIDIzLjczIDUuNzEgMjMuODMgNS43N0MyNC4yNCA1Ljc3IDI0LjY1IDUuODEgMjUuMDYgNS44N0MyNS41NSA2LjEzIDI1LjY5IDYuNTIgMjUuNDggNy4wM0MyNS40MSA3LjE3IDI1LjMgNy4yOCAyNS4xNiA3LjM1QzI0Ljc3IDcuNDEgMjQuMzcgNy40NCAyMy45OCA3LjQ1QzIzLjg2IDcuNDcgMjMuNzcgNy41MiAyMy43MSA3LjYyTDIzLjU2IDguOTVDMjMuMjQgOS40MSAyMi44NCA5LjUgMjIuMzUgOS4yMkMyMi4yMiA5LjEyIDIyLjEzIDkgMjIuMDggOC44NUMyMi4wMiA4LjQ0IDIxLjk5IDguMDMgMjEuOTggNy42MkMyMS45MiA3LjUyIDIxLjgyIDcuNDYgMjEuNzEgNy40NUwyMC42MyA3LjRDMjAuMTcgNy4xNiAyMC4wMSA2Ljc5IDIwLjE2IDYuMjlDMjAuMyA2LjAyIDIwLjUyIDUuODYgMjAuODIgNS44MkwyMS44MSA1Ljc3QzIxLjgxIDUuNzcgMjEuOSA1LjczIDIxLjkzIDUuN0MyMS45OCA1LjI4IDIyLjAzIDQuODUgMjIuMDggNC40MkMyMi4yIDQuMTYgMjIuMzkgMy45OCAyMi42NSAzLjg4Wk0xMi4xNiA0LjY3QzE0LjU3IDQuNTggMTYuMjggNS42MSAxNy4zMSA3Ljc3QzE3Ljc1IDguODkgMTcuNzkgMTAuMDIgMTcuNDMgMTEuMTdDMTYuNTkgMTEuMjMgMTUuNzYgMTEuMjQgMTQuOTIgMTEuMTlDMTUuNDggMTAuNTEgMTUuNDQgOS44NyAxNC44MiA5LjI3QzE0LjU2IDkuMTQgMTQuMjggOS4wOCAxMy45OCA5LjFDMTQgOC4xNSAxMy45OCA3LjE5IDEzLjkxIDYuMjRDMTMuNyA1LjgzIDEzLjM2IDUuNjYgMTIuOSA1LjcyQzEyLjczIDUuNzUgMTIuNTkgNS44MSAxMi40NiA1LjkyQzExLjc0IDYuODQgMTEuMDMgNy43NyAxMC4zMiA4LjdDMTAuMDQgOS4xNSAxMC4wMyA5LjYxIDEwLjI3IDEwLjA4QzEwLjQyIDEwLjI4IDEwLjYxIDEwLjQyIDEwLjg0IDEwLjVDMTEuMTggMTAuNTIgMTEuNTMgMTAuNTMgMTEuODcgMTAuNTJWMTEuMjFDMTAuNTcgMTEuMjMgOS4yOCAxMS4yMSA3Ljk4IDExLjE2QzcuNCA5LjA2IDcuOSA3LjI4IDkuNTEgNS44MkMxMC4zIDUuMiAxMS4xOSA0LjgyIDEyLjE3IDQuNjZMMTIuMTYgNC42N1pNMTIuOTkgNi40OUMxMy4wNiA2LjQ5IDEzLjEyIDYuNTIgMTMuMTYgNi41OUwxMy4yMSA5LjY0QzEzLjI1IDkuNzMgMTMuMzEgOS44IDEzLjM4IDkuODZMMTQuMjcgOS45MUMxNC40OSA5Ljk5IDE0LjU3IDEwLjE1IDE0LjQ5IDEwLjM4QzE0LjMxIDEwLjY2IDE0LjEyIDEwLjkzIDEzLjkyIDExLjE5QzEzLjQ5IDExLjIxIDEzLjA3IDExLjIyIDEyLjY0IDExLjIxQzEyLjY0IDEwLjggMTIuNjQgMTAuMzkgMTIuNjIgOS45OEMxMi41OCA5LjkxIDEyLjUyIDkuODUgMTIuNDUgOS44MUwxMS4xNyA5Ljc2QzEwLjg3IDkuNjYgMTAuOCA5LjQ3IDEwLjk1IDkuMTlDMTEuNjUgOC4zIDEyLjM0IDcuNCAxMi45OSA2LjQ4VjYuNDlaTTcuMTggNy4zM0g3LjM4QzYuOSA4LjU2IDYuODEgOS44MiA3LjEzIDExLjFDNi41NCAxMC45NyA2LjEyIDEwLjYxIDUuODcgMTAuMDRDNS41MSA4Ljc1IDUuOTUgNy44NSA3LjE4IDcuMzNaTTI1LjE2IDguMTZDMjUuMjEgOC4xNiAyNS4yNiA4LjE2IDI1LjMxIDguMThDMjUuODYgOC43NSAyNi4xOCA5LjQzIDI2LjI3IDEwLjIyQzI2LjMgMTEuMDkgMjYuMyAxMS45NiAyNi4yNyAxMi44M0MyNS42NCAxMS45NyAyNC44IDExLjQ1IDIzLjczIDExLjI4QzIzLjEyIDExLjIzIDIyLjUyIDExLjIgMjEuOTEgMTEuMThDMjIuMTcgMTAuODcgMjIuMzkgMTAuNTIgMjIuNTUgMTAuMTVDMjMuODYgMTAuMTcgMjQuNDkgOS41MyAyNC40MiA4LjJDMjQuNjggOC4yMiAyNC45MiA4LjIgMjUuMTYgOC4xNVY4LjE2Wk01LjcgMTEuMjJDNi4xMSAxMS42MiA2LjYxIDExLjg3IDcuMTggMTEuOThMMjMuMjQgMTIuMDNDMjQuNjYgMTIuMTYgMjUuNjIgMTIuOSAyNi4xMiAxNC4yMkMyNi4xOSAxNC40NiAyNi4yNCAxNC43MSAyNi4yNyAxNC45NkMyNi4zIDE3LjgyIDI2LjMgMjAuNjcgMjYuMjcgMjMuNTNDMjYuMDYgMjQuOTcgMjUuMjcgMjUuOTEgMjMuODggMjYuMzZDMjMuNjQgMjYuNDEgMjMuMzkgMjYuNDQgMjMuMTQgMjYuNDZDMjEuODggMjYuNDggMjAuNjEgMjYuNDkgMTkuMzUgMjYuNDhDMTkuMzUgMjUuMTUgMTkuMzUgMjMuODIgMTkuMzcgMjIuNDlMMjAuOTIgMjAuOTRDMjIuMzQgMjAuOSAyMy4wMSAyMC4xNiAyMi45MSAxOC43NUMyMi42NyAxNy44NyAyMi4xIDE3LjQxIDIxLjE5IDE3LjM3QzE5Ljk5IDE3LjQ5IDE5LjM4IDE4LjE3IDE5LjM3IDE5LjM5TDE3LjQ1IDIxLjMxQzE3LjM3IDIxLjQyIDE3LjMxIDIxLjUzIDE3LjI1IDIxLjY1QzE3LjE4IDIzLjI2IDE3LjE1IDI0Ljg3IDE3LjE4IDI2LjQ4SDE2Ljc0QzE2Ljc0IDI0LjIgMTYuNzQgMjEuOTIgMTYuNzIgMTkuNjNDMTYuNjggMTkuNTEgMTYuNjMgMTkuMzkgMTYuNTcgMTkuMjlMMTUuNDQgMTguMTZDMTUuNDQgMTYuOTMgMTQuODMgMTYuMjQgMTMuNjIgMTYuMDlDMTIuMzMgMTYuMjYgMTEuNzUgMTcgMTEuOSAxOC4zMUMxMi4yMSAxOS4yNCAxMi44NiAxOS42OSAxMy44NSAxOS42NkwxNC41NiAyMC4zN0MxNC41NiAyMC42NyAxNC42IDIwLjk3IDE0LjY2IDIxLjI2QzE0LjkxIDIxLjQ3IDE1LjE0IDIxLjQ1IDE1LjM1IDIxLjIxQzE1LjM4IDIwLjgyIDE1LjM4IDIwLjQyIDE1LjM1IDIwLjAzQzE1LjE1IDE5Ljc4IDE0LjkyIDE5LjU0IDE0LjY5IDE5LjMyQzE0Ljg0IDE5LjIyIDE0Ljk4IDE5LjEgMTUuMDggMTguOTVDMTUuMzggMTkuMjIgMTUuNjYgMTkuNSAxNS45NCAxOS43OUMxNS45NiAyMi4wMiAxNS45NyAyNC4yNiAxNS45NiAyNi40OUgxNS4zN0MxNS4zNyAyNS4xMSAxNS4zNyAyMy43MyAxNS4zNSAyMi4zNUMxNS4yIDIyLjEgMTUgMjIuMDQgMTQuNzMgMjIuMThDMTQuNjggMjIuMjUgMTQuNjQgMjIuMzIgMTQuNjEgMjIuNEMxNC41OSAyMy43NiAxNC41OCAyNS4xMyAxNC41OSAyNi40OUgxNC4xNUMxNC4xNSAyNS41IDE0LjE1IDI0LjUyIDE0LjEzIDIzLjUzQzE0LjExIDIzLjQ0IDE0LjA3IDIzLjM2IDE0LjAzIDIzLjI4QzEzLjM2IDIyLjU2IDEyLjY3IDIxLjg1IDExLjk2IDIxLjE2QzExLjkgMTkuNjggMTEuMTQgMTkuMDMgOS42NyAxOS4yMUM4LjY1IDE5LjYyIDguMjUgMjAuMzcgOC40NiAyMS40NUM4LjggMjIuMzMgOS40NSAyMi43NSAxMC40MSAyMi43MUwxMS45NiAyNC4yNkMxMS45OCAyNSAxMS45OSAyNS43NCAxMS45OCAyNi40OEMxMC40MiAyNi41IDguODYgMjYuNDggNy4zIDI2LjQxQzYuNCAyNi4xNyA1Ljg4IDI1LjU4IDUuNzUgMjQuNjZDNS43MyAyMC4xOCA1LjcyIDE1LjcgNS43MyAxMS4yMUw1LjcgMTEuMjJaTTEzLjQ5IDE2Ljg4QzE0LjMzIDE2Ljk0IDE0LjY4IDE3LjM4IDE0LjU1IDE4LjIxQzE0LjIzIDE4LjgzIDEzLjc1IDE5IDEzLjEgMTguNzNDMTIuNjQgMTguMzYgMTIuNTQgMTcuOTEgMTIuNzggMTcuMzhDMTIuOTYgMTcuMTIgMTMuMiAxNi45NiAxMy40OSAxNi44OVYxNi44OFpNMjAuOTIgMTguMTZDMjEuODEgMTguMTMgMjIuMjEgMTguNTYgMjIuMTMgMTkuNDRDMjEuOCAyMC4xMSAyMS4zIDIwLjI5IDIwLjYzIDE5Ljk2QzIwLjA5IDE5LjQ3IDIwLjA1IDE4Ljk2IDIwLjUzIDE4LjQxQzIwLjY1IDE4LjMgMjAuNzggMTguMjIgMjAuOTIgMTguMTZaTTkuOTQgMTkuOTRDMTAuNzggMTkuOTQgMTEuMTYgMjAuMzQgMTEuMSAyMS4xN0MxMC44MiAyMS44NSAxMC4zNCAyMi4wNiA5LjY1IDIxLjc5QzkuMDIgMjEuMjUgOSAyMC43IDkuNiAyMC4xMkw5Ljk0IDE5Ljk1VjE5Ljk0Wk0xOS42OSAyMC4xOEMxOS44NSAyMC4zMSAxOS45OSAyMC40NSAyMC4xMyAyMC42QzE5LjYgMjEuMTIgMTkuMDggMjEuNjUgMTguNTggMjIuMkMxOC41NiAyMy42MyAxOC41NSAyNS4wNiAxOC41NiAyNi40OEgxNy45N0MxNy45NyAyNC45NyAxNy45NyAyMy40NiAxNy45OSAyMS45NUMxOC41NSAyMS4zNSAxOS4xMSAyMC43NiAxOS42OSAyMC4xOFpNMTEuNTYgMjJDMTIuMTggMjIuNTMgMTIuNzcgMjMuMTEgMTMuMzEgMjMuNzJDMTMuMzMgMjQuNjQgMTMuMzQgMjUuNTYgMTMuMzMgMjYuNDhIMTIuNzRDMTIuNzQgMjUuNjMgMTIuNzQgMjQuNzcgMTIuNzIgMjMuOTJMMTEuMjQgMjIuNDRDMTEuMjQgMjIuNDQgMTEuMjEgMjIuMzcgMTEuMjQgMjIuMzRDMTEuMzYgMjIuMjMgMTEuNDYgMjIuMTIgMTEuNTYgMjJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4=",name:"Impersonated Connector",version:"1.0.0"}}function jM(){core.registerWallet({...k()});}function gM({rpcUrls:j,...M}){if(typeof window>"u")return;if(!window.isSecureContext){console.warn("Solana Mobile Connectors not loaded: https connection required");return}let I=Object.keys(j).map(D=>`solana:${D}`);if(I.length===0){console.warn("Solana Mobile Connectors not loaded: no chains provided");return}walletStandardMobile.registerMwa({appIdentity:{uri:M?.appUrl,icon:M?.appLogoUrl,name:M?.appName},authorizationCache:walletStandardMobile.createDefaultAuthorizationCache(),chains:I,chainSelector:walletStandardMobile.createDefaultChainSelector(),onWalletNotFound:walletStandardMobile.createDefaultWalletNotFoundHandler()});}exports.connect=L;exports.disconnect=e;exports.impersonatedConnector=k;exports.initializeSolanaMobileConnectors=gM;exports.registerImpersonated=jM;exports.satelliteSolanaAdapter=H;//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/connectionUtils.ts","../src/adapters/solanaAdapter.ts","../src/connectors/impersonatedConnector.ts","../src/connectors/initializeSolanaMobileConnectors.ts"],"names":["connect","uiWallet","input","connectFeature","getWalletFeature","StandardConnect","accounts","getAvailableWallets","w","a","account","getOrCreateUiWalletAccountForStandardWalletAccount","getWalletForHandle","disconnect","disconnectFeature","StandardDisconnect","satelliteSolanaAdapter","rpcUrls","OrbitAdapter","walletType","chainId","connector","getWalletTypeFromConnectorName","formatWalletName","connectedAccount","cluster","getCluster","getRpcUrlForCluster","e","activeWallet","connectedWallets","wallet","connectors","currentChainId","updateActiveWallet","address","balance","createSolanaRPC","adr","lamportsToSol","url","getSolanaExplorerLink","getSolanaAddressName","name","getSolanaAddressAvatar","impersonatedConnector","impersonatedHelpers","acc","featureKey","registerImpersonated","registerWallet","initializeSolanaMobileConnectors","props","chains","key","registerMwa","createDefaultAuthorizationCache","createDefaultChainSelector","createDefaultWalletNotFoundHandler"],"mappings":"yZAqCA,eAAsBA,CAAAA,CACpBC,CAAAA,CACAC,CAAAA,CAC8D,CAE9D,IAAMC,CAAAA,CAAiBC,mBAAAA,CAAiBH,CAAAA,CAAUI,wBAAe,CAAA,CAE3D,CAAE,QAAA,CAAAC,CAAS,EAAI,MAAMH,CAAAA,CAAe,OAAA,CAAQD,CAAK,EAGvD,OAAO,CACL,SAHcK,+BAAAA,EAAoB,CAGhB,OAAQC,CAAAA,EACxBA,CAAAA,CAAE,QAAA,CAAS,IAAA,CAAMC,GAAMA,CAAAA,CAAE,OAAA,CAAQ,WAAA,EAAY,GAAMH,EAAS,CAAC,CAAA,CAAE,OAAA,CAAQ,WAAA,EAAa,CACtF,CAAA,CAAE,CAAC,CAAA,CACH,SAAUA,CAAAA,CAAS,GAAA,CAAKI,CAAAA,EACtBC,6FAAAA,CAAmDC,8DAAmBX,CAAQ,CAAA,CAAGS,CAAO,CAC1F,CACF,CACF,CAkBA,eAAsBG,CAAAA,CAAWZ,EAAmC,CAElE,IAAMa,EAAoBV,mBAAAA,CAAiBH,CAAAA,CAAUc,2BAAkB,CAAA,CAKnEd,CAAAA,CAAS,IAAA,GAAS,wBAAA,EACpB,MAAMa,CAAAA,EAAmB,UAAA,GAE7B,CC3CO,SAASE,CAAAA,CAAuB,CAAE,OAAA,CAAAC,CAAQ,EAAmE,CAClH,OAAO,CACL,GAAA,CAAKC,uBAAa,MAAA,CAElB,MAAM,OAAA,CAAQ,CAAE,WAAAC,CAAAA,CAAY,OAAA,CAAAC,CAAQ,CAAA,CAAG,CAErC,IAAMC,CAAAA,CADad,+BAAAA,EAAoB,CACV,KAC1Bc,CAAAA,EACCC,wCAAAA,CAA+BJ,uBAAa,MAAA,CAAQK,8BAAAA,CAAiBF,EAAU,IAAI,CAAC,CAAA,GAAMF,CAC9F,EACA,GAAI,CAACE,CAAAA,CAAW,MAAM,IAAI,KAAA,CAAM,6CAA6C,CAAA,CAE7E,GAAI,CACF,GAAM,CAAE,QAAA,CAAApB,CAAAA,CAAU,SAAUuB,CAAiB,CAAA,CAAI,MAAMxB,CAAAA,CAAQqB,CAAqB,CAAA,CAC9EI,CAAAA,CAAUC,sBAAAA,CAAW,CAAE,QAASN,CAAkB,CAAC,CAAA,CAEzD,OAAO,CACL,UAAA,CAAAD,CAAAA,CACA,QAASK,CAAAA,CAAiB,CAAC,EAAE,OAAA,CAC7B,OAAA,CAASC,CAAAA,CACT,MAAA,CAAQE,gCAAoB,CAC1B,OAAA,CAASF,CAAAA,CACT,OAAA,CAAAR,CACF,CAAC,CAAA,CACD,WAAA,CAAa,CAAA,CAAA,CACb,kBAAmB,CAAA,CAAA,CACnB,UAAA,CAAYhB,CAAAA,EAAU,IAAA,EAAM,MAAK,CACjC,gBAAA,CAAkBuB,CAAAA,CAAiB,CAAC,EACpC,eAAA,CAAiBvB,CACnB,CACF,CAAA,MAAS2B,EAAG,CACV,MAAM,IAAI,KAAA,CAAMA,aAAa,KAAA,CAAQA,CAAAA,CAAE,QAAU,MAAA,CAAOA,CAAC,CAAC,CAC5D,CACF,CAAA,CAEA,MAAM,WAAWC,CAAAA,CAAc,CAC7B,GAAIA,CAAAA,EAAiBA,GAA+B,eAAA,CAClD,MAAMhB,CAAAA,CAAYgB,CAAAA,CAA8B,eAA2B,CAAA,CAAA,KACtE,CAEL,IAAMC,CAAAA,CADUvB,iCAAoB,CACH,MAAA,CAAQwB,CAAAA,EAAWA,CAAAA,CAAO,SAAS,MAAA,CAAS,CAAC,CAAA,CAC9E,MAAM,QAAQ,UAAA,CACZD,CAAAA,CAAiB,GAAA,CAAI,MAAOtB,GAAM,CAChC,GAAI,CACF,MAAMK,CAAAA,CAAWL,CAAC,EAEpB,CAAA,KAAY,CAEZ,CACF,CAAC,CACH,EACF,CACF,CAAA,CAEA,eAAgB,CACd,IAAMwB,CAAAA,CAAazB,+BAAAA,GACnB,OAAO,CACL,OAAA,CAASW,sBAAAA,CAAa,OACtB,UAAA,CAAYc,CACd,CACF,CAAA,CAEA,MAAM,qBAAA,CAAsBZ,CAAAA,CAASa,CAAAA,CAAgBC,CAAAA,CAAoB,CACvE,GAAID,CAAAA,GAAmBb,CAAAA,EAAWc,CAAAA,CAAoB,CACpD,IAAMT,CAAAA,CAAUC,uBAAW,CAAE,OAAA,CAASN,CAAkB,CAAC,CAAA,CACzDc,CAAAA,CAAmB,CACjB,QAAST,CAAAA,CACT,MAAA,CAAQE,+BAAAA,CAAoB,CAC1B,QAASF,CAAAA,CACT,OAAA,CAAAR,CACF,CAAC,CACH,CAAC,EACH,CACF,CAAA,CAEA,WAAY,MAAOkB,CAAAA,CAASf,CAAAA,GAAY,CAEtC,IAAMgB,CAAAA,CAAU,MADJC,2BAAAA,CAAgB,CAAE,gBAAiBX,sBAAAA,CAAW,CAAE,OAAA,CAASN,CAAkB,CAAC,CAAA,CAAG,OAAA,CAAAH,CAAQ,CAAC,EAC1E,UAAA,CAAWqB,YAAAA,CAAIH,CAAO,CAAC,EAAE,IAAA,EAAK,CACxD,OAAO,CACL,MAAOI,kBAAAA,CAAcH,CAAAA,CAAQ,KAAK,CAAA,CAClC,OAAQ,KACV,CACF,CAAA,CAEA,cAAA,CAAeI,EAAKpB,CAAAA,CAAS,CAC3B,OAAOqB,iCAAAA,CAAsBD,EAAKpB,CAAO,CAC3C,CAAA,CACA,MAAM,QAAQe,CAAAA,CAAS,CACrB,OAAOO,gCAAAA,CAAqBP,CAAO,CACrC,CAAA,CACA,MAAM,SAAA,CAAUQ,CAAAA,CAAM,CACpB,OAAOC,kCAAAA,CAAuBD,CAAI,CACpC,CACF,CACF,CCnIO,SAASE,CAAAA,EAAgC,CAC9C,OAAO,CACL,QAAA,CAAU,CACR,CACE,MAAA,CAAQ,CAAC,gBAAA,CAAkB,eAAA,CAAiB,gBAAgB,CAAA,CAC5D,SAAU,CACR,+BAAA,CACA,wBAAA,CACA,oBAAA,CACA,eACF,CAAA,CACA,OAAA,CAASC,kCAAoB,eAAA,EAAgB,EAAK,GAElD,SAAA,CAAW,IAAI,UAAA,CACb,MAAA,CAAO,OAAO,CACZ,CAAA,CAAK,GAAA,CACL,CAAA,CAAK,IACL,CAAA,CAAK,EAAA,CACL,CAAA,CAAK,GAAA,CACL,EAAK,EAAA,CACL,CAAA,CAAK,GAAA,CACL,CAAA,CAAK,IACL,CAAA,CAAK,GAAA,CACL,CAAA,CAAK,GAAA,CACL,EAAK,EAAA,CACL,EAAA,CAAM,GAAA,CACN,EAAA,CAAM,IACN,EAAA,CAAM,GAAA,CACN,EAAA,CAAM,GAAA,CACN,GAAM,GAAA,CACN,EAAA,CAAM,GACN,EAAA,CAAM,EAAA,CACN,GAAM,GAAA,CACN,EAAA,CAAM,GAAA,CACN,EAAA,CAAM,GACN,EAAA,CAAM,EAAA,CACN,EAAA,CAAM,GAAA,CACN,GAAM,GAAA,CACN,EAAA,CAAM,GAAA,CACN,EAAA,CAAM,EACN,EAAA,CAAM,EAAA,CACN,EAAA,CAAM,GAAA,CACN,GAAM,EAAA,CACN,EAAA,CAAM,GAAA,CACN,EAAA,CAAM,GACN,EAAA,CAAM,EAAA,CACN,EAAA,CAAM,EACR,CAAC,CACH,CACF,CACF,CAAA,CACA,SAAU,CACR,kBAAA,CACA,sBACA,+BAAA,CACA,wBAAA,CACA,oBACF,CAAA,CAAE,MAAA,CACA,CAACC,CAAAA,CAAKC,KACJD,CAAAA,CAAIC,CAAU,CAAA,CAAI,GACXD,CAAAA,CAAAA,CAET,EACF,CAAA,CACA,OAAQ,CAAC,gBAAA,CAAkB,eAAA,CAAiB,gBAAgB,EAC5D,IAAA,CAAM,omOAAA,CACN,IAAA,CAAM,wBAAA,CACN,QAAS,OACX,CACF,CAEO,SAASE,IAAuB,CACrCC,mBAAAA,CAAe,CAAE,GAAGL,GAAwB,CAAC,EAC/C,CChCO,SAASM,GAAiC,CAAE,OAAA,CAAAlC,CAAAA,CAAS,GAAGmC,CAAM,CAAA,CAAgD,CAEnH,GAAI,OAAO,OAAW,GAAA,CACpB,OAGF,GAAI,CAAC,OAAO,eAAA,CAAiB,CAC3B,OAAA,CAAQ,IAAA,CAAK,gEAAgE,CAAA,CAC7E,MACF,CAGA,IAAMC,EAAS,MAAA,CAAO,IAAA,CAAKpC,CAAO,CAAA,CAAE,GAAA,CAAKqC,GAAQ,CAAA,OAAA,EAAUA,CAAG,CAAA,CAAwB,CAAA,CAGtF,GAAID,CAAAA,CAAO,MAAA,GAAW,CAAA,CAAG,CACvB,QAAQ,IAAA,CAAK,yDAAyD,CAAA,CACtE,MACF,CAGAE,gCAAAA,CAAY,CACV,WAAA,CAAa,CACX,IAAKH,CAAAA,EAAO,MAAA,CACZ,IAAA,CAAMA,CAAAA,EAAO,WACb,IAAA,CAAMA,CAAAA,EAAO,OACf,CAAA,CACA,mBAAoBI,oDAAAA,EAAgC,CACpD,MAAA,CAAAH,CAAAA,CACA,cAAeI,+CAAAA,EAA2B,CAC1C,iBAAkBC,uDAAAA,EACpB,CAAC,EACH","file":"index.js","sourcesContent":["import { getAvailableWallets } from '@tuwaio/orbit-solana';\nimport type {\n StandardConnectFeature,\n StandardConnectMethod,\n StandardDisconnectFeature,\n} from '@wallet-standard/features';\nimport { StandardConnect, StandardDisconnect } from '@wallet-standard/features';\nimport { getWalletFeature, type UiWallet, UiWalletAccount } from '@wallet-standard/ui';\nimport {\n getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as getOrCreateUiWalletAccountForStandardWalletAccount,\n getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as getWalletForHandle,\n} from '@wallet-standard/ui-registry';\n\n/**\n * Establishes connection with a wallet using Wallet Standard\n *\n * @remarks\n * Connects to a wallet that implements the Wallet Standard interface.\n * Uses the StandardConnect feature to establish connection and retrieve accounts.\n * Converts standard wallet accounts to UI wallet accounts.\n *\n * @param uiWallet - Wallet instance implementing the UI Wallet interface\n * @param input - Optional connection parameters (excluding silent flag)\n * @returns Promise resolving to array of connected wallet accounts\n *\n * @throws {Error} If wallet doesn't support StandardConnect feature\n * @throws {Error} If connection attempt fails\n *\n * @example\n * ```typescript\n * const accounts = await connect(wallet, {\n * // Optional connection parameters\n * });\n * const firstAccount = accounts[0];\n * console.log('Connected account:', firstAccount.address);\n * ```\n */\nexport async function connect(\n uiWallet: UiWallet,\n input?: Omit<NonNullable<Parameters<StandardConnectMethod>[0]>, 'silent'>,\n): Promise<{ uiWallet: UiWallet; accounts: UiWalletAccount[] }> {\n // Get the connect feature from the wallet\n const connectFeature = getWalletFeature(uiWallet, StandardConnect) as StandardConnectFeature[typeof StandardConnect];\n // Initiate connection and get accounts\n const { accounts } = await connectFeature.connect(input);\n const wallets = getAvailableWallets();\n // Convert accounts to UI wallet accounts\n return {\n uiWallet: wallets.filter((w) =>\n w.accounts.find((a) => a.address.toLowerCase() === accounts[0].address.toLowerCase()),\n )[0],\n accounts: accounts.map((account) =>\n getOrCreateUiWalletAccountForStandardWalletAccount(getWalletForHandle(uiWallet), account),\n ),\n };\n}\n\n/**\n * Disconnects from a connected wallet\n *\n * @remarks\n * Safely disconnects from a wallet if it supports the StandardDisconnect feature.\n * If the wallet doesn't support disconnection, the operation is silently ignored.\n *\n * @param uiWallet - Wallet instance implementing the UI Wallet interface\n * @returns Promise that resolves when disconnection is complete\n *\n * @example\n * ```typescript\n * await disconnect(wallet);\n * console.log('Wallet disconnected');\n * ```\n */\nexport async function disconnect(uiWallet: UiWallet): Promise<void> {\n // Get the disconnect feature if available\n const disconnectFeature = getWalletFeature(uiWallet, StandardDisconnect) as\n | StandardDisconnectFeature[typeof StandardDisconnect]\n | undefined;\n\n // Attempt disconnection if feature is supported\n if (uiWallet.name !== 'Impersonated Connector') {\n await disconnectFeature?.disconnect();\n }\n}\n","import { getWalletTypeFromConnectorName, OrbitAdapter } from '@tuwaio/orbit-core';\nimport {\n createSolanaRPC,\n getAvailableWallets,\n getCluster,\n getRpcUrlForCluster,\n getSolanaAddressAvatar,\n getSolanaAddressName,\n getSolanaExplorerLink,\n SolanaRPCUrls,\n} from '@tuwaio/orbit-solana';\nimport { formatWalletName, SatelliteAdapter } from '@tuwaio/satellite-core';\nimport { UiWallet } from '@wallet-standard/ui';\nimport { address as adr, lamportsToSol, SolanaClusterMoniker } from 'gill';\n\nimport { ConnectorSolana, SolanaWallet } from '../types';\nimport { connect, disconnect } from '../utils/connectionUtils';\n\n/**\n * Creates a Solana blockchain adapter for the Satellite Connect system\n *\n * @remarks\n * This adapter implements the SatelliteAdapter interface for Solana blockchain,\n * providing wallet connection, network switching, and name resolution capabilities.\n * It uses the Wallet Standard for consistent wallet interactions.\n *\n * @param rpcUrls - Configuration object containing RPC endpoints for different Solana networks\n * @returns SatelliteAdapter implementation for Solana\n *\n * @example\n * ```typescript\n * const solanaAdapter = satelliteSolanaAdapter({\n * rpcUrls: {\n * mainnet: 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com',\n * testnet: 'https://api.testnet.solana.com'\n * }\n * });\n * ```\n */\nexport function satelliteSolanaAdapter({ rpcUrls }: SolanaRPCUrls): SatelliteAdapter<ConnectorSolana, SolanaWallet> {\n return {\n key: OrbitAdapter.SOLANA,\n\n async connect({ walletType, chainId }) {\n const connectors = getAvailableWallets();\n const connector = connectors.find(\n (connector) =>\n getWalletTypeFromConnectorName(OrbitAdapter.SOLANA, formatWalletName(connector.name)) === walletType,\n );\n if (!connector) throw new Error('Cannot find connector with this wallet type');\n\n try {\n const { uiWallet, accounts: connectedAccount } = await connect(connector as UiWallet);\n const cluster = getCluster({ cluster: chainId as string });\n\n return {\n walletType,\n address: connectedAccount[0].address,\n chainId: cluster,\n rpcURL: getRpcUrlForCluster({\n cluster: cluster as SolanaClusterMoniker,\n rpcUrls,\n }),\n isConnected: true,\n isContractAddress: false,\n walletIcon: uiWallet?.icon?.trim(),\n connectedAccount: connectedAccount[0],\n connectedWallet: uiWallet,\n };\n } catch (e) {\n throw new Error(e instanceof Error ? e.message : String(e));\n }\n },\n\n async disconnect(activeWallet) {\n if (activeWallet && (activeWallet as SolanaWallet)?.connectedWallet) {\n await disconnect((activeWallet as SolanaWallet).connectedWallet as UiWallet);\n } else {\n const wallets = getAvailableWallets();\n const connectedWallets = wallets.filter((wallet) => wallet.accounts.length > 0);\n await Promise.allSettled(\n connectedWallets.map(async (w) => {\n try {\n await disconnect(w);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n /* empty */\n }\n }),\n );\n }\n },\n\n getConnectors() {\n const connectors = getAvailableWallets();\n return {\n adapter: OrbitAdapter.SOLANA,\n connectors: connectors as ConnectorSolana[],\n };\n },\n\n async checkAndSwitchNetwork(chainId, currentChainId, updateActiveWallet) {\n if (currentChainId !== chainId && updateActiveWallet) {\n const cluster = getCluster({ cluster: chainId as string });\n updateActiveWallet({\n chainId: cluster,\n rpcURL: getRpcUrlForCluster({\n cluster: cluster as SolanaClusterMoniker,\n rpcUrls,\n }),\n });\n }\n },\n\n getBalance: async (address, chainId) => {\n const rpc = createSolanaRPC({ rpcUrlOrMoniker: getCluster({ cluster: chainId as string }), rpcUrls });\n const balance = await rpc.getBalance(adr(address)).send();\n return {\n value: lamportsToSol(balance.value),\n symbol: 'SOL',\n };\n },\n\n getExplorerUrl(url, chainId) {\n return getSolanaExplorerLink(url, chainId);\n },\n async getName(address) {\n return getSolanaAddressName(address);\n },\n async getAvatar(name) {\n return getSolanaAddressAvatar(name);\n },\n };\n}\n","import { impersonatedHelpers } from '@tuwaio/satellite-core';\nimport { registerWallet, Wallet, WalletAccount } from '@wallet-standard/core';\n\nexport function impersonatedConnector(): Wallet {\n return {\n accounts: [\n {\n chains: ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as WalletAccount['chains'],\n features: [\n 'solana:signAndSendTransaction',\n 'solana:signTransaction',\n 'solana:signMessage',\n 'solana:signIn',\n ] as WalletAccount['features'],\n address: impersonatedHelpers.getImpersonated() ?? '',\n // TODO: need fix\n publicKey: new Uint8Array(\n Object.values({\n '0': 145,\n '1': 169,\n '2': 59,\n '3': 126,\n '4': 25,\n '5': 176,\n '6': 207,\n '7': 212,\n '8': 193,\n '9': 78,\n '10': 109,\n '11': 111,\n '12': 190,\n '13': 162,\n '14': 186,\n '15': 19,\n '16': 28,\n '17': 207,\n '18': 193,\n '19': 33,\n '20': 95,\n '21': 123,\n '22': 148,\n '23': 163,\n '24': 5,\n '25': 73,\n '26': 234,\n '27': 15,\n '28': 152,\n '29': 10,\n '30': 90,\n '31': 80,\n }),\n ) as WalletAccount['publicKey'],\n },\n ],\n features: [\n 'standard:connect',\n 'standard:disconnect',\n 'solana:signAndSendTransaction',\n 'solana:signTransaction',\n 'solana:signMessage',\n ].reduce(\n (acc, featureKey) => {\n acc[featureKey] = {};\n return acc;\n },\n {} as Record<string, unknown>,\n ),\n chains: ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as Wallet['chains'],\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2IDBDMjQuODQgMCAzMiA3LjE2IDMyIDE2QzMyIDI0Ljg0IDI0Ljg0IDMyIDE2IDMyQzcuMTYgMzIgMCAyNC44NCAwIDE2QzAgNy4xNiA3LjE2IDAgMTYgMFoiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41NCAyLjAxSDE4LjA3QzE4LjU3IDIuMSAxOS4wNiAyLjI0IDE5LjU1IDIuNDNDMTkuNzYgMi42OCAxOS43NCAyLjkxIDE5LjUgMy4xMkMxOS4zNyAzLjE1IDE5LjI0IDMuMTUgMTkuMTEgMy4xMkMxNy4yNSAyLjQ3IDE1LjU2IDIuNzcgMTQuMDQgNC4wMUMxNi40MyA0LjcxIDE3Ljg4IDYuMjggMTguNCA4LjcxQzE4LjUyIDkuNTYgMTguNDggMTAuMzkgMTguMjggMTEuMjJDMTkuMTUgMTEuMjIgMjAuMDIgMTEuMjIgMjAuODkgMTEuMkMyMS4yOCAxMC44IDIxLjU5IDEwLjM1IDIxLjgzIDkuODVDMjEuMzggOS40IDIxLjE4IDguODYgMjEuMjQgOC4yMkMyMC4wOSA4LjMgMTkuNDUgNy43OCAxOS4zMiA2LjY0QzE5LjQ2IDUuNTIgMjAuMSA0Ljk3IDIxLjI0IDUuMDFDMjEuMjYgNC44MyAyMS4yMiA0LjY2IDIxLjEyIDQuNTJMMjAuMjMgMy42M0MyMC4yMSAzLjE4IDIwLjQyIDMuMDMgMjAuODUgMy4xNkMyMS4wOSAzLjM1IDIxLjMxIDMuNTUgMjEuNTEgMy43OEMyMi4yMiAyLjk5IDIzLjAxIDIuODkgMjMuOSAzLjQ2QzI0LjM0IDMuODggMjQuNTIgNC40IDI0LjQ0IDUuMDFDMjUuOTMgNS4wMyAyNi41NSA1Ljc3IDI2LjI5IDcuMjNDMjYuMjEgNy40IDI2LjEyIDcuNTcgMjYuMDIgNy43MkMyNi41NSA4LjMxIDI2Ljg5IDkgMjcuMDMgOS43OUMyNy4xMSAxNC4zOSAyNy4xMyAxOC45OCAyNy4wOCAyMy41OEMyNi44OSAyNS4xNiAyNi4wOCAyNi4yOSAyNC42NCAyNi45NUMyNC4zNSAyNy4wNSAyNC4wNSAyNy4xNSAyMy43NSAyNy4yMkg3LjJDNS44OSAyNi44OSA1LjE1IDI2LjA1IDQuOTYgMjQuNzFDNC45MyAxOS40NyA0LjkzIDE0LjI0IDQuOTYgOUM1LjI2IDcuMzggNi4yNCA2LjU0IDcuODkgNi40NkM5LjE1IDQuNjkgMTAuODcgMy44MiAxMy4wNiAzLjg1QzE0LjAyIDIuODQgMTUuMTkgMi4yMyAxNi41NiAyTDE2LjU0IDIuMDFaTTIyLjY1IDMuODhDMjMuMDQgMy44NSAyMy4zNSA0IDIzLjU2IDQuMzJDMjMuNjIgNC43MSAyMy42NSA1LjExIDIzLjY2IDUuNUMyMy42OCA1LjYyIDIzLjczIDUuNzEgMjMuODMgNS43N0MyNC4yNCA1Ljc3IDI0LjY1IDUuODEgMjUuMDYgNS44N0MyNS41NSA2LjEzIDI1LjY5IDYuNTIgMjUuNDggNy4wM0MyNS40MSA3LjE3IDI1LjMgNy4yOCAyNS4xNiA3LjM1QzI0Ljc3IDcuNDEgMjQuMzcgNy40NCAyMy45OCA3LjQ1QzIzLjg2IDcuNDcgMjMuNzcgNy41MiAyMy43MSA3LjYyTDIzLjU2IDguOTVDMjMuMjQgOS40MSAyMi44NCA5LjUgMjIuMzUgOS4yMkMyMi4yMiA5LjEyIDIyLjEzIDkgMjIuMDggOC44NUMyMi4wMiA4LjQ0IDIxLjk5IDguMDMgMjEuOTggNy42MkMyMS45MiA3LjUyIDIxLjgyIDcuNDYgMjEuNzEgNy40NUwyMC42MyA3LjRDMjAuMTcgNy4xNiAyMC4wMSA2Ljc5IDIwLjE2IDYuMjlDMjAuMyA2LjAyIDIwLjUyIDUuODYgMjAuODIgNS44MkwyMS44MSA1Ljc3QzIxLjgxIDUuNzcgMjEuOSA1LjczIDIxLjkzIDUuN0MyMS45OCA1LjI4IDIyLjAzIDQuODUgMjIuMDggNC40MkMyMi4yIDQuMTYgMjIuMzkgMy45OCAyMi42NSAzLjg4Wk0xMi4xNiA0LjY3QzE0LjU3IDQuNTggMTYuMjggNS42MSAxNy4zMSA3Ljc3QzE3Ljc1IDguODkgMTcuNzkgMTAuMDIgMTcuNDMgMTEuMTdDMTYuNTkgMTEuMjMgMTUuNzYgMTEuMjQgMTQuOTIgMTEuMTlDMTUuNDggMTAuNTEgMTUuNDQgOS44NyAxNC44MiA5LjI3QzE0LjU2IDkuMTQgMTQuMjggOS4wOCAxMy45OCA5LjFDMTQgOC4xNSAxMy45OCA3LjE5IDEzLjkxIDYuMjRDMTMuNyA1LjgzIDEzLjM2IDUuNjYgMTIuOSA1LjcyQzEyLjczIDUuNzUgMTIuNTkgNS44MSAxMi40NiA1LjkyQzExLjc0IDYuODQgMTEuMDMgNy43NyAxMC4zMiA4LjdDMTAuMDQgOS4xNSAxMC4wMyA5LjYxIDEwLjI3IDEwLjA4QzEwLjQyIDEwLjI4IDEwLjYxIDEwLjQyIDEwLjg0IDEwLjVDMTEuMTggMTAuNTIgMTEuNTMgMTAuNTMgMTEuODcgMTAuNTJWMTEuMjFDMTAuNTcgMTEuMjMgOS4yOCAxMS4yMSA3Ljk4IDExLjE2QzcuNCA5LjA2IDcuOSA3LjI4IDkuNTEgNS44MkMxMC4zIDUuMiAxMS4xOSA0LjgyIDEyLjE3IDQuNjZMMTIuMTYgNC42N1pNMTIuOTkgNi40OUMxMy4wNiA2LjQ5IDEzLjEyIDYuNTIgMTMuMTYgNi41OUwxMy4yMSA5LjY0QzEzLjI1IDkuNzMgMTMuMzEgOS44IDEzLjM4IDkuODZMMTQuMjcgOS45MUMxNC40OSA5Ljk5IDE0LjU3IDEwLjE1IDE0LjQ5IDEwLjM4QzE0LjMxIDEwLjY2IDE0LjEyIDEwLjkzIDEzLjkyIDExLjE5QzEzLjQ5IDExLjIxIDEzLjA3IDExLjIyIDEyLjY0IDExLjIxQzEyLjY0IDEwLjggMTIuNjQgMTAuMzkgMTIuNjIgOS45OEMxMi41OCA5LjkxIDEyLjUyIDkuODUgMTIuNDUgOS44MUwxMS4xNyA5Ljc2QzEwLjg3IDkuNjYgMTAuOCA5LjQ3IDEwLjk1IDkuMTlDMTEuNjUgOC4zIDEyLjM0IDcuNCAxMi45OSA2LjQ4VjYuNDlaTTcuMTggNy4zM0g3LjM4QzYuOSA4LjU2IDYuODEgOS44MiA3LjEzIDExLjFDNi41NCAxMC45NyA2LjEyIDEwLjYxIDUuODcgMTAuMDRDNS41MSA4Ljc1IDUuOTUgNy44NSA3LjE4IDcuMzNaTTI1LjE2IDguMTZDMjUuMjEgOC4xNiAyNS4yNiA4LjE2IDI1LjMxIDguMThDMjUuODYgOC43NSAyNi4xOCA5LjQzIDI2LjI3IDEwLjIyQzI2LjMgMTEuMDkgMjYuMyAxMS45NiAyNi4yNyAxMi44M0MyNS42NCAxMS45NyAyNC44IDExLjQ1IDIzLjczIDExLjI4QzIzLjEyIDExLjIzIDIyLjUyIDExLjIgMjEuOTEgMTEuMThDMjIuMTcgMTAuODcgMjIuMzkgMTAuNTIgMjIuNTUgMTAuMTVDMjMuODYgMTAuMTcgMjQuNDkgOS41MyAyNC40MiA4LjJDMjQuNjggOC4yMiAyNC45MiA4LjIgMjUuMTYgOC4xNVY4LjE2Wk01LjcgMTEuMjJDNi4xMSAxMS42MiA2LjYxIDExLjg3IDcuMTggMTEuOThMMjMuMjQgMTIuMDNDMjQuNjYgMTIuMTYgMjUuNjIgMTIuOSAyNi4xMiAxNC4yMkMyNi4xOSAxNC40NiAyNi4yNCAxNC43MSAyNi4yNyAxNC45NkMyNi4zIDE3LjgyIDI2LjMgMjAuNjcgMjYuMjcgMjMuNTNDMjYuMDYgMjQuOTcgMjUuMjcgMjUuOTEgMjMuODggMjYuMzZDMjMuNjQgMjYuNDEgMjMuMzkgMjYuNDQgMjMuMTQgMjYuNDZDMjEuODggMjYuNDggMjAuNjEgMjYuNDkgMTkuMzUgMjYuNDhDMTkuMzUgMjUuMTUgMTkuMzUgMjMuODIgMTkuMzcgMjIuNDlMMjAuOTIgMjAuOTRDMjIuMzQgMjAuOSAyMy4wMSAyMC4xNiAyMi45MSAxOC43NUMyMi42NyAxNy44NyAyMi4xIDE3LjQxIDIxLjE5IDE3LjM3QzE5Ljk5IDE3LjQ5IDE5LjM4IDE4LjE3IDE5LjM3IDE5LjM5TDE3LjQ1IDIxLjMxQzE3LjM3IDIxLjQyIDE3LjMxIDIxLjUzIDE3LjI1IDIxLjY1QzE3LjE4IDIzLjI2IDE3LjE1IDI0Ljg3IDE3LjE4IDI2LjQ4SDE2Ljc0QzE2Ljc0IDI0LjIgMTYuNzQgMjEuOTIgMTYuNzIgMTkuNjNDMTYuNjggMTkuNTEgMTYuNjMgMTkuMzkgMTYuNTcgMTkuMjlMMTUuNDQgMTguMTZDMTUuNDQgMTYuOTMgMTQuODMgMTYuMjQgMTMuNjIgMTYuMDlDMTIuMzMgMTYuMjYgMTEuNzUgMTcgMTEuOSAxOC4zMUMxMi4yMSAxOS4yNCAxMi44NiAxOS42OSAxMy44NSAxOS42NkwxNC41NiAyMC4zN0MxNC41NiAyMC42NyAxNC42IDIwLjk3IDE0LjY2IDIxLjI2QzE0LjkxIDIxLjQ3IDE1LjE0IDIxLjQ1IDE1LjM1IDIxLjIxQzE1LjM4IDIwLjgyIDE1LjM4IDIwLjQyIDE1LjM1IDIwLjAzQzE1LjE1IDE5Ljc4IDE0LjkyIDE5LjU0IDE0LjY5IDE5LjMyQzE0Ljg0IDE5LjIyIDE0Ljk4IDE5LjEgMTUuMDggMTguOTVDMTUuMzggMTkuMjIgMTUuNjYgMTkuNSAxNS45NCAxOS43OUMxNS45NiAyMi4wMiAxNS45NyAyNC4yNiAxNS45NiAyNi40OUgxNS4zN0MxNS4zNyAyNS4xMSAxNS4zNyAyMy43MyAxNS4zNSAyMi4zNUMxNS4yIDIyLjEgMTUgMjIuMDQgMTQuNzMgMjIuMThDMTQuNjggMjIuMjUgMTQuNjQgMjIuMzIgMTQuNjEgMjIuNEMxNC41OSAyMy43NiAxNC41OCAyNS4xMyAxNC41OSAyNi40OUgxNC4xNUMxNC4xNSAyNS41IDE0LjE1IDI0LjUyIDE0LjEzIDIzLjUzQzE0LjExIDIzLjQ0IDE0LjA3IDIzLjM2IDE0LjAzIDIzLjI4QzEzLjM2IDIyLjU2IDEyLjY3IDIxLjg1IDExLjk2IDIxLjE2QzExLjkgMTkuNjggMTEuMTQgMTkuMDMgOS42NyAxOS4yMUM4LjY1IDE5LjYyIDguMjUgMjAuMzcgOC40NiAyMS40NUM4LjggMjIuMzMgOS40NSAyMi43NSAxMC40MSAyMi43MUwxMS45NiAyNC4yNkMxMS45OCAyNSAxMS45OSAyNS43NCAxMS45OCAyNi40OEMxMC40MiAyNi41IDguODYgMjYuNDggNy4zIDI2LjQxQzYuNCAyNi4xNyA1Ljg4IDI1LjU4IDUuNzUgMjQuNjZDNS43MyAyMC4xOCA1LjcyIDE1LjcgNS43MyAxMS4yMUw1LjcgMTEuMjJaTTEzLjQ5IDE2Ljg4QzE0LjMzIDE2Ljk0IDE0LjY4IDE3LjM4IDE0LjU1IDE4LjIxQzE0LjIzIDE4LjgzIDEzLjc1IDE5IDEzLjEgMTguNzNDMTIuNjQgMTguMzYgMTIuNTQgMTcuOTEgMTIuNzggMTcuMzhDMTIuOTYgMTcuMTIgMTMuMiAxNi45NiAxMy40OSAxNi44OVYxNi44OFpNMjAuOTIgMTguMTZDMjEuODEgMTguMTMgMjIuMjEgMTguNTYgMjIuMTMgMTkuNDRDMjEuOCAyMC4xMSAyMS4zIDIwLjI5IDIwLjYzIDE5Ljk2QzIwLjA5IDE5LjQ3IDIwLjA1IDE4Ljk2IDIwLjUzIDE4LjQxQzIwLjY1IDE4LjMgMjAuNzggMTguMjIgMjAuOTIgMTguMTZaTTkuOTQgMTkuOTRDMTAuNzggMTkuOTQgMTEuMTYgMjAuMzQgMTEuMSAyMS4xN0MxMC44MiAyMS44NSAxMC4zNCAyMi4wNiA5LjY1IDIxLjc5QzkuMDIgMjEuMjUgOSAyMC43IDkuNiAyMC4xMkw5Ljk0IDE5Ljk1VjE5Ljk0Wk0xOS42OSAyMC4xOEMxOS44NSAyMC4zMSAxOS45OSAyMC40NSAyMC4xMyAyMC42QzE5LjYgMjEuMTIgMTkuMDggMjEuNjUgMTguNTggMjIuMkMxOC41NiAyMy42MyAxOC41NSAyNS4wNiAxOC41NiAyNi40OEgxNy45N0MxNy45NyAyNC45NyAxNy45NyAyMy40NiAxNy45OSAyMS45NUMxOC41NSAyMS4zNSAxOS4xMSAyMC43NiAxOS42OSAyMC4xOFpNMTEuNTYgMjJDMTIuMTggMjIuNTMgMTIuNzcgMjMuMTEgMTMuMzEgMjMuNzJDMTMuMzMgMjQuNjQgMTMuMzQgMjUuNTYgMTMuMzMgMjYuNDhIMTIuNzRDMTIuNzQgMjUuNjMgMTIuNzQgMjQuNzcgMTIuNzIgMjMuOTJMMTEuMjQgMjIuNDRDMTEuMjQgMjIuNDQgMTEuMjEgMjIuMzcgMTEuMjQgMjIuMzRDMTEuMzYgMjIuMjMgMTEuNDYgMjIuMTIgMTEuNTYgMjJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4=' as Wallet['icon'],\n name: 'Impersonated Connector',\n version: '1.0.0' as Wallet['version'],\n };\n}\n\nexport function registerImpersonated() {\n registerWallet({ ...impersonatedConnector() });\n}\n","import {\n createDefaultAuthorizationCache,\n createDefaultChainSelector,\n createDefaultWalletNotFoundHandler,\n registerMwa,\n} from '@solana-mobile/wallet-standard-mobile';\nimport { SolanaRPCUrls } from '@tuwaio/orbit-solana';\nimport { ConnectorsInitProps } from '@tuwaio/satellite-core';\n\n/**\n * Combined props for initializing Solana mobile connectors\n */\ntype InitializeSolanaMobileConnectorsProps = ConnectorsInitProps & SolanaRPCUrls;\n\n/**\n * Initializes Solana Mobile Wallet Adapter (MWA) for mobile wallet connections\n *\n * @remarks\n * This function sets up the Solana Mobile Wallet Adapter with appropriate configuration\n * for secure mobile wallet connections. It includes security checks and chain validation.\n * Only works in secure contexts (HTTPS) and requires at least one valid chain configuration.\n *\n * @param props - Combined initialization properties\n * @param props.rpcUrls - RPC endpoints for different Solana networks\n * @param props.appName - Application name to display in wallet\n * @param props.appUrl - Application URL\n * @param props.appLogoUrl - Application logo URL\n *\n * @example\n * ```typescript\n * initializeSolanaMobileConnectors({\n * rpcUrls: {\n * mainnet: 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com'\n * },\n * appName: 'My Solana App',\n * appUrl: 'https://myapp.com',\n * appLogoUrl: 'https://myapp.com/logo.png'\n * });\n * ```\n *\n * @throws {Warning} If not in secure context (non-HTTPS)\n * @throws {Warning} If no chains are configured\n */\nexport function initializeSolanaMobileConnectors({ rpcUrls, ...props }: InitializeSolanaMobileConnectorsProps): void {\n // Only run in browser environment\n if (typeof window === 'undefined') {\n return;\n }\n // Ensure secure context (HTTPS)\n if (!window.isSecureContext) {\n console.warn('Solana Mobile Connectors not loaded: https connection required');\n return;\n }\n\n // Generate chain identifiers\n const chains = Object.keys(rpcUrls).map((key) => `solana:${key}` as `solana:${string}`);\n\n // Validate chain configuration\n if (chains.length === 0) {\n console.warn('Solana Mobile Connectors not loaded: no chains provided');\n return;\n }\n\n // Register Mobile Wallet Adapter\n registerMwa({\n appIdentity: {\n uri: props?.appUrl,\n icon: props?.appLogoUrl,\n name: props?.appName,\n },\n authorizationCache: createDefaultAuthorizationCache(),\n chains,\n chainSelector: createDefaultChainSelector(),\n onWalletNotFound: createDefaultWalletNotFoundHandler(),\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/connectionUtils.ts","../src/adapters/solanaAdapter.ts","../src/connectors/impersonatedConnector.ts","../src/connectors/initializeSolanaMobileConnectors.ts"],"names":["connect","uiWallet","input","connectFeature","getWalletFeature","StandardConnect","accounts","getAvailableWallets","w","a","account","getOrCreateUiWalletAccountForStandardWalletAccount","getWalletForHandle","disconnect","StandardDisconnect","satelliteSolanaAdapter","rpcUrls","OrbitAdapter","walletType","chainId","connector","getWalletTypeFromConnectorName","formatWalletName","connectedAccount","cluster","getCluster","getRpcUrlForCluster","e","activeWallet","connectedWallets","wallet","connectors","currentChainId","updateActiveWallet","address","balance","createSolanaRPC","adr","lamportsToSol","url","getSolanaExplorerLink","getSolanaAddressName","name","getSolanaAddressAvatar","impersonatedConnector","impersonatedHelpers","acc","featureKey","registerImpersonated","registerWallet","initializeSolanaMobileConnectors","props","chains","key","registerMwa","createDefaultAuthorizationCache","createDefaultChainSelector","createDefaultWalletNotFoundHandler"],"mappings":"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","file":"index.js","sourcesContent":["import { getAvailableWallets } from '@tuwaio/orbit-solana';\nimport type {\n StandardConnectFeature,\n StandardConnectMethod,\n StandardDisconnectFeature,\n} from '@wallet-standard/features';\nimport { StandardConnect, StandardDisconnect } from '@wallet-standard/features';\nimport { getWalletFeature, type UiWallet, UiWalletAccount } from '@wallet-standard/ui';\nimport {\n getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as getOrCreateUiWalletAccountForStandardWalletAccount,\n getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as getWalletForHandle,\n} from '@wallet-standard/ui-registry';\n\n/**\n * Establishes connection with a wallet using Wallet Standard\n *\n * @remarks\n * Connects to a wallet that implements the Wallet Standard interface.\n * Uses the StandardConnect feature to establish connection and retrieve accounts.\n * Converts standard wallet accounts to UI wallet accounts.\n *\n * @param uiWallet - Wallet instance implementing the UI Wallet interface\n * @param input - Optional connection parameters (excluding silent flag)\n * @returns Promise resolving to array of connected wallet accounts\n *\n * @throws {Error} If wallet doesn't support StandardConnect feature\n * @throws {Error} If connection attempt fails\n *\n * @example\n * ```typescript\n * const accounts = await connect(wallet, {\n * // Optional connection parameters\n * });\n * const firstAccount = accounts[0];\n * console.log('Connected account:', firstAccount.address);\n * ```\n */\nexport async function connect(\n uiWallet: UiWallet,\n input?: Omit<NonNullable<Parameters<StandardConnectMethod>[0]>, 'silent'>,\n): Promise<{ uiWallet: UiWallet; accounts: UiWalletAccount[] }> {\n // Get the connect feature from the wallet\n const connectFeature = getWalletFeature(uiWallet, StandardConnect) as StandardConnectFeature[typeof StandardConnect];\n // Initiate connection and get accounts\n const { accounts } = await connectFeature.connect(input);\n const wallets = getAvailableWallets();\n // Convert accounts to UI wallet accounts\n return {\n uiWallet: wallets.filter((w) =>\n w.accounts.find((a) => a.address.toLowerCase() === accounts[0].address.toLowerCase()),\n )[0],\n accounts: accounts.map((account) =>\n getOrCreateUiWalletAccountForStandardWalletAccount(getWalletForHandle(uiWallet), account),\n ),\n };\n}\n\n/**\n * Disconnects from a connected wallet\n *\n * @remarks\n * Safely disconnects from a wallet if it supports the StandardDisconnect feature.\n * If the wallet doesn't support disconnection, the operation is silently ignored.\n *\n * @param uiWallet - Wallet instance implementing the UI Wallet interface\n * @returns Promise that resolves when disconnection is complete\n *\n * @example\n * ```typescript\n * await disconnect(wallet);\n * console.log('Wallet disconnected');\n * ```\n */\nexport async function disconnect(uiWallet: UiWallet): Promise<void> {\n // Get the disconnect feature if available\n const disconnectFeature = getWalletFeature(uiWallet, StandardDisconnect) as\n | StandardDisconnectFeature[typeof StandardDisconnect]\n | undefined;\n\n await disconnectFeature?.disconnect();\n}\n","import { getWalletTypeFromConnectorName, OrbitAdapter } from '@tuwaio/orbit-core';\nimport {\n createSolanaRPC,\n getAvailableWallets,\n getCluster,\n getRpcUrlForCluster,\n getSolanaAddressAvatar,\n getSolanaAddressName,\n getSolanaExplorerLink,\n SolanaRPCUrls,\n} from '@tuwaio/orbit-solana';\nimport { formatWalletName, SatelliteAdapter } from '@tuwaio/satellite-core';\nimport { UiWallet } from '@wallet-standard/ui';\nimport { address as adr, lamportsToSol, SolanaClusterMoniker } from 'gill';\n\nimport { ConnectorSolana, SolanaWallet } from '../types';\nimport { connect, disconnect } from '../utils/connectionUtils';\n\n/**\n * Creates a Solana blockchain adapter for the Satellite Connect system\n *\n * @remarks\n * This adapter implements the SatelliteAdapter interface for Solana blockchain,\n * providing wallet connection, network switching, and name resolution capabilities.\n * It uses the Wallet Standard for consistent wallet interactions.\n *\n * @param rpcUrls - Configuration object containing RPC endpoints for different Solana networks\n * @returns SatelliteAdapter implementation for Solana\n *\n * @example\n * ```typescript\n * const solanaAdapter = satelliteSolanaAdapter({\n * rpcUrls: {\n * mainnet: 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com',\n * testnet: 'https://api.testnet.solana.com'\n * }\n * });\n * ```\n */\nexport function satelliteSolanaAdapter({ rpcUrls }: SolanaRPCUrls): SatelliteAdapter<ConnectorSolana, SolanaWallet> {\n return {\n key: OrbitAdapter.SOLANA,\n\n async connect({ walletType, chainId }) {\n const connectors = getAvailableWallets();\n const connector = connectors.find(\n (connector) =>\n getWalletTypeFromConnectorName(OrbitAdapter.SOLANA, formatWalletName(connector.name)) === walletType,\n );\n if (!connector) throw new Error('Cannot find connector with this wallet type');\n\n try {\n const { uiWallet, accounts: connectedAccount } = await connect(connector as UiWallet);\n const cluster = getCluster({ cluster: chainId as string });\n\n return {\n walletType,\n address: connectedAccount[0].address,\n chainId: cluster,\n rpcURL: getRpcUrlForCluster({\n cluster: cluster as SolanaClusterMoniker,\n rpcUrls,\n }),\n isConnected: true,\n isContractAddress: false,\n walletIcon: uiWallet?.icon?.trim(),\n connectedAccount: connectedAccount[0],\n connectedWallet: uiWallet,\n };\n } catch (e) {\n throw new Error(e instanceof Error ? e.message : String(e));\n }\n },\n\n async disconnect(activeWallet) {\n if (activeWallet && (activeWallet as SolanaWallet)?.connectedWallet) {\n await disconnect((activeWallet as SolanaWallet).connectedWallet as UiWallet);\n } else {\n const wallets = getAvailableWallets();\n const connectedWallets = wallets.filter((wallet) => wallet.accounts.length > 0);\n await Promise.allSettled(\n connectedWallets.map(async (w) => {\n try {\n await disconnect(w);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n /* empty */\n }\n }),\n );\n }\n },\n\n getConnectors() {\n const connectors = getAvailableWallets();\n return {\n adapter: OrbitAdapter.SOLANA,\n connectors: connectors as ConnectorSolana[],\n };\n },\n\n async checkAndSwitchNetwork(chainId, currentChainId, updateActiveWallet) {\n if (currentChainId !== chainId && updateActiveWallet) {\n const cluster = getCluster({ cluster: chainId as string });\n updateActiveWallet({\n chainId: cluster,\n rpcURL: getRpcUrlForCluster({\n cluster: cluster as SolanaClusterMoniker,\n rpcUrls,\n }),\n });\n }\n },\n\n getBalance: async (address, chainId) => {\n const rpc = createSolanaRPC({ rpcUrlOrMoniker: getCluster({ cluster: chainId as string }), rpcUrls });\n const balance = await rpc.getBalance(adr(address)).send();\n return {\n value: lamportsToSol(balance.value),\n symbol: 'SOL',\n };\n },\n\n getExplorerUrl(url, chainId) {\n return getSolanaExplorerLink(url, chainId);\n },\n async getName(address) {\n return getSolanaAddressName(address);\n },\n async getAvatar(name) {\n return getSolanaAddressAvatar(name);\n },\n };\n}\n","import { impersonatedHelpers } from '@tuwaio/satellite-core';\nimport { registerWallet, Wallet, WalletAccount } from '@wallet-standard/core';\n\nexport function impersonatedConnector(): Wallet {\n return {\n accounts: [\n {\n chains: ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as WalletAccount['chains'],\n features: [\n 'solana:signAndSendTransaction',\n 'solana:signTransaction',\n 'solana:signMessage',\n 'solana:signIn',\n ] as WalletAccount['features'],\n address: impersonatedHelpers.getImpersonated() ?? '',\n // TODO: need fix\n publicKey: new Uint8Array(\n Object.values({\n '0': 145,\n '1': 169,\n '2': 59,\n '3': 126,\n '4': 25,\n '5': 176,\n '6': 207,\n '7': 212,\n '8': 193,\n '9': 78,\n '10': 109,\n '11': 111,\n '12': 190,\n '13': 162,\n '14': 186,\n '15': 19,\n '16': 28,\n '17': 207,\n '18': 193,\n '19': 33,\n '20': 95,\n '21': 123,\n '22': 148,\n '23': 163,\n '24': 5,\n '25': 73,\n '26': 234,\n '27': 15,\n '28': 152,\n '29': 10,\n '30': 90,\n '31': 80,\n }),\n ) as WalletAccount['publicKey'],\n },\n ],\n features: [\n 'standard:connect',\n 'standard:disconnect',\n 'solana:signAndSendTransaction',\n 'solana:signTransaction',\n 'solana:signMessage',\n ].reduce(\n (acc, featureKey) => {\n acc[featureKey] = {};\n return acc;\n },\n {} as Record<string, unknown>,\n ),\n chains: ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as Wallet['chains'],\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2IDBDMjQuODQgMCAzMiA3LjE2IDMyIDE2QzMyIDI0Ljg0IDI0Ljg0IDMyIDE2IDMyQzcuMTYgMzIgMCAyNC44NCAwIDE2QzAgNy4xNiA3LjE2IDAgMTYgMFoiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41NCAyLjAxSDE4LjA3QzE4LjU3IDIuMSAxOS4wNiAyLjI0IDE5LjU1IDIuNDNDMTkuNzYgMi42OCAxOS43NCAyLjkxIDE5LjUgMy4xMkMxOS4zNyAzLjE1IDE5LjI0IDMuMTUgMTkuMTEgMy4xMkMxNy4yNSAyLjQ3IDE1LjU2IDIuNzcgMTQuMDQgNC4wMUMxNi40MyA0LjcxIDE3Ljg4IDYuMjggMTguNCA4LjcxQzE4LjUyIDkuNTYgMTguNDggMTAuMzkgMTguMjggMTEuMjJDMTkuMTUgMTEuMjIgMjAuMDIgMTEuMjIgMjAuODkgMTEuMkMyMS4yOCAxMC44IDIxLjU5IDEwLjM1IDIxLjgzIDkuODVDMjEuMzggOS40IDIxLjE4IDguODYgMjEuMjQgOC4yMkMyMC4wOSA4LjMgMTkuNDUgNy43OCAxOS4zMiA2LjY0QzE5LjQ2IDUuNTIgMjAuMSA0Ljk3IDIxLjI0IDUuMDFDMjEuMjYgNC44MyAyMS4yMiA0LjY2IDIxLjEyIDQuNTJMMjAuMjMgMy42M0MyMC4yMSAzLjE4IDIwLjQyIDMuMDMgMjAuODUgMy4xNkMyMS4wOSAzLjM1IDIxLjMxIDMuNTUgMjEuNTEgMy43OEMyMi4yMiAyLjk5IDIzLjAxIDIuODkgMjMuOSAzLjQ2QzI0LjM0IDMuODggMjQuNTIgNC40IDI0LjQ0IDUuMDFDMjUuOTMgNS4wMyAyNi41NSA1Ljc3IDI2LjI5IDcuMjNDMjYuMjEgNy40IDI2LjEyIDcuNTcgMjYuMDIgNy43MkMyNi41NSA4LjMxIDI2Ljg5IDkgMjcuMDMgOS43OUMyNy4xMSAxNC4zOSAyNy4xMyAxOC45OCAyNy4wOCAyMy41OEMyNi44OSAyNS4xNiAyNi4wOCAyNi4yOSAyNC42NCAyNi45NUMyNC4zNSAyNy4wNSAyNC4wNSAyNy4xNSAyMy43NSAyNy4yMkg3LjJDNS44OSAyNi44OSA1LjE1IDI2LjA1IDQuOTYgMjQuNzFDNC45MyAxOS40NyA0LjkzIDE0LjI0IDQuOTYgOUM1LjI2IDcuMzggNi4yNCA2LjU0IDcuODkgNi40NkM5LjE1IDQuNjkgMTAuODcgMy44MiAxMy4wNiAzLjg1QzE0LjAyIDIuODQgMTUuMTkgMi4yMyAxNi41NiAyTDE2LjU0IDIuMDFaTTIyLjY1IDMuODhDMjMuMDQgMy44NSAyMy4zNSA0IDIzLjU2IDQuMzJDMjMuNjIgNC43MSAyMy42NSA1LjExIDIzLjY2IDUuNUMyMy42OCA1LjYyIDIzLjczIDUuNzEgMjMuODMgNS43N0MyNC4yNCA1Ljc3IDI0LjY1IDUuODEgMjUuMDYgNS44N0MyNS41NSA2LjEzIDI1LjY5IDYuNTIgMjUuNDggNy4wM0MyNS40MSA3LjE3IDI1LjMgNy4yOCAyNS4xNiA3LjM1QzI0Ljc3IDcuNDEgMjQuMzcgNy40NCAyMy45OCA3LjQ1QzIzLjg2IDcuNDcgMjMuNzcgNy41MiAyMy43MSA3LjYyTDIzLjU2IDguOTVDMjMuMjQgOS40MSAyMi44NCA5LjUgMjIuMzUgOS4yMkMyMi4yMiA5LjEyIDIyLjEzIDkgMjIuMDggOC44NUMyMi4wMiA4LjQ0IDIxLjk5IDguMDMgMjEuOTggNy42MkMyMS45MiA3LjUyIDIxLjgyIDcuNDYgMjEuNzEgNy40NUwyMC42MyA3LjRDMjAuMTcgNy4xNiAyMC4wMSA2Ljc5IDIwLjE2IDYuMjlDMjAuMyA2LjAyIDIwLjUyIDUuODYgMjAuODIgNS44MkwyMS44MSA1Ljc3QzIxLjgxIDUuNzcgMjEuOSA1LjczIDIxLjkzIDUuN0MyMS45OCA1LjI4IDIyLjAzIDQuODUgMjIuMDggNC40MkMyMi4yIDQuMTYgMjIuMzkgMy45OCAyMi42NSAzLjg4Wk0xMi4xNiA0LjY3QzE0LjU3IDQuNTggMTYuMjggNS42MSAxNy4zMSA3Ljc3QzE3Ljc1IDguODkgMTcuNzkgMTAuMDIgMTcuNDMgMTEuMTdDMTYuNTkgMTEuMjMgMTUuNzYgMTEuMjQgMTQuOTIgMTEuMTlDMTUuNDggMTAuNTEgMTUuNDQgOS44NyAxNC44MiA5LjI3QzE0LjU2IDkuMTQgMTQuMjggOS4wOCAxMy45OCA5LjFDMTQgOC4xNSAxMy45OCA3LjE5IDEzLjkxIDYuMjRDMTMuNyA1LjgzIDEzLjM2IDUuNjYgMTIuOSA1LjcyQzEyLjczIDUuNzUgMTIuNTkgNS44MSAxMi40NiA1LjkyQzExLjc0IDYuODQgMTEuMDMgNy43NyAxMC4zMiA4LjdDMTAuMDQgOS4xNSAxMC4wMyA5LjYxIDEwLjI3IDEwLjA4QzEwLjQyIDEwLjI4IDEwLjYxIDEwLjQyIDEwLjg0IDEwLjVDMTEuMTggMTAuNTIgMTEuNTMgMTAuNTMgMTEuODcgMTAuNTJWMTEuMjFDMTAuNTcgMTEuMjMgOS4yOCAxMS4yMSA3Ljk4IDExLjE2QzcuNCA5LjA2IDcuOSA3LjI4IDkuNTEgNS44MkMxMC4zIDUuMiAxMS4xOSA0LjgyIDEyLjE3IDQuNjZMMTIuMTYgNC42N1pNMTIuOTkgNi40OUMxMy4wNiA2LjQ5IDEzLjEyIDYuNTIgMTMuMTYgNi41OUwxMy4yMSA5LjY0QzEzLjI1IDkuNzMgMTMuMzEgOS44IDEzLjM4IDkuODZMMTQuMjcgOS45MUMxNC40OSA5Ljk5IDE0LjU3IDEwLjE1IDE0LjQ5IDEwLjM4QzE0LjMxIDEwLjY2IDE0LjEyIDEwLjkzIDEzLjkyIDExLjE5QzEzLjQ5IDExLjIxIDEzLjA3IDExLjIyIDEyLjY0IDExLjIxQzEyLjY0IDEwLjggMTIuNjQgMTAuMzkgMTIuNjIgOS45OEMxMi41OCA5LjkxIDEyLjUyIDkuODUgMTIuNDUgOS44MUwxMS4xNyA5Ljc2QzEwLjg3IDkuNjYgMTAuOCA5LjQ3IDEwLjk1IDkuMTlDMTEuNjUgOC4zIDEyLjM0IDcuNCAxMi45OSA2LjQ4VjYuNDlaTTcuMTggNy4zM0g3LjM4QzYuOSA4LjU2IDYuODEgOS44MiA3LjEzIDExLjFDNi41NCAxMC45NyA2LjEyIDEwLjYxIDUuODcgMTAuMDRDNS41MSA4Ljc1IDUuOTUgNy44NSA3LjE4IDcuMzNaTTI1LjE2IDguMTZDMjUuMjEgOC4xNiAyNS4yNiA4LjE2IDI1LjMxIDguMThDMjUuODYgOC43NSAyNi4xOCA5LjQzIDI2LjI3IDEwLjIyQzI2LjMgMTEuMDkgMjYuMyAxMS45NiAyNi4yNyAxMi44M0MyNS42NCAxMS45NyAyNC44IDExLjQ1IDIzLjczIDExLjI4QzIzLjEyIDExLjIzIDIyLjUyIDExLjIgMjEuOTEgMTEuMThDMjIuMTcgMTAuODcgMjIuMzkgMTAuNTIgMjIuNTUgMTAuMTVDMjMuODYgMTAuMTcgMjQuNDkgOS41MyAyNC40MiA4LjJDMjQuNjggOC4yMiAyNC45MiA4LjIgMjUuMTYgOC4xNVY4LjE2Wk01LjcgMTEuMjJDNi4xMSAxMS42MiA2LjYxIDExLjg3IDcuMTggMTEuOThMMjMuMjQgMTIuMDNDMjQuNjYgMTIuMTYgMjUuNjIgMTIuOSAyNi4xMiAxNC4yMkMyNi4xOSAxNC40NiAyNi4yNCAxNC43MSAyNi4yNyAxNC45NkMyNi4zIDE3LjgyIDI2LjMgMjAuNjcgMjYuMjcgMjMuNTNDMjYuMDYgMjQuOTcgMjUuMjcgMjUuOTEgMjMuODggMjYuMzZDMjMuNjQgMjYuNDEgMjMuMzkgMjYuNDQgMjMuMTQgMjYuNDZDMjEuODggMjYuNDggMjAuNjEgMjYuNDkgMTkuMzUgMjYuNDhDMTkuMzUgMjUuMTUgMTkuMzUgMjMuODIgMTkuMzcgMjIuNDlMMjAuOTIgMjAuOTRDMjIuMzQgMjAuOSAyMy4wMSAyMC4xNiAyMi45MSAxOC43NUMyMi42NyAxNy44NyAyMi4xIDE3LjQxIDIxLjE5IDE3LjM3QzE5Ljk5IDE3LjQ5IDE5LjM4IDE4LjE3IDE5LjM3IDE5LjM5TDE3LjQ1IDIxLjMxQzE3LjM3IDIxLjQyIDE3LjMxIDIxLjUzIDE3LjI1IDIxLjY1QzE3LjE4IDIzLjI2IDE3LjE1IDI0Ljg3IDE3LjE4IDI2LjQ4SDE2Ljc0QzE2Ljc0IDI0LjIgMTYuNzQgMjEuOTIgMTYuNzIgMTkuNjNDMTYuNjggMTkuNTEgMTYuNjMgMTkuMzkgMTYuNTcgMTkuMjlMMTUuNDQgMTguMTZDMTUuNDQgMTYuOTMgMTQuODMgMTYuMjQgMTMuNjIgMTYuMDlDMTIuMzMgMTYuMjYgMTEuNzUgMTcgMTEuOSAxOC4zMUMxMi4yMSAxOS4yNCAxMi44NiAxOS42OSAxMy44NSAxOS42NkwxNC41NiAyMC4zN0MxNC41NiAyMC42NyAxNC42IDIwLjk3IDE0LjY2IDIxLjI2QzE0LjkxIDIxLjQ3IDE1LjE0IDIxLjQ1IDE1LjM1IDIxLjIxQzE1LjM4IDIwLjgyIDE1LjM4IDIwLjQyIDE1LjM1IDIwLjAzQzE1LjE1IDE5Ljc4IDE0LjkyIDE5LjU0IDE0LjY5IDE5LjMyQzE0Ljg0IDE5LjIyIDE0Ljk4IDE5LjEgMTUuMDggMTguOTVDMTUuMzggMTkuMjIgMTUuNjYgMTkuNSAxNS45NCAxOS43OUMxNS45NiAyMi4wMiAxNS45NyAyNC4yNiAxNS45NiAyNi40OUgxNS4zN0MxNS4zNyAyNS4xMSAxNS4zNyAyMy43MyAxNS4zNSAyMi4zNUMxNS4yIDIyLjEgMTUgMjIuMDQgMTQuNzMgMjIuMThDMTQuNjggMjIuMjUgMTQuNjQgMjIuMzIgMTQuNjEgMjIuNEMxNC41OSAyMy43NiAxNC41OCAyNS4xMyAxNC41OSAyNi40OUgxNC4xNUMxNC4xNSAyNS41IDE0LjE1IDI0LjUyIDE0LjEzIDIzLjUzQzE0LjExIDIzLjQ0IDE0LjA3IDIzLjM2IDE0LjAzIDIzLjI4QzEzLjM2IDIyLjU2IDEyLjY3IDIxLjg1IDExLjk2IDIxLjE2QzExLjkgMTkuNjggMTEuMTQgMTkuMDMgOS42NyAxOS4yMUM4LjY1IDE5LjYyIDguMjUgMjAuMzcgOC40NiAyMS40NUM4LjggMjIuMzMgOS40NSAyMi43NSAxMC40MSAyMi43MUwxMS45NiAyNC4yNkMxMS45OCAyNSAxMS45OSAyNS43NCAxMS45OCAyNi40OEMxMC40MiAyNi41IDguODYgMjYuNDggNy4zIDI2LjQxQzYuNCAyNi4xNyA1Ljg4IDI1LjU4IDUuNzUgMjQuNjZDNS43MyAyMC4xOCA1LjcyIDE1LjcgNS43MyAxMS4yMUw1LjcgMTEuMjJaTTEzLjQ5IDE2Ljg4QzE0LjMzIDE2Ljk0IDE0LjY4IDE3LjM4IDE0LjU1IDE4LjIxQzE0LjIzIDE4LjgzIDEzLjc1IDE5IDEzLjEgMTguNzNDMTIuNjQgMTguMzYgMTIuNTQgMTcuOTEgMTIuNzggMTcuMzhDMTIuOTYgMTcuMTIgMTMuMiAxNi45NiAxMy40OSAxNi44OVYxNi44OFpNMjAuOTIgMTguMTZDMjEuODEgMTguMTMgMjIuMjEgMTguNTYgMjIuMTMgMTkuNDRDMjEuOCAyMC4xMSAyMS4zIDIwLjI5IDIwLjYzIDE5Ljk2QzIwLjA5IDE5LjQ3IDIwLjA1IDE4Ljk2IDIwLjUzIDE4LjQxQzIwLjY1IDE4LjMgMjAuNzggMTguMjIgMjAuOTIgMTguMTZaTTkuOTQgMTkuOTRDMTAuNzggMTkuOTQgMTEuMTYgMjAuMzQgMTEuMSAyMS4xN0MxMC44MiAyMS44NSAxMC4zNCAyMi4wNiA5LjY1IDIxLjc5QzkuMDIgMjEuMjUgOSAyMC43IDkuNiAyMC4xMkw5Ljk0IDE5Ljk1VjE5Ljk0Wk0xOS42OSAyMC4xOEMxOS44NSAyMC4zMSAxOS45OSAyMC40NSAyMC4xMyAyMC42QzE5LjYgMjEuMTIgMTkuMDggMjEuNjUgMTguNTggMjIuMkMxOC41NiAyMy42MyAxOC41NSAyNS4wNiAxOC41NiAyNi40OEgxNy45N0MxNy45NyAyNC45NyAxNy45NyAyMy40NiAxNy45OSAyMS45NUMxOC41NSAyMS4zNSAxOS4xMSAyMC43NiAxOS42OSAyMC4xOFpNMTEuNTYgMjJDMTIuMTggMjIuNTMgMTIuNzcgMjMuMTEgMTMuMzEgMjMuNzJDMTMuMzMgMjQuNjQgMTMuMzQgMjUuNTYgMTMuMzMgMjYuNDhIMTIuNzRDMTIuNzQgMjUuNjMgMTIuNzQgMjQuNzcgMTIuNzIgMjMuOTJMMTEuMjQgMjIuNDRDMTEuMjQgMjIuNDQgMTEuMjEgMjIuMzcgMTEuMjQgMjIuMzRDMTEuMzYgMjIuMjMgMTEuNDYgMjIuMTIgMTEuNTYgMjJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4=' as Wallet['icon'],\n name: 'Impersonated Connector',\n version: '1.0.0' as Wallet['version'],\n };\n}\n\nexport function registerImpersonated() {\n registerWallet({ ...impersonatedConnector() });\n}\n","import {\n createDefaultAuthorizationCache,\n createDefaultChainSelector,\n createDefaultWalletNotFoundHandler,\n registerMwa,\n} from '@solana-mobile/wallet-standard-mobile';\nimport { SolanaRPCUrls } from '@tuwaio/orbit-solana';\nimport { ConnectorsInitProps } from '@tuwaio/satellite-core';\n\n/**\n * Combined props for initializing Solana mobile connectors\n */\ntype InitializeSolanaMobileConnectorsProps = ConnectorsInitProps & SolanaRPCUrls;\n\n/**\n * Initializes Solana Mobile Wallet Adapter (MWA) for mobile wallet connections\n *\n * @remarks\n * This function sets up the Solana Mobile Wallet Adapter with appropriate configuration\n * for secure mobile wallet connections. It includes security checks and chain validation.\n * Only works in secure contexts (HTTPS) and requires at least one valid chain configuration.\n *\n * @param props - Combined initialization properties\n * @param props.rpcUrls - RPC endpoints for different Solana networks\n * @param props.appName - Application name to display in wallet\n * @param props.appUrl - Application URL\n * @param props.appLogoUrl - Application logo URL\n *\n * @example\n * ```typescript\n * initializeSolanaMobileConnectors({\n * rpcUrls: {\n * mainnet: 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com'\n * },\n * appName: 'My Solana App',\n * appUrl: 'https://myapp.com',\n * appLogoUrl: 'https://myapp.com/logo.png'\n * });\n * ```\n *\n * @throws {Warning} If not in secure context (non-HTTPS)\n * @throws {Warning} If no chains are configured\n */\nexport function initializeSolanaMobileConnectors({ rpcUrls, ...props }: InitializeSolanaMobileConnectorsProps): void {\n // Only run in browser environment\n if (typeof window === 'undefined') {\n return;\n }\n // Ensure secure context (HTTPS)\n if (!window.isSecureContext) {\n console.warn('Solana Mobile Connectors not loaded: https connection required');\n return;\n }\n\n // Generate chain identifiers\n const chains = Object.keys(rpcUrls).map((key) => `solana:${key}` as `solana:${string}`);\n\n // Validate chain configuration\n if (chains.length === 0) {\n console.warn('Solana Mobile Connectors not loaded: no chains provided');\n return;\n }\n\n // Register Mobile Wallet Adapter\n registerMwa({\n appIdentity: {\n uri: props?.appUrl,\n icon: props?.appLogoUrl,\n name: props?.appName,\n },\n authorizationCache: createDefaultAuthorizationCache(),\n chains,\n chainSelector: createDefaultChainSelector(),\n onWalletNotFound: createDefaultWalletNotFoundHandler(),\n });\n}\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {OrbitAdapter,getWalletTypeFromConnectorName}from'@tuwaio/orbit-core';import {getAvailableWallets,getSolanaAddressAvatar,getSolanaAddressName,getSolanaExplorerLink,createSolanaRPC,getCluster,getRpcUrlForCluster}from'@tuwaio/orbit-solana';import {formatWalletName,impersonatedHelpers}from'@tuwaio/satellite-core';import {address,lamportsToSol}from'gill';import {StandardConnect,StandardDisconnect}from'@wallet-standard/features';import {getWalletFeature}from'@wallet-standard/ui';import {getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED}from'@wallet-standard/ui-registry';import {registerWallet}from'@wallet-standard/core';import {registerMwa,createDefaultWalletNotFoundHandler,createDefaultChainSelector,createDefaultAuthorizationCache}from'@solana-mobile/wallet-standard-mobile';async function L(j,M){let I=getWalletFeature(j,StandardConnect),{accounts:D}=await I.connect(M);return {uiWallet:getAvailableWallets().filter(u=>u.accounts.find(N=>N.address.toLowerCase()===D[0].address.toLowerCase()))[0],accounts:D.map(u=>getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(j),u))}}async function e(j){let M=getWalletFeature(j,StandardDisconnect);j.name!=="Impersonated Connector"&&await M?.disconnect();}function H({rpcUrls:j}){return {key:OrbitAdapter.SOLANA,async connect({walletType:M,chainId:I}){let g=getAvailableWallets().find(u=>getWalletTypeFromConnectorName(OrbitAdapter.SOLANA,formatWalletName(u.name))===M);if(!g)throw new Error("Cannot find connector with this wallet type");try{let{uiWallet:u,accounts:N}=await L(g),y=getCluster({cluster:I});return {walletType:M,address:N[0].address,chainId:y,rpcURL:getRpcUrlForCluster({cluster:y,rpcUrls:j}),isConnected:!0,isContractAddress:!1,walletIcon:u?.icon?.trim(),connectedAccount:N[0],connectedWallet:u}}catch(u){throw new Error(u instanceof Error?u.message:String(u))}},async disconnect(M){if(M&&M?.connectedWallet)await e(M.connectedWallet);else {let D=getAvailableWallets().filter(g=>g.accounts.length>0);await Promise.allSettled(D.map(async g=>{try{await e(g);}catch{}}));}},getConnectors(){let M=getAvailableWallets();return {adapter:OrbitAdapter.SOLANA,connectors:M}},async checkAndSwitchNetwork(M,I,D){if(I!==M&&D){let g=getCluster({cluster:M});D({chainId:g,rpcURL:getRpcUrlForCluster({cluster:g,rpcUrls:j})});}},getBalance:async(M,I)=>{let g=await createSolanaRPC({rpcUrlOrMoniker:getCluster({cluster:I}),rpcUrls:j}).getBalance(address(M)).send();return {value:lamportsToSol(g.value),symbol:"SOL"}},getExplorerUrl(M,I){return getSolanaExplorerLink(M,I)},async getName(M){return getSolanaAddressName(M)},async getAvatar(M){return getSolanaAddressAvatar(M)}}}function k(){return {accounts:[{chains:["solana:mainnet","solana:devnet","solana:testnet"],features:["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage","solana:signIn"],address:impersonatedHelpers.getImpersonated()??"",publicKey:new Uint8Array(Object.values({0:145,1:169,2:59,3:126,4:25,5:176,6:207,7:212,8:193,9:78,10:109,11:111,12:190,13:162,14:186,15:19,16:28,17:207,18:193,19:33,20:95,21:123,22:148,23:163,24:5,25:73,26:234,27:15,28:152,29:10,30:90,31:80}))}],features:["standard:connect","standard:disconnect","solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"].reduce((j,M)=>(j[M]={},j),{}),chains:["solana:mainnet","solana:devnet","solana:testnet"],icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2IDBDMjQuODQgMCAzMiA3LjE2IDMyIDE2QzMyIDI0Ljg0IDI0Ljg0IDMyIDE2IDMyQzcuMTYgMzIgMCAyNC44NCAwIDE2QzAgNy4xNiA3LjE2IDAgMTYgMFoiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41NCAyLjAxSDE4LjA3QzE4LjU3IDIuMSAxOS4wNiAyLjI0IDE5LjU1IDIuNDNDMTkuNzYgMi42OCAxOS43NCAyLjkxIDE5LjUgMy4xMkMxOS4zNyAzLjE1IDE5LjI0IDMuMTUgMTkuMTEgMy4xMkMxNy4yNSAyLjQ3IDE1LjU2IDIuNzcgMTQuMDQgNC4wMUMxNi40MyA0LjcxIDE3Ljg4IDYuMjggMTguNCA4LjcxQzE4LjUyIDkuNTYgMTguNDggMTAuMzkgMTguMjggMTEuMjJDMTkuMTUgMTEuMjIgMjAuMDIgMTEuMjIgMjAuODkgMTEuMkMyMS4yOCAxMC44IDIxLjU5IDEwLjM1IDIxLjgzIDkuODVDMjEuMzggOS40IDIxLjE4IDguODYgMjEuMjQgOC4yMkMyMC4wOSA4LjMgMTkuNDUgNy43OCAxOS4zMiA2LjY0QzE5LjQ2IDUuNTIgMjAuMSA0Ljk3IDIxLjI0IDUuMDFDMjEuMjYgNC44MyAyMS4yMiA0LjY2IDIxLjEyIDQuNTJMMjAuMjMgMy42M0MyMC4yMSAzLjE4IDIwLjQyIDMuMDMgMjAuODUgMy4xNkMyMS4wOSAzLjM1IDIxLjMxIDMuNTUgMjEuNTEgMy43OEMyMi4yMiAyLjk5IDIzLjAxIDIuODkgMjMuOSAzLjQ2QzI0LjM0IDMuODggMjQuNTIgNC40IDI0LjQ0IDUuMDFDMjUuOTMgNS4wMyAyNi41NSA1Ljc3IDI2LjI5IDcuMjNDMjYuMjEgNy40IDI2LjEyIDcuNTcgMjYuMDIgNy43MkMyNi41NSA4LjMxIDI2Ljg5IDkgMjcuMDMgOS43OUMyNy4xMSAxNC4zOSAyNy4xMyAxOC45OCAyNy4wOCAyMy41OEMyNi44OSAyNS4xNiAyNi4wOCAyNi4yOSAyNC42NCAyNi45NUMyNC4zNSAyNy4wNSAyNC4wNSAyNy4xNSAyMy43NSAyNy4yMkg3LjJDNS44OSAyNi44OSA1LjE1IDI2LjA1IDQuOTYgMjQuNzFDNC45MyAxOS40NyA0LjkzIDE0LjI0IDQuOTYgOUM1LjI2IDcuMzggNi4yNCA2LjU0IDcuODkgNi40NkM5LjE1IDQuNjkgMTAuODcgMy44MiAxMy4wNiAzLjg1QzE0LjAyIDIuODQgMTUuMTkgMi4yMyAxNi41NiAyTDE2LjU0IDIuMDFaTTIyLjY1IDMuODhDMjMuMDQgMy44NSAyMy4zNSA0IDIzLjU2IDQuMzJDMjMuNjIgNC43MSAyMy42NSA1LjExIDIzLjY2IDUuNUMyMy42OCA1LjYyIDIzLjczIDUuNzEgMjMuODMgNS43N0MyNC4yNCA1Ljc3IDI0LjY1IDUuODEgMjUuMDYgNS44N0MyNS41NSA2LjEzIDI1LjY5IDYuNTIgMjUuNDggNy4wM0MyNS40MSA3LjE3IDI1LjMgNy4yOCAyNS4xNiA3LjM1QzI0Ljc3IDcuNDEgMjQuMzcgNy40NCAyMy45OCA3LjQ1QzIzLjg2IDcuNDcgMjMuNzcgNy41MiAyMy43MSA3LjYyTDIzLjU2IDguOTVDMjMuMjQgOS40MSAyMi44NCA5LjUgMjIuMzUgOS4yMkMyMi4yMiA5LjEyIDIyLjEzIDkgMjIuMDggOC44NUMyMi4wMiA4LjQ0IDIxLjk5IDguMDMgMjEuOTggNy42MkMyMS45MiA3LjUyIDIxLjgyIDcuNDYgMjEuNzEgNy40NUwyMC42MyA3LjRDMjAuMTcgNy4xNiAyMC4wMSA2Ljc5IDIwLjE2IDYuMjlDMjAuMyA2LjAyIDIwLjUyIDUuODYgMjAuODIgNS44MkwyMS44MSA1Ljc3QzIxLjgxIDUuNzcgMjEuOSA1LjczIDIxLjkzIDUuN0MyMS45OCA1LjI4IDIyLjAzIDQuODUgMjIuMDggNC40MkMyMi4yIDQuMTYgMjIuMzkgMy45OCAyMi42NSAzLjg4Wk0xMi4xNiA0LjY3QzE0LjU3IDQuNTggMTYuMjggNS42MSAxNy4zMSA3Ljc3QzE3Ljc1IDguODkgMTcuNzkgMTAuMDIgMTcuNDMgMTEuMTdDMTYuNTkgMTEuMjMgMTUuNzYgMTEuMjQgMTQuOTIgMTEuMTlDMTUuNDggMTAuNTEgMTUuNDQgOS44NyAxNC44MiA5LjI3QzE0LjU2IDkuMTQgMTQuMjggOS4wOCAxMy45OCA5LjFDMTQgOC4xNSAxMy45OCA3LjE5IDEzLjkxIDYuMjRDMTMuNyA1LjgzIDEzLjM2IDUuNjYgMTIuOSA1LjcyQzEyLjczIDUuNzUgMTIuNTkgNS44MSAxMi40NiA1LjkyQzExLjc0IDYuODQgMTEuMDMgNy43NyAxMC4zMiA4LjdDMTAuMDQgOS4xNSAxMC4wMyA5LjYxIDEwLjI3IDEwLjA4QzEwLjQyIDEwLjI4IDEwLjYxIDEwLjQyIDEwLjg0IDEwLjVDMTEuMTggMTAuNTIgMTEuNTMgMTAuNTMgMTEuODcgMTAuNTJWMTEuMjFDMTAuNTcgMTEuMjMgOS4yOCAxMS4yMSA3Ljk4IDExLjE2QzcuNCA5LjA2IDcuOSA3LjI4IDkuNTEgNS44MkMxMC4zIDUuMiAxMS4xOSA0LjgyIDEyLjE3IDQuNjZMMTIuMTYgNC42N1pNMTIuOTkgNi40OUMxMy4wNiA2LjQ5IDEzLjEyIDYuNTIgMTMuMTYgNi41OUwxMy4yMSA5LjY0QzEzLjI1IDkuNzMgMTMuMzEgOS44IDEzLjM4IDkuODZMMTQuMjcgOS45MUMxNC40OSA5Ljk5IDE0LjU3IDEwLjE1IDE0LjQ5IDEwLjM4QzE0LjMxIDEwLjY2IDE0LjEyIDEwLjkzIDEzLjkyIDExLjE5QzEzLjQ5IDExLjIxIDEzLjA3IDExLjIyIDEyLjY0IDExLjIxQzEyLjY0IDEwLjggMTIuNjQgMTAuMzkgMTIuNjIgOS45OEMxMi41OCA5LjkxIDEyLjUyIDkuODUgMTIuNDUgOS44MUwxMS4xNyA5Ljc2QzEwLjg3IDkuNjYgMTAuOCA5LjQ3IDEwLjk1IDkuMTlDMTEuNjUgOC4zIDEyLjM0IDcuNCAxMi45OSA2LjQ4VjYuNDlaTTcuMTggNy4zM0g3LjM4QzYuOSA4LjU2IDYuODEgOS44MiA3LjEzIDExLjFDNi41NCAxMC45NyA2LjEyIDEwLjYxIDUuODcgMTAuMDRDNS41MSA4Ljc1IDUuOTUgNy44NSA3LjE4IDcuMzNaTTI1LjE2IDguMTZDMjUuMjEgOC4xNiAyNS4yNiA4LjE2IDI1LjMxIDguMThDMjUuODYgOC43NSAyNi4xOCA5LjQzIDI2LjI3IDEwLjIyQzI2LjMgMTEuMDkgMjYuMyAxMS45NiAyNi4yNyAxMi44M0MyNS42NCAxMS45NyAyNC44IDExLjQ1IDIzLjczIDExLjI4QzIzLjEyIDExLjIzIDIyLjUyIDExLjIgMjEuOTEgMTEuMThDMjIuMTcgMTAuODcgMjIuMzkgMTAuNTIgMjIuNTUgMTAuMTVDMjMuODYgMTAuMTcgMjQuNDkgOS41MyAyNC40MiA4LjJDMjQuNjggOC4yMiAyNC45MiA4LjIgMjUuMTYgOC4xNVY4LjE2Wk01LjcgMTEuMjJDNi4xMSAxMS42MiA2LjYxIDExLjg3IDcuMTggMTEuOThMMjMuMjQgMTIuMDNDMjQuNjYgMTIuMTYgMjUuNjIgMTIuOSAyNi4xMiAxNC4yMkMyNi4xOSAxNC40NiAyNi4yNCAxNC43MSAyNi4yNyAxNC45NkMyNi4zIDE3LjgyIDI2LjMgMjAuNjcgMjYuMjcgMjMuNTNDMjYuMDYgMjQuOTcgMjUuMjcgMjUuOTEgMjMuODggMjYuMzZDMjMuNjQgMjYuNDEgMjMuMzkgMjYuNDQgMjMuMTQgMjYuNDZDMjEuODggMjYuNDggMjAuNjEgMjYuNDkgMTkuMzUgMjYuNDhDMTkuMzUgMjUuMTUgMTkuMzUgMjMuODIgMTkuMzcgMjIuNDlMMjAuOTIgMjAuOTRDMjIuMzQgMjAuOSAyMy4wMSAyMC4xNiAyMi45MSAxOC43NUMyMi42NyAxNy44NyAyMi4xIDE3LjQxIDIxLjE5IDE3LjM3QzE5Ljk5IDE3LjQ5IDE5LjM4IDE4LjE3IDE5LjM3IDE5LjM5TDE3LjQ1IDIxLjMxQzE3LjM3IDIxLjQyIDE3LjMxIDIxLjUzIDE3LjI1IDIxLjY1QzE3LjE4IDIzLjI2IDE3LjE1IDI0Ljg3IDE3LjE4IDI2LjQ4SDE2Ljc0QzE2Ljc0IDI0LjIgMTYuNzQgMjEuOTIgMTYuNzIgMTkuNjNDMTYuNjggMTkuNTEgMTYuNjMgMTkuMzkgMTYuNTcgMTkuMjlMMTUuNDQgMTguMTZDMTUuNDQgMTYuOTMgMTQuODMgMTYuMjQgMTMuNjIgMTYuMDlDMTIuMzMgMTYuMjYgMTEuNzUgMTcgMTEuOSAxOC4zMUMxMi4yMSAxOS4yNCAxMi44NiAxOS42OSAxMy44NSAxOS42NkwxNC41NiAyMC4zN0MxNC41NiAyMC42NyAxNC42IDIwLjk3IDE0LjY2IDIxLjI2QzE0LjkxIDIxLjQ3IDE1LjE0IDIxLjQ1IDE1LjM1IDIxLjIxQzE1LjM4IDIwLjgyIDE1LjM4IDIwLjQyIDE1LjM1IDIwLjAzQzE1LjE1IDE5Ljc4IDE0LjkyIDE5LjU0IDE0LjY5IDE5LjMyQzE0Ljg0IDE5LjIyIDE0Ljk4IDE5LjEgMTUuMDggMTguOTVDMTUuMzggMTkuMjIgMTUuNjYgMTkuNSAxNS45NCAxOS43OUMxNS45NiAyMi4wMiAxNS45NyAyNC4yNiAxNS45NiAyNi40OUgxNS4zN0MxNS4zNyAyNS4xMSAxNS4zNyAyMy43MyAxNS4zNSAyMi4zNUMxNS4yIDIyLjEgMTUgMjIuMDQgMTQuNzMgMjIuMThDMTQuNjggMjIuMjUgMTQuNjQgMjIuMzIgMTQuNjEgMjIuNEMxNC41OSAyMy43NiAxNC41OCAyNS4xMyAxNC41OSAyNi40OUgxNC4xNUMxNC4xNSAyNS41IDE0LjE1IDI0LjUyIDE0LjEzIDIzLjUzQzE0LjExIDIzLjQ0IDE0LjA3IDIzLjM2IDE0LjAzIDIzLjI4QzEzLjM2IDIyLjU2IDEyLjY3IDIxLjg1IDExLjk2IDIxLjE2QzExLjkgMTkuNjggMTEuMTQgMTkuMDMgOS42NyAxOS4yMUM4LjY1IDE5LjYyIDguMjUgMjAuMzcgOC40NiAyMS40NUM4LjggMjIuMzMgOS40NSAyMi43NSAxMC40MSAyMi43MUwxMS45NiAyNC4yNkMxMS45OCAyNSAxMS45OSAyNS43NCAxMS45OCAyNi40OEMxMC40MiAyNi41IDguODYgMjYuNDggNy4zIDI2LjQxQzYuNCAyNi4xNyA1Ljg4IDI1LjU4IDUuNzUgMjQuNjZDNS43MyAyMC4xOCA1LjcyIDE1LjcgNS43MyAxMS4yMUw1LjcgMTEuMjJaTTEzLjQ5IDE2Ljg4QzE0LjMzIDE2Ljk0IDE0LjY4IDE3LjM4IDE0LjU1IDE4LjIxQzE0LjIzIDE4LjgzIDEzLjc1IDE5IDEzLjEgMTguNzNDMTIuNjQgMTguMzYgMTIuNTQgMTcuOTEgMTIuNzggMTcuMzhDMTIuOTYgMTcuMTIgMTMuMiAxNi45NiAxMy40OSAxNi44OVYxNi44OFpNMjAuOTIgMTguMTZDMjEuODEgMTguMTMgMjIuMjEgMTguNTYgMjIuMTMgMTkuNDRDMjEuOCAyMC4xMSAyMS4zIDIwLjI5IDIwLjYzIDE5Ljk2QzIwLjA5IDE5LjQ3IDIwLjA1IDE4Ljk2IDIwLjUzIDE4LjQxQzIwLjY1IDE4LjMgMjAuNzggMTguMjIgMjAuOTIgMTguMTZaTTkuOTQgMTkuOTRDMTAuNzggMTkuOTQgMTEuMTYgMjAuMzQgMTEuMSAyMS4xN0MxMC44MiAyMS44NSAxMC4zNCAyMi4wNiA5LjY1IDIxLjc5QzkuMDIgMjEuMjUgOSAyMC43IDkuNiAyMC4xMkw5Ljk0IDE5Ljk1VjE5Ljk0Wk0xOS42OSAyMC4xOEMxOS44NSAyMC4zMSAxOS45OSAyMC40NSAyMC4xMyAyMC42QzE5LjYgMjEuMTIgMTkuMDggMjEuNjUgMTguNTggMjIuMkMxOC41NiAyMy42MyAxOC41NSAyNS4wNiAxOC41NiAyNi40OEgxNy45N0MxNy45NyAyNC45NyAxNy45NyAyMy40NiAxNy45OSAyMS45NUMxOC41NSAyMS4zNSAxOS4xMSAyMC43NiAxOS42OSAyMC4xOFpNMTEuNTYgMjJDMTIuMTggMjIuNTMgMTIuNzcgMjMuMTEgMTMuMzEgMjMuNzJDMTMuMzMgMjQuNjQgMTMuMzQgMjUuNTYgMTMuMzMgMjYuNDhIMTIuNzRDMTIuNzQgMjUuNjMgMTIuNzQgMjQuNzcgMTIuNzIgMjMuOTJMMTEuMjQgMjIuNDRDMTEuMjQgMjIuNDQgMTEuMjEgMjIuMzcgMTEuMjQgMjIuMzRDMTEuMzYgMjIuMjMgMTEuNDYgMjIuMTIgMTEuNTYgMjJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4=",name:"Impersonated Connector",version:"1.0.0"}}function jM(){registerWallet({...k()});}function gM({rpcUrls:j,...M}){if(typeof window>"u")return;if(!window.isSecureContext){console.warn("Solana Mobile Connectors not loaded: https connection required");return}let I=Object.keys(j).map(D=>`solana:${D}`);if(I.length===0){console.warn("Solana Mobile Connectors not loaded: no chains provided");return}registerMwa({appIdentity:{uri:M?.appUrl,icon:M?.appLogoUrl,name:M?.appName},authorizationCache:createDefaultAuthorizationCache(),chains:I,chainSelector:createDefaultChainSelector(),onWalletNotFound:createDefaultWalletNotFoundHandler()});}export{L as connect,e as disconnect,k as impersonatedConnector,gM as initializeSolanaMobileConnectors,jM as registerImpersonated,H as satelliteSolanaAdapter};//# sourceMappingURL=index.mjs.map
|
|
1
|
+
import {OrbitAdapter,getWalletTypeFromConnectorName}from'@tuwaio/orbit-core';import {getAvailableWallets,getSolanaAddressAvatar,getSolanaAddressName,getSolanaExplorerLink,createSolanaRPC,getCluster,getRpcUrlForCluster}from'@tuwaio/orbit-solana';import {formatWalletName,impersonatedHelpers}from'@tuwaio/satellite-core';import {address,lamportsToSol}from'gill';import {StandardConnect,StandardDisconnect}from'@wallet-standard/features';import {getWalletFeature}from'@wallet-standard/ui';import {getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED}from'@wallet-standard/ui-registry';import {registerWallet}from'@wallet-standard/core';import {registerMwa,createDefaultWalletNotFoundHandler,createDefaultChainSelector,createDefaultAuthorizationCache}from'@solana-mobile/wallet-standard-mobile';async function L(j,M){let I=getWalletFeature(j,StandardConnect),{accounts:D}=await I.connect(M);return {uiWallet:getAvailableWallets().filter(u=>u.accounts.find(N=>N.address.toLowerCase()===D[0].address.toLowerCase()))[0],accounts:D.map(u=>getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(j),u))}}async function e(j){await getWalletFeature(j,StandardDisconnect)?.disconnect();}function H({rpcUrls:j}){return {key:OrbitAdapter.SOLANA,async connect({walletType:M,chainId:I}){let g=getAvailableWallets().find(u=>getWalletTypeFromConnectorName(OrbitAdapter.SOLANA,formatWalletName(u.name))===M);if(!g)throw new Error("Cannot find connector with this wallet type");try{let{uiWallet:u,accounts:N}=await L(g),y=getCluster({cluster:I});return {walletType:M,address:N[0].address,chainId:y,rpcURL:getRpcUrlForCluster({cluster:y,rpcUrls:j}),isConnected:!0,isContractAddress:!1,walletIcon:u?.icon?.trim(),connectedAccount:N[0],connectedWallet:u}}catch(u){throw new Error(u instanceof Error?u.message:String(u))}},async disconnect(M){if(M&&M?.connectedWallet)await e(M.connectedWallet);else {let D=getAvailableWallets().filter(g=>g.accounts.length>0);await Promise.allSettled(D.map(async g=>{try{await e(g);}catch{}}));}},getConnectors(){let M=getAvailableWallets();return {adapter:OrbitAdapter.SOLANA,connectors:M}},async checkAndSwitchNetwork(M,I,D){if(I!==M&&D){let g=getCluster({cluster:M});D({chainId:g,rpcURL:getRpcUrlForCluster({cluster:g,rpcUrls:j})});}},getBalance:async(M,I)=>{let g=await createSolanaRPC({rpcUrlOrMoniker:getCluster({cluster:I}),rpcUrls:j}).getBalance(address(M)).send();return {value:lamportsToSol(g.value),symbol:"SOL"}},getExplorerUrl(M,I){return getSolanaExplorerLink(M,I)},async getName(M){return getSolanaAddressName(M)},async getAvatar(M){return getSolanaAddressAvatar(M)}}}function k(){return {accounts:[{chains:["solana:mainnet","solana:devnet","solana:testnet"],features:["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage","solana:signIn"],address:impersonatedHelpers.getImpersonated()??"",publicKey:new Uint8Array(Object.values({0:145,1:169,2:59,3:126,4:25,5:176,6:207,7:212,8:193,9:78,10:109,11:111,12:190,13:162,14:186,15:19,16:28,17:207,18:193,19:33,20:95,21:123,22:148,23:163,24:5,25:73,26:234,27:15,28:152,29:10,30:90,31:80}))}],features:["standard:connect","standard:disconnect","solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"].reduce((j,M)=>(j[M]={},j),{}),chains:["solana:mainnet","solana:devnet","solana:testnet"],icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2IDBDMjQuODQgMCAzMiA3LjE2IDMyIDE2QzMyIDI0Ljg0IDI0Ljg0IDMyIDE2IDMyQzcuMTYgMzIgMCAyNC44NCAwIDE2QzAgNy4xNiA3LjE2IDAgMTYgMFoiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41NCAyLjAxSDE4LjA3QzE4LjU3IDIuMSAxOS4wNiAyLjI0IDE5LjU1IDIuNDNDMTkuNzYgMi42OCAxOS43NCAyLjkxIDE5LjUgMy4xMkMxOS4zNyAzLjE1IDE5LjI0IDMuMTUgMTkuMTEgMy4xMkMxNy4yNSAyLjQ3IDE1LjU2IDIuNzcgMTQuMDQgNC4wMUMxNi40MyA0LjcxIDE3Ljg4IDYuMjggMTguNCA4LjcxQzE4LjUyIDkuNTYgMTguNDggMTAuMzkgMTguMjggMTEuMjJDMTkuMTUgMTEuMjIgMjAuMDIgMTEuMjIgMjAuODkgMTEuMkMyMS4yOCAxMC44IDIxLjU5IDEwLjM1IDIxLjgzIDkuODVDMjEuMzggOS40IDIxLjE4IDguODYgMjEuMjQgOC4yMkMyMC4wOSA4LjMgMTkuNDUgNy43OCAxOS4zMiA2LjY0QzE5LjQ2IDUuNTIgMjAuMSA0Ljk3IDIxLjI0IDUuMDFDMjEuMjYgNC44MyAyMS4yMiA0LjY2IDIxLjEyIDQuNTJMMjAuMjMgMy42M0MyMC4yMSAzLjE4IDIwLjQyIDMuMDMgMjAuODUgMy4xNkMyMS4wOSAzLjM1IDIxLjMxIDMuNTUgMjEuNTEgMy43OEMyMi4yMiAyLjk5IDIzLjAxIDIuODkgMjMuOSAzLjQ2QzI0LjM0IDMuODggMjQuNTIgNC40IDI0LjQ0IDUuMDFDMjUuOTMgNS4wMyAyNi41NSA1Ljc3IDI2LjI5IDcuMjNDMjYuMjEgNy40IDI2LjEyIDcuNTcgMjYuMDIgNy43MkMyNi41NSA4LjMxIDI2Ljg5IDkgMjcuMDMgOS43OUMyNy4xMSAxNC4zOSAyNy4xMyAxOC45OCAyNy4wOCAyMy41OEMyNi44OSAyNS4xNiAyNi4wOCAyNi4yOSAyNC42NCAyNi45NUMyNC4zNSAyNy4wNSAyNC4wNSAyNy4xNSAyMy43NSAyNy4yMkg3LjJDNS44OSAyNi44OSA1LjE1IDI2LjA1IDQuOTYgMjQuNzFDNC45MyAxOS40NyA0LjkzIDE0LjI0IDQuOTYgOUM1LjI2IDcuMzggNi4yNCA2LjU0IDcuODkgNi40NkM5LjE1IDQuNjkgMTAuODcgMy44MiAxMy4wNiAzLjg1QzE0LjAyIDIuODQgMTUuMTkgMi4yMyAxNi41NiAyTDE2LjU0IDIuMDFaTTIyLjY1IDMuODhDMjMuMDQgMy44NSAyMy4zNSA0IDIzLjU2IDQuMzJDMjMuNjIgNC43MSAyMy42NSA1LjExIDIzLjY2IDUuNUMyMy42OCA1LjYyIDIzLjczIDUuNzEgMjMuODMgNS43N0MyNC4yNCA1Ljc3IDI0LjY1IDUuODEgMjUuMDYgNS44N0MyNS41NSA2LjEzIDI1LjY5IDYuNTIgMjUuNDggNy4wM0MyNS40MSA3LjE3IDI1LjMgNy4yOCAyNS4xNiA3LjM1QzI0Ljc3IDcuNDEgMjQuMzcgNy40NCAyMy45OCA3LjQ1QzIzLjg2IDcuNDcgMjMuNzcgNy41MiAyMy43MSA3LjYyTDIzLjU2IDguOTVDMjMuMjQgOS40MSAyMi44NCA5LjUgMjIuMzUgOS4yMkMyMi4yMiA5LjEyIDIyLjEzIDkgMjIuMDggOC44NUMyMi4wMiA4LjQ0IDIxLjk5IDguMDMgMjEuOTggNy42MkMyMS45MiA3LjUyIDIxLjgyIDcuNDYgMjEuNzEgNy40NUwyMC42MyA3LjRDMjAuMTcgNy4xNiAyMC4wMSA2Ljc5IDIwLjE2IDYuMjlDMjAuMyA2LjAyIDIwLjUyIDUuODYgMjAuODIgNS44MkwyMS44MSA1Ljc3QzIxLjgxIDUuNzcgMjEuOSA1LjczIDIxLjkzIDUuN0MyMS45OCA1LjI4IDIyLjAzIDQuODUgMjIuMDggNC40MkMyMi4yIDQuMTYgMjIuMzkgMy45OCAyMi42NSAzLjg4Wk0xMi4xNiA0LjY3QzE0LjU3IDQuNTggMTYuMjggNS42MSAxNy4zMSA3Ljc3QzE3Ljc1IDguODkgMTcuNzkgMTAuMDIgMTcuNDMgMTEuMTdDMTYuNTkgMTEuMjMgMTUuNzYgMTEuMjQgMTQuOTIgMTEuMTlDMTUuNDggMTAuNTEgMTUuNDQgOS44NyAxNC44MiA5LjI3QzE0LjU2IDkuMTQgMTQuMjggOS4wOCAxMy45OCA5LjFDMTQgOC4xNSAxMy45OCA3LjE5IDEzLjkxIDYuMjRDMTMuNyA1LjgzIDEzLjM2IDUuNjYgMTIuOSA1LjcyQzEyLjczIDUuNzUgMTIuNTkgNS44MSAxMi40NiA1LjkyQzExLjc0IDYuODQgMTEuMDMgNy43NyAxMC4zMiA4LjdDMTAuMDQgOS4xNSAxMC4wMyA5LjYxIDEwLjI3IDEwLjA4QzEwLjQyIDEwLjI4IDEwLjYxIDEwLjQyIDEwLjg0IDEwLjVDMTEuMTggMTAuNTIgMTEuNTMgMTAuNTMgMTEuODcgMTAuNTJWMTEuMjFDMTAuNTcgMTEuMjMgOS4yOCAxMS4yMSA3Ljk4IDExLjE2QzcuNCA5LjA2IDcuOSA3LjI4IDkuNTEgNS44MkMxMC4zIDUuMiAxMS4xOSA0LjgyIDEyLjE3IDQuNjZMMTIuMTYgNC42N1pNMTIuOTkgNi40OUMxMy4wNiA2LjQ5IDEzLjEyIDYuNTIgMTMuMTYgNi41OUwxMy4yMSA5LjY0QzEzLjI1IDkuNzMgMTMuMzEgOS44IDEzLjM4IDkuODZMMTQuMjcgOS45MUMxNC40OSA5Ljk5IDE0LjU3IDEwLjE1IDE0LjQ5IDEwLjM4QzE0LjMxIDEwLjY2IDE0LjEyIDEwLjkzIDEzLjkyIDExLjE5QzEzLjQ5IDExLjIxIDEzLjA3IDExLjIyIDEyLjY0IDExLjIxQzEyLjY0IDEwLjggMTIuNjQgMTAuMzkgMTIuNjIgOS45OEMxMi41OCA5LjkxIDEyLjUyIDkuODUgMTIuNDUgOS44MUwxMS4xNyA5Ljc2QzEwLjg3IDkuNjYgMTAuOCA5LjQ3IDEwLjk1IDkuMTlDMTEuNjUgOC4zIDEyLjM0IDcuNCAxMi45OSA2LjQ4VjYuNDlaTTcuMTggNy4zM0g3LjM4QzYuOSA4LjU2IDYuODEgOS44MiA3LjEzIDExLjFDNi41NCAxMC45NyA2LjEyIDEwLjYxIDUuODcgMTAuMDRDNS41MSA4Ljc1IDUuOTUgNy44NSA3LjE4IDcuMzNaTTI1LjE2IDguMTZDMjUuMjEgOC4xNiAyNS4yNiA4LjE2IDI1LjMxIDguMThDMjUuODYgOC43NSAyNi4xOCA5LjQzIDI2LjI3IDEwLjIyQzI2LjMgMTEuMDkgMjYuMyAxMS45NiAyNi4yNyAxMi44M0MyNS42NCAxMS45NyAyNC44IDExLjQ1IDIzLjczIDExLjI4QzIzLjEyIDExLjIzIDIyLjUyIDExLjIgMjEuOTEgMTEuMThDMjIuMTcgMTAuODcgMjIuMzkgMTAuNTIgMjIuNTUgMTAuMTVDMjMuODYgMTAuMTcgMjQuNDkgOS41MyAyNC40MiA4LjJDMjQuNjggOC4yMiAyNC45MiA4LjIgMjUuMTYgOC4xNVY4LjE2Wk01LjcgMTEuMjJDNi4xMSAxMS42MiA2LjYxIDExLjg3IDcuMTggMTEuOThMMjMuMjQgMTIuMDNDMjQuNjYgMTIuMTYgMjUuNjIgMTIuOSAyNi4xMiAxNC4yMkMyNi4xOSAxNC40NiAyNi4yNCAxNC43MSAyNi4yNyAxNC45NkMyNi4zIDE3LjgyIDI2LjMgMjAuNjcgMjYuMjcgMjMuNTNDMjYuMDYgMjQuOTcgMjUuMjcgMjUuOTEgMjMuODggMjYuMzZDMjMuNjQgMjYuNDEgMjMuMzkgMjYuNDQgMjMuMTQgMjYuNDZDMjEuODggMjYuNDggMjAuNjEgMjYuNDkgMTkuMzUgMjYuNDhDMTkuMzUgMjUuMTUgMTkuMzUgMjMuODIgMTkuMzcgMjIuNDlMMjAuOTIgMjAuOTRDMjIuMzQgMjAuOSAyMy4wMSAyMC4xNiAyMi45MSAxOC43NUMyMi42NyAxNy44NyAyMi4xIDE3LjQxIDIxLjE5IDE3LjM3QzE5Ljk5IDE3LjQ5IDE5LjM4IDE4LjE3IDE5LjM3IDE5LjM5TDE3LjQ1IDIxLjMxQzE3LjM3IDIxLjQyIDE3LjMxIDIxLjUzIDE3LjI1IDIxLjY1QzE3LjE4IDIzLjI2IDE3LjE1IDI0Ljg3IDE3LjE4IDI2LjQ4SDE2Ljc0QzE2Ljc0IDI0LjIgMTYuNzQgMjEuOTIgMTYuNzIgMTkuNjNDMTYuNjggMTkuNTEgMTYuNjMgMTkuMzkgMTYuNTcgMTkuMjlMMTUuNDQgMTguMTZDMTUuNDQgMTYuOTMgMTQuODMgMTYuMjQgMTMuNjIgMTYuMDlDMTIuMzMgMTYuMjYgMTEuNzUgMTcgMTEuOSAxOC4zMUMxMi4yMSAxOS4yNCAxMi44NiAxOS42OSAxMy44NSAxOS42NkwxNC41NiAyMC4zN0MxNC41NiAyMC42NyAxNC42IDIwLjk3IDE0LjY2IDIxLjI2QzE0LjkxIDIxLjQ3IDE1LjE0IDIxLjQ1IDE1LjM1IDIxLjIxQzE1LjM4IDIwLjgyIDE1LjM4IDIwLjQyIDE1LjM1IDIwLjAzQzE1LjE1IDE5Ljc4IDE0LjkyIDE5LjU0IDE0LjY5IDE5LjMyQzE0Ljg0IDE5LjIyIDE0Ljk4IDE5LjEgMTUuMDggMTguOTVDMTUuMzggMTkuMjIgMTUuNjYgMTkuNSAxNS45NCAxOS43OUMxNS45NiAyMi4wMiAxNS45NyAyNC4yNiAxNS45NiAyNi40OUgxNS4zN0MxNS4zNyAyNS4xMSAxNS4zNyAyMy43MyAxNS4zNSAyMi4zNUMxNS4yIDIyLjEgMTUgMjIuMDQgMTQuNzMgMjIuMThDMTQuNjggMjIuMjUgMTQuNjQgMjIuMzIgMTQuNjEgMjIuNEMxNC41OSAyMy43NiAxNC41OCAyNS4xMyAxNC41OSAyNi40OUgxNC4xNUMxNC4xNSAyNS41IDE0LjE1IDI0LjUyIDE0LjEzIDIzLjUzQzE0LjExIDIzLjQ0IDE0LjA3IDIzLjM2IDE0LjAzIDIzLjI4QzEzLjM2IDIyLjU2IDEyLjY3IDIxLjg1IDExLjk2IDIxLjE2QzExLjkgMTkuNjggMTEuMTQgMTkuMDMgOS42NyAxOS4yMUM4LjY1IDE5LjYyIDguMjUgMjAuMzcgOC40NiAyMS40NUM4LjggMjIuMzMgOS40NSAyMi43NSAxMC40MSAyMi43MUwxMS45NiAyNC4yNkMxMS45OCAyNSAxMS45OSAyNS43NCAxMS45OCAyNi40OEMxMC40MiAyNi41IDguODYgMjYuNDggNy4zIDI2LjQxQzYuNCAyNi4xNyA1Ljg4IDI1LjU4IDUuNzUgMjQuNjZDNS43MyAyMC4xOCA1LjcyIDE1LjcgNS43MyAxMS4yMUw1LjcgMTEuMjJaTTEzLjQ5IDE2Ljg4QzE0LjMzIDE2Ljk0IDE0LjY4IDE3LjM4IDE0LjU1IDE4LjIxQzE0LjIzIDE4LjgzIDEzLjc1IDE5IDEzLjEgMTguNzNDMTIuNjQgMTguMzYgMTIuNTQgMTcuOTEgMTIuNzggMTcuMzhDMTIuOTYgMTcuMTIgMTMuMiAxNi45NiAxMy40OSAxNi44OVYxNi44OFpNMjAuOTIgMTguMTZDMjEuODEgMTguMTMgMjIuMjEgMTguNTYgMjIuMTMgMTkuNDRDMjEuOCAyMC4xMSAyMS4zIDIwLjI5IDIwLjYzIDE5Ljk2QzIwLjA5IDE5LjQ3IDIwLjA1IDE4Ljk2IDIwLjUzIDE4LjQxQzIwLjY1IDE4LjMgMjAuNzggMTguMjIgMjAuOTIgMTguMTZaTTkuOTQgMTkuOTRDMTAuNzggMTkuOTQgMTEuMTYgMjAuMzQgMTEuMSAyMS4xN0MxMC44MiAyMS44NSAxMC4zNCAyMi4wNiA5LjY1IDIxLjc5QzkuMDIgMjEuMjUgOSAyMC43IDkuNiAyMC4xMkw5Ljk0IDE5Ljk1VjE5Ljk0Wk0xOS42OSAyMC4xOEMxOS44NSAyMC4zMSAxOS45OSAyMC40NSAyMC4xMyAyMC42QzE5LjYgMjEuMTIgMTkuMDggMjEuNjUgMTguNTggMjIuMkMxOC41NiAyMy42MyAxOC41NSAyNS4wNiAxOC41NiAyNi40OEgxNy45N0MxNy45NyAyNC45NyAxNy45NyAyMy40NiAxNy45OSAyMS45NUMxOC41NSAyMS4zNSAxOS4xMSAyMC43NiAxOS42OSAyMC4xOFpNMTEuNTYgMjJDMTIuMTggMjIuNTMgMTIuNzcgMjMuMTEgMTMuMzEgMjMuNzJDMTMuMzMgMjQuNjQgMTMuMzQgMjUuNTYgMTMuMzMgMjYuNDhIMTIuNzRDMTIuNzQgMjUuNjMgMTIuNzQgMjQuNzcgMTIuNzIgMjMuOTJMMTEuMjQgMjIuNDRDMTEuMjQgMjIuNDQgMTEuMjEgMjIuMzcgMTEuMjQgMjIuMzRDMTEuMzYgMjIuMjMgMTEuNDYgMjIuMTIgMTEuNTYgMjJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4=",name:"Impersonated Connector",version:"1.0.0"}}function jM(){registerWallet({...k()});}function gM({rpcUrls:j,...M}){if(typeof window>"u")return;if(!window.isSecureContext){console.warn("Solana Mobile Connectors not loaded: https connection required");return}let I=Object.keys(j).map(D=>`solana:${D}`);if(I.length===0){console.warn("Solana Mobile Connectors not loaded: no chains provided");return}registerMwa({appIdentity:{uri:M?.appUrl,icon:M?.appLogoUrl,name:M?.appName},authorizationCache:createDefaultAuthorizationCache(),chains:I,chainSelector:createDefaultChainSelector(),onWalletNotFound:createDefaultWalletNotFoundHandler()});}export{L as connect,e as disconnect,k as impersonatedConnector,gM as initializeSolanaMobileConnectors,jM as registerImpersonated,H as satelliteSolanaAdapter};//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/connectionUtils.ts","../src/adapters/solanaAdapter.ts","../src/connectors/impersonatedConnector.ts","../src/connectors/initializeSolanaMobileConnectors.ts"],"names":["connect","uiWallet","input","connectFeature","getWalletFeature","StandardConnect","accounts","getAvailableWallets","w","a","account","getOrCreateUiWalletAccountForStandardWalletAccount","getWalletForHandle","disconnect","disconnectFeature","StandardDisconnect","satelliteSolanaAdapter","rpcUrls","OrbitAdapter","walletType","chainId","connector","getWalletTypeFromConnectorName","formatWalletName","connectedAccount","cluster","getCluster","getRpcUrlForCluster","e","activeWallet","connectedWallets","wallet","connectors","currentChainId","updateActiveWallet","address","balance","createSolanaRPC","adr","lamportsToSol","url","getSolanaExplorerLink","getSolanaAddressName","name","getSolanaAddressAvatar","impersonatedConnector","impersonatedHelpers","acc","featureKey","registerImpersonated","registerWallet","initializeSolanaMobileConnectors","props","chains","key","registerMwa","createDefaultAuthorizationCache","createDefaultChainSelector","createDefaultWalletNotFoundHandler"],"mappings":"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","file":"index.mjs","sourcesContent":["import { getAvailableWallets } from '@tuwaio/orbit-solana';\nimport type {\n StandardConnectFeature,\n StandardConnectMethod,\n StandardDisconnectFeature,\n} from '@wallet-standard/features';\nimport { StandardConnect, StandardDisconnect } from '@wallet-standard/features';\nimport { getWalletFeature, type UiWallet, UiWalletAccount } from '@wallet-standard/ui';\nimport {\n getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as getOrCreateUiWalletAccountForStandardWalletAccount,\n getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as getWalletForHandle,\n} from '@wallet-standard/ui-registry';\n\n/**\n * Establishes connection with a wallet using Wallet Standard\n *\n * @remarks\n * Connects to a wallet that implements the Wallet Standard interface.\n * Uses the StandardConnect feature to establish connection and retrieve accounts.\n * Converts standard wallet accounts to UI wallet accounts.\n *\n * @param uiWallet - Wallet instance implementing the UI Wallet interface\n * @param input - Optional connection parameters (excluding silent flag)\n * @returns Promise resolving to array of connected wallet accounts\n *\n * @throws {Error} If wallet doesn't support StandardConnect feature\n * @throws {Error} If connection attempt fails\n *\n * @example\n * ```typescript\n * const accounts = await connect(wallet, {\n * // Optional connection parameters\n * });\n * const firstAccount = accounts[0];\n * console.log('Connected account:', firstAccount.address);\n * ```\n */\nexport async function connect(\n uiWallet: UiWallet,\n input?: Omit<NonNullable<Parameters<StandardConnectMethod>[0]>, 'silent'>,\n): Promise<{ uiWallet: UiWallet; accounts: UiWalletAccount[] }> {\n // Get the connect feature from the wallet\n const connectFeature = getWalletFeature(uiWallet, StandardConnect) as StandardConnectFeature[typeof StandardConnect];\n // Initiate connection and get accounts\n const { accounts } = await connectFeature.connect(input);\n const wallets = getAvailableWallets();\n // Convert accounts to UI wallet accounts\n return {\n uiWallet: wallets.filter((w) =>\n w.accounts.find((a) => a.address.toLowerCase() === accounts[0].address.toLowerCase()),\n )[0],\n accounts: accounts.map((account) =>\n getOrCreateUiWalletAccountForStandardWalletAccount(getWalletForHandle(uiWallet), account),\n ),\n };\n}\n\n/**\n * Disconnects from a connected wallet\n *\n * @remarks\n * Safely disconnects from a wallet if it supports the StandardDisconnect feature.\n * If the wallet doesn't support disconnection, the operation is silently ignored.\n *\n * @param uiWallet - Wallet instance implementing the UI Wallet interface\n * @returns Promise that resolves when disconnection is complete\n *\n * @example\n * ```typescript\n * await disconnect(wallet);\n * console.log('Wallet disconnected');\n * ```\n */\nexport async function disconnect(uiWallet: UiWallet): Promise<void> {\n // Get the disconnect feature if available\n const disconnectFeature = getWalletFeature(uiWallet, StandardDisconnect) as\n | StandardDisconnectFeature[typeof StandardDisconnect]\n | undefined;\n\n // Attempt disconnection if feature is supported\n if (uiWallet.name !== 'Impersonated Connector') {\n await disconnectFeature?.disconnect();\n }\n}\n","import { getWalletTypeFromConnectorName, OrbitAdapter } from '@tuwaio/orbit-core';\nimport {\n createSolanaRPC,\n getAvailableWallets,\n getCluster,\n getRpcUrlForCluster,\n getSolanaAddressAvatar,\n getSolanaAddressName,\n getSolanaExplorerLink,\n SolanaRPCUrls,\n} from '@tuwaio/orbit-solana';\nimport { formatWalletName, SatelliteAdapter } from '@tuwaio/satellite-core';\nimport { UiWallet } from '@wallet-standard/ui';\nimport { address as adr, lamportsToSol, SolanaClusterMoniker } from 'gill';\n\nimport { ConnectorSolana, SolanaWallet } from '../types';\nimport { connect, disconnect } from '../utils/connectionUtils';\n\n/**\n * Creates a Solana blockchain adapter for the Satellite Connect system\n *\n * @remarks\n * This adapter implements the SatelliteAdapter interface for Solana blockchain,\n * providing wallet connection, network switching, and name resolution capabilities.\n * It uses the Wallet Standard for consistent wallet interactions.\n *\n * @param rpcUrls - Configuration object containing RPC endpoints for different Solana networks\n * @returns SatelliteAdapter implementation for Solana\n *\n * @example\n * ```typescript\n * const solanaAdapter = satelliteSolanaAdapter({\n * rpcUrls: {\n * mainnet: 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com',\n * testnet: 'https://api.testnet.solana.com'\n * }\n * });\n * ```\n */\nexport function satelliteSolanaAdapter({ rpcUrls }: SolanaRPCUrls): SatelliteAdapter<ConnectorSolana, SolanaWallet> {\n return {\n key: OrbitAdapter.SOLANA,\n\n async connect({ walletType, chainId }) {\n const connectors = getAvailableWallets();\n const connector = connectors.find(\n (connector) =>\n getWalletTypeFromConnectorName(OrbitAdapter.SOLANA, formatWalletName(connector.name)) === walletType,\n );\n if (!connector) throw new Error('Cannot find connector with this wallet type');\n\n try {\n const { uiWallet, accounts: connectedAccount } = await connect(connector as UiWallet);\n const cluster = getCluster({ cluster: chainId as string });\n\n return {\n walletType,\n address: connectedAccount[0].address,\n chainId: cluster,\n rpcURL: getRpcUrlForCluster({\n cluster: cluster as SolanaClusterMoniker,\n rpcUrls,\n }),\n isConnected: true,\n isContractAddress: false,\n walletIcon: uiWallet?.icon?.trim(),\n connectedAccount: connectedAccount[0],\n connectedWallet: uiWallet,\n };\n } catch (e) {\n throw new Error(e instanceof Error ? e.message : String(e));\n }\n },\n\n async disconnect(activeWallet) {\n if (activeWallet && (activeWallet as SolanaWallet)?.connectedWallet) {\n await disconnect((activeWallet as SolanaWallet).connectedWallet as UiWallet);\n } else {\n const wallets = getAvailableWallets();\n const connectedWallets = wallets.filter((wallet) => wallet.accounts.length > 0);\n await Promise.allSettled(\n connectedWallets.map(async (w) => {\n try {\n await disconnect(w);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n /* empty */\n }\n }),\n );\n }\n },\n\n getConnectors() {\n const connectors = getAvailableWallets();\n return {\n adapter: OrbitAdapter.SOLANA,\n connectors: connectors as ConnectorSolana[],\n };\n },\n\n async checkAndSwitchNetwork(chainId, currentChainId, updateActiveWallet) {\n if (currentChainId !== chainId && updateActiveWallet) {\n const cluster = getCluster({ cluster: chainId as string });\n updateActiveWallet({\n chainId: cluster,\n rpcURL: getRpcUrlForCluster({\n cluster: cluster as SolanaClusterMoniker,\n rpcUrls,\n }),\n });\n }\n },\n\n getBalance: async (address, chainId) => {\n const rpc = createSolanaRPC({ rpcUrlOrMoniker: getCluster({ cluster: chainId as string }), rpcUrls });\n const balance = await rpc.getBalance(adr(address)).send();\n return {\n value: lamportsToSol(balance.value),\n symbol: 'SOL',\n };\n },\n\n getExplorerUrl(url, chainId) {\n return getSolanaExplorerLink(url, chainId);\n },\n async getName(address) {\n return getSolanaAddressName(address);\n },\n async getAvatar(name) {\n return getSolanaAddressAvatar(name);\n },\n };\n}\n","import { impersonatedHelpers } from '@tuwaio/satellite-core';\nimport { registerWallet, Wallet, WalletAccount } from '@wallet-standard/core';\n\nexport function impersonatedConnector(): Wallet {\n return {\n accounts: [\n {\n chains: ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as WalletAccount['chains'],\n features: [\n 'solana:signAndSendTransaction',\n 'solana:signTransaction',\n 'solana:signMessage',\n 'solana:signIn',\n ] as WalletAccount['features'],\n address: impersonatedHelpers.getImpersonated() ?? '',\n // TODO: need fix\n publicKey: new Uint8Array(\n Object.values({\n '0': 145,\n '1': 169,\n '2': 59,\n '3': 126,\n '4': 25,\n '5': 176,\n '6': 207,\n '7': 212,\n '8': 193,\n '9': 78,\n '10': 109,\n '11': 111,\n '12': 190,\n '13': 162,\n '14': 186,\n '15': 19,\n '16': 28,\n '17': 207,\n '18': 193,\n '19': 33,\n '20': 95,\n '21': 123,\n '22': 148,\n '23': 163,\n '24': 5,\n '25': 73,\n '26': 234,\n '27': 15,\n '28': 152,\n '29': 10,\n '30': 90,\n '31': 80,\n }),\n ) as WalletAccount['publicKey'],\n },\n ],\n features: [\n 'standard:connect',\n 'standard:disconnect',\n 'solana:signAndSendTransaction',\n 'solana:signTransaction',\n 'solana:signMessage',\n ].reduce(\n (acc, featureKey) => {\n acc[featureKey] = {};\n return acc;\n },\n {} as Record<string, unknown>,\n ),\n chains: ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as Wallet['chains'],\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2IDBDMjQuODQgMCAzMiA3LjE2IDMyIDE2QzMyIDI0Ljg0IDI0Ljg0IDMyIDE2IDMyQzcuMTYgMzIgMCAyNC44NCAwIDE2QzAgNy4xNiA3LjE2IDAgMTYgMFoiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41NCAyLjAxSDE4LjA3QzE4LjU3IDIuMSAxOS4wNiAyLjI0IDE5LjU1IDIuNDNDMTkuNzYgMi42OCAxOS43NCAyLjkxIDE5LjUgMy4xMkMxOS4zNyAzLjE1IDE5LjI0IDMuMTUgMTkuMTEgMy4xMkMxNy4yNSAyLjQ3IDE1LjU2IDIuNzcgMTQuMDQgNC4wMUMxNi40MyA0LjcxIDE3Ljg4IDYuMjggMTguNCA4LjcxQzE4LjUyIDkuNTYgMTguNDggMTAuMzkgMTguMjggMTEuMjJDMTkuMTUgMTEuMjIgMjAuMDIgMTEuMjIgMjAuODkgMTEuMkMyMS4yOCAxMC44IDIxLjU5IDEwLjM1IDIxLjgzIDkuODVDMjEuMzggOS40IDIxLjE4IDguODYgMjEuMjQgOC4yMkMyMC4wOSA4LjMgMTkuNDUgNy43OCAxOS4zMiA2LjY0QzE5LjQ2IDUuNTIgMjAuMSA0Ljk3IDIxLjI0IDUuMDFDMjEuMjYgNC44MyAyMS4yMiA0LjY2IDIxLjEyIDQuNTJMMjAuMjMgMy42M0MyMC4yMSAzLjE4IDIwLjQyIDMuMDMgMjAuODUgMy4xNkMyMS4wOSAzLjM1IDIxLjMxIDMuNTUgMjEuNTEgMy43OEMyMi4yMiAyLjk5IDIzLjAxIDIuODkgMjMuOSAzLjQ2QzI0LjM0IDMuODggMjQuNTIgNC40IDI0LjQ0IDUuMDFDMjUuOTMgNS4wMyAyNi41NSA1Ljc3IDI2LjI5IDcuMjNDMjYuMjEgNy40IDI2LjEyIDcuNTcgMjYuMDIgNy43MkMyNi41NSA4LjMxIDI2Ljg5IDkgMjcuMDMgOS43OUMyNy4xMSAxNC4zOSAyNy4xMyAxOC45OCAyNy4wOCAyMy41OEMyNi44OSAyNS4xNiAyNi4wOCAyNi4yOSAyNC42NCAyNi45NUMyNC4zNSAyNy4wNSAyNC4wNSAyNy4xNSAyMy43NSAyNy4yMkg3LjJDNS44OSAyNi44OSA1LjE1IDI2LjA1IDQuOTYgMjQuNzFDNC45MyAxOS40NyA0LjkzIDE0LjI0IDQuOTYgOUM1LjI2IDcuMzggNi4yNCA2LjU0IDcuODkgNi40NkM5LjE1IDQuNjkgMTAuODcgMy44MiAxMy4wNiAzLjg1QzE0LjAyIDIuODQgMTUuMTkgMi4yMyAxNi41NiAyTDE2LjU0IDIuMDFaTTIyLjY1IDMuODhDMjMuMDQgMy44NSAyMy4zNSA0IDIzLjU2IDQuMzJDMjMuNjIgNC43MSAyMy42NSA1LjExIDIzLjY2IDUuNUMyMy42OCA1LjYyIDIzLjczIDUuNzEgMjMuODMgNS43N0MyNC4yNCA1Ljc3IDI0LjY1IDUuODEgMjUuMDYgNS44N0MyNS41NSA2LjEzIDI1LjY5IDYuNTIgMjUuNDggNy4wM0MyNS40MSA3LjE3IDI1LjMgNy4yOCAyNS4xNiA3LjM1QzI0Ljc3IDcuNDEgMjQuMzcgNy40NCAyMy45OCA3LjQ1QzIzLjg2IDcuNDcgMjMuNzcgNy41MiAyMy43MSA3LjYyTDIzLjU2IDguOTVDMjMuMjQgOS40MSAyMi44NCA5LjUgMjIuMzUgOS4yMkMyMi4yMiA5LjEyIDIyLjEzIDkgMjIuMDggOC44NUMyMi4wMiA4LjQ0IDIxLjk5IDguMDMgMjEuOTggNy42MkMyMS45MiA3LjUyIDIxLjgyIDcuNDYgMjEuNzEgNy40NUwyMC42MyA3LjRDMjAuMTcgNy4xNiAyMC4wMSA2Ljc5IDIwLjE2IDYuMjlDMjAuMyA2LjAyIDIwLjUyIDUuODYgMjAuODIgNS44MkwyMS44MSA1Ljc3QzIxLjgxIDUuNzcgMjEuOSA1LjczIDIxLjkzIDUuN0MyMS45OCA1LjI4IDIyLjAzIDQuODUgMjIuMDggNC40MkMyMi4yIDQuMTYgMjIuMzkgMy45OCAyMi42NSAzLjg4Wk0xMi4xNiA0LjY3QzE0LjU3IDQuNTggMTYuMjggNS42MSAxNy4zMSA3Ljc3QzE3Ljc1IDguODkgMTcuNzkgMTAuMDIgMTcuNDMgMTEuMTdDMTYuNTkgMTEuMjMgMTUuNzYgMTEuMjQgMTQuOTIgMTEuMTlDMTUuNDggMTAuNTEgMTUuNDQgOS44NyAxNC44MiA5LjI3QzE0LjU2IDkuMTQgMTQuMjggOS4wOCAxMy45OCA5LjFDMTQgOC4xNSAxMy45OCA3LjE5IDEzLjkxIDYuMjRDMTMuNyA1LjgzIDEzLjM2IDUuNjYgMTIuOSA1LjcyQzEyLjczIDUuNzUgMTIuNTkgNS44MSAxMi40NiA1LjkyQzExLjc0IDYuODQgMTEuMDMgNy43NyAxMC4zMiA4LjdDMTAuMDQgOS4xNSAxMC4wMyA5LjYxIDEwLjI3IDEwLjA4QzEwLjQyIDEwLjI4IDEwLjYxIDEwLjQyIDEwLjg0IDEwLjVDMTEuMTggMTAuNTIgMTEuNTMgMTAuNTMgMTEuODcgMTAuNTJWMTEuMjFDMTAuNTcgMTEuMjMgOS4yOCAxMS4yMSA3Ljk4IDExLjE2QzcuNCA5LjA2IDcuOSA3LjI4IDkuNTEgNS44MkMxMC4zIDUuMiAxMS4xOSA0LjgyIDEyLjE3IDQuNjZMMTIuMTYgNC42N1pNMTIuOTkgNi40OUMxMy4wNiA2LjQ5IDEzLjEyIDYuNTIgMTMuMTYgNi41OUwxMy4yMSA5LjY0QzEzLjI1IDkuNzMgMTMuMzEgOS44IDEzLjM4IDkuODZMMTQuMjcgOS45MUMxNC40OSA5Ljk5IDE0LjU3IDEwLjE1IDE0LjQ5IDEwLjM4QzE0LjMxIDEwLjY2IDE0LjEyIDEwLjkzIDEzLjkyIDExLjE5QzEzLjQ5IDExLjIxIDEzLjA3IDExLjIyIDEyLjY0IDExLjIxQzEyLjY0IDEwLjggMTIuNjQgMTAuMzkgMTIuNjIgOS45OEMxMi41OCA5LjkxIDEyLjUyIDkuODUgMTIuNDUgOS44MUwxMS4xNyA5Ljc2QzEwLjg3IDkuNjYgMTAuOCA5LjQ3IDEwLjk1IDkuMTlDMTEuNjUgOC4zIDEyLjM0IDcuNCAxMi45OSA2LjQ4VjYuNDlaTTcuMTggNy4zM0g3LjM4QzYuOSA4LjU2IDYuODEgOS44MiA3LjEzIDExLjFDNi41NCAxMC45NyA2LjEyIDEwLjYxIDUuODcgMTAuMDRDNS41MSA4Ljc1IDUuOTUgNy44NSA3LjE4IDcuMzNaTTI1LjE2IDguMTZDMjUuMjEgOC4xNiAyNS4yNiA4LjE2IDI1LjMxIDguMThDMjUuODYgOC43NSAyNi4xOCA5LjQzIDI2LjI3IDEwLjIyQzI2LjMgMTEuMDkgMjYuMyAxMS45NiAyNi4yNyAxMi44M0MyNS42NCAxMS45NyAyNC44IDExLjQ1IDIzLjczIDExLjI4QzIzLjEyIDExLjIzIDIyLjUyIDExLjIgMjEuOTEgMTEuMThDMjIuMTcgMTAuODcgMjIuMzkgMTAuNTIgMjIuNTUgMTAuMTVDMjMuODYgMTAuMTcgMjQuNDkgOS41MyAyNC40MiA4LjJDMjQuNjggOC4yMiAyNC45MiA4LjIgMjUuMTYgOC4xNVY4LjE2Wk01LjcgMTEuMjJDNi4xMSAxMS42MiA2LjYxIDExLjg3IDcuMTggMTEuOThMMjMuMjQgMTIuMDNDMjQuNjYgMTIuMTYgMjUuNjIgMTIuOSAyNi4xMiAxNC4yMkMyNi4xOSAxNC40NiAyNi4yNCAxNC43MSAyNi4yNyAxNC45NkMyNi4zIDE3LjgyIDI2LjMgMjAuNjcgMjYuMjcgMjMuNTNDMjYuMDYgMjQuOTcgMjUuMjcgMjUuOTEgMjMuODggMjYuMzZDMjMuNjQgMjYuNDEgMjMuMzkgMjYuNDQgMjMuMTQgMjYuNDZDMjEuODggMjYuNDggMjAuNjEgMjYuNDkgMTkuMzUgMjYuNDhDMTkuMzUgMjUuMTUgMTkuMzUgMjMuODIgMTkuMzcgMjIuNDlMMjAuOTIgMjAuOTRDMjIuMzQgMjAuOSAyMy4wMSAyMC4xNiAyMi45MSAxOC43NUMyMi42NyAxNy44NyAyMi4xIDE3LjQxIDIxLjE5IDE3LjM3QzE5Ljk5IDE3LjQ5IDE5LjM4IDE4LjE3IDE5LjM3IDE5LjM5TDE3LjQ1IDIxLjMxQzE3LjM3IDIxLjQyIDE3LjMxIDIxLjUzIDE3LjI1IDIxLjY1QzE3LjE4IDIzLjI2IDE3LjE1IDI0Ljg3IDE3LjE4IDI2LjQ4SDE2Ljc0QzE2Ljc0IDI0LjIgMTYuNzQgMjEuOTIgMTYuNzIgMTkuNjNDMTYuNjggMTkuNTEgMTYuNjMgMTkuMzkgMTYuNTcgMTkuMjlMMTUuNDQgMTguMTZDMTUuNDQgMTYuOTMgMTQuODMgMTYuMjQgMTMuNjIgMTYuMDlDMTIuMzMgMTYuMjYgMTEuNzUgMTcgMTEuOSAxOC4zMUMxMi4yMSAxOS4yNCAxMi44NiAxOS42OSAxMy44NSAxOS42NkwxNC41NiAyMC4zN0MxNC41NiAyMC42NyAxNC42IDIwLjk3IDE0LjY2IDIxLjI2QzE0LjkxIDIxLjQ3IDE1LjE0IDIxLjQ1IDE1LjM1IDIxLjIxQzE1LjM4IDIwLjgyIDE1LjM4IDIwLjQyIDE1LjM1IDIwLjAzQzE1LjE1IDE5Ljc4IDE0LjkyIDE5LjU0IDE0LjY5IDE5LjMyQzE0Ljg0IDE5LjIyIDE0Ljk4IDE5LjEgMTUuMDggMTguOTVDMTUuMzggMTkuMjIgMTUuNjYgMTkuNSAxNS45NCAxOS43OUMxNS45NiAyMi4wMiAxNS45NyAyNC4yNiAxNS45NiAyNi40OUgxNS4zN0MxNS4zNyAyNS4xMSAxNS4zNyAyMy43MyAxNS4zNSAyMi4zNUMxNS4yIDIyLjEgMTUgMjIuMDQgMTQuNzMgMjIuMThDMTQuNjggMjIuMjUgMTQuNjQgMjIuMzIgMTQuNjEgMjIuNEMxNC41OSAyMy43NiAxNC41OCAyNS4xMyAxNC41OSAyNi40OUgxNC4xNUMxNC4xNSAyNS41IDE0LjE1IDI0LjUyIDE0LjEzIDIzLjUzQzE0LjExIDIzLjQ0IDE0LjA3IDIzLjM2IDE0LjAzIDIzLjI4QzEzLjM2IDIyLjU2IDEyLjY3IDIxLjg1IDExLjk2IDIxLjE2QzExLjkgMTkuNjggMTEuMTQgMTkuMDMgOS42NyAxOS4yMUM4LjY1IDE5LjYyIDguMjUgMjAuMzcgOC40NiAyMS40NUM4LjggMjIuMzMgOS40NSAyMi43NSAxMC40MSAyMi43MUwxMS45NiAyNC4yNkMxMS45OCAyNSAxMS45OSAyNS43NCAxMS45OCAyNi40OEMxMC40MiAyNi41IDguODYgMjYuNDggNy4zIDI2LjQxQzYuNCAyNi4xNyA1Ljg4IDI1LjU4IDUuNzUgMjQuNjZDNS43MyAyMC4xOCA1LjcyIDE1LjcgNS43MyAxMS4yMUw1LjcgMTEuMjJaTTEzLjQ5IDE2Ljg4QzE0LjMzIDE2Ljk0IDE0LjY4IDE3LjM4IDE0LjU1IDE4LjIxQzE0LjIzIDE4LjgzIDEzLjc1IDE5IDEzLjEgMTguNzNDMTIuNjQgMTguMzYgMTIuNTQgMTcuOTEgMTIuNzggMTcuMzhDMTIuOTYgMTcuMTIgMTMuMiAxNi45NiAxMy40OSAxNi44OVYxNi44OFpNMjAuOTIgMTguMTZDMjEuODEgMTguMTMgMjIuMjEgMTguNTYgMjIuMTMgMTkuNDRDMjEuOCAyMC4xMSAyMS4zIDIwLjI5IDIwLjYzIDE5Ljk2QzIwLjA5IDE5LjQ3IDIwLjA1IDE4Ljk2IDIwLjUzIDE4LjQxQzIwLjY1IDE4LjMgMjAuNzggMTguMjIgMjAuOTIgMTguMTZaTTkuOTQgMTkuOTRDMTAuNzggMTkuOTQgMTEuMTYgMjAuMzQgMTEuMSAyMS4xN0MxMC44MiAyMS44NSAxMC4zNCAyMi4wNiA5LjY1IDIxLjc5QzkuMDIgMjEuMjUgOSAyMC43IDkuNiAyMC4xMkw5Ljk0IDE5Ljk1VjE5Ljk0Wk0xOS42OSAyMC4xOEMxOS44NSAyMC4zMSAxOS45OSAyMC40NSAyMC4xMyAyMC42QzE5LjYgMjEuMTIgMTkuMDggMjEuNjUgMTguNTggMjIuMkMxOC41NiAyMy42MyAxOC41NSAyNS4wNiAxOC41NiAyNi40OEgxNy45N0MxNy45NyAyNC45NyAxNy45NyAyMy40NiAxNy45OSAyMS45NUMxOC41NSAyMS4zNSAxOS4xMSAyMC43NiAxOS42OSAyMC4xOFpNMTEuNTYgMjJDMTIuMTggMjIuNTMgMTIuNzcgMjMuMTEgMTMuMzEgMjMuNzJDMTMuMzMgMjQuNjQgMTMuMzQgMjUuNTYgMTMuMzMgMjYuNDhIMTIuNzRDMTIuNzQgMjUuNjMgMTIuNzQgMjQuNzcgMTIuNzIgMjMuOTJMMTEuMjQgMjIuNDRDMTEuMjQgMjIuNDQgMTEuMjEgMjIuMzcgMTEuMjQgMjIuMzRDMTEuMzYgMjIuMjMgMTEuNDYgMjIuMTIgMTEuNTYgMjJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4=' as Wallet['icon'],\n name: 'Impersonated Connector',\n version: '1.0.0' as Wallet['version'],\n };\n}\n\nexport function registerImpersonated() {\n registerWallet({ ...impersonatedConnector() });\n}\n","import {\n createDefaultAuthorizationCache,\n createDefaultChainSelector,\n createDefaultWalletNotFoundHandler,\n registerMwa,\n} from '@solana-mobile/wallet-standard-mobile';\nimport { SolanaRPCUrls } from '@tuwaio/orbit-solana';\nimport { ConnectorsInitProps } from '@tuwaio/satellite-core';\n\n/**\n * Combined props for initializing Solana mobile connectors\n */\ntype InitializeSolanaMobileConnectorsProps = ConnectorsInitProps & SolanaRPCUrls;\n\n/**\n * Initializes Solana Mobile Wallet Adapter (MWA) for mobile wallet connections\n *\n * @remarks\n * This function sets up the Solana Mobile Wallet Adapter with appropriate configuration\n * for secure mobile wallet connections. It includes security checks and chain validation.\n * Only works in secure contexts (HTTPS) and requires at least one valid chain configuration.\n *\n * @param props - Combined initialization properties\n * @param props.rpcUrls - RPC endpoints for different Solana networks\n * @param props.appName - Application name to display in wallet\n * @param props.appUrl - Application URL\n * @param props.appLogoUrl - Application logo URL\n *\n * @example\n * ```typescript\n * initializeSolanaMobileConnectors({\n * rpcUrls: {\n * mainnet: 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com'\n * },\n * appName: 'My Solana App',\n * appUrl: 'https://myapp.com',\n * appLogoUrl: 'https://myapp.com/logo.png'\n * });\n * ```\n *\n * @throws {Warning} If not in secure context (non-HTTPS)\n * @throws {Warning} If no chains are configured\n */\nexport function initializeSolanaMobileConnectors({ rpcUrls, ...props }: InitializeSolanaMobileConnectorsProps): void {\n // Only run in browser environment\n if (typeof window === 'undefined') {\n return;\n }\n // Ensure secure context (HTTPS)\n if (!window.isSecureContext) {\n console.warn('Solana Mobile Connectors not loaded: https connection required');\n return;\n }\n\n // Generate chain identifiers\n const chains = Object.keys(rpcUrls).map((key) => `solana:${key}` as `solana:${string}`);\n\n // Validate chain configuration\n if (chains.length === 0) {\n console.warn('Solana Mobile Connectors not loaded: no chains provided');\n return;\n }\n\n // Register Mobile Wallet Adapter\n registerMwa({\n appIdentity: {\n uri: props?.appUrl,\n icon: props?.appLogoUrl,\n name: props?.appName,\n },\n authorizationCache: createDefaultAuthorizationCache(),\n chains,\n chainSelector: createDefaultChainSelector(),\n onWalletNotFound: createDefaultWalletNotFoundHandler(),\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/connectionUtils.ts","../src/adapters/solanaAdapter.ts","../src/connectors/impersonatedConnector.ts","../src/connectors/initializeSolanaMobileConnectors.ts"],"names":["connect","uiWallet","input","connectFeature","getWalletFeature","StandardConnect","accounts","getAvailableWallets","w","a","account","getOrCreateUiWalletAccountForStandardWalletAccount","getWalletForHandle","disconnect","StandardDisconnect","satelliteSolanaAdapter","rpcUrls","OrbitAdapter","walletType","chainId","connector","getWalletTypeFromConnectorName","formatWalletName","connectedAccount","cluster","getCluster","getRpcUrlForCluster","e","activeWallet","connectedWallets","wallet","connectors","currentChainId","updateActiveWallet","address","balance","createSolanaRPC","adr","lamportsToSol","url","getSolanaExplorerLink","getSolanaAddressName","name","getSolanaAddressAvatar","impersonatedConnector","impersonatedHelpers","acc","featureKey","registerImpersonated","registerWallet","initializeSolanaMobileConnectors","props","chains","key","registerMwa","createDefaultAuthorizationCache","createDefaultChainSelector","createDefaultWalletNotFoundHandler"],"mappings":"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","file":"index.mjs","sourcesContent":["import { getAvailableWallets } from '@tuwaio/orbit-solana';\nimport type {\n StandardConnectFeature,\n StandardConnectMethod,\n StandardDisconnectFeature,\n} from '@wallet-standard/features';\nimport { StandardConnect, StandardDisconnect } from '@wallet-standard/features';\nimport { getWalletFeature, type UiWallet, UiWalletAccount } from '@wallet-standard/ui';\nimport {\n getOrCreateUiWalletAccountForStandardWalletAccount_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as getOrCreateUiWalletAccountForStandardWalletAccount,\n getWalletForHandle_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as getWalletForHandle,\n} from '@wallet-standard/ui-registry';\n\n/**\n * Establishes connection with a wallet using Wallet Standard\n *\n * @remarks\n * Connects to a wallet that implements the Wallet Standard interface.\n * Uses the StandardConnect feature to establish connection and retrieve accounts.\n * Converts standard wallet accounts to UI wallet accounts.\n *\n * @param uiWallet - Wallet instance implementing the UI Wallet interface\n * @param input - Optional connection parameters (excluding silent flag)\n * @returns Promise resolving to array of connected wallet accounts\n *\n * @throws {Error} If wallet doesn't support StandardConnect feature\n * @throws {Error} If connection attempt fails\n *\n * @example\n * ```typescript\n * const accounts = await connect(wallet, {\n * // Optional connection parameters\n * });\n * const firstAccount = accounts[0];\n * console.log('Connected account:', firstAccount.address);\n * ```\n */\nexport async function connect(\n uiWallet: UiWallet,\n input?: Omit<NonNullable<Parameters<StandardConnectMethod>[0]>, 'silent'>,\n): Promise<{ uiWallet: UiWallet; accounts: UiWalletAccount[] }> {\n // Get the connect feature from the wallet\n const connectFeature = getWalletFeature(uiWallet, StandardConnect) as StandardConnectFeature[typeof StandardConnect];\n // Initiate connection and get accounts\n const { accounts } = await connectFeature.connect(input);\n const wallets = getAvailableWallets();\n // Convert accounts to UI wallet accounts\n return {\n uiWallet: wallets.filter((w) =>\n w.accounts.find((a) => a.address.toLowerCase() === accounts[0].address.toLowerCase()),\n )[0],\n accounts: accounts.map((account) =>\n getOrCreateUiWalletAccountForStandardWalletAccount(getWalletForHandle(uiWallet), account),\n ),\n };\n}\n\n/**\n * Disconnects from a connected wallet\n *\n * @remarks\n * Safely disconnects from a wallet if it supports the StandardDisconnect feature.\n * If the wallet doesn't support disconnection, the operation is silently ignored.\n *\n * @param uiWallet - Wallet instance implementing the UI Wallet interface\n * @returns Promise that resolves when disconnection is complete\n *\n * @example\n * ```typescript\n * await disconnect(wallet);\n * console.log('Wallet disconnected');\n * ```\n */\nexport async function disconnect(uiWallet: UiWallet): Promise<void> {\n // Get the disconnect feature if available\n const disconnectFeature = getWalletFeature(uiWallet, StandardDisconnect) as\n | StandardDisconnectFeature[typeof StandardDisconnect]\n | undefined;\n\n await disconnectFeature?.disconnect();\n}\n","import { getWalletTypeFromConnectorName, OrbitAdapter } from '@tuwaio/orbit-core';\nimport {\n createSolanaRPC,\n getAvailableWallets,\n getCluster,\n getRpcUrlForCluster,\n getSolanaAddressAvatar,\n getSolanaAddressName,\n getSolanaExplorerLink,\n SolanaRPCUrls,\n} from '@tuwaio/orbit-solana';\nimport { formatWalletName, SatelliteAdapter } from '@tuwaio/satellite-core';\nimport { UiWallet } from '@wallet-standard/ui';\nimport { address as adr, lamportsToSol, SolanaClusterMoniker } from 'gill';\n\nimport { ConnectorSolana, SolanaWallet } from '../types';\nimport { connect, disconnect } from '../utils/connectionUtils';\n\n/**\n * Creates a Solana blockchain adapter for the Satellite Connect system\n *\n * @remarks\n * This adapter implements the SatelliteAdapter interface for Solana blockchain,\n * providing wallet connection, network switching, and name resolution capabilities.\n * It uses the Wallet Standard for consistent wallet interactions.\n *\n * @param rpcUrls - Configuration object containing RPC endpoints for different Solana networks\n * @returns SatelliteAdapter implementation for Solana\n *\n * @example\n * ```typescript\n * const solanaAdapter = satelliteSolanaAdapter({\n * rpcUrls: {\n * mainnet: 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com',\n * testnet: 'https://api.testnet.solana.com'\n * }\n * });\n * ```\n */\nexport function satelliteSolanaAdapter({ rpcUrls }: SolanaRPCUrls): SatelliteAdapter<ConnectorSolana, SolanaWallet> {\n return {\n key: OrbitAdapter.SOLANA,\n\n async connect({ walletType, chainId }) {\n const connectors = getAvailableWallets();\n const connector = connectors.find(\n (connector) =>\n getWalletTypeFromConnectorName(OrbitAdapter.SOLANA, formatWalletName(connector.name)) === walletType,\n );\n if (!connector) throw new Error('Cannot find connector with this wallet type');\n\n try {\n const { uiWallet, accounts: connectedAccount } = await connect(connector as UiWallet);\n const cluster = getCluster({ cluster: chainId as string });\n\n return {\n walletType,\n address: connectedAccount[0].address,\n chainId: cluster,\n rpcURL: getRpcUrlForCluster({\n cluster: cluster as SolanaClusterMoniker,\n rpcUrls,\n }),\n isConnected: true,\n isContractAddress: false,\n walletIcon: uiWallet?.icon?.trim(),\n connectedAccount: connectedAccount[0],\n connectedWallet: uiWallet,\n };\n } catch (e) {\n throw new Error(e instanceof Error ? e.message : String(e));\n }\n },\n\n async disconnect(activeWallet) {\n if (activeWallet && (activeWallet as SolanaWallet)?.connectedWallet) {\n await disconnect((activeWallet as SolanaWallet).connectedWallet as UiWallet);\n } else {\n const wallets = getAvailableWallets();\n const connectedWallets = wallets.filter((wallet) => wallet.accounts.length > 0);\n await Promise.allSettled(\n connectedWallets.map(async (w) => {\n try {\n await disconnect(w);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n /* empty */\n }\n }),\n );\n }\n },\n\n getConnectors() {\n const connectors = getAvailableWallets();\n return {\n adapter: OrbitAdapter.SOLANA,\n connectors: connectors as ConnectorSolana[],\n };\n },\n\n async checkAndSwitchNetwork(chainId, currentChainId, updateActiveWallet) {\n if (currentChainId !== chainId && updateActiveWallet) {\n const cluster = getCluster({ cluster: chainId as string });\n updateActiveWallet({\n chainId: cluster,\n rpcURL: getRpcUrlForCluster({\n cluster: cluster as SolanaClusterMoniker,\n rpcUrls,\n }),\n });\n }\n },\n\n getBalance: async (address, chainId) => {\n const rpc = createSolanaRPC({ rpcUrlOrMoniker: getCluster({ cluster: chainId as string }), rpcUrls });\n const balance = await rpc.getBalance(adr(address)).send();\n return {\n value: lamportsToSol(balance.value),\n symbol: 'SOL',\n };\n },\n\n getExplorerUrl(url, chainId) {\n return getSolanaExplorerLink(url, chainId);\n },\n async getName(address) {\n return getSolanaAddressName(address);\n },\n async getAvatar(name) {\n return getSolanaAddressAvatar(name);\n },\n };\n}\n","import { impersonatedHelpers } from '@tuwaio/satellite-core';\nimport { registerWallet, Wallet, WalletAccount } from '@wallet-standard/core';\n\nexport function impersonatedConnector(): Wallet {\n return {\n accounts: [\n {\n chains: ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as WalletAccount['chains'],\n features: [\n 'solana:signAndSendTransaction',\n 'solana:signTransaction',\n 'solana:signMessage',\n 'solana:signIn',\n ] as WalletAccount['features'],\n address: impersonatedHelpers.getImpersonated() ?? '',\n // TODO: need fix\n publicKey: new Uint8Array(\n Object.values({\n '0': 145,\n '1': 169,\n '2': 59,\n '3': 126,\n '4': 25,\n '5': 176,\n '6': 207,\n '7': 212,\n '8': 193,\n '9': 78,\n '10': 109,\n '11': 111,\n '12': 190,\n '13': 162,\n '14': 186,\n '15': 19,\n '16': 28,\n '17': 207,\n '18': 193,\n '19': 33,\n '20': 95,\n '21': 123,\n '22': 148,\n '23': 163,\n '24': 5,\n '25': 73,\n '26': 234,\n '27': 15,\n '28': 152,\n '29': 10,\n '30': 90,\n '31': 80,\n }),\n ) as WalletAccount['publicKey'],\n },\n ],\n features: [\n 'standard:connect',\n 'standard:disconnect',\n 'solana:signAndSendTransaction',\n 'solana:signTransaction',\n 'solana:signMessage',\n ].reduce(\n (acc, featureKey) => {\n acc[featureKey] = {};\n return acc;\n },\n {} as Record<string, unknown>,\n ),\n chains: ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as Wallet['chains'],\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2IDBDMjQuODQgMCAzMiA3LjE2IDMyIDE2QzMyIDI0Ljg0IDI0Ljg0IDMyIDE2IDMyQzcuMTYgMzIgMCAyNC44NCAwIDE2QzAgNy4xNiA3LjE2IDAgMTYgMFoiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41NCAyLjAxSDE4LjA3QzE4LjU3IDIuMSAxOS4wNiAyLjI0IDE5LjU1IDIuNDNDMTkuNzYgMi42OCAxOS43NCAyLjkxIDE5LjUgMy4xMkMxOS4zNyAzLjE1IDE5LjI0IDMuMTUgMTkuMTEgMy4xMkMxNy4yNSAyLjQ3IDE1LjU2IDIuNzcgMTQuMDQgNC4wMUMxNi40MyA0LjcxIDE3Ljg4IDYuMjggMTguNCA4LjcxQzE4LjUyIDkuNTYgMTguNDggMTAuMzkgMTguMjggMTEuMjJDMTkuMTUgMTEuMjIgMjAuMDIgMTEuMjIgMjAuODkgMTEuMkMyMS4yOCAxMC44IDIxLjU5IDEwLjM1IDIxLjgzIDkuODVDMjEuMzggOS40IDIxLjE4IDguODYgMjEuMjQgOC4yMkMyMC4wOSA4LjMgMTkuNDUgNy43OCAxOS4zMiA2LjY0QzE5LjQ2IDUuNTIgMjAuMSA0Ljk3IDIxLjI0IDUuMDFDMjEuMjYgNC44MyAyMS4yMiA0LjY2IDIxLjEyIDQuNTJMMjAuMjMgMy42M0MyMC4yMSAzLjE4IDIwLjQyIDMuMDMgMjAuODUgMy4xNkMyMS4wOSAzLjM1IDIxLjMxIDMuNTUgMjEuNTEgMy43OEMyMi4yMiAyLjk5IDIzLjAxIDIuODkgMjMuOSAzLjQ2QzI0LjM0IDMuODggMjQuNTIgNC40IDI0LjQ0IDUuMDFDMjUuOTMgNS4wMyAyNi41NSA1Ljc3IDI2LjI5IDcuMjNDMjYuMjEgNy40IDI2LjEyIDcuNTcgMjYuMDIgNy43MkMyNi41NSA4LjMxIDI2Ljg5IDkgMjcuMDMgOS43OUMyNy4xMSAxNC4zOSAyNy4xMyAxOC45OCAyNy4wOCAyMy41OEMyNi44OSAyNS4xNiAyNi4wOCAyNi4yOSAyNC42NCAyNi45NUMyNC4zNSAyNy4wNSAyNC4wNSAyNy4xNSAyMy43NSAyNy4yMkg3LjJDNS44OSAyNi44OSA1LjE1IDI2LjA1IDQuOTYgMjQuNzFDNC45MyAxOS40NyA0LjkzIDE0LjI0IDQuOTYgOUM1LjI2IDcuMzggNi4yNCA2LjU0IDcuODkgNi40NkM5LjE1IDQuNjkgMTAuODcgMy44MiAxMy4wNiAzLjg1QzE0LjAyIDIuODQgMTUuMTkgMi4yMyAxNi41NiAyTDE2LjU0IDIuMDFaTTIyLjY1IDMuODhDMjMuMDQgMy44NSAyMy4zNSA0IDIzLjU2IDQuMzJDMjMuNjIgNC43MSAyMy42NSA1LjExIDIzLjY2IDUuNUMyMy42OCA1LjYyIDIzLjczIDUuNzEgMjMuODMgNS43N0MyNC4yNCA1Ljc3IDI0LjY1IDUuODEgMjUuMDYgNS44N0MyNS41NSA2LjEzIDI1LjY5IDYuNTIgMjUuNDggNy4wM0MyNS40MSA3LjE3IDI1LjMgNy4yOCAyNS4xNiA3LjM1QzI0Ljc3IDcuNDEgMjQuMzcgNy40NCAyMy45OCA3LjQ1QzIzLjg2IDcuNDcgMjMuNzcgNy41MiAyMy43MSA3LjYyTDIzLjU2IDguOTVDMjMuMjQgOS40MSAyMi44NCA5LjUgMjIuMzUgOS4yMkMyMi4yMiA5LjEyIDIyLjEzIDkgMjIuMDggOC44NUMyMi4wMiA4LjQ0IDIxLjk5IDguMDMgMjEuOTggNy42MkMyMS45MiA3LjUyIDIxLjgyIDcuNDYgMjEuNzEgNy40NUwyMC42MyA3LjRDMjAuMTcgNy4xNiAyMC4wMSA2Ljc5IDIwLjE2IDYuMjlDMjAuMyA2LjAyIDIwLjUyIDUuODYgMjAuODIgNS44MkwyMS44MSA1Ljc3QzIxLjgxIDUuNzcgMjEuOSA1LjczIDIxLjkzIDUuN0MyMS45OCA1LjI4IDIyLjAzIDQuODUgMjIuMDggNC40MkMyMi4yIDQuMTYgMjIuMzkgMy45OCAyMi42NSAzLjg4Wk0xMi4xNiA0LjY3QzE0LjU3IDQuNTggMTYuMjggNS42MSAxNy4zMSA3Ljc3QzE3Ljc1IDguODkgMTcuNzkgMTAuMDIgMTcuNDMgMTEuMTdDMTYuNTkgMTEuMjMgMTUuNzYgMTEuMjQgMTQuOTIgMTEuMTlDMTUuNDggMTAuNTEgMTUuNDQgOS44NyAxNC44MiA5LjI3QzE0LjU2IDkuMTQgMTQuMjggOS4wOCAxMy45OCA5LjFDMTQgOC4xNSAxMy45OCA3LjE5IDEzLjkxIDYuMjRDMTMuNyA1LjgzIDEzLjM2IDUuNjYgMTIuOSA1LjcyQzEyLjczIDUuNzUgMTIuNTkgNS44MSAxMi40NiA1LjkyQzExLjc0IDYuODQgMTEuMDMgNy43NyAxMC4zMiA4LjdDMTAuMDQgOS4xNSAxMC4wMyA5LjYxIDEwLjI3IDEwLjA4QzEwLjQyIDEwLjI4IDEwLjYxIDEwLjQyIDEwLjg0IDEwLjVDMTEuMTggMTAuNTIgMTEuNTMgMTAuNTMgMTEuODcgMTAuNTJWMTEuMjFDMTAuNTcgMTEuMjMgOS4yOCAxMS4yMSA3Ljk4IDExLjE2QzcuNCA5LjA2IDcuOSA3LjI4IDkuNTEgNS44MkMxMC4zIDUuMiAxMS4xOSA0LjgyIDEyLjE3IDQuNjZMMTIuMTYgNC42N1pNMTIuOTkgNi40OUMxMy4wNiA2LjQ5IDEzLjEyIDYuNTIgMTMuMTYgNi41OUwxMy4yMSA5LjY0QzEzLjI1IDkuNzMgMTMuMzEgOS44IDEzLjM4IDkuODZMMTQuMjcgOS45MUMxNC40OSA5Ljk5IDE0LjU3IDEwLjE1IDE0LjQ5IDEwLjM4QzE0LjMxIDEwLjY2IDE0LjEyIDEwLjkzIDEzLjkyIDExLjE5QzEzLjQ5IDExLjIxIDEzLjA3IDExLjIyIDEyLjY0IDExLjIxQzEyLjY0IDEwLjggMTIuNjQgMTAuMzkgMTIuNjIgOS45OEMxMi41OCA5LjkxIDEyLjUyIDkuODUgMTIuNDUgOS44MUwxMS4xNyA5Ljc2QzEwLjg3IDkuNjYgMTAuOCA5LjQ3IDEwLjk1IDkuMTlDMTEuNjUgOC4zIDEyLjM0IDcuNCAxMi45OSA2LjQ4VjYuNDlaTTcuMTggNy4zM0g3LjM4QzYuOSA4LjU2IDYuODEgOS44MiA3LjEzIDExLjFDNi41NCAxMC45NyA2LjEyIDEwLjYxIDUuODcgMTAuMDRDNS41MSA4Ljc1IDUuOTUgNy44NSA3LjE4IDcuMzNaTTI1LjE2IDguMTZDMjUuMjEgOC4xNiAyNS4yNiA4LjE2IDI1LjMxIDguMThDMjUuODYgOC43NSAyNi4xOCA5LjQzIDI2LjI3IDEwLjIyQzI2LjMgMTEuMDkgMjYuMyAxMS45NiAyNi4yNyAxMi44M0MyNS42NCAxMS45NyAyNC44IDExLjQ1IDIzLjczIDExLjI4QzIzLjEyIDExLjIzIDIyLjUyIDExLjIgMjEuOTEgMTEuMThDMjIuMTcgMTAuODcgMjIuMzkgMTAuNTIgMjIuNTUgMTAuMTVDMjMuODYgMTAuMTcgMjQuNDkgOS41MyAyNC40MiA4LjJDMjQuNjggOC4yMiAyNC45MiA4LjIgMjUuMTYgOC4xNVY4LjE2Wk01LjcgMTEuMjJDNi4xMSAxMS42MiA2LjYxIDExLjg3IDcuMTggMTEuOThMMjMuMjQgMTIuMDNDMjQuNjYgMTIuMTYgMjUuNjIgMTIuOSAyNi4xMiAxNC4yMkMyNi4xOSAxNC40NiAyNi4yNCAxNC43MSAyNi4yNyAxNC45NkMyNi4zIDE3LjgyIDI2LjMgMjAuNjcgMjYuMjcgMjMuNTNDMjYuMDYgMjQuOTcgMjUuMjcgMjUuOTEgMjMuODggMjYuMzZDMjMuNjQgMjYuNDEgMjMuMzkgMjYuNDQgMjMuMTQgMjYuNDZDMjEuODggMjYuNDggMjAuNjEgMjYuNDkgMTkuMzUgMjYuNDhDMTkuMzUgMjUuMTUgMTkuMzUgMjMuODIgMTkuMzcgMjIuNDlMMjAuOTIgMjAuOTRDMjIuMzQgMjAuOSAyMy4wMSAyMC4xNiAyMi45MSAxOC43NUMyMi42NyAxNy44NyAyMi4xIDE3LjQxIDIxLjE5IDE3LjM3QzE5Ljk5IDE3LjQ5IDE5LjM4IDE4LjE3IDE5LjM3IDE5LjM5TDE3LjQ1IDIxLjMxQzE3LjM3IDIxLjQyIDE3LjMxIDIxLjUzIDE3LjI1IDIxLjY1QzE3LjE4IDIzLjI2IDE3LjE1IDI0Ljg3IDE3LjE4IDI2LjQ4SDE2Ljc0QzE2Ljc0IDI0LjIgMTYuNzQgMjEuOTIgMTYuNzIgMTkuNjNDMTYuNjggMTkuNTEgMTYuNjMgMTkuMzkgMTYuNTcgMTkuMjlMMTUuNDQgMTguMTZDMTUuNDQgMTYuOTMgMTQuODMgMTYuMjQgMTMuNjIgMTYuMDlDMTIuMzMgMTYuMjYgMTEuNzUgMTcgMTEuOSAxOC4zMUMxMi4yMSAxOS4yNCAxMi44NiAxOS42OSAxMy44NSAxOS42NkwxNC41NiAyMC4zN0MxNC41NiAyMC42NyAxNC42IDIwLjk3IDE0LjY2IDIxLjI2QzE0LjkxIDIxLjQ3IDE1LjE0IDIxLjQ1IDE1LjM1IDIxLjIxQzE1LjM4IDIwLjgyIDE1LjM4IDIwLjQyIDE1LjM1IDIwLjAzQzE1LjE1IDE5Ljc4IDE0LjkyIDE5LjU0IDE0LjY5IDE5LjMyQzE0Ljg0IDE5LjIyIDE0Ljk4IDE5LjEgMTUuMDggMTguOTVDMTUuMzggMTkuMjIgMTUuNjYgMTkuNSAxNS45NCAxOS43OUMxNS45NiAyMi4wMiAxNS45NyAyNC4yNiAxNS45NiAyNi40OUgxNS4zN0MxNS4zNyAyNS4xMSAxNS4zNyAyMy43MyAxNS4zNSAyMi4zNUMxNS4yIDIyLjEgMTUgMjIuMDQgMTQuNzMgMjIuMThDMTQuNjggMjIuMjUgMTQuNjQgMjIuMzIgMTQuNjEgMjIuNEMxNC41OSAyMy43NiAxNC41OCAyNS4xMyAxNC41OSAyNi40OUgxNC4xNUMxNC4xNSAyNS41IDE0LjE1IDI0LjUyIDE0LjEzIDIzLjUzQzE0LjExIDIzLjQ0IDE0LjA3IDIzLjM2IDE0LjAzIDIzLjI4QzEzLjM2IDIyLjU2IDEyLjY3IDIxLjg1IDExLjk2IDIxLjE2QzExLjkgMTkuNjggMTEuMTQgMTkuMDMgOS42NyAxOS4yMUM4LjY1IDE5LjYyIDguMjUgMjAuMzcgOC40NiAyMS40NUM4LjggMjIuMzMgOS40NSAyMi43NSAxMC40MSAyMi43MUwxMS45NiAyNC4yNkMxMS45OCAyNSAxMS45OSAyNS43NCAxMS45OCAyNi40OEMxMC40MiAyNi41IDguODYgMjYuNDggNy4zIDI2LjQxQzYuNCAyNi4xNyA1Ljg4IDI1LjU4IDUuNzUgMjQuNjZDNS43MyAyMC4xOCA1LjcyIDE1LjcgNS43MyAxMS4yMUw1LjcgMTEuMjJaTTEzLjQ5IDE2Ljg4QzE0LjMzIDE2Ljk0IDE0LjY4IDE3LjM4IDE0LjU1IDE4LjIxQzE0LjIzIDE4LjgzIDEzLjc1IDE5IDEzLjEgMTguNzNDMTIuNjQgMTguMzYgMTIuNTQgMTcuOTEgMTIuNzggMTcuMzhDMTIuOTYgMTcuMTIgMTMuMiAxNi45NiAxMy40OSAxNi44OVYxNi44OFpNMjAuOTIgMTguMTZDMjEuODEgMTguMTMgMjIuMjEgMTguNTYgMjIuMTMgMTkuNDRDMjEuOCAyMC4xMSAyMS4zIDIwLjI5IDIwLjYzIDE5Ljk2QzIwLjA5IDE5LjQ3IDIwLjA1IDE4Ljk2IDIwLjUzIDE4LjQxQzIwLjY1IDE4LjMgMjAuNzggMTguMjIgMjAuOTIgMTguMTZaTTkuOTQgMTkuOTRDMTAuNzggMTkuOTQgMTEuMTYgMjAuMzQgMTEuMSAyMS4xN0MxMC44MiAyMS44NSAxMC4zNCAyMi4wNiA5LjY1IDIxLjc5QzkuMDIgMjEuMjUgOSAyMC43IDkuNiAyMC4xMkw5Ljk0IDE5Ljk1VjE5Ljk0Wk0xOS42OSAyMC4xOEMxOS44NSAyMC4zMSAxOS45OSAyMC40NSAyMC4xMyAyMC42QzE5LjYgMjEuMTIgMTkuMDggMjEuNjUgMTguNTggMjIuMkMxOC41NiAyMy42MyAxOC41NSAyNS4wNiAxOC41NiAyNi40OEgxNy45N0MxNy45NyAyNC45NyAxNy45NyAyMy40NiAxNy45OSAyMS45NUMxOC41NSAyMS4zNSAxOS4xMSAyMC43NiAxOS42OSAyMC4xOFpNMTEuNTYgMjJDMTIuMTggMjIuNTMgMTIuNzcgMjMuMTEgMTMuMzEgMjMuNzJDMTMuMzMgMjQuNjQgMTMuMzQgMjUuNTYgMTMuMzMgMjYuNDhIMTIuNzRDMTIuNzQgMjUuNjMgMTIuNzQgMjQuNzcgMTIuNzIgMjMuOTJMMTEuMjQgMjIuNDRDMTEuMjQgMjIuNDQgMTEuMjEgMjIuMzcgMTEuMjQgMjIuMzRDMTEuMzYgMjIuMjMgMTEuNDYgMjIuMTIgMTEuNTYgMjJaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4=' as Wallet['icon'],\n name: 'Impersonated Connector',\n version: '1.0.0' as Wallet['version'],\n };\n}\n\nexport function registerImpersonated() {\n registerWallet({ ...impersonatedConnector() });\n}\n","import {\n createDefaultAuthorizationCache,\n createDefaultChainSelector,\n createDefaultWalletNotFoundHandler,\n registerMwa,\n} from '@solana-mobile/wallet-standard-mobile';\nimport { SolanaRPCUrls } from '@tuwaio/orbit-solana';\nimport { ConnectorsInitProps } from '@tuwaio/satellite-core';\n\n/**\n * Combined props for initializing Solana mobile connectors\n */\ntype InitializeSolanaMobileConnectorsProps = ConnectorsInitProps & SolanaRPCUrls;\n\n/**\n * Initializes Solana Mobile Wallet Adapter (MWA) for mobile wallet connections\n *\n * @remarks\n * This function sets up the Solana Mobile Wallet Adapter with appropriate configuration\n * for secure mobile wallet connections. It includes security checks and chain validation.\n * Only works in secure contexts (HTTPS) and requires at least one valid chain configuration.\n *\n * @param props - Combined initialization properties\n * @param props.rpcUrls - RPC endpoints for different Solana networks\n * @param props.appName - Application name to display in wallet\n * @param props.appUrl - Application URL\n * @param props.appLogoUrl - Application logo URL\n *\n * @example\n * ```typescript\n * initializeSolanaMobileConnectors({\n * rpcUrls: {\n * mainnet: 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com'\n * },\n * appName: 'My Solana App',\n * appUrl: 'https://myapp.com',\n * appLogoUrl: 'https://myapp.com/logo.png'\n * });\n * ```\n *\n * @throws {Warning} If not in secure context (non-HTTPS)\n * @throws {Warning} If no chains are configured\n */\nexport function initializeSolanaMobileConnectors({ rpcUrls, ...props }: InitializeSolanaMobileConnectorsProps): void {\n // Only run in browser environment\n if (typeof window === 'undefined') {\n return;\n }\n // Ensure secure context (HTTPS)\n if (!window.isSecureContext) {\n console.warn('Solana Mobile Connectors not loaded: https connection required');\n return;\n }\n\n // Generate chain identifiers\n const chains = Object.keys(rpcUrls).map((key) => `solana:${key}` as `solana:${string}`);\n\n // Validate chain configuration\n if (chains.length === 0) {\n console.warn('Solana Mobile Connectors not loaded: no chains provided');\n return;\n }\n\n // Register Mobile Wallet Adapter\n registerMwa({\n appIdentity: {\n uri: props?.appUrl,\n icon: props?.appLogoUrl,\n name: props?.appName,\n },\n authorizationCache: createDefaultAuthorizationCache(),\n chains,\n chainSelector: createDefaultChainSelector(),\n onWalletNotFound: createDefaultWalletNotFoundHandler(),\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/satellite-solana",
|
|
3
|
-
"version": "1.0.0-fix-test-alpha.
|
|
3
|
+
"version": "1.0.0-fix-test-alpha.35.fe44df5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -67,9 +67,9 @@
|
|
|
67
67
|
"typescript": "^5.9.2",
|
|
68
68
|
"vitest": "^3.2.4",
|
|
69
69
|
"zustand": "^5.0.8",
|
|
70
|
-
"@tuwaio/orbit-
|
|
71
|
-
"@tuwaio/
|
|
72
|
-
"@tuwaio/
|
|
70
|
+
"@tuwaio/orbit-solana": "^1.0.0-fix-test-alpha.35.fe44df5",
|
|
71
|
+
"@tuwaio/orbit-core": "^1.0.0-fix-test-alpha.35.fe44df5",
|
|
72
|
+
"@tuwaio/satellite-core": "^1.0.0-fix-test-alpha.35.fe44df5"
|
|
73
73
|
},
|
|
74
74
|
"scripts": {
|
|
75
75
|
"start": "tsup src/index.ts --watch",
|