UNPKG

@indigo-labs/indigo-sdk

Version:

Indigo SDK for interacting with Indigo endpoints via lucid-evolution

42 lines (39 loc) 1.48 kB
import { applyParamsToScript, SpendingValidator } from '@lucid-evolution/lucid'; import { castGovParams, GovParams } from './types'; import { GovParamsSP, fromSystemParamsAssetLucid, } from '../../types/system-params'; import { _governanceValidator } from '../../validators/governance-validator'; export const mkGovValidator = (params: GovParams): SpendingValidator => { return { type: 'PlutusV3', script: applyParamsToScript(_governanceValidator.cborHex, [ castGovParams(params), ]), }; }; export const mkGovValidatorFromSP = ( params: GovParamsSP, ): SpendingValidator => { return { type: 'PlutusV3', script: applyParamsToScript(_governanceValidator.cborHex, [ castGovParams({ gBiasTime: BigInt(params.gBiasTime), govNFT: fromSystemParamsAssetLucid(params.govNFT), pollToken: fromSystemParamsAssetLucid(params.pollToken), upgradeToken: fromSystemParamsAssetLucid(params.upgradeToken), indyAsset: fromSystemParamsAssetLucid(params.indyAsset), versionRecordToken: fromSystemParamsAssetLucid( params.versionRecordToken, ), iassetSymbol: params.iassetSymbol.unCurrencySymbol, iassetValHash: params.iassetValHash, pollManagerValHash: params.pollManagerValHash, daoIdentityToken: fromSystemParamsAssetLucid(params.daoIdentityToken), iAssetAuthToken: fromSystemParamsAssetLucid(params.iAssetAuthToken), }), ]), }; };