@openzeppelin/ui-builder-adapter-solana
v1.8.0
Published
Solana Adapter for UI Builder
Readme
Solana Adapter (@openzeppelin/ui-builder-adapter-solana)
This package provides the ContractAdapter implementation for the Solana blockchain for the UI Builder.
Note: While the basic structure is in place, including network configuration definitions, the core adapter logic for Solana-specific operations is currently a placeholder and will be implemented in future development phases.
It is intended to be responsible for:
- Implementing the
ContractAdapterinterface from@openzeppelin/ui-types. - Defining and exporting specific Solana network configurations (e.g., Mainnet Beta, Devnet, Testnet) as
SolanaNetworkConfigobjects. These are located insrc/networks/and include details like RPC endpoints, cluster information, explorer URLs, and commitment levels. - Loading Solana program IDLs (Instruction Description Language).
- Mapping Solana-specific data types to the form field types.
- Parsing user input into Solana-compatible transaction instructions, according to the
SolanaNetworkConfig. - Formatting results from on-chain program queries.
- Interacting with Solana wallets (e.g., via
@solana/wallet-adapter-base) for signing and sending transactions on the configured network. - Providing other Solana-specific configurations and validation.
Usage
Once fully implemented, the SolanaAdapter class will be instantiated with a specific SolanaNetworkConfig object:
// Example: import { solanaMainnetBeta } from '@openzeppelin/ui-builder-adapter-solana';
import { SolanaAdapter } from '@openzeppelin/ui-builder-adapter-solana';
import { SolanaNetworkConfig } from '@openzeppelin/ui-types';
// For type access if needed
// Placeholder: Actual network config objects would be imported from './networks'
const placeholderNetworkConfig: SolanaNetworkConfig = {
id: 'solana-devnet',
name: 'Solana Devnet',
ecosystem: 'solana',
network: 'solana',
type: 'devnet',
isTestnet: true,
rpcEndpoint: 'https://api.devnet.solana.com',
explorerUrl: 'https://explorer.solana.com/?cluster=devnet',
commitment: 'confirmed',
// ... any other SolanaNetworkConfig fields
};
const solanaAdapter = new SolanaAdapter(placeholderNetworkConfig);
// Use solanaAdapter for operations on the configured Solana networkNetwork configurations for Solana networks (e.g., solanaMainnetBeta, solanaDevnet) are defined and exported from src/networks/index.ts within this package. The full list is exported as solanaNetworks.
Package Structure
adapter-solana/
├── src/
│ ├── config/ # Adapter-specific configuration
│ ├── idl/ # IDL (Interface Description Language) utilities
│ ├── mapping/ # Type mapping utilities
│ ├── networks/ # Solana network configurations
│ ├── program/ # Program interaction utilities
│ ├── transaction/ # Transaction execution system
│ ├── validation/ # Validation utilities
│ ├── wallet/ # Wallet integration (placeholder)
│ ├── adapter.ts # Main SolanaAdapter class implementation
│ └── index.ts # Public package exports
├── package.json
├── tsconfig.json
├── tsup.config.ts
├── vitest.config.ts
└── README.mdInternal Structure
This adapter follows the standard module structure outlined in the main project Adapter Architecture Guide, with the src/networks/ directory for managing its network configurations.
