import { isAddress as isSolanaAddress } from '@solana/kit';
import { MAX_UINT_64 } from '../../constants.js';
import { BaseValidator } from '../../utils/base-validator.js';

export class SolanaValidator extends BaseValidator {
  override validateSingleChainOrderFeasability(): Promise<void> {
    return Promise.resolve();
  }

  isValidAddress(address: string): boolean {
    return isSolanaAddress(address);
  }

  isValidTokenAddress(tokenAddress: string): boolean {
    return isSolanaAddress(tokenAddress);
  }

  isValidAmount(amount: bigint): boolean {
    return amount > 0n && amount < MAX_UINT_64;
  }

  protected getChainName(): string {
    return 'Solana';
  }

  public async validateCrossChainOrderFeasability(): Promise<void> {
    // No chain-specific validation implemented for now for Solana
    return;
  }
}
