@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
42 lines (39 loc) • 1.48 kB
text/typescript
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),
}),
]),
};
};