@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
52 lines (49 loc) • 1.9 kB
text/typescript
import { applyParamsToScript, SpendingValidator } from '@lucid-evolution/lucid';
import { castStabilityPoolParams, StabilityPoolParams } from './types';
import {
fromSysParamsStakeCredential,
fromSystemParamsAssetLucid,
StabilityPoolParamsSP,
} from '../../types/system-params';
import { _stabilityPoolValidator } from '../../validators/stability-pool-validator';
export const mkStabilityPoolValidator = (
params: StabilityPoolParams,
): SpendingValidator => {
return {
type: 'PlutusV3',
script: applyParamsToScript(_stabilityPoolValidator.cborHex, [
castStabilityPoolParams(params),
]),
};
};
export const mkStabilityPoolValidatorFromSP = (
params: StabilityPoolParamsSP,
): SpendingValidator => {
return {
type: 'PlutusV3',
script: applyParamsToScript(_stabilityPoolValidator.cborHex, [
castStabilityPoolParams({
assetSymbol: params.assetSymbol.unCurrencySymbol,
stabilityPoolToken: fromSystemParamsAssetLucid(
params.stabilityPoolToken,
),
snapshotEpochToScaleToSumToken: fromSystemParamsAssetLucid(
params.snapshotEpochToScaleToSumToken,
),
accountToken: fromSystemParamsAssetLucid(params.accountToken),
cdpToken: fromSystemParamsAssetLucid(params.cdpToken),
iAssetAuthToken: fromSystemParamsAssetLucid(params.iAssetAuthToken),
versionRecordToken: fromSystemParamsAssetLucid(
params.versionRecordToken,
),
iassetValHash: params.iassetValHash,
accountCreateFeeLovelaces: BigInt(params.accountCreateFeeLovelaces),
accountProcessingCooldownMs: BigInt(params.accountProcessingCooldownMs),
accountProcessingBiasMs: BigInt(params.accountProcessingBiasMs),
stakeCredential: params.stakeCredential
? fromSysParamsStakeCredential(params.stakeCredential)
: null,
}),
]),
};
};