import { IPortalApi } from '@portal-hq/utils' import type { YieldXyzValidator } from '../../types' import { type IYieldXyz, YieldXyz, type YieldXyzOptions } from './YieldXyz' export interface YieldConstructorOptions extends YieldXyzOptions { api: IPortalApi } function isYieldConstructorOptions( arg: IPortalApi | YieldConstructorOptions, ): arg is YieldConstructorOptions { if (typeof arg !== 'object' || arg === null || !('api' in arg)) { return false } const api = arg.api return typeof api === 'object' && api !== null } export class Yield { public readonly yieldxyz: IYieldXyz constructor(apiOrOptions: IPortalApi | YieldConstructorOptions) { const options: YieldXyzOptions = isYieldConstructorOptions(apiOrOptions) ? apiOrOptions : { api: apiOrOptions } this.yieldxyz = new YieldXyz(options) } public getValidators(yieldId: string): Promise { return this.yieldxyz.getValidators(yieldId) } } export default Yield