import { Data } from '@lucid-evolution/lucid';
import { AssetClassSchema } from '../../types/generic';

const StakingParamsSchema = Data.Object({
  stakingManagerNft: AssetClassSchema,
  stakingToken: AssetClassSchema,
  indyToken: AssetClassSchema,
  pollToken: AssetClassSchema,
  versionRecordToken: AssetClassSchema,
  collectorValHash: Data.Bytes(),
});
type StakingParams = Data.Static<typeof StakingParamsSchema>;
const StakingParams = StakingParamsSchema as unknown as StakingParams;

export function castStakingParams(params: StakingParams): Data {
  return Data.castTo(params, StakingParams);
}
