UNPKG

@indigo-labs/indigo-sdk

Version:

Indigo SDK for interacting with Indigo endpoints via lucid-evolution

81 lines (76 loc) 2.38 kB
/** * Test endpoint for protocol initialization. * Re-exports from the initialize contract and provides a test-friendly init() wrapper * that uses protocolParamsMock and optional initPyth when pythConfig is not provided. */ import type { LucidEvolution } from '@lucid-evolution/lucid'; import type { ScriptCredential } from '../../src'; import type { ProtocolParams } from '../../src/contracts/gov/types-new'; import { init as initContract, initPythConfig, } from '../../src/contracts/initialize/actions'; import { mintOneTimeToken, DEFAULT_INIT_OPTIONS, } from '../../src/contracts/initialize/helpers'; import type { AssetInfo, CollateralAssetInfo, InitialAssetParam, InitializeOptions, } from '../../src/contracts/initialize/types'; import { protocolParamsMock } from '../mock/protocol-params-mock'; import { AssetClass } from '@3rd-eye-labs/cardano-offchain-common'; export type { AssetInfo, CollateralAssetInfo, InitialAssetParam, InitializeOptions, }; export { initPythConfig, mintOneTimeToken, DEFAULT_INIT_OPTIONS }; /** * Initialize the protocol (test helper). * Uses protocolParamsMock merged with overrideProtocolParams. * If pythConfig is not provided, initializes Pyth via initPyth + initPythConfig. * Uses DEFAULT_INIT_OPTIONS when initOptions is not provided. */ export async function init( lucid: LucidEvolution, defaultInitialAssets: InitialAssetParam[], currentSlot: number, mkPythBasedAssets: ( pythStateNft: AssetClass, ) => InitialAssetParam[] = () => [], overrideProtocolParams: Partial<ProtocolParams> = {}, initOptions: InitializeOptions = DEFAULT_INIT_OPTIONS, spStakingCred: ScriptCredential = { tag: 'StakingHash', contents: { tag: 'ScriptCredential', contents: 'b8358aadd30c60eba168608ad5e875592e9b7cb8c700827cde87f9a3', }, }, treasuryStakingCred: ScriptCredential = { tag: 'StakingHash', contents: { tag: 'ScriptCredential', contents: 'b8358aadd30c60eba168608ad5e875592e9b7cb8c700827cde87f9a3', }, }, ): Promise<ReturnType<typeof initContract>> { const protocolParams: ProtocolParams = { ...protocolParamsMock, ...overrideProtocolParams, }; return initContract( lucid, defaultInitialAssets, currentSlot, mkPythBasedAssets, protocolParams, initOptions, spStakingCred, treasuryStakingCred, ); }