@openzeppelin/contracts-ui-builder-adapter-solana
Version:
Solana Adapter for Contracts UI Builder
38 lines (34 loc) • 1.4 kB
text/typescript
import type {
ContractSchema,
NetworkConfig,
SolanaNetworkConfig,
} from '@openzeppelin/contracts-ui-builder-types';
import { logger } from '@openzeppelin/contracts-ui-builder-utils';
// Assuming we might reuse some types temporarily
// Placeholder type for wallet implementation
type SolanaWalletImplementation = unknown;
// Placeholder - updated to accept networkConfig
export async function querySolanaViewFunction(
_contractAddress: string,
_functionId: string,
networkConfig: NetworkConfig,
_params: unknown[],
_contractSchema: ContractSchema | undefined,
_walletImplementation: SolanaWalletImplementation | undefined, // Use placeholder type
_loadContractFn: (source: string, networkConfig?: NetworkConfig) => Promise<ContractSchema> // Update signature
): Promise<unknown> {
// Basic validation
if (networkConfig.ecosystem !== 'solana') {
throw new Error('Invalid network configuration for Solana query.');
}
const solanaConfig = networkConfig as SolanaNetworkConfig;
// TODO: Implement actual Solana view function query using:
// - solanaConfig.rpcEndpoint
// - _contractAddress, _functionId, _params, _contractSchema
// - Potentially use a Solana library like @solana/web3.js
logger.warn(
'querySolanaViewFunction',
`Not fully implemented for network: ${solanaConfig.name} (RPC: ${solanaConfig.rpcEndpoint})`
);
return undefined;
}