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

export const TreasuryParamsSchema = Data.Object({
  upgradeToken: AssetClassSchema,
  versionRecordToken: AssetClassSchema,
  treasuryUtxosStakeCredential: Data.Nullable(StakeCredentialSchema),
});
export type TreasuryParams = Data.Static<typeof TreasuryParamsSchema>;
export const TreasuryParams = TreasuryParamsSchema as unknown as TreasuryParams;

export function castTreasuryParams(params: TreasuryParams): Data {
  return Data.castTo(params, TreasuryParams);
}
