@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
58 lines (55 loc) • 1.83 kB
text/typescript
import {
applyParamsToScript,
applySingleCborEncoding,
SpendingValidator,
} from '@lucid-evolution/lucid';
import { castExecuteParams, ExecuteParams } from './types';
import {
ExecuteParamsSP,
fromSystemParamsAssetLucid,
} from '../../types/system-params';
import { _executeValidator } from '../../validators/execute-validator';
export const mkExecuteValidator = (
params: ExecuteParams,
): SpendingValidator => {
return {
type: 'PlutusV3',
script: applySingleCborEncoding(
applyParamsToScript(_executeValidator.cborHex, [
castExecuteParams(params),
]),
),
};
};
export const mkExecuteValidatorFromSP = (
params: ExecuteParamsSP,
): SpendingValidator => {
return {
type: 'PlutusV3',
script: applySingleCborEncoding(
applyParamsToScript(_executeValidator.cborHex, [
castExecuteParams({
govNFT: fromSystemParamsAssetLucid(params.govNFT),
upgradeToken: fromSystemParamsAssetLucid(params.upgradeToken),
iAssetToken: fromSystemParamsAssetLucid(params.iAssetToken),
collateralAssetToken: fromSystemParamsAssetLucid(
params.collateralAssetToken,
),
stabilityPoolToken: fromSystemParamsAssetLucid(
params.stabilityPoolToken,
),
cdpCreatorToken: fromSystemParamsAssetLucid(params.cdpCreatorToken),
cdpToken: fromSystemParamsAssetLucid(params.cdpToken),
versionRecordToken: fromSystemParamsAssetLucid(
params.versionRecordToken,
),
iassetValHash: params.iassetValHash,
cdpValHash: params.cdpValHash,
sPoolValHash: params.sPoolValHash,
versionRegistryValHash: params.versionRegistryValHash,
treasuryValHash: params.treasuryValHash,
}),
]),
),
};
};