{"version":3,"sources":["../src/index.ts","../src/adapter.ts","../src/configuration/rpc.ts","../src/configuration/network-services.ts","../src/configuration/execution.ts","../src/configuration/explorer.ts","../src/mapping/constants.ts","../src/mapping/type-mapper.ts","../src/mapping/field-generator.ts","../src/query/view-checker.ts","../src/query/handler.ts","../src/transaction/formatter.ts","../src/transaction/sender.ts","../src/transform/input-parser.ts","../src/transform/output-formatter.ts","../src/types/artifacts.ts","../src/utils/artifacts.ts","../src/utils/validation.ts","../src/wallet/connection.ts","../src/networks/mainnet.ts","../src/networks/testnet.ts","../src/networks/index.ts","../src/config.ts"],"sourcesContent":["// Re-export the main adapter class\nexport { SolanaAdapter } from './adapter';\n\n// Re-export adapter-specific types\nexport type { SolanaContractArtifacts } from './types/artifacts';\nexport { isSolanaContractArtifacts } from './types/artifacts';\n\nexport {\n  solanaNetworks,\n  solanaMainnetNetworks,\n  solanaTestnetNetworks,\n  // Individual networks\n  solanaMainnetBeta,\n  solanaDevnet,\n  solanaTestnet,\n} from './networks';\n\n// Export adapter configuration\nexport { solanaAdapterConfig } from './config';\n","import type {\n  AvailableUiKit,\n  Connector,\n  ContractAdapter,\n  ContractFunction,\n  ContractSchema,\n  ExecutionConfig,\n  ExecutionMethodDetail,\n  FieldType,\n  FormFieldType,\n  FunctionParameter,\n  NetworkServiceForm,\n  RelayerDetails,\n  RelayerDetailsRich,\n  SolanaNetworkConfig,\n  UiKitConfiguration,\n  UserRpcProviderConfig,\n  WalletConnectionStatus,\n} from '@openzeppelin/ui-builder-types';\nimport { isSolanaNetworkConfig } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\nimport {\n  getSolanaNetworkServiceForms,\n  testSolanaNetworkServiceConnection,\n  validateSolanaNetworkServiceConfig,\n} from './configuration/network-services';\n\nimport {\n  getSolanaExplorerAddressUrl,\n  getSolanaExplorerTxUrl,\n  getSolanaSupportedExecutionMethods,\n  testSolanaRpcConnection,\n  validateSolanaExecutionConfig,\n  validateSolanaRpcEndpoint,\n} from './configuration';\nimport {\n  generateSolanaDefaultField,\n  getSolanaCompatibleFieldTypes,\n  mapSolanaParamTypeToFieldType,\n} from './mapping';\nimport { isSolanaViewFunction, querySolanaViewFunction } from './query';\nimport {\n  formatSolanaTransactionData,\n  signAndBroadcastSolanaTransaction,\n  waitForSolanaTransactionConfirmation,\n} from './transaction';\nimport { formatSolanaFunctionResult } from './transform';\nimport { isValidSolanaAddress, validateAndConvertSolanaArtifacts } from './utils';\nimport {\n  connectSolanaWallet,\n  disconnectSolanaWallet,\n  getSolanaAvailableConnectors,\n  getSolanaWalletConnectionStatus,\n  onSolanaWalletConnectionChange,\n  solanaSupportsWalletConnection,\n  SolanaWalletConnectionStatus,\n} from './wallet';\n\n/**\n * Solana-specific adapter implementation\n */\nexport class SolanaAdapter implements ContractAdapter {\n  readonly networkConfig: SolanaNetworkConfig;\n  readonly initialAppServiceKitName: UiKitConfiguration['kitName'];\n  // private walletImplementation: SolanaWalletImplementation; // Example\n\n  constructor(networkConfig: SolanaNetworkConfig) {\n    if (!isSolanaNetworkConfig(networkConfig)) {\n      throw new Error('SolanaAdapter requires a valid Solana network configuration.');\n    }\n    this.networkConfig = networkConfig;\n    this.initialAppServiceKitName = 'custom';\n    logger.info(\n      'SolanaAdapter',\n      `Adapter initialized for network: ${networkConfig.name} (ID: ${networkConfig.id})`\n    );\n  }\n\n  public getNetworkServiceForms(): NetworkServiceForm[] {\n    return getSolanaNetworkServiceForms();\n  }\n\n  public async validateNetworkServiceConfig(\n    serviceId: string,\n    values: Record<string, unknown>\n  ): Promise<boolean> {\n    return validateSolanaNetworkServiceConfig(serviceId, values);\n  }\n\n  public async testNetworkServiceConnection(\n    serviceId: string,\n    values: Record<string, unknown>\n  ): Promise<{ success: boolean; latency?: number; error?: string }> {\n    return testSolanaNetworkServiceConnection(serviceId, values);\n  }\n\n  async loadContract(source: string | Record<string, unknown>): Promise<ContractSchema> {\n    // Solana contracts (programs) don't have a standardized on-chain ABI.\n    // The 'source' would likely be an IDL JSON provided by the user.\n    // This is a placeholder for a more complex implementation.\n    const artifacts = validateAndConvertSolanaArtifacts(source);\n\n    return {\n      name: 'SolanaProgram',\n      address: artifacts.contractAddress,\n      ecosystem: 'solana',\n      functions: [],\n      events: [],\n    };\n  }\n\n  getWritableFunctions(contractSchema: ContractSchema): ContractSchema['functions'] {\n    // Simple filtering can stay here or be moved to a query util if complex\n    return contractSchema.functions.filter((fn) => fn.modifiesState);\n  }\n\n  mapParameterTypeToFieldType(parameterType: string): FieldType {\n    return mapSolanaParamTypeToFieldType(parameterType);\n  }\n\n  getCompatibleFieldTypes(parameterType: string): FieldType[] {\n    return getSolanaCompatibleFieldTypes(parameterType);\n  }\n\n  generateDefaultField<T extends FieldType = FieldType>(\n    parameter: FunctionParameter\n  ): FormFieldType<T> {\n    return generateSolanaDefaultField(parameter);\n  }\n\n  public formatTransactionData(\n    contractSchema: ContractSchema,\n    functionId: string,\n    submittedInputs: Record<string, unknown>,\n    fields: FormFieldType[]\n  ): unknown {\n    return formatSolanaTransactionData(contractSchema, functionId, submittedInputs, fields);\n  }\n\n  async signAndBroadcast(\n    transactionData: unknown,\n    executionConfig?: ExecutionConfig\n  ): Promise<{ txHash: string }> {\n    return signAndBroadcastSolanaTransaction(transactionData, executionConfig);\n  }\n\n  isValidAddress(address: string): boolean {\n    return isValidSolanaAddress(address);\n  }\n\n  async getSupportedExecutionMethods(): Promise<ExecutionMethodDetail[]> {\n    return getSolanaSupportedExecutionMethods();\n  }\n\n  async validateExecutionConfig(config: ExecutionConfig): Promise<true | string> {\n    return validateSolanaExecutionConfig(config);\n  }\n\n  isViewFunction(functionDetails: ContractFunction): boolean {\n    return isSolanaViewFunction(functionDetails);\n  }\n\n  async queryViewFunction(\n    contractAddress: string,\n    functionId: string,\n    params: unknown[] = [],\n    contractSchema?: ContractSchema\n  ): Promise<unknown> {\n    return querySolanaViewFunction(\n      contractAddress,\n      functionId,\n      this.networkConfig,\n      params,\n      contractSchema,\n      null, // walletContext is not needed for view functions\n      (source: string) => this.loadContract({ contractAddress: source })\n    );\n  }\n\n  formatFunctionResult(decodedValue: unknown, functionDetails: ContractFunction): string {\n    return formatSolanaFunctionResult(decodedValue, functionDetails);\n  }\n\n  supportsWalletConnection(): boolean {\n    return solanaSupportsWalletConnection();\n  }\n\n  async getAvailableConnectors(): Promise<Connector[]> {\n    return getSolanaAvailableConnectors(/* this.walletImplementation */);\n  }\n\n  async connectWallet(\n    connectorId: string\n  ): Promise<{ connected: boolean; address?: string; error?: string }> {\n    return connectSolanaWallet(connectorId /*, undefined */);\n  }\n\n  async disconnectWallet(): Promise<{ disconnected: boolean; error?: string }> {\n    return disconnectSolanaWallet(/* undefined */);\n  }\n\n  getWalletConnectionStatus(): SolanaWalletConnectionStatus {\n    return getSolanaWalletConnectionStatus(/* undefined */);\n  }\n\n  onWalletConnectionChange?(\n    callback: (\n      currentStatus: WalletConnectionStatus,\n      previousStatus: WalletConnectionStatus\n    ) => void\n  ): () => void {\n    // Optional methods need careful handling during delegation\n    if (onSolanaWalletConnectionChange) {\n      return onSolanaWalletConnectionChange(/* this.walletImplementation, */ callback);\n    }\n    return () => {}; // Default no-op cleanup\n  }\n\n  getExplorerUrl(address: string): string | null {\n    return getSolanaExplorerAddressUrl(address, this.networkConfig);\n  }\n\n  getExplorerTxUrl?(txHash: string): string | null {\n    if (getSolanaExplorerTxUrl) {\n      return getSolanaExplorerTxUrl(txHash, this.networkConfig);\n    }\n    return null;\n  }\n\n  async waitForTransactionConfirmation?(txHash: string): Promise<{\n    status: 'success' | 'error';\n    receipt?: unknown;\n    error?: Error;\n  }> {\n    // Optional methods need careful handling during delegation\n    if (waitForSolanaTransactionConfirmation) {\n      return waitForSolanaTransactionConfirmation(txHash /*, this.walletImplementation */);\n    }\n    // If function doesn't exist in module, maybe return success immediately or throw?\n    // Throwing is safer if the interface implies support when implemented.\n    // Let's return success for placeholder.\n    return { status: 'success' };\n  }\n\n  public async getAvailableUiKits(): Promise<AvailableUiKit[]> {\n    return [\n      {\n        id: 'custom',\n        name: 'OpenZeppelin Custom',\n        configFields: [],\n      },\n    ];\n  }\n\n  public getContractDefinitionInputs(): FormFieldType[] {\n    return [\n      {\n        id: 'contractAddress',\n        name: 'contractAddress',\n        label: 'Program ID',\n        type: 'blockchain-address',\n        validation: { required: true },\n        placeholder: 'Enter Solana program ID',\n      },\n    ];\n  }\n\n  public async getRelayers(_serviceUrl: string, _accessToken: string): Promise<RelayerDetails[]> {\n    logger.warn('SolanaAdapter', 'getRelayers is not implemented for the Solana adapter yet.');\n    return Promise.resolve([]);\n  }\n\n  public async getRelayer(\n    _serviceUrl: string,\n    _accessToken: string,\n    _relayerId: string\n  ): Promise<RelayerDetailsRich> {\n    logger.warn('SolanaAdapter', 'getRelayer is not implemented for the Solana adapter yet.');\n    return Promise.resolve({} as RelayerDetailsRich);\n  }\n\n  /**\n   * @inheritdoc\n   */\n  async validateRpcEndpoint(rpcConfig: UserRpcProviderConfig): Promise<boolean> {\n    // TODO: Implement Solana-specific RPC validation when needed\n    return validateSolanaRpcEndpoint(rpcConfig);\n  }\n\n  /**\n   * @inheritdoc\n   */\n  async testRpcConnection(rpcConfig: UserRpcProviderConfig): Promise<{\n    success: boolean;\n    latency?: number;\n    error?: string;\n  }> {\n    // TODO: Implement Solana-specific RPC validation when needed\n    return testSolanaRpcConnection(rpcConfig);\n  }\n}\n\nexport default SolanaAdapter;\n","import type { UserRpcProviderConfig } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\n/**\n * Validates an RPC endpoint configuration for Solana networks.\n * @param rpcConfig - The RPC provider configuration to validate\n * @returns True if the configuration is valid, false otherwise\n */\nexport function validateSolanaRpcEndpoint(_rpcConfig: UserRpcProviderConfig): boolean {\n  // TODO: Implement Solana-specific RPC validation when needed\n  logger.info('validateSolanaRpcEndpoint', 'Solana RPC validation not yet implemented');\n  return true;\n}\n\n/**\n * Tests the connection to a Solana RPC endpoint.\n * @param rpcConfig - The RPC provider configuration to test\n * @returns Connection test results including success status, latency, and any errors\n */\nexport async function testSolanaRpcConnection(_rpcConfig: UserRpcProviderConfig): Promise<{\n  success: boolean;\n  latency?: number;\n  error?: string;\n}> {\n  // TODO: Implement RPC connection testing for Solana\n  // Could use getVersion or getHealth RPC method\n  logger.info('testSolanaRpcConnection', 'TODO: Implement RPC connection testing');\n  return { success: true };\n}\n","import type { NetworkServiceForm, UserRpcProviderConfig } from '@openzeppelin/ui-builder-types';\n\nimport { testSolanaRpcConnection, validateSolanaRpcEndpoint } from './rpc';\n\n/**\n * Returns the network service forms for Solana networks.\n * Defines the UI configuration for the RPC service.\n */\nexport function getSolanaNetworkServiceForms(): NetworkServiceForm[] {\n  return [\n    {\n      id: 'rpc',\n      label: 'RPC Provider',\n      fields: [\n        {\n          id: 'solana-rpc-endpoint',\n          name: 'rpcEndpoint',\n          type: 'text',\n          label: 'RPC Endpoint',\n          placeholder: 'https://api.mainnet-beta.solana.com',\n          validation: { required: true, pattern: '^https?://.+' },\n          width: 'full',\n        },\n      ],\n    },\n  ];\n}\n\n/**\n * Validates a network service configuration for Solana networks.\n */\nexport async function validateSolanaNetworkServiceConfig(\n  serviceId: string,\n  values: Record<string, unknown>\n): Promise<boolean> {\n  if (serviceId !== 'rpc') return true;\n  const cfg = { url: String(values.rpcEndpoint || ''), isCustom: true } as UserRpcProviderConfig;\n  return validateSolanaRpcEndpoint(cfg);\n}\n\n/**\n * Tests a network service connection for Solana networks.\n */\nexport async function testSolanaNetworkServiceConnection(\n  serviceId: string,\n  values: Record<string, unknown>\n): Promise<{ success: boolean; latency?: number; error?: string }> {\n  if (serviceId !== 'rpc') return { success: true };\n  const cfg = { url: String(values.rpcEndpoint || ''), isCustom: true } as UserRpcProviderConfig;\n  return testSolanaRpcConnection(cfg);\n}\n","import type { ExecutionConfig, ExecutionMethodDetail } from '@openzeppelin/ui-builder-types';\n\n// Placeholders\nexport async function getSolanaSupportedExecutionMethods(): Promise<ExecutionMethodDetail[]> {\n  return [{ type: 'eoa', name: 'EOA', description: 'Placeholder' }];\n}\nexport async function validateSolanaExecutionConfig(\n  _config: ExecutionConfig\n): Promise<true | string> {\n  return true;\n}\n","import { NetworkConfig } from '@openzeppelin/ui-builder-types';\nimport type { UserExplorerConfig } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\n/**\n * Gets a blockchain explorer URL for a Solana address.\n * Uses the explorerUrl from the network configuration.\n */\nexport function getSolanaExplorerAddressUrl(\n  address: string,\n  networkConfig: NetworkConfig\n): string | null {\n  if (!networkConfig.explorerUrl) {\n    return null;\n  }\n  // Construct the URL, assuming a standard /address/ path\n  // Handle potential trailing slashes in explorerUrl\n  const baseUrl = networkConfig.explorerUrl.replace(/\\/+$/, '');\n  return `${baseUrl}/address/${address}`;\n}\n\n/**\n * Gets a blockchain explorer URL for a Solana transaction.\n * Uses the explorerUrl from the network configuration.\n */\nexport function getSolanaExplorerTxUrl(\n  txHash: string,\n  networkConfig: NetworkConfig\n): string | null {\n  if (!networkConfig.explorerUrl) {\n    return null;\n  }\n  // Construct the URL, assuming a standard /tx/ path\n  const baseUrl = networkConfig.explorerUrl.replace(/\\/+$/, '');\n  return `${baseUrl}/tx/${txHash}`;\n}\n\n/**\n * Validates an explorer configuration for Solana networks.\n * @param explorerConfig - The explorer configuration to validate\n * @returns True if the configuration is valid, false otherwise\n */\nexport function validateSolanaExplorerConfig(_explorerConfig: UserExplorerConfig): boolean {\n  // TODO: Implement Solana-specific explorer validation when needed\n  logger.info('validateSolanaExplorerConfig', 'Solana explorer validation not yet implemented');\n  return true;\n}\n\n/**\n * Tests the connection to a Solana explorer API.\n * @param explorerConfig - The explorer configuration to test\n * @returns Connection test results including success status, latency, and any errors\n */\nexport async function testSolanaExplorerConnection(_explorerConfig: UserExplorerConfig): Promise<{\n  success: boolean;\n  latency?: number;\n  error?: string;\n}> {\n  // TODO: Implement explorer connection testing for Solana\n  logger.info('testSolanaExplorerConnection', 'TODO: Implement explorer connection testing');\n  return { success: true };\n}\n","import type { FieldType } from '@openzeppelin/ui-builder-types';\n\n// Placeholder\nexport const SOLANA_TYPE_TO_FIELD_TYPE: Record<string, FieldType> = {\n  string: 'text',\n  u64: 'number',\n  publicKey: 'blockchain-address',\n  // Add more Solana types\n};\n","import type { FieldType } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\nimport { SOLANA_TYPE_TO_FIELD_TYPE } from './constants';\n\n// Placeholder\nexport function mapSolanaParamTypeToFieldType(parameterType: string): FieldType {\n  logger.warn('adapter-solana', 'mapSolanaParamTypeToFieldType not implemented');\n  return SOLANA_TYPE_TO_FIELD_TYPE[parameterType] || 'text';\n}\n\n// Placeholder\nexport function getSolanaCompatibleFieldTypes(parameterType: string): FieldType[] {\n  logger.warn('adapter-solana', 'getSolanaCompatibleFieldTypes not implemented');\n  // Allow basic types for now\n  if (parameterType === 'publicKey') return ['blockchain-address', 'text'];\n  if (parameterType.startsWith('u') || parameterType.startsWith('i')) return ['number', 'text'];\n  return ['text', 'textarea'];\n}\n","import { startCase } from 'lodash';\n\nimport type {\n  FieldType,\n  FieldValidation,\n  FormFieldType,\n  FunctionParameter,\n} from '@openzeppelin/ui-builder-types';\nimport { getDefaultValueForType, logger } from '@openzeppelin/ui-builder-utils';\n\nimport { mapSolanaParamTypeToFieldType } from './type-mapper';\n\n// Placeholder - Needs specific logic\nfunction getDefaultValidationForType(_parameterType: string): FieldValidation {\n  return { required: true };\n}\n\n// Placeholder\nexport function generateSolanaDefaultField<T extends FieldType = FieldType>(\n  parameter: FunctionParameter\n): FormFieldType<T> {\n  logger.warn('adapter-solana', 'generateSolanaDefaultField not implemented');\n  const fieldType = mapSolanaParamTypeToFieldType(parameter.type) as T;\n  return {\n    id: `field-${Math.random().toString(36).substring(2, 9)}`,\n    name: parameter.name || parameter.type,\n    label: startCase(parameter.displayName || parameter.name || parameter.type),\n    type: fieldType,\n    placeholder: `Enter ${parameter.displayName || parameter.name || parameter.type}`,\n    defaultValue: getDefaultValueForType(fieldType),\n    validation: getDefaultValidationForType(parameter.type),\n    width: 'full',\n  };\n}\n","import type { ContractFunction } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\n// Placeholder\nexport function isSolanaViewFunction(_functionDetails: ContractFunction): boolean {\n  logger.warn('adapter-solana', 'isSolanaViewFunction not implemented');\n  return false; // Placeholder\n}\n","import type {\n  ContractSchema,\n  NetworkConfig,\n  SolanaNetworkConfig,\n} from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\n// Assuming we might reuse some types temporarily\n// Placeholder type for wallet implementation\ntype SolanaWalletImplementation = unknown;\n\n// Placeholder - updated to accept networkConfig\nexport async function querySolanaViewFunction(\n  _contractAddress: string,\n  _functionId: string,\n  networkConfig: NetworkConfig,\n  _params: unknown[],\n  _contractSchema: ContractSchema | undefined,\n  _walletImplementation: SolanaWalletImplementation | undefined, // Use placeholder type\n  _loadContractFn: (source: string, networkConfig?: NetworkConfig) => Promise<ContractSchema> // Update signature\n): Promise<unknown> {\n  // Basic validation\n  if (networkConfig.ecosystem !== 'solana') {\n    throw new Error('Invalid network configuration for Solana query.');\n  }\n  const solanaConfig = networkConfig as SolanaNetworkConfig;\n\n  // TODO: Implement actual Solana view function query using:\n  // - solanaConfig.rpcEndpoint\n  // - _contractAddress, _functionId, _params, _contractSchema\n  // - Potentially use a Solana library like @solana/web3.js\n  logger.warn(\n    'querySolanaViewFunction',\n    `Not fully implemented for network: ${solanaConfig.name} (RPC: ${solanaConfig.rpcEndpoint})`\n  );\n  return undefined;\n}\n","import type { ContractSchema, FormFieldType } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\n// Placeholder\nexport function formatSolanaTransactionData(\n  _contractSchema: ContractSchema, // Use underscore prefix for unused placeholder args\n  _functionId: string,\n  _submittedInputs: Record<string, unknown>,\n  _fields: FormFieldType[]\n): unknown {\n  logger.warn('adapter-solana', 'formatSolanaTransactionData not implemented');\n  return {};\n}\n","import type { ExecutionConfig } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\nconst SYSTEM_LOG_TAG = 'adapter-solana';\n// Placeholder\nexport async function signAndBroadcastSolanaTransaction(\n  _transactionData: unknown,\n  executionConfig?: ExecutionConfig\n): Promise<{ txHash: string }> {\n  logger.warn(SYSTEM_LOG_TAG, 'signAndBroadcastSolanaTransaction not implemented');\n  logger.info(\n    SYSTEM_LOG_TAG,\n    'Solana signAndBroadcast called with executionConfig:',\n    executionConfig\n  );\n  // TODO: Use executionConfig\n  return { txHash: 'solana_placeholder_tx' };\n}\n\n// Placeholder - Note: Optional methods aren't typically defined this way as standalone functions.\n// The adapter class itself would implement the optional method from the interface.\n// For refactoring, we'll define it here, but it might be better integrated differently.\nexport async function waitForSolanaTransactionConfirmation(\n  _txHash: string\n): Promise<{ status: 'success' | 'error'; receipt?: unknown; error?: Error }> {\n  logger.warn('adapter-solana', 'waitForSolanaTransactionConfirmation not implemented');\n  return { status: 'success' }; // Assume success for placeholder\n}\n","import type { FunctionParameter } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\n// Placeholder\nexport function parseSolanaInput(\n  _param: FunctionParameter,\n  rawValue: unknown,\n  _isRecursive = false\n): unknown {\n  logger.warn('adapter-solana', 'parseSolanaInput not implemented');\n  return rawValue; // Passthrough for now\n}\n","import type { ContractFunction } from '@openzeppelin/ui-builder-types';\nimport { logger } from '@openzeppelin/ui-builder-utils';\n\n// Placeholder\nexport function formatSolanaFunctionResult(\n  decodedValue: unknown,\n  _functionDetails: ContractFunction\n): string {\n  logger.warn('adapter-solana', 'formatSolanaFunctionResult not implemented');\n  if (decodedValue === null || decodedValue === undefined) return '(null)';\n  // Basic string formatting for now\n  return String(decodedValue);\n}\n","/**\n * Solana-specific contract artifacts interface\n * Defines the structure of data needed to load Solana programs\n */\nexport interface SolanaContractArtifacts {\n  /** The program ID (required) */\n  contractAddress: string;\n\n  /** Optional IDL JSON for program interface */\n  idl?: string;\n}\n\n/**\n * Type guard to check if an object matches SolanaContractArtifacts structure\n */\nexport function isSolanaContractArtifacts(obj: unknown): obj is SolanaContractArtifacts {\n  return (\n    typeof obj === 'object' &&\n    obj !== null &&\n    typeof (obj as Record<string, unknown>).contractAddress === 'string'\n  );\n}\n","/**\n * Utility functions for Solana contract artifacts validation and conversion\n */\nimport type { SolanaContractArtifacts } from '../types/artifacts';\nimport { isSolanaContractArtifacts } from '../types/artifacts';\n\n/**\n * Validates and converts generic source input to SolanaContractArtifacts\n *\n * @param source - Generic contract source (string address or artifacts object)\n * @returns Validated SolanaContractArtifacts\n * @throws Error if the source is invalid\n */\nexport function validateAndConvertSolanaArtifacts(\n  source: string | Record<string, unknown>\n): SolanaContractArtifacts {\n  if (typeof source === 'string') {\n    // If source is a string, assume it's a contract address\n    return { contractAddress: source };\n  }\n\n  // Validate that the object has the required structure\n  if (!isSolanaContractArtifacts(source)) {\n    throw new Error(\n      'Invalid contract artifacts provided. Expected an object with contractAddress property.'\n    );\n  }\n\n  return source;\n}\n","import { logger } from '@openzeppelin/ui-builder-utils';\n\n// Placeholder validation utility for Solana\nexport function isValidSolanaAddress(address: string): boolean {\n  logger.warn('adapter-solana', 'isValidSolanaAddress not implemented robustly');\n  // Basic placeholder check\n  return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);\n}\n","import type { Connector } from '@openzeppelin/ui-builder-types';\n\nimport type { SolanaWalletConnectionStatus } from './types';\n\n// Assuming a Solana Wallet Implementation type might exist later\n// import type { SolanaWalletImplementation } from './implementation';\n\n// Placeholders\nexport function solanaSupportsWalletConnection(): boolean {\n  return false;\n}\nexport async function getSolanaAvailableConnectors(/* walletImplementation: SolanaWalletImplementation */): Promise<\n  Connector[]\n> {\n  return [];\n}\nexport async function connectSolanaWallet(\n  _connectorId: string\n  /* walletImplementation: SolanaWalletImplementation */\n): Promise<{ connected: boolean; error?: string }> {\n  return { connected: false, error: 'Not implemented' };\n}\nexport async function disconnectSolanaWallet(/* walletImplementation: SolanaWalletImplementation */): Promise<{\n  disconnected: boolean;\n  error?: string;\n}> {\n  return { disconnected: true };\n}\nexport function getSolanaWalletConnectionStatus(/* walletImplementation: SolanaWalletImplementation */): SolanaWalletConnectionStatus {\n  return {\n    isConnected: false,\n    isConnecting: false,\n    isDisconnected: true,\n    isReconnecting: false,\n    status: 'disconnected',\n  };\n}\nexport function onSolanaWalletConnectionChange(\n  /* walletImplementation: SolanaWalletImplementation, */\n  _callback: (\n    currentStatus: SolanaWalletConnectionStatus,\n    previousStatus: SolanaWalletConnectionStatus\n  ) => void\n): () => void {\n  return () => {};\n}\n","import { NetworkSolana } from '@web3icons/react';\n\nimport { SolanaNetworkConfig } from '@openzeppelin/ui-builder-types';\n\n// Placeholder for Solana Mainnet Beta\nexport const solanaMainnetBeta: SolanaNetworkConfig = {\n  id: 'solana-mainnet-beta',\n  exportConstName: 'solanaMainnetBeta',\n  name: 'Solana',\n  ecosystem: 'solana',\n  network: 'solana',\n  type: 'mainnet',\n  isTestnet: false,\n  rpcEndpoint: 'https://api.mainnet-beta.solana.com',\n  commitment: 'confirmed',\n  explorerUrl: 'https://explorer.solana.com',\n  iconComponent: NetworkSolana,\n};\n\n// Add other Solana mainnet networks if applicable\n","import { NetworkSolana } from '@web3icons/react';\n\nimport { SolanaNetworkConfig } from '@openzeppelin/ui-builder-types';\n\n// Placeholder for Solana Devnet\nexport const solanaDevnet: SolanaNetworkConfig = {\n  id: 'solana-devnet',\n  exportConstName: 'solanaDevnet',\n  name: 'Solana Devnet',\n  ecosystem: 'solana',\n  network: 'solana',\n  type: 'devnet', // Solana uses 'devnet' commonly\n  isTestnet: true,\n  rpcEndpoint: 'https://api.devnet.solana.com',\n  commitment: 'confirmed',\n  explorerUrl: 'https://explorer.solana.com/?cluster=devnet',\n  iconComponent: NetworkSolana,\n};\n\n// Placeholder for Solana Testnet\nexport const solanaTestnet: SolanaNetworkConfig = {\n  id: 'solana-testnet',\n  exportConstName: 'solanaTestnet',\n  name: 'Solana Testnet',\n  ecosystem: 'solana',\n  network: 'solana',\n  type: 'testnet',\n  isTestnet: true,\n  rpcEndpoint: 'https://api.testnet.solana.com',\n  commitment: 'confirmed',\n  explorerUrl: 'https://explorer.solana.com/?cluster=testnet',\n  iconComponent: NetworkSolana,\n};\n\n// Add other Solana testnet/devnet networks if applicable\n","import { SolanaNetworkConfig } from '@openzeppelin/ui-builder-types';\n\nimport { solanaMainnetBeta } from './mainnet';\nimport { solanaDevnet, solanaTestnet } from './testnet';\n\n// All mainnet networks\nexport const solanaMainnetNetworks: SolanaNetworkConfig[] = [solanaMainnetBeta];\n\n// All testnet/devnet networks\nexport const solanaTestnetNetworks: SolanaNetworkConfig[] = [solanaDevnet, solanaTestnet];\n\n// All Solana networks\nexport const solanaNetworks: SolanaNetworkConfig[] = [\n  ...solanaMainnetNetworks,\n  ...solanaTestnetNetworks,\n];\n\n// Export individual networks as well\nexport { solanaMainnetBeta, solanaDevnet, solanaTestnet };\n","// import type { AdapterConfig } from '../../core/types/AdapterTypes';\n\n/**\n * Configuration for the Solana adapter\n *\n * This file defines the dependencies required by the Solana adapter\n * when generating exported projects. It follows the AdapterConfig\n * interface to provide a structured approach to dependency management.\n */\nexport const solanaAdapterConfig = {\n  /**\n   * Dependencies required by the Solana adapter\n   * These will be included in exported projects that use this adapter\n   */\n  dependencies: {\n    // TODO: Review and update with real, verified dependencies and versions before production release\n\n    // Runtime dependencies\n    runtime: {\n      // Core Solana libraries\n      '@solana/web3.js': '^1.78.5',\n      '@solana/spl-token': '^0.3.8',\n\n      // Wallet adapters\n      '@solana/wallet-adapter-react': '^0.15.35',\n      '@solana/wallet-adapter-base': '^0.9.23',\n\n      // Utilities for working with Solana\n      bs58: '^5.0.0',\n      '@project-serum/anchor': '^0.26.0',\n    },\n\n    // Development dependencies\n    dev: {\n      // Testing utilities for Solana\n      '@solana/spl-token-registry': '^0.2.4574',\n\n      // CLI tools for development\n      '@solana/cli': '^1.1.0',\n    },\n  },\n};\n"],"mappings":"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","names":["import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_ui_builder_utils","import_react"]}