@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
39 lines (34 loc) • 1.18 kB
text/typescript
import { applyParamsToScript, SpendingValidator } from '@lucid-evolution/lucid';
import {
fromSystemParamsAssetLucid,
IAssetParamsSP,
} from '../../types/system-params';
import { _cdpValidator } from '../../validators/cdp-validator';
import { _iassetValidator } from '../../validators/iasset-validator';
import { Data } from '@lucid-evolution/lucid';
import { AssetClassSchema } from '../../types/generic';
const IAssetScriptParamsSchema = Data.Object({
upgradeToken: AssetClassSchema,
versionRecordToken: AssetClassSchema,
});
export type IAssetScriptParams = Data.Static<typeof IAssetScriptParamsSchema>;
export const IAssetScriptParams =
IAssetScriptParamsSchema as unknown as IAssetScriptParams;
export const mkIAssetValidatorFromSP = (
params: IAssetParamsSP,
): SpendingValidator => {
return {
type: 'PlutusV3',
script: applyParamsToScript(_iassetValidator.cborHex, [
Data.castTo(
{
upgradeToken: fromSystemParamsAssetLucid(params.upgradeToken),
versionRecordToken: fromSystemParamsAssetLucid(
params.versionRecordToken,
),
},
IAssetScriptParams,
),
]),
};
};