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

const GovParamsSchema = Data.Object({
  govNFT: AssetClassSchema,
  pollToken: AssetClassSchema,
  upgradeToken: AssetClassSchema,
  indyAsset: AssetClassSchema,
  versionRecordToken: AssetClassSchema,
  iassetSymbol: Data.Bytes(),
  pollManagerValHash: Data.Bytes(),
  iassetValHash: Data.Bytes(),
  gBiasTime: Data.Integer(),
  daoIdentityToken: AssetClassSchema,
  iAssetAuthToken: AssetClassSchema,
});
export type GovParams = Data.Static<typeof GovParamsSchema>;
export const GovParams = GovParamsSchema as unknown as GovParams;

export function castGovParams(params: GovParams): Data {
  return Data.castTo(params, GovParams);
}
