@robertprp/intents-sdk
Version:
Shogun Network Intent-based cross-chain swaps SDK
39 lines • 1.66 kB
TypeScript
import type { CreateCrossChainOrderParams } from '../core/orders/cross-chain.js';
import type { CreateSingleChainOrderParams } from '../core/orders/single-chain.js';
import type { IChainValidator } from './order-validator.js';
/**
* BaseValidator - Abstract class implementing common validation logic
* This follows the Template Method pattern
*/
export declare abstract class BaseValidator implements IChainValidator {
abstract isValidAddress(address: string): boolean;
abstract isValidTokenAddress(tokenAddress: string): boolean;
abstract isValidAmount(amount: bigint): boolean;
protected abstract getChainName(): string;
abstract validateCrossChainOrderFeasability(order: CreateCrossChainOrderParams & {
user: string;
}): Promise<void>;
abstract validateSingleChainOrderFeasability(order: CreateSingleChainOrderParams & {
user: string;
}): Promise<void>;
/**
* Validate source chain specific parameters of the order
*/
validateSourceChain(order: CreateCrossChainOrderParams & {
user: string;
}): Promise<void>;
validateSingleChainOrder(order: CreateSingleChainOrderParams & {
user: string;
}): Promise<void>;
/**
* Validate destination chain specific parameters of the order
*/
validateDestinationChain(order: CreateCrossChainOrderParams): void;
/**
* Helper methods that throw specific validation errors
*/
protected validateAddress(address: string): void;
protected validateTokenAddress(tokenAddress: string): void;
protected validateAmount(amount: bigint): void;
}
//# sourceMappingURL=base-validator.d.ts.map