@tuwaio/nova-connect 1.0.0-fix-indep-alpha.8.549f0ed → 1.0.0-fix-indep-alpha.10.b9c2592
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/{ToastError-C3LvnSma.d.cts → ToastError-BF4F8oo-.d.cts} +6 -12
- package/dist/{ToastError-CVhCoryf.d.ts → ToastError-Bw3Amqzv.d.ts} +6 -12
- package/dist/chunk-H2RLZRJ4.js +2 -0
- package/dist/chunk-H2RLZRJ4.js.map +1 -0
- package/dist/chunk-NHKYALBZ.cjs +6 -0
- package/dist/chunk-NHKYALBZ.cjs.map +1 -0
- package/dist/chunk-QGCEN6MP.js +2 -0
- package/dist/chunk-QGCEN6MP.js.map +1 -0
- package/dist/chunk-RARO6QP2.js +6 -0
- package/dist/chunk-RARO6QP2.js.map +1 -0
- package/dist/chunk-WSHZWOWS.cjs +2 -0
- package/dist/chunk-WSHZWOWS.cjs.map +1 -0
- package/dist/chunk-YIZJUEA3.cjs +2 -0
- package/dist/chunk-YIZJUEA3.cjs.map +1 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +2 -3
- package/dist/components/index.d.ts +2 -3
- package/dist/components/index.js +1 -1
- package/dist/evm/index.cjs +1 -1
- package/dist/evm/index.cjs.map +1 -1
- package/dist/evm/index.d.cts +3 -25
- package/dist/evm/index.d.ts +3 -25
- package/dist/evm/index.js +1 -1
- package/dist/evm/index.js.map +1 -1
- package/dist/evm-4RL5ZQMP.cjs +2 -0
- package/dist/evm-4RL5ZQMP.cjs.map +1 -0
- package/dist/evm-BHPO7QCV.js +2 -0
- package/dist/evm-BHPO7QCV.js.map +1 -0
- package/dist/{getChainsListByConnectorType-TP2GS4LA.js → getChainsListByConnectorType-B3BLNZZH.js} +2 -2
- package/dist/{getChainsListByConnectorType-TP2GS4LA.js.map → getChainsListByConnectorType-B3BLNZZH.js.map} +1 -1
- package/dist/getChainsListByConnectorType-BXIDPPGC.cjs +2 -0
- package/dist/{getChainsListByConnectorType-LXHMQP2F.cjs.map → getChainsListByConnectorType-BXIDPPGC.cjs.map} +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -25
- package/dist/index.d.ts +8 -25
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/solana/index.cjs +1 -1
- package/dist/solana/index.cjs.map +1 -1
- package/dist/solana/index.d.cts +1 -27
- package/dist/solana/index.d.ts +1 -27
- package/dist/solana/index.js +1 -1
- package/dist/solana/index.js.map +1 -1
- package/dist/solana-6OCXX47U.js +2 -0
- package/dist/solana-6OCXX47U.js.map +1 -0
- package/dist/solana-CQFZWAY7.cjs +2 -0
- package/dist/solana-CQFZWAY7.cjs.map +1 -0
- package/dist/{useWalletNativeBalance-Cv8QQLQv.d.ts → useWalletNativeBalance-B4hY45fG.d.ts} +40 -2
- package/dist/{useWalletNativeBalance-D49yGzRi.d.cts → useWalletNativeBalance-BvBbDXMS.d.cts} +40 -2
- package/package.json +14 -14
- package/dist/chunk-4GK7WPFO.cjs +0 -3
- package/dist/chunk-4GK7WPFO.cjs.map +0 -1
- package/dist/chunk-4WDAZUTQ.js +0 -2
- package/dist/chunk-4WDAZUTQ.js.map +0 -1
- package/dist/chunk-5IDUDP5Y.js +0 -3
- package/dist/chunk-5IDUDP5Y.js.map +0 -1
- package/dist/chunk-L7YY2MZS.cjs +0 -2
- package/dist/chunk-L7YY2MZS.cjs.map +0 -1
- package/dist/chunk-QSUO4QWD.js +0 -6
- package/dist/chunk-QSUO4QWD.js.map +0 -1
- package/dist/chunk-RZ4TMXW5.cjs +0 -6
- package/dist/chunk-RZ4TMXW5.cjs.map +0 -1
- package/dist/evm-3XUGTMPL.cjs +0 -2
- package/dist/evm-3XUGTMPL.cjs.map +0 -1
- package/dist/evm-5RQC7QOS.js +0 -2
- package/dist/evm-5RQC7QOS.js.map +0 -1
- package/dist/getChainsListByConnectorType-LXHMQP2F.cjs +0 -2
- package/dist/solana-H5F4APJH.cjs +0 -2
- package/dist/solana-H5F4APJH.cjs.map +0 -1
- package/dist/solana-TKICEEDG.js +0 -2
- package/dist/solana-TKICEEDG.js.map +0 -1
- package/dist/types-DGsiEwne.d.cts +0 -50
- package/dist/types-DGsiEwne.d.ts +0 -50
package/dist/solana/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var solana=require('@tuwaio/satellite-react/solana');
|
|
1
|
+
'use strict';var solana=require('@tuwaio/satellite-react/solana');async function t(){try{let a=await new Function('return import("@tuwaio/satellite-react/solana").catch(error => { console.warn("Failed to load Solana exports:", error); return null; })')();if(!a)return {available:!1,error:"Failed to load Solana exports"};let r=a.SolanaConnectorsWatcher;return {...a,available:!0,SolanaConnectorsWatcher:r}}catch(o){return console.warn("Failed to load Solana exports:",o),{available:false,error:o instanceof Error?o.message:"Unknown error loading Solana exports"}}}Object.defineProperty(exports,"SolanaConnectorsWatcher",{enumerable:true,get:function(){return solana.SolanaConnectorsWatcher}});exports.getSolanaExports=t;//# sourceMappingURL=index.cjs.map
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/solana/utils.ts","../../src/solana/index.ts"],"names":["defaultRpcUrlsByMoniker","initializeSolanaUtils","orbitSolana","error","extractSolanaCluster","chainId","parts","cluster","moniker","buildSolanaRpcUrls","chains","solanaRPCUrls","availableRpcUrls","allowedClusters","rpcUrl","getSolanaClusters","isSolanaChainList","chain","getAvailableSolanaClusters","isValidSolanaCluster","getSolanaExports","satelliteReactSolana","actualSolanaConnectorsWatcher"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { SolanaClusterMoniker } from 'gill';\n\nimport { ChainIdentifierArray } from '../index';\n\n// Use a local type definition to avoid direct imports\ntype SolanaRPCUrlsType = {\n rpcUrls: Partial<Record<string, string>>;\n};\n\n// Default values that will be populated at runtime if the package is available\nlet defaultRpcUrlsByMoniker: Record<string, string> = {};\n\n/**\n * Initializes Solana utilities by dynamically loading dependencies.\n * This function should be called before using any Solana-specific functionality.\n *\n * @returns Promise resolving to true if initialization was successful\n */\nexport async function initializeSolanaUtils(): Promise<boolean> {\n try {\n // Only try to load if not already initialized\n if (Object.keys(defaultRpcUrlsByMoniker).length === 0) {\n // Use a more indirect approach to prevent bundlers from resolving imports at build time\n // This creates a function that will be called at runtime\n const importSolanaModule = new Function(\n 'return import(\"@tuwaio/orbit-solana\").catch(error => { console.warn(\"Failed to load Solana dependencies:\", error); return null; })',\n );\n\n const orbitSolana = await importSolanaModule();\n\n if (!orbitSolana) {\n return false;\n }\n\n // Populate default values\n defaultRpcUrlsByMoniker = orbitSolana.defaultRpcUrlsByMoniker;\n }\n return true;\n } catch (error) {\n console.warn('Failed to initialize Solana utilities:', error);\n return false;\n }\n}\n\n/**\n * Extracts Solana cluster from chain identifier\n */\nfunction extractSolanaCluster(chainId: string): SolanaClusterMoniker | null {\n const parts = chainId.split(':');\n if (parts.length < 2) return null;\n\n let cluster = parts[1];\n // Map mainnet-beta to mainnet to match orbit-solana keys\n if (cluster === 'mainnet-beta') {\n cluster = 'mainnet';\n }\n\n const moniker = cluster as SolanaClusterMoniker;\n // Validate that it's a known cluster\n return moniker in defaultRpcUrlsByMoniker ? moniker : null;\n}\n\n/**\n * Builds available Solana RPC URLs from chain identifiers\n */\nfunction buildSolanaRpcUrls(\n chains: ChainIdentifierArray,\n solanaRPCUrls?: SolanaRPCUrlsType['rpcUrls'],\n): SolanaRPCUrlsType['rpcUrls'] {\n const availableRpcUrls: SolanaRPCUrlsType['rpcUrls'] = {};\n\n // If config is provided, we only consider clusters defined in it.\n // If not provided, we consider all default clusters.\n const allowedClusters = solanaRPCUrls ? Object.keys(solanaRPCUrls) : Object.keys(defaultRpcUrlsByMoniker);\n\n for (const chainId of chains) {\n if (typeof chainId !== 'string') continue;\n\n const cluster = extractSolanaCluster(chainId);\n if (!cluster) continue;\n\n // Check if this cluster is allowed by app config\n if (!allowedClusters.includes(cluster)) continue;\n\n // Get RPC URL with fallback to default\n const rpcUrl = solanaRPCUrls?.[cluster] ?? defaultRpcUrlsByMoniker[cluster];\n\n if (rpcUrl) {\n availableRpcUrls[cluster] = rpcUrl;\n }\n }\n\n return availableRpcUrls;\n}\n\n/**\n * Get Solana clusters from configuration\n */\nexport async function getSolanaClusters(\n solanaRPCUrls?: Partial<Record<SolanaClusterMoniker, string>>,\n chains?: ChainIdentifierArray,\n): Promise<string[]> {\n // Initialize Solana utilities first\n await initializeSolanaUtils();\n\n if (chains && chains.length > 0) {\n // For Solana, build RPC URLs and return cluster names\n const availableRpcUrls = buildSolanaRpcUrls(chains, solanaRPCUrls);\n return Object.keys(availableRpcUrls);\n }\n\n // Return configured clusters or defaults\n return Object.keys(solanaRPCUrls || defaultRpcUrlsByMoniker);\n}\n\n/**\n * Type guard to check if a chain list contains Solana cluster names\n */\nexport function isSolanaChainList(chains: (string | number)[]): chains is string[] {\n return chains.length > 0 && chains.every((chain) => typeof chain === 'string');\n}\n\n/**\n * Gets available Solana clusters from the default configuration\n */\nexport async function getAvailableSolanaClusters(): Promise<SolanaClusterMoniker[]> {\n // Initialize Solana utilities first\n await initializeSolanaUtils();\n return Object.keys(defaultRpcUrlsByMoniker) as SolanaClusterMoniker[];\n}\n\n/**\n * Validates if a string is a valid Solana cluster moniker\n */\nexport async function isValidSolanaCluster(cluster: string): Promise<boolean> {\n // Initialize Solana utilities first\n await initializeSolanaUtils();\n return cluster in defaultRpcUrlsByMoniker;\n}\n","// Export utils with dynamic initialization\nexport * from './utils';\n\n// Export types only, not implementations\nexport type { SolanaClusterMoniker } from 'gill';\n\n// Import types from satellite-react/solana\nimport { OrbitAdapter } from '@tuwaio/orbit-core';\nimport { SolanaConnectorsWatcher } from '@tuwaio/satellite-react/solana';\nimport { ConnectorSolana, SolanaConnection } from '@tuwaio/satellite-solana';\n\n// Re-export the types\nexport type { ConnectorSolana, SolanaConnection };\n\n// Re-export the component\nexport { SolanaConnectorsWatcher };\n\n// Dynamic exports that will be loaded at runtime\nexport async function getSolanaExports() {\n try {\n // Use a more indirect approach to prevent bundlers from resolving imports at build time\n // This creates a function that will be called at runtime\n const importSolanaModule = new Function(\n 'return import(\"@tuwaio/satellite-react/solana\").catch(error => { console.warn(\"Failed to load Solana exports:\", error); return null; })',\n );\n\n const satelliteReactSolana = await importSolanaModule();\n\n if (!satelliteReactSolana) {\n return {\n available: false,\n error: 'Failed to load Solana exports',\n };\n }\n\n // Instead of trying to modify exports directly, we'll return the actual component\n // implementation and let the consumer handle the assignment\n const actualSolanaConnectorsWatcher = satelliteReactSolana.SolanaConnectorsWatcher;\n\n return {\n ...satelliteReactSolana,\n available: true,\n SolanaConnectorsWatcher: actualSolanaConnectorsWatcher,\n };\n } catch (error) {\n console.warn('Failed to load Solana exports:', error);\n return {\n available: false,\n error: error instanceof Error ? error.message : 'Unknown error loading Solana exports',\n };\n }\n}\n\n// Extend the main interface with Solana-specific config\n// This will override the default `any` type with specific SolanaClusterMoniker typing\n// eslint-disable-next-line\n// @ts-ignore - Need for declaration merging\ndeclare module '@tuwaio/nova-connect' {\n interface AllChainConfigs {\n /**\n * Solana RPC URLs configuration - enhanced from default any type\n * @override Replaces default `any` with specific SolanaClusterMoniker typing when gill is available\n */\n // eslint-disable-next-line\n // @ts-ignore - Need for declaration merging\n solanaRPCUrls?: Partial<Record<SolanaClusterMoniker, string>>;\n }\n}\n\n// Extend the satellite-react interfaces with Solana-specific types\n// eslint-disable-next-line\n// @ts-ignore - Need for declaration merging\ndeclare module '@tuwaio/satellite-react' {\n export interface AllConnections {\n [OrbitAdapter.SOLANA]: SolanaConnection;\n }\n export interface AllConnectors {\n [OrbitAdapter.SOLANA]: ConnectorSolana;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/solana/index.ts"],"names":["getSolanaExports","satelliteReactSolana","actualSolanaConnectorsWatcher","error"],"mappings":"kEAeA,eAAsBA,CAAAA,EAAmB,CACvC,GAAI,CAOF,IAAMC,CAAAA,CAAuB,MAJF,IAAI,QAAA,CAC7B,yIACF,CAAA,EAEsD,CAEtD,GAAI,CAACA,CAAAA,CACH,OAAO,CACL,SAAA,CAAW,CAAA,CAAA,CACX,KAAA,CAAO,+BACT,CAAA,CAKF,IAAMC,CAAAA,CAAgCD,EAAqB,uBAAA,CAE3D,OAAO,CACL,GAAGA,CAAAA,CACH,SAAA,CAAW,CAAA,CAAA,CACX,uBAAA,CAAyBC,CAC3B,CACF,CAAA,MAASC,CAAAA,CAAO,CACd,OAAA,OAAA,CAAQ,IAAA,CAAK,gCAAA,CAAkCA,CAAK,CAAA,CAC7C,CACL,SAAA,CAAW,KAAA,CACX,KAAA,CAAOA,CAAAA,YAAiB,KAAA,CAAQA,CAAAA,CAAM,OAAA,CAAU,sCAClD,CACF,CACF","file":"index.cjs","sourcesContent":["// Export types only, not implementations\nexport type { SolanaClusterMoniker } from 'gill';\n\n// Import types from satellite-react/solana\nimport { OrbitAdapter } from '@tuwaio/orbit-core';\nimport { SolanaConnectorsWatcher } from '@tuwaio/satellite-react/solana';\nimport { ConnectorSolana, SolanaConnection } from '@tuwaio/satellite-solana';\n\n// Re-export the types\nexport type { ConnectorSolana, SolanaConnection };\n\n// Re-export the component\nexport { SolanaConnectorsWatcher };\n\n// Dynamic exports that will be loaded at runtime\nexport async function getSolanaExports() {\n try {\n // Use a more indirect approach to prevent bundlers from resolving imports at build time\n // This creates a function that will be called at runtime\n const importSolanaModule = new Function(\n 'return import(\"@tuwaio/satellite-react/solana\").catch(error => { console.warn(\"Failed to load Solana exports:\", error); return null; })',\n );\n\n const satelliteReactSolana = await importSolanaModule();\n\n if (!satelliteReactSolana) {\n return {\n available: false,\n error: 'Failed to load Solana exports',\n };\n }\n\n // Instead of trying to modify exports directly, we'll return the actual component\n // implementation and let the consumer handle the assignment\n const actualSolanaConnectorsWatcher = satelliteReactSolana.SolanaConnectorsWatcher;\n\n return {\n ...satelliteReactSolana,\n available: true,\n SolanaConnectorsWatcher: actualSolanaConnectorsWatcher,\n };\n } catch (error) {\n console.warn('Failed to load Solana exports:', error);\n return {\n available: false,\n error: error instanceof Error ? error.message : 'Unknown error loading Solana exports',\n };\n }\n}\n\n// Extend the main interface with Solana-specific config\n// This will override the default `any` type with specific SolanaClusterMoniker typing\n// eslint-disable-next-line\n// @ts-ignore - Need for declaration merging\ndeclare module '@tuwaio/nova-connect' {\n interface AllChainConfigs {\n /**\n * Solana RPC URLs configuration - enhanced from default any type\n * @override Replaces default `any` with specific SolanaClusterMoniker typing when gill is available\n */\n // eslint-disable-next-line\n // @ts-ignore - Need for declaration merging\n solanaRPCUrls?: Partial<Record<SolanaClusterMoniker, string>>;\n }\n}\n\n// Extend the satellite-react interfaces with Solana-specific types\n// eslint-disable-next-line\n// @ts-ignore - Need for declaration merging\ndeclare module '@tuwaio/satellite-react' {\n export interface AllConnections {\n [OrbitAdapter.SOLANA]: SolanaConnection;\n }\n export interface AllConnectors {\n [OrbitAdapter.SOLANA]: ConnectorSolana;\n }\n}\n"]}
|
package/dist/solana/index.d.cts
CHANGED
|
@@ -1,35 +1,9 @@
|
|
|
1
|
-
import { SolanaClusterMoniker as SolanaClusterMoniker$1 } from 'gill';
|
|
2
1
|
export { SolanaClusterMoniker } from 'gill';
|
|
3
|
-
import { C as ChainIdentifierArray } from '../types-DGsiEwne.cjs';
|
|
4
2
|
import { OrbitAdapter } from '@tuwaio/orbit-core';
|
|
5
3
|
export { SolanaConnectorsWatcher } from '@tuwaio/satellite-react/solana';
|
|
6
4
|
import { SolanaConnection, ConnectorSolana } from '@tuwaio/satellite-solana';
|
|
7
5
|
export { ConnectorSolana, SolanaConnection } from '@tuwaio/satellite-solana';
|
|
8
6
|
|
|
9
|
-
/**
|
|
10
|
-
* Initializes Solana utilities by dynamically loading dependencies.
|
|
11
|
-
* This function should be called before using any Solana-specific functionality.
|
|
12
|
-
*
|
|
13
|
-
* @returns Promise resolving to true if initialization was successful
|
|
14
|
-
*/
|
|
15
|
-
declare function initializeSolanaUtils(): Promise<boolean>;
|
|
16
|
-
/**
|
|
17
|
-
* Get Solana clusters from configuration
|
|
18
|
-
*/
|
|
19
|
-
declare function getSolanaClusters(solanaRPCUrls?: Partial<Record<SolanaClusterMoniker$1, string>>, chains?: ChainIdentifierArray): Promise<string[]>;
|
|
20
|
-
/**
|
|
21
|
-
* Type guard to check if a chain list contains Solana cluster names
|
|
22
|
-
*/
|
|
23
|
-
declare function isSolanaChainList(chains: (string | number)[]): chains is string[];
|
|
24
|
-
/**
|
|
25
|
-
* Gets available Solana clusters from the default configuration
|
|
26
|
-
*/
|
|
27
|
-
declare function getAvailableSolanaClusters(): Promise<SolanaClusterMoniker$1[]>;
|
|
28
|
-
/**
|
|
29
|
-
* Validates if a string is a valid Solana cluster moniker
|
|
30
|
-
*/
|
|
31
|
-
declare function isValidSolanaCluster(cluster: string): Promise<boolean>;
|
|
32
|
-
|
|
33
7
|
declare function getSolanaExports(): Promise<any>;
|
|
34
8
|
declare module '@tuwaio/nova-connect' {
|
|
35
9
|
interface AllChainConfigs {
|
|
@@ -49,4 +23,4 @@ declare module '@tuwaio/satellite-react' {
|
|
|
49
23
|
}
|
|
50
24
|
}
|
|
51
25
|
|
|
52
|
-
export {
|
|
26
|
+
export { getSolanaExports };
|
package/dist/solana/index.d.ts
CHANGED
|
@@ -1,35 +1,9 @@
|
|
|
1
|
-
import { SolanaClusterMoniker as SolanaClusterMoniker$1 } from 'gill';
|
|
2
1
|
export { SolanaClusterMoniker } from 'gill';
|
|
3
|
-
import { C as ChainIdentifierArray } from '../types-DGsiEwne.js';
|
|
4
2
|
import { OrbitAdapter } from '@tuwaio/orbit-core';
|
|
5
3
|
export { SolanaConnectorsWatcher } from '@tuwaio/satellite-react/solana';
|
|
6
4
|
import { SolanaConnection, ConnectorSolana } from '@tuwaio/satellite-solana';
|
|
7
5
|
export { ConnectorSolana, SolanaConnection } from '@tuwaio/satellite-solana';
|
|
8
6
|
|
|
9
|
-
/**
|
|
10
|
-
* Initializes Solana utilities by dynamically loading dependencies.
|
|
11
|
-
* This function should be called before using any Solana-specific functionality.
|
|
12
|
-
*
|
|
13
|
-
* @returns Promise resolving to true if initialization was successful
|
|
14
|
-
*/
|
|
15
|
-
declare function initializeSolanaUtils(): Promise<boolean>;
|
|
16
|
-
/**
|
|
17
|
-
* Get Solana clusters from configuration
|
|
18
|
-
*/
|
|
19
|
-
declare function getSolanaClusters(solanaRPCUrls?: Partial<Record<SolanaClusterMoniker$1, string>>, chains?: ChainIdentifierArray): Promise<string[]>;
|
|
20
|
-
/**
|
|
21
|
-
* Type guard to check if a chain list contains Solana cluster names
|
|
22
|
-
*/
|
|
23
|
-
declare function isSolanaChainList(chains: (string | number)[]): chains is string[];
|
|
24
|
-
/**
|
|
25
|
-
* Gets available Solana clusters from the default configuration
|
|
26
|
-
*/
|
|
27
|
-
declare function getAvailableSolanaClusters(): Promise<SolanaClusterMoniker$1[]>;
|
|
28
|
-
/**
|
|
29
|
-
* Validates if a string is a valid Solana cluster moniker
|
|
30
|
-
*/
|
|
31
|
-
declare function isValidSolanaCluster(cluster: string): Promise<boolean>;
|
|
32
|
-
|
|
33
7
|
declare function getSolanaExports(): Promise<any>;
|
|
34
8
|
declare module '@tuwaio/nova-connect' {
|
|
35
9
|
interface AllChainConfigs {
|
|
@@ -49,4 +23,4 @@ declare module '@tuwaio/satellite-react' {
|
|
|
49
23
|
}
|
|
50
24
|
}
|
|
51
25
|
|
|
52
|
-
export {
|
|
26
|
+
export { getSolanaExports };
|
package/dist/solana/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{SolanaConnectorsWatcher}from'@tuwaio/satellite-react/solana';
|
|
1
|
+
export{SolanaConnectorsWatcher}from'@tuwaio/satellite-react/solana';async function t(){try{let a=await new Function('return import("@tuwaio/satellite-react/solana").catch(error => { console.warn("Failed to load Solana exports:", error); return null; })')();if(!a)return {available:!1,error:"Failed to load Solana exports"};let r=a.SolanaConnectorsWatcher;return {...a,available:!0,SolanaConnectorsWatcher:r}}catch(o){return console.warn("Failed to load Solana exports:",o),{available:false,error:o instanceof Error?o.message:"Unknown error loading Solana exports"}}}export{t as getSolanaExports};//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/solana/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/solana/utils.ts","../../src/solana/index.ts"],"names":["defaultRpcUrlsByMoniker","initializeSolanaUtils","orbitSolana","error","extractSolanaCluster","chainId","parts","cluster","moniker","buildSolanaRpcUrls","chains","solanaRPCUrls","availableRpcUrls","allowedClusters","rpcUrl","getSolanaClusters","isSolanaChainList","chain","getAvailableSolanaClusters","isValidSolanaCluster","getSolanaExports","satelliteReactSolana","actualSolanaConnectorsWatcher"],"mappings":"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","file":"index.js","sourcesContent":["import type { SolanaClusterMoniker } from 'gill';\n\nimport { ChainIdentifierArray } from '../index';\n\n// Use a local type definition to avoid direct imports\ntype SolanaRPCUrlsType = {\n rpcUrls: Partial<Record<string, string>>;\n};\n\n// Default values that will be populated at runtime if the package is available\nlet defaultRpcUrlsByMoniker: Record<string, string> = {};\n\n/**\n * Initializes Solana utilities by dynamically loading dependencies.\n * This function should be called before using any Solana-specific functionality.\n *\n * @returns Promise resolving to true if initialization was successful\n */\nexport async function initializeSolanaUtils(): Promise<boolean> {\n try {\n // Only try to load if not already initialized\n if (Object.keys(defaultRpcUrlsByMoniker).length === 0) {\n // Use a more indirect approach to prevent bundlers from resolving imports at build time\n // This creates a function that will be called at runtime\n const importSolanaModule = new Function(\n 'return import(\"@tuwaio/orbit-solana\").catch(error => { console.warn(\"Failed to load Solana dependencies:\", error); return null; })',\n );\n\n const orbitSolana = await importSolanaModule();\n\n if (!orbitSolana) {\n return false;\n }\n\n // Populate default values\n defaultRpcUrlsByMoniker = orbitSolana.defaultRpcUrlsByMoniker;\n }\n return true;\n } catch (error) {\n console.warn('Failed to initialize Solana utilities:', error);\n return false;\n }\n}\n\n/**\n * Extracts Solana cluster from chain identifier\n */\nfunction extractSolanaCluster(chainId: string): SolanaClusterMoniker | null {\n const parts = chainId.split(':');\n if (parts.length < 2) return null;\n\n let cluster = parts[1];\n // Map mainnet-beta to mainnet to match orbit-solana keys\n if (cluster === 'mainnet-beta') {\n cluster = 'mainnet';\n }\n\n const moniker = cluster as SolanaClusterMoniker;\n // Validate that it's a known cluster\n return moniker in defaultRpcUrlsByMoniker ? moniker : null;\n}\n\n/**\n * Builds available Solana RPC URLs from chain identifiers\n */\nfunction buildSolanaRpcUrls(\n chains: ChainIdentifierArray,\n solanaRPCUrls?: SolanaRPCUrlsType['rpcUrls'],\n): SolanaRPCUrlsType['rpcUrls'] {\n const availableRpcUrls: SolanaRPCUrlsType['rpcUrls'] = {};\n\n // If config is provided, we only consider clusters defined in it.\n // If not provided, we consider all default clusters.\n const allowedClusters = solanaRPCUrls ? Object.keys(solanaRPCUrls) : Object.keys(defaultRpcUrlsByMoniker);\n\n for (const chainId of chains) {\n if (typeof chainId !== 'string') continue;\n\n const cluster = extractSolanaCluster(chainId);\n if (!cluster) continue;\n\n // Check if this cluster is allowed by app config\n if (!allowedClusters.includes(cluster)) continue;\n\n // Get RPC URL with fallback to default\n const rpcUrl = solanaRPCUrls?.[cluster] ?? defaultRpcUrlsByMoniker[cluster];\n\n if (rpcUrl) {\n availableRpcUrls[cluster] = rpcUrl;\n }\n }\n\n return availableRpcUrls;\n}\n\n/**\n * Get Solana clusters from configuration\n */\nexport async function getSolanaClusters(\n solanaRPCUrls?: Partial<Record<SolanaClusterMoniker, string>>,\n chains?: ChainIdentifierArray,\n): Promise<string[]> {\n // Initialize Solana utilities first\n await initializeSolanaUtils();\n\n if (chains && chains.length > 0) {\n // For Solana, build RPC URLs and return cluster names\n const availableRpcUrls = buildSolanaRpcUrls(chains, solanaRPCUrls);\n return Object.keys(availableRpcUrls);\n }\n\n // Return configured clusters or defaults\n return Object.keys(solanaRPCUrls || defaultRpcUrlsByMoniker);\n}\n\n/**\n * Type guard to check if a chain list contains Solana cluster names\n */\nexport function isSolanaChainList(chains: (string | number)[]): chains is string[] {\n return chains.length > 0 && chains.every((chain) => typeof chain === 'string');\n}\n\n/**\n * Gets available Solana clusters from the default configuration\n */\nexport async function getAvailableSolanaClusters(): Promise<SolanaClusterMoniker[]> {\n // Initialize Solana utilities first\n await initializeSolanaUtils();\n return Object.keys(defaultRpcUrlsByMoniker) as SolanaClusterMoniker[];\n}\n\n/**\n * Validates if a string is a valid Solana cluster moniker\n */\nexport async function isValidSolanaCluster(cluster: string): Promise<boolean> {\n // Initialize Solana utilities first\n await initializeSolanaUtils();\n return cluster in defaultRpcUrlsByMoniker;\n}\n","// Export utils with dynamic initialization\nexport * from './utils';\n\n// Export types only, not implementations\nexport type { SolanaClusterMoniker } from 'gill';\n\n// Import types from satellite-react/solana\nimport { OrbitAdapter } from '@tuwaio/orbit-core';\nimport { SolanaConnectorsWatcher } from '@tuwaio/satellite-react/solana';\nimport { ConnectorSolana, SolanaConnection } from '@tuwaio/satellite-solana';\n\n// Re-export the types\nexport type { ConnectorSolana, SolanaConnection };\n\n// Re-export the component\nexport { SolanaConnectorsWatcher };\n\n// Dynamic exports that will be loaded at runtime\nexport async function getSolanaExports() {\n try {\n // Use a more indirect approach to prevent bundlers from resolving imports at build time\n // This creates a function that will be called at runtime\n const importSolanaModule = new Function(\n 'return import(\"@tuwaio/satellite-react/solana\").catch(error => { console.warn(\"Failed to load Solana exports:\", error); return null; })',\n );\n\n const satelliteReactSolana = await importSolanaModule();\n\n if (!satelliteReactSolana) {\n return {\n available: false,\n error: 'Failed to load Solana exports',\n };\n }\n\n // Instead of trying to modify exports directly, we'll return the actual component\n // implementation and let the consumer handle the assignment\n const actualSolanaConnectorsWatcher = satelliteReactSolana.SolanaConnectorsWatcher;\n\n return {\n ...satelliteReactSolana,\n available: true,\n SolanaConnectorsWatcher: actualSolanaConnectorsWatcher,\n };\n } catch (error) {\n console.warn('Failed to load Solana exports:', error);\n return {\n available: false,\n error: error instanceof Error ? error.message : 'Unknown error loading Solana exports',\n };\n }\n}\n\n// Extend the main interface with Solana-specific config\n// This will override the default `any` type with specific SolanaClusterMoniker typing\n// eslint-disable-next-line\n// @ts-ignore - Need for declaration merging\ndeclare module '@tuwaio/nova-connect' {\n interface AllChainConfigs {\n /**\n * Solana RPC URLs configuration - enhanced from default any type\n * @override Replaces default `any` with specific SolanaClusterMoniker typing when gill is available\n */\n // eslint-disable-next-line\n // @ts-ignore - Need for declaration merging\n solanaRPCUrls?: Partial<Record<SolanaClusterMoniker, string>>;\n }\n}\n\n// Extend the satellite-react interfaces with Solana-specific types\n// eslint-disable-next-line\n// @ts-ignore - Need for declaration merging\ndeclare module '@tuwaio/satellite-react' {\n export interface AllConnections {\n [OrbitAdapter.SOLANA]: SolanaConnection;\n }\n export interface AllConnectors {\n [OrbitAdapter.SOLANA]: ConnectorSolana;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/solana/index.ts"],"names":["getSolanaExports","satelliteReactSolana","actualSolanaConnectorsWatcher","error"],"mappings":"oEAeA,eAAsBA,CAAAA,EAAmB,CACvC,GAAI,CAOF,IAAMC,CAAAA,CAAuB,MAJF,IAAI,QAAA,CAC7B,yIACF,CAAA,EAEsD,CAEtD,GAAI,CAACA,CAAAA,CACH,OAAO,CACL,SAAA,CAAW,CAAA,CAAA,CACX,KAAA,CAAO,+BACT,CAAA,CAKF,IAAMC,CAAAA,CAAgCD,EAAqB,uBAAA,CAE3D,OAAO,CACL,GAAGA,CAAAA,CACH,SAAA,CAAW,CAAA,CAAA,CACX,uBAAA,CAAyBC,CAC3B,CACF,CAAA,MAASC,CAAAA,CAAO,CACd,OAAA,OAAA,CAAQ,IAAA,CAAK,gCAAA,CAAkCA,CAAK,CAAA,CAC7C,CACL,SAAA,CAAW,KAAA,CACX,KAAA,CAAOA,CAAAA,YAAiB,KAAA,CAAQA,CAAAA,CAAM,OAAA,CAAU,sCAClD,CACF,CACF","file":"index.js","sourcesContent":["// Export types only, not implementations\nexport type { SolanaClusterMoniker } from 'gill';\n\n// Import types from satellite-react/solana\nimport { OrbitAdapter } from '@tuwaio/orbit-core';\nimport { SolanaConnectorsWatcher } from '@tuwaio/satellite-react/solana';\nimport { ConnectorSolana, SolanaConnection } from '@tuwaio/satellite-solana';\n\n// Re-export the types\nexport type { ConnectorSolana, SolanaConnection };\n\n// Re-export the component\nexport { SolanaConnectorsWatcher };\n\n// Dynamic exports that will be loaded at runtime\nexport async function getSolanaExports() {\n try {\n // Use a more indirect approach to prevent bundlers from resolving imports at build time\n // This creates a function that will be called at runtime\n const importSolanaModule = new Function(\n 'return import(\"@tuwaio/satellite-react/solana\").catch(error => { console.warn(\"Failed to load Solana exports:\", error); return null; })',\n );\n\n const satelliteReactSolana = await importSolanaModule();\n\n if (!satelliteReactSolana) {\n return {\n available: false,\n error: 'Failed to load Solana exports',\n };\n }\n\n // Instead of trying to modify exports directly, we'll return the actual component\n // implementation and let the consumer handle the assignment\n const actualSolanaConnectorsWatcher = satelliteReactSolana.SolanaConnectorsWatcher;\n\n return {\n ...satelliteReactSolana,\n available: true,\n SolanaConnectorsWatcher: actualSolanaConnectorsWatcher,\n };\n } catch (error) {\n console.warn('Failed to load Solana exports:', error);\n return {\n available: false,\n error: error instanceof Error ? error.message : 'Unknown error loading Solana exports',\n };\n }\n}\n\n// Extend the main interface with Solana-specific config\n// This will override the default `any` type with specific SolanaClusterMoniker typing\n// eslint-disable-next-line\n// @ts-ignore - Need for declaration merging\ndeclare module '@tuwaio/nova-connect' {\n interface AllChainConfigs {\n /**\n * Solana RPC URLs configuration - enhanced from default any type\n * @override Replaces default `any` with specific SolanaClusterMoniker typing when gill is available\n */\n // eslint-disable-next-line\n // @ts-ignore - Need for declaration merging\n solanaRPCUrls?: Partial<Record<SolanaClusterMoniker, string>>;\n }\n}\n\n// Extend the satellite-react interfaces with Solana-specific types\n// eslint-disable-next-line\n// @ts-ignore - Need for declaration merging\ndeclare module '@tuwaio/satellite-react' {\n export interface AllConnections {\n [OrbitAdapter.SOLANA]: SolanaConnection;\n }\n export interface AllConnectors {\n [OrbitAdapter.SOLANA]: ConnectorSolana;\n }\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
async function l(){try{let{getSolanaClusters:a,isSolanaChainList:t,getAvailableSolanaClusters:e,isValidSolanaCluster:n}=await import('@tuwaio/orbit-solana');return {getSolanaClusters:a,isSolanaChainList:t,getAvailableSolanaClusters:e,isValidSolanaCluster:n}}catch(a){return console.warn("Solana utilities not available:",a),null}}async function r(){let a=await l();return {getChains(t,e){return a?.getSolanaClusters?a.getSolanaClusters(t,e):t&&typeof t=="object"?Object.keys(t):[]},isChainList(t){return a?.isSolanaChainList?a.isSolanaChainList(t):t.length>0&&t.every(e=>typeof e=="string")},getAvailableClusters(){return a?.getAvailableSolanaClusters?a.getAvailableSolanaClusters():[]},isValidCluster(t){return a?.isValidSolanaCluster?a.isValidSolanaCluster(t):false}}}export{r as createSolanaAdapter};//# sourceMappingURL=solana-6OCXX47U.js.map
|
|
2
|
+
//# sourceMappingURL=solana-6OCXX47U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/adapters/solana.ts"],"names":["getSolanaUtils","getSolanaClusters","isSolanaChainList","getAvailableSolanaClusters","isValidSolanaCluster","error","createSolanaAdapter","solanaUtils","solanaRPCUrls","chains","chain","cluster"],"mappings":"AAiCA,eAAeA,CAAAA,EAAoD,CACjE,GAAI,CACF,GAAM,CAAE,iBAAA,CAAAC,CAAAA,CAAmB,iBAAA,CAAAC,CAAAA,CAAmB,0BAAA,CAAAC,CAAAA,CAA4B,oBAAA,CAAAC,CAAqB,CAAA,CAC7F,MAAM,OAAO,sBAAsB,CAAA,CACrC,OAAO,CAAE,iBAAA,CAAAH,CAAAA,CAAmB,iBAAA,CAAAC,CAAAA,CAAmB,0BAAA,CAAAC,CAAAA,CAA4B,oBAAA,CAAAC,CAAqB,CAClG,CAAA,MAASC,CAAAA,CAAO,CACd,OAAA,OAAA,CAAQ,IAAA,CAAK,iCAAA,CAAmCA,CAAK,CAAA,CAC9C,IACT,CACF,CAiCA,eAAsBC,CAAAA,EAA6C,CACjE,IAAMC,CAAAA,CAAc,MAAMP,CAAAA,EAAe,CAEzC,OAAO,CAQL,SAAA,CAAUQ,CAAAA,CAAoBC,CAAAA,CAAmC,CAE/D,OAAIF,CAAAA,EAAa,iBAAA,CACRA,CAAAA,CAAY,kBAAkBC,CAAAA,CAAeC,CAAM,CAAA,CAIxDD,CAAAA,EAAiB,OAAOA,CAAAA,EAAkB,QAAA,CACrC,MAAA,CAAO,IAAA,CAAKA,CAAa,CAAA,CAE3B,EACT,CAAA,CASA,YAAYC,CAAAA,CAAsC,CAChD,OAAIF,CAAAA,EAAa,iBAAA,CACRA,CAAAA,CAAY,iBAAA,CAAkBE,CAAM,CAAA,CAItCA,CAAAA,CAAO,MAAA,CAAS,CAAA,EAAKA,CAAAA,CAAO,KAAA,CAAOC,GAAU,OAAOA,CAAAA,EAAU,QAAQ,CAC/E,CAAA,CAcA,oBAAA,EAAiC,CAC/B,OAAIH,CAAAA,EAAa,0BAAA,CACRA,CAAAA,CAAY,0BAAA,EAA2B,CAEzC,EACT,CAAA,CAkBA,cAAA,CAAeI,CAAAA,CAA0B,CACvC,OAAIJ,CAAAA,EAAa,oBAAA,CACRA,CAAAA,CAAY,oBAAA,CAAqBI,CAAO,CAAA,CAE1C,KACT,CACF,CACF","file":"solana-6OCXX47U.js","sourcesContent":["import type { ChainAdapter } from './types';\n\n/**\n * Solana utilities module interface for dynamic imports.\n *\n * @internal\n * @since 1.0.0\n */\ninterface SolanaUtilsModule {\n getSolanaClusters?: (solanaRPCUrls: any, chains?: any) => string[];\n isSolanaChainList?: (chains: (string | number)[]) => boolean;\n getAvailableSolanaClusters?: () => string[];\n isValidSolanaCluster?: (cluster: string) => boolean;\n}\n\n/**\n * Dynamically imports and checks availability of Solana utilities.\n * This function attempts to load Solana-specific utilities without throwing errors\n * if the Solana package is not installed in the current environment.\n *\n * @internal\n * @returns Promise resolving to Solana utilities module or null if not available\n *\n * @example\n * ```typescript\n * const solanaUtils = await getSolanaUtils();\n * if (solanaUtils?.getSolanaClusters) {\n * const clusters = solanaUtils.getSolanaClusters(rpcUrls);\n * }\n * ```\n *\n * @since 1.0.0\n */\nasync function getSolanaUtils(): Promise<SolanaUtilsModule | null> {\n try {\n const { getSolanaClusters, isSolanaChainList, getAvailableSolanaClusters, isValidSolanaCluster } =\n await import('@tuwaio/orbit-solana');\n return { getSolanaClusters, isSolanaChainList, getAvailableSolanaClusters, isValidSolanaCluster };\n } catch (error) {\n console.warn('Solana utilities not available:', error);\n return null;\n }\n}\n\n/**\n * Creates a Solana chain adapter with dynamic loading and fallback support.\n *\n * This adapter provides Solana-specific functionality while gracefully handling\n * environments where Solana utilities are not available. It includes Solana-specific\n * methods like cluster management that are unique to the Solana blockchain architecture.\n *\n * @returns Promise resolving to a configured Solana ChainAdapter\n *\n * @example\n * ```typescript\n * const adapter = await createSolanaAdapter();\n *\n * // Get Solana cluster names from RPC configuration\n * const clusters = adapter.getChains({\n * 'mainnet-beta': 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com'\n * });\n * console.log(clusters); // ['mainnet-beta', 'devnet']\n *\n * // Validate cluster list format\n * const isValid = adapter.isChainList(['mainnet-beta', 'devnet']);\n * console.log(isValid); // true (string identifiers are valid for Solana)\n *\n * // Get available clusters\n * const availableClusters = adapter.getAvailableClusters?.();\n * console.log(availableClusters); // All configured cluster names\n * ```\n *\n * @since 1.0.0\n */\nexport async function createSolanaAdapter(): Promise<ChainAdapter> {\n const solanaUtils = await getSolanaUtils();\n\n return {\n /**\n * Extracts cluster names from Solana RPC URL configuration.\n *\n * @param solanaRPCUrls Object mapping cluster names to RPC URLs\n * @param chains Optional array of specific chains to filter\n * @returns Array of cluster names (strings)\n */\n getChains(solanaRPCUrls: any, chains?: any): (string | number)[] {\n // Use imported Solana utilities if available\n if (solanaUtils?.getSolanaClusters) {\n return solanaUtils.getSolanaClusters(solanaRPCUrls, chains);\n }\n\n // Fallback implementation for basic cluster extraction\n if (solanaRPCUrls && typeof solanaRPCUrls === 'object') {\n return Object.keys(solanaRPCUrls);\n }\n return [];\n },\n\n /**\n * Validates whether the provided chains list conforms to Solana cluster format.\n * Solana clusters are typically identified by string names like 'mainnet-beta', 'devnet'.\n *\n * @param chains Array of chain identifiers to validate\n * @returns True if the chain list is valid for Solana\n */\n isChainList(chains: (string | number)[]): boolean {\n if (solanaUtils?.isSolanaChainList) {\n return solanaUtils.isSolanaChainList(chains);\n }\n\n // Fallback validation: Solana clusters should be strings\n return chains.length > 0 && chains.every((chain) => typeof chain === 'string');\n },\n\n /**\n * Gets all available Solana clusters from the current configuration.\n * This is a Solana-specific method that returns cluster names that can be used.\n *\n * @returns Array of available cluster names\n *\n * @example\n * ```typescript\n * const clusters = await adapter.getAvailableClusters?.();\n * // Might return: ['mainnet-beta', 'devnet', 'testnet']\n * ```\n */\n getAvailableClusters(): string[] {\n if (solanaUtils?.getAvailableSolanaClusters) {\n return solanaUtils.getAvailableSolanaClusters();\n }\n return [];\n },\n\n /**\n * Validates whether a cluster name is valid for Solana.\n * Checks against known Solana cluster monikers and custom configurations.\n *\n * @param cluster Cluster name to validate\n * @returns True if the cluster name is valid\n *\n * @example\n * ```typescript\n * const isValid = await adapter.isValidCluster?.('mainnet-beta');\n * console.log(isValid); // true\n *\n * const isInvalid = await adapter.isValidCluster?.('invalid-cluster');\n * console.log(isInvalid); // false\n * ```\n */\n isValidCluster(cluster: string): boolean {\n if (solanaUtils?.isValidSolanaCluster) {\n return solanaUtils.isValidSolanaCluster(cluster);\n }\n return false;\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';async function l(){try{let{getSolanaClusters:a,isSolanaChainList:t,getAvailableSolanaClusters:e,isValidSolanaCluster:n}=await import('@tuwaio/orbit-solana');return {getSolanaClusters:a,isSolanaChainList:t,getAvailableSolanaClusters:e,isValidSolanaCluster:n}}catch(a){return console.warn("Solana utilities not available:",a),null}}async function r(){let a=await l();return {getChains(t,e){return a?.getSolanaClusters?a.getSolanaClusters(t,e):t&&typeof t=="object"?Object.keys(t):[]},isChainList(t){return a?.isSolanaChainList?a.isSolanaChainList(t):t.length>0&&t.every(e=>typeof e=="string")},getAvailableClusters(){return a?.getAvailableSolanaClusters?a.getAvailableSolanaClusters():[]},isValidCluster(t){return a?.isValidSolanaCluster?a.isValidSolanaCluster(t):false}}}exports.createSolanaAdapter=r;//# sourceMappingURL=solana-CQFZWAY7.cjs.map
|
|
2
|
+
//# sourceMappingURL=solana-CQFZWAY7.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/adapters/solana.ts"],"names":["getSolanaUtils","getSolanaClusters","isSolanaChainList","getAvailableSolanaClusters","isValidSolanaCluster","error","createSolanaAdapter","solanaUtils","solanaRPCUrls","chains","chain","cluster"],"mappings":"aAiCA,eAAeA,CAAAA,EAAoD,CACjE,GAAI,CACF,GAAM,CAAE,iBAAA,CAAAC,CAAAA,CAAmB,iBAAA,CAAAC,CAAAA,CAAmB,0BAAA,CAAAC,CAAAA,CAA4B,oBAAA,CAAAC,CAAqB,CAAA,CAC7F,MAAM,OAAO,sBAAsB,CAAA,CACrC,OAAO,CAAE,iBAAA,CAAAH,CAAAA,CAAmB,iBAAA,CAAAC,CAAAA,CAAmB,0BAAA,CAAAC,CAAAA,CAA4B,oBAAA,CAAAC,CAAqB,CAClG,CAAA,MAASC,CAAAA,CAAO,CACd,OAAA,OAAA,CAAQ,IAAA,CAAK,iCAAA,CAAmCA,CAAK,CAAA,CAC9C,IACT,CACF,CAiCA,eAAsBC,CAAAA,EAA6C,CACjE,IAAMC,CAAAA,CAAc,MAAMP,CAAAA,EAAe,CAEzC,OAAO,CAQL,SAAA,CAAUQ,CAAAA,CAAoBC,CAAAA,CAAmC,CAE/D,OAAIF,CAAAA,EAAa,iBAAA,CACRA,CAAAA,CAAY,kBAAkBC,CAAAA,CAAeC,CAAM,CAAA,CAIxDD,CAAAA,EAAiB,OAAOA,CAAAA,EAAkB,QAAA,CACrC,MAAA,CAAO,IAAA,CAAKA,CAAa,CAAA,CAE3B,EACT,CAAA,CASA,YAAYC,CAAAA,CAAsC,CAChD,OAAIF,CAAAA,EAAa,iBAAA,CACRA,CAAAA,CAAY,iBAAA,CAAkBE,CAAM,CAAA,CAItCA,CAAAA,CAAO,MAAA,CAAS,CAAA,EAAKA,CAAAA,CAAO,KAAA,CAAOC,GAAU,OAAOA,CAAAA,EAAU,QAAQ,CAC/E,CAAA,CAcA,oBAAA,EAAiC,CAC/B,OAAIH,CAAAA,EAAa,0BAAA,CACRA,CAAAA,CAAY,0BAAA,EAA2B,CAEzC,EACT,CAAA,CAkBA,cAAA,CAAeI,CAAAA,CAA0B,CACvC,OAAIJ,CAAAA,EAAa,oBAAA,CACRA,CAAAA,CAAY,oBAAA,CAAqBI,CAAO,CAAA,CAE1C,KACT,CACF,CACF","file":"solana-CQFZWAY7.cjs","sourcesContent":["import type { ChainAdapter } from './types';\n\n/**\n * Solana utilities module interface for dynamic imports.\n *\n * @internal\n * @since 1.0.0\n */\ninterface SolanaUtilsModule {\n getSolanaClusters?: (solanaRPCUrls: any, chains?: any) => string[];\n isSolanaChainList?: (chains: (string | number)[]) => boolean;\n getAvailableSolanaClusters?: () => string[];\n isValidSolanaCluster?: (cluster: string) => boolean;\n}\n\n/**\n * Dynamically imports and checks availability of Solana utilities.\n * This function attempts to load Solana-specific utilities without throwing errors\n * if the Solana package is not installed in the current environment.\n *\n * @internal\n * @returns Promise resolving to Solana utilities module or null if not available\n *\n * @example\n * ```typescript\n * const solanaUtils = await getSolanaUtils();\n * if (solanaUtils?.getSolanaClusters) {\n * const clusters = solanaUtils.getSolanaClusters(rpcUrls);\n * }\n * ```\n *\n * @since 1.0.0\n */\nasync function getSolanaUtils(): Promise<SolanaUtilsModule | null> {\n try {\n const { getSolanaClusters, isSolanaChainList, getAvailableSolanaClusters, isValidSolanaCluster } =\n await import('@tuwaio/orbit-solana');\n return { getSolanaClusters, isSolanaChainList, getAvailableSolanaClusters, isValidSolanaCluster };\n } catch (error) {\n console.warn('Solana utilities not available:', error);\n return null;\n }\n}\n\n/**\n * Creates a Solana chain adapter with dynamic loading and fallback support.\n *\n * This adapter provides Solana-specific functionality while gracefully handling\n * environments where Solana utilities are not available. It includes Solana-specific\n * methods like cluster management that are unique to the Solana blockchain architecture.\n *\n * @returns Promise resolving to a configured Solana ChainAdapter\n *\n * @example\n * ```typescript\n * const adapter = await createSolanaAdapter();\n *\n * // Get Solana cluster names from RPC configuration\n * const clusters = adapter.getChains({\n * 'mainnet-beta': 'https://api.mainnet-beta.solana.com',\n * devnet: 'https://api.devnet.solana.com'\n * });\n * console.log(clusters); // ['mainnet-beta', 'devnet']\n *\n * // Validate cluster list format\n * const isValid = adapter.isChainList(['mainnet-beta', 'devnet']);\n * console.log(isValid); // true (string identifiers are valid for Solana)\n *\n * // Get available clusters\n * const availableClusters = adapter.getAvailableClusters?.();\n * console.log(availableClusters); // All configured cluster names\n * ```\n *\n * @since 1.0.0\n */\nexport async function createSolanaAdapter(): Promise<ChainAdapter> {\n const solanaUtils = await getSolanaUtils();\n\n return {\n /**\n * Extracts cluster names from Solana RPC URL configuration.\n *\n * @param solanaRPCUrls Object mapping cluster names to RPC URLs\n * @param chains Optional array of specific chains to filter\n * @returns Array of cluster names (strings)\n */\n getChains(solanaRPCUrls: any, chains?: any): (string | number)[] {\n // Use imported Solana utilities if available\n if (solanaUtils?.getSolanaClusters) {\n return solanaUtils.getSolanaClusters(solanaRPCUrls, chains);\n }\n\n // Fallback implementation for basic cluster extraction\n if (solanaRPCUrls && typeof solanaRPCUrls === 'object') {\n return Object.keys(solanaRPCUrls);\n }\n return [];\n },\n\n /**\n * Validates whether the provided chains list conforms to Solana cluster format.\n * Solana clusters are typically identified by string names like 'mainnet-beta', 'devnet'.\n *\n * @param chains Array of chain identifiers to validate\n * @returns True if the chain list is valid for Solana\n */\n isChainList(chains: (string | number)[]): boolean {\n if (solanaUtils?.isSolanaChainList) {\n return solanaUtils.isSolanaChainList(chains);\n }\n\n // Fallback validation: Solana clusters should be strings\n return chains.length > 0 && chains.every((chain) => typeof chain === 'string');\n },\n\n /**\n * Gets all available Solana clusters from the current configuration.\n * This is a Solana-specific method that returns cluster names that can be used.\n *\n * @returns Array of available cluster names\n *\n * @example\n * ```typescript\n * const clusters = await adapter.getAvailableClusters?.();\n * // Might return: ['mainnet-beta', 'devnet', 'testnet']\n * ```\n */\n getAvailableClusters(): string[] {\n if (solanaUtils?.getAvailableSolanaClusters) {\n return solanaUtils.getAvailableSolanaClusters();\n }\n return [];\n },\n\n /**\n * Validates whether a cluster name is valid for Solana.\n * Checks against known Solana cluster monikers and custom configurations.\n *\n * @param cluster Cluster name to validate\n * @returns True if the cluster name is valid\n *\n * @example\n * ```typescript\n * const isValid = await adapter.isValidCluster?.('mainnet-beta');\n * console.log(isValid); // true\n *\n * const isInvalid = await adapter.isValidCluster?.('invalid-cluster');\n * console.log(isInvalid); // false\n * ```\n */\n isValidCluster(cluster: string): boolean {\n if (solanaUtils?.isValidSolanaCluster) {\n return solanaUtils.isValidSolanaCluster(cluster);\n }\n return false;\n },\n };\n}\n"]}
|
|
@@ -2,7 +2,45 @@ import * as React$1 from 'react';
|
|
|
2
2
|
import { OrbitAdapter } from '@tuwaio/orbit-core';
|
|
3
3
|
import { TransactionPool, Transaction, TxAdapter } from '@tuwaio/pulsar-core';
|
|
4
4
|
import { N as NovaConnectLabels } from './types-eao2UQcC.js';
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @description
|
|
8
|
+
* This interface provides default fallback types for chain configurations.
|
|
9
|
+
* Chain-specific packages will use module augmentation to override these
|
|
10
|
+
* with more specific types while maintaining backward compatibility.
|
|
11
|
+
*
|
|
12
|
+
* Default values are `any` to ensure the system works without specific
|
|
13
|
+
* chain packages, but gets enhanced type safety when they are installed.
|
|
14
|
+
*/
|
|
15
|
+
interface AllChainConfigs {
|
|
16
|
+
/**
|
|
17
|
+
* App chains configuration - defaults to any, gets enhanced by chain-specific packages
|
|
18
|
+
* @default any - Will be typed as `readonly [Chain, ...Chain[]]` when viem is available
|
|
19
|
+
*/
|
|
20
|
+
appChains?: any;
|
|
21
|
+
/**
|
|
22
|
+
* Solana RPC URLs configuration - defaults to any, gets enhanced by Solana packages
|
|
23
|
+
* @default any - Will be typed as `Partial<Record<SolanaClusterMoniker, string>>` when gill is available
|
|
24
|
+
*/
|
|
25
|
+
solanaRPCUrls?: any;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Union type for all supported chain configurations.
|
|
29
|
+
* Gets automatically extended when packages augment AllChainConfigs.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // Without specific packages - uses any types
|
|
34
|
+
* const config: InitialChains = {
|
|
35
|
+
* appChains: [], // any
|
|
36
|
+
* solanaRPCUrls: {} // any
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* // With viem package installed - gets proper Chain[] typing
|
|
40
|
+
* // With gill package installed - gets proper SolanaClusterMoniker typing
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
type InitialChains = AllChainConfigs;
|
|
6
44
|
|
|
7
45
|
type ButtonTxStatus = 'idle' | 'loading' | 'succeed' | 'failed' | 'replaced';
|
|
8
46
|
type ConnectContentType = 'network' | 'connectors' | 'about' | 'getWallet' | 'connecting' | 'impersonate';
|
|
@@ -321,4 +359,4 @@ interface NativeBalanceData {
|
|
|
321
359
|
*/
|
|
322
360
|
declare function useWalletNativeBalance(): NativeBalanceData;
|
|
323
361
|
|
|
324
|
-
export { type ButtonTxStatus as B, type ConnectContentType as C, type LabelCategory as L, type NovaConnectProviderType as N, type WalletBalance as W, type ConnectedContentType as a, type NovaConnectProviderProps as b, NovaConnectProviderError as c, NovaConnectProviderContext as d, useHasNovaConnectContext as e, useNovaConnectOptional as f, NovaConnectLabelsContext as g, useNovaConnectLabels as h, useNovaConnectLabel as i, useNovaConnectLabelsSubset as j, hasLabel as k, useLabelsByCategory as l, isDefaultLabels as m, getLabelWithFallback as n, createLabelsSubset as o, type NativeBalanceResult as p, useWalletNativeBalance as q, useNovaConnect as u };
|
|
362
|
+
export { type AllChainConfigs as A, type ButtonTxStatus as B, type ConnectContentType as C, type InitialChains as I, type LabelCategory as L, type NovaConnectProviderType as N, type WalletBalance as W, type ConnectedContentType as a, type NovaConnectProviderProps as b, NovaConnectProviderError as c, NovaConnectProviderContext as d, useHasNovaConnectContext as e, useNovaConnectOptional as f, NovaConnectLabelsContext as g, useNovaConnectLabels as h, useNovaConnectLabel as i, useNovaConnectLabelsSubset as j, hasLabel as k, useLabelsByCategory as l, isDefaultLabels as m, getLabelWithFallback as n, createLabelsSubset as o, type NativeBalanceResult as p, useWalletNativeBalance as q, useNovaConnect as u };
|
package/dist/{useWalletNativeBalance-D49yGzRi.d.cts → useWalletNativeBalance-BvBbDXMS.d.cts}
RENAMED
|
@@ -2,7 +2,45 @@ import * as React$1 from 'react';
|
|
|
2
2
|
import { OrbitAdapter } from '@tuwaio/orbit-core';
|
|
3
3
|
import { TransactionPool, Transaction, TxAdapter } from '@tuwaio/pulsar-core';
|
|
4
4
|
import { N as NovaConnectLabels } from './types-eao2UQcC.cjs';
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @description
|
|
8
|
+
* This interface provides default fallback types for chain configurations.
|
|
9
|
+
* Chain-specific packages will use module augmentation to override these
|
|
10
|
+
* with more specific types while maintaining backward compatibility.
|
|
11
|
+
*
|
|
12
|
+
* Default values are `any` to ensure the system works without specific
|
|
13
|
+
* chain packages, but gets enhanced type safety when they are installed.
|
|
14
|
+
*/
|
|
15
|
+
interface AllChainConfigs {
|
|
16
|
+
/**
|
|
17
|
+
* App chains configuration - defaults to any, gets enhanced by chain-specific packages
|
|
18
|
+
* @default any - Will be typed as `readonly [Chain, ...Chain[]]` when viem is available
|
|
19
|
+
*/
|
|
20
|
+
appChains?: any;
|
|
21
|
+
/**
|
|
22
|
+
* Solana RPC URLs configuration - defaults to any, gets enhanced by Solana packages
|
|
23
|
+
* @default any - Will be typed as `Partial<Record<SolanaClusterMoniker, string>>` when gill is available
|
|
24
|
+
*/
|
|
25
|
+
solanaRPCUrls?: any;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Union type for all supported chain configurations.
|
|
29
|
+
* Gets automatically extended when packages augment AllChainConfigs.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // Without specific packages - uses any types
|
|
34
|
+
* const config: InitialChains = {
|
|
35
|
+
* appChains: [], // any
|
|
36
|
+
* solanaRPCUrls: {} // any
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* // With viem package installed - gets proper Chain[] typing
|
|
40
|
+
* // With gill package installed - gets proper SolanaClusterMoniker typing
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
type InitialChains = AllChainConfigs;
|
|
6
44
|
|
|
7
45
|
type ButtonTxStatus = 'idle' | 'loading' | 'succeed' | 'failed' | 'replaced';
|
|
8
46
|
type ConnectContentType = 'network' | 'connectors' | 'about' | 'getWallet' | 'connecting' | 'impersonate';
|
|
@@ -321,4 +359,4 @@ interface NativeBalanceData {
|
|
|
321
359
|
*/
|
|
322
360
|
declare function useWalletNativeBalance(): NativeBalanceData;
|
|
323
361
|
|
|
324
|
-
export { type ButtonTxStatus as B, type ConnectContentType as C, type LabelCategory as L, type NovaConnectProviderType as N, type WalletBalance as W, type ConnectedContentType as a, type NovaConnectProviderProps as b, NovaConnectProviderError as c, NovaConnectProviderContext as d, useHasNovaConnectContext as e, useNovaConnectOptional as f, NovaConnectLabelsContext as g, useNovaConnectLabels as h, useNovaConnectLabel as i, useNovaConnectLabelsSubset as j, hasLabel as k, useLabelsByCategory as l, isDefaultLabels as m, getLabelWithFallback as n, createLabelsSubset as o, type NativeBalanceResult as p, useWalletNativeBalance as q, useNovaConnect as u };
|
|
362
|
+
export { type AllChainConfigs as A, type ButtonTxStatus as B, type ConnectContentType as C, type InitialChains as I, type LabelCategory as L, type NovaConnectProviderType as N, type WalletBalance as W, type ConnectedContentType as a, type NovaConnectProviderProps as b, NovaConnectProviderError as c, NovaConnectProviderContext as d, useHasNovaConnectContext as e, useNovaConnectOptional as f, NovaConnectLabelsContext as g, useNovaConnectLabels as h, useNovaConnectLabel as i, useNovaConnectLabelsSubset as j, hasLabel as k, useLabelsByCategory as l, isDefaultLabels as m, getLabelWithFallback as n, createLabelsSubset as o, type NativeBalanceResult as p, useWalletNativeBalance as q, useNovaConnect as u };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-connect",
|
|
3
|
-
"version": "1.0.0-fix-indep-alpha.
|
|
3
|
+
"version": "1.0.0-fix-indep-alpha.10.b9c2592",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -197,26 +197,26 @@
|
|
|
197
197
|
"@heroicons/react": "^2.2.0",
|
|
198
198
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
199
199
|
"@radix-ui/react-select": "^2.2.6",
|
|
200
|
-
"@tuwaio/orbit-core": "
|
|
201
|
-
"@tuwaio/orbit-evm": "
|
|
202
|
-
"@tuwaio/
|
|
203
|
-
"@tuwaio/
|
|
204
|
-
"@tuwaio/satellite-core": "
|
|
205
|
-
"@tuwaio/satellite-evm": "
|
|
206
|
-
"@tuwaio/satellite-solana": "
|
|
207
|
-
"@tuwaio/pulsar-core": "
|
|
200
|
+
"@tuwaio/orbit-core": "1.0.0-fix-indep-update-alpha.2.bd01299",
|
|
201
|
+
"@tuwaio/orbit-evm": "1.0.0-fix-indep-update-alpha.2.bd01299",
|
|
202
|
+
"@tuwaio/orbit-solana": "1.0.0-fix-indep-update-alpha.2.bd01299",
|
|
203
|
+
"@tuwaio/satellite-react": "1.0.0-fix-adapters-independ-alpha.11.e869dab",
|
|
204
|
+
"@tuwaio/satellite-core": "1.0.0-fix-adapters-independ-alpha.11.e869dab",
|
|
205
|
+
"@tuwaio/satellite-evm": "1.0.0-fix-adapters-independ-alpha.11.e869dab",
|
|
206
|
+
"@tuwaio/satellite-solana": "1.0.0-fix-adapters-independ-alpha.11.e869dab",
|
|
207
|
+
"@tuwaio/pulsar-core": "1.0.0-fix-packages-alpha.1.7cdb31c",
|
|
208
208
|
"@wallet-standard/react": "^1.0.1",
|
|
209
|
-
"@wagmi/core": "^3.0.
|
|
209
|
+
"@wagmi/core": "^3.0.1",
|
|
210
210
|
"gill": "^0.14.0",
|
|
211
211
|
"clsx": "^2.1.1",
|
|
212
212
|
"dayjs": "^1.11.19",
|
|
213
|
-
"immer": "^11.0
|
|
213
|
+
"immer": "^11.1.0",
|
|
214
214
|
"ethereum-blockies-base64": "^1.0.2",
|
|
215
215
|
"framer-motion": "^12.23.26",
|
|
216
216
|
"react": "^19.2.3",
|
|
217
217
|
"react-toastify": "^11.0.5",
|
|
218
218
|
"tailwind-merge": "^3.4.0",
|
|
219
|
-
"viem": "^2.
|
|
219
|
+
"viem": "^2.43.3",
|
|
220
220
|
"zustand": "^5.0.9",
|
|
221
221
|
"@tailwindcss/postcss": "^4.1.18",
|
|
222
222
|
"@tailwindcss/vite": "^4.1.18",
|
|
@@ -229,8 +229,8 @@
|
|
|
229
229
|
"tw-animate-css": "^1.4.0",
|
|
230
230
|
"typescript": "^5.9.3",
|
|
231
231
|
"tsup": "^8.5.1",
|
|
232
|
-
"@tuwaio/nova-core": "^1.0.0-fix-indep-alpha.
|
|
233
|
-
"@tuwaio/nova-transactions": "^1.0.0-fix-indep-alpha.
|
|
232
|
+
"@tuwaio/nova-core": "^1.0.0-fix-indep-alpha.10.b9c2592",
|
|
233
|
+
"@tuwaio/nova-transactions": "^1.0.0-fix-indep-alpha.10.b9c2592"
|
|
234
234
|
},
|
|
235
235
|
"scripts": {
|
|
236
236
|
"start": "tsup src/index.ts --watch",
|
package/dist/chunk-4GK7WPFO.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkL7YY2MZS_cjs=require('./chunk-L7YY2MZS.cjs'),chunkPTHXIVB5_cjs=require('./chunk-PTHXIVB5.cjs'),chunkJFUJC4EJ_cjs=require('./chunk-JFUJC4EJ.cjs'),novaCore=require('@tuwaio/nova-core'),orbitCore=require('@tuwaio/orbit-core'),react=require('react');function he(e){let{abbreviateSymbols:t=12,maxNameLength:n=30,autoRetry:o=false,retryDelay:s=3e3}=e,a=chunkJFUJC4EJ_cjs.h(f=>f.activeConnection),i=chunkJFUJC4EJ_cjs.h(f=>f.getAdapter),r=react.useMemo(()=>a?.address,[a?.address]),u=react.useMemo(()=>a?.connectorType,[a?.connectorType]),c=react.useMemo(()=>u?i(orbitCore.getAdapterFromConnectorType(u??`${orbitCore.OrbitAdapter.EVM}:not-connected`)):null,[i,u]),[d,b]=react.useState(null),[F,p]=react.useState(null),[g,m]=react.useState(false),[N,h]=react.useState(null),x=react.useRef(null),T=react.useRef(null),I=react.useMemo(()=>{if(!c)return {hasNameResolver:false,hasAvatarResolver:false};let f="getName"in c&&typeof c.getName=="function",C="getAvatar"in c&&typeof c.getAvatar=="function";return {hasNameResolver:f,hasAvatarResolver:C}},[c]),v=react.useCallback(()=>{x.current&&(x.current.abort(),x.current=null),T.current!==null&&(clearTimeout(T.current),T.current=null);},[]),L=react.useCallback(async()=>{if(v(),!r||!c||!I.hasNameResolver){b(null),p(null),m(false),h(null);return}x.current=new AbortController;let{signal:f}=x.current;m(true),h(null),b(null),p(null);try{if(f.aborted)return;let C=await c.getName?.(r);if(f.aborted)return;if(C&&(b(C),I.hasAvatarResolver))try{let S=await c.getAvatar?.(C);f.aborted||p(S??null);}catch(S){console.warn("Failed to fetch avatar:",S),f.aborted||p(null);}}catch(C){if(f.aborted)return;let S=C instanceof Error?C.message:"Failed to fetch name service data";console.error("Failed to fetch name service data:",C),h(S),b(null),p(null),o&&(T.current=setTimeout(()=>{L();},s));}finally{f.aborted||m(false);}},[r,c,I,o,s,v]),ee=react.useCallback(()=>{h(null),L();},[L]);react.useEffect(()=>(L(),v),[L,v]),react.useEffect(()=>v,[v]);let te=react.useMemo(()=>d?d.length>n?novaCore.textCenterEllipsis(d,t,t):d:r?novaCore.textCenterEllipsis(r,t,t):void 0,[d,r,n,t]);return {ensName:d,ensAvatar:F,isLoading:g,ensNameAbbreviated:te,error:N,retry:ee}}var R=class extends Error{constructor(t="useNovaConnect must be used within NovaConnectProvider"){super(t),this.name="NovaConnectProviderError";}},V=react.createContext(void 0),Ae=()=>{let e=react.useContext(V);if(!e)throw new R;return e},Ne=()=>react.useContext(V)!==void 0,xe=()=>react.useContext(V)??null;var ce=react.createContext(chunkPTHXIVB5_cjs.a),D=()=>react.useContext(ce),ke=e=>D()[e],we=e=>{let t=D(),n={};for(let o of e)n[o]=t[o];return n},Ee=(e,t)=>!!e[t]?.trim(),Be=e=>{let t=D(),o={actions:["connectWallet","disconnect","connecting","connected","tryAgain","back","connect","close"],states:["success","error","replaced","loading","idle"],accessibility:["chainSelector","closeModal","selectChain","walletControls","openWalletModal"],transactions:["transactionLoading","transactionSuccess","transactionError","transactionReplaced","recent"]}[e],s={};for(let a of o)s[a]=t[a];return s},Ie=e=>e===chunkPTHXIVB5_cjs.a,Me=(e,t,n)=>{let o=e[t];return o&&o.trim()?o:n||chunkPTHXIVB5_cjs.a[t]||t.toString()},Pe=(e,t)=>{let n={};for(let o of t)n[o]=e[o];return n};function U(e){if(typeof e!="string")return false;let t=e.trim();return !!/^0x[a-fA-F0-9]{40}$/.test(t)}function _(e){if(typeof e!="string")return false;let t=e.trim();return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t)}function We(e,t="auto"){if(!e||typeof e!="string")return false;let n=e.trim();switch(t){case "evm":return U(n);case "solana":return _(n);case "auto":default:return U(n)||_(n)}}var y={[orbitCore.OrbitAdapter.EVM]:1,[orbitCore.OrbitAdapter.SOLANA]:"mainnet",[orbitCore.OrbitAdapter.Starknet]:"0x534e5f4d41494e"};function Ge({selectedAdapter:e,appChains:t,solanaRPCUrls:n}){switch(e){case orbitCore.OrbitAdapter.EVM:{let o=t?.[0];return o?.id&&typeof o.id=="number"?o.id:(process.env.NODE_ENV==="development"&&!t?.length&&console.warn("getConnectChainId: No EVM chains configured, using Ethereum Mainnet"),y[orbitCore.OrbitAdapter.EVM])}case orbitCore.OrbitAdapter.SOLANA:{if(n&&typeof n=="object"){let o=Object.keys(n);if(o.length>0)return o[0]}return process.env.NODE_ENV==="development"&&!n&&console.warn("getConnectChainId: No Solana RPC URLs configured, using mainnet"),y[orbitCore.OrbitAdapter.SOLANA]}case orbitCore.OrbitAdapter.Starknet:return process.env.NODE_ENV==="development"&&console.info("getConnectChainId: Using default Starknet chain ID"),y[orbitCore.OrbitAdapter.Starknet];default:return process.env.NODE_ENV==="development"&&console.error("getConnectChainId: Unknown adapter:",e),y[orbitCore.OrbitAdapter.EVM]}}function Fe({selectedAdapter:e,appChains:t,solanaRPCUrls:n}){switch(e){case orbitCore.OrbitAdapter.EVM:return t?.map(o=>o.id).filter(Boolean)??[y[orbitCore.OrbitAdapter.EVM]];case orbitCore.OrbitAdapter.SOLANA:return n?Object.keys(n):[y[orbitCore.OrbitAdapter.SOLANA]];case orbitCore.OrbitAdapter.Starknet:return [y[orbitCore.OrbitAdapter.Starknet]];default:return [y[orbitCore.OrbitAdapter.EVM]]}}function ie(e,t){if(!e||typeof e!="object")return null;let n=e;if(!n.name||typeof n.name!="string")return null;let o;if("icon"in n){let s=n.icon;if(typeof s=="string")o=s;else if(s&&typeof s=="object"&&"toString"in s&&typeof s.toString=="function")try{o=s.toString();}catch{}}return {name:n.name,icon:o,adapter:t,originalConnector:n}}function H({connectors:e,excludeConnectors:t=["injected"]}={connectors:{}}){if(!e||Object.keys(e).length===0)return [];let n=new Set(t.map(a=>orbitCore.formatConnectorName(a))),o=[];Object.entries(e).forEach(([a,i])=>{if(Array.isArray(i)){let r=a;i.forEach(u=>{let c=ie(u,r);if(c){let d=orbitCore.formatConnectorName(c.name);n.has(d)||o.push(c);}});}});let s=new Map;return o.forEach(a=>{let i=orbitCore.formatConnectorName(a.name);s.has(i)||s.set(i,{name:a.name,icon:a.icon,adapters:[],connectors:[]});let r=s.get(i);r.adapters.includes(a.adapter)||r.adapters.push(a.adapter);let u=Object.assign({},a.originalConnector,{adapter:a.adapter});r.connectors.push(u),!r.icon&&a.icon&&(r.icon=a.icon);}),Array.from(s.values()).sort((a,i)=>a.name.localeCompare(i.name,void 0,{sensitivity:"base"}))}function Ue(e){return Object.values(e).some(t=>Array.isArray(t)&&t.length>0)}function le(e){try{if(e&&typeof e=="object"&&e.adapter)return e.adapter}catch{}}function z(e,t){return le(e)===t}function Je({connectors:e,selectedAdapter:t}){if(!e||Object.keys(e).length===0)return [];let n=H({connectors:e});return t?n.filter(o=>o.adapters.includes(t)&&o.connectors.some(s=>z(s,t))).map(o=>{let s=o.connectors.filter(a=>z(a,t));return {...o,adapters:[t],connectors:s}}).filter(o=>o.connectors.length>0):n}function Ze(e,t){let n=e[t];return Array.isArray(n)&&n.length>0}var Xe=e=>{switch(e){case orbitCore.OrbitAdapter.EVM:return {chainId:1,name:"Ethereum"};case orbitCore.OrbitAdapter.SOLANA:return {chainId:"solana:mainnet",name:"Solana"}}};var tt={[orbitCore.OrbitAdapter.EVM]:{aboutNetwork:"https://ethereum.org/developers/docs/intro-to-ethereum/",choseWallet:"https://ethereum.org/wallets/find-wallet/",about:"https://ethereum.org/wallets/"},[orbitCore.OrbitAdapter.SOLANA]:{aboutNetwork:"https://solana.com/en/learn/what-is-solana",choseWallet:"https://solana.com/en/solana-wallets",about:"https://solana.com/en/learn/what-is-a-wallet"}};function ft(){return console.warn("getAvailableSolanaClusters: Using synchronous fallback with limited functionality. Use getAvailableSolanaClustersAsync for complete cluster detection."),[]}function Ct(e){return console.warn("isValidSolanaCluster: Using synchronous fallback with basic validation. Use isValidSolanaClusterAsync for comprehensive cluster validation."),["mainnet","devnet","testnet","localnet"].includes(e)}function Et({activeConnection:e,appChains:t,solanaRPCUrls:n}){let[o,s]=react.useState([]),[a,i]=react.useState(false);return react.useEffect(()=>{let r=true;return (async()=>{i(true);try{if(!e){let b=await chunkL7YY2MZS_cjs.a({connectorType:`${orbitCore.OrbitAdapter.EVM}:not-connected`,appChains:t,solanaRPCUrls:n,chains:[]});r&&s(b);return}let c=chunkL7YY2MZS_cjs.i(e),d=await chunkL7YY2MZS_cjs.a({connectorType:e.connectorType,appChains:t,solanaRPCUrls:n,chains:c});r&&s(d);}catch(c){console.error("Failed to fetch chains list:",c),r&&s([]);}finally{r&&i(false);}})(),()=>{r=false;}},[e,t,n]),{chainsList:o,isLoading:a}}function Rt(){let[e,t]=react.useState({}),[n,o]=react.useState(false),s=react.useRef(null),a=chunkJFUJC4EJ_cjs.h(p=>p.activeConnection),i=chunkJFUJC4EJ_cjs.h(p=>p.getAdapter),r=react.useMemo(()=>a?.chainId&&a?.address?`${a.address}-${a.chainId}`:null,[a?.chainId,a?.address]),u=react.useMemo(()=>a?.connectorType?i(orbitCore.getAdapterFromConnectorType(a.connectorType)):null,[i,a?.connectorType]),c=react.useMemo(()=>u&&"getBalance"in u&&typeof u.getBalance=="function",[u]),d=react.useCallback(async(p=false)=>{if(!a?.address||!u||!a?.chainId||!r||!c){o(false);return}let g=`${r}-${Date.now()}`;if(s.current=g,!p&&e[r]){o(false);return}o(true);try{let m=await u.getBalance(a.address,a.chainId);s.current===g&&t(N=>({...N,[r]:m}));}catch(m){console.error(`Failed to fetch native balance for ${r}:`,m),p&&s.current===g&&t(N=>{let h={...N};return delete h[r],h});}finally{s.current===g&&o(false);}},[a?.address,u,a?.chainId,r,c,e]),b=react.useCallback(()=>{d(true);},[d]);return react.useEffect(()=>{r&&c&&!e[r]?d(false):(!r||!c)&&o(false);},[r,c,e,d]),react.useEffect(()=>()=>{s.current=null;},[]),{balance:react.useMemo(()=>r&&e[r]||null,[r,e]),isLoading:n,refetch:b}}
|
|
2
|
-
exports.A=Et;exports.B=Rt;exports.a=he;exports.b=R;exports.c=V;exports.d=Ae;exports.e=Ne;exports.f=xe;exports.g=ce;exports.h=D;exports.i=ke;exports.j=we;exports.k=Ee;exports.l=Be;exports.m=Ie;exports.n=Me;exports.o=Pe;exports.p=We;exports.q=Ge;exports.r=Fe;exports.s=H;exports.t=Ue;exports.u=Je;exports.v=Ze;exports.w=Xe;exports.x=tt;exports.y=ft;exports.z=Ct;//# sourceMappingURL=chunk-4GK7WPFO.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-4GK7WPFO.cjs.map
|