UNPKG

@indigo-labs/indigo-sdk

Version:

Indigo SDK for interacting with Indigo endpoints via lucid-evolution

85 lines (77 loc) 2.38 kB
import { assert, beforeEach, test } from 'vitest'; import { LucidContext } from './test-helpers'; import { addAssets, EmulatorAccount, Lucid } from '@lucid-evolution/lucid'; import { Emulator } from '@lucid-evolution/lucid'; import { generateEmulatorAccount } from '@lucid-evolution/lucid'; import { DEFAULT_INTEREST, iusdInitialAssetCfg } from './mock/assets-mock'; import { EXAMPLE_TOKEN_1, MAINNET_PROTOCOL_PARAMETERS, } from './indigo-test-helpers'; import { mkAssetsOf, mkLovelacesOf, } from '@3rd-eye-labs/cardano-offchain-common'; import { rationalFromInt } from '../src/types/rational'; import { init } from './endpoints/initialize'; type MyContext = LucidContext<{ admin: EmulatorAccount; }>; beforeEach<MyContext>(async (context: MyContext) => { context.users = { admin: generateEmulatorAccount( addAssets( mkLovelacesOf(100_000_000_000_000n), mkAssetsOf(EXAMPLE_TOKEN_1, 1_000_000_000_000_000n), ), ), }; context.emulator = new Emulator( [context.users.admin], MAINNET_PROTOCOL_PARAMETERS, ); context.lucid = await Lucid(context.emulator, 'Custom'); }); test<MyContext>('Initialize Protocol - can initialize', async ({ lucid, users, emulator, }: MyContext) => { lucid.selectWallet.fromSeed(users.admin.seedPhrase); await init( lucid, [ iusdInitialAssetCfg(DEFAULT_INTEREST, [ { collateralAsset: EXAMPLE_TOKEN_1, collateralToIassetRatio: rationalFromInt(1n), feeManager: undefined, minMintOrderAmount: 0n, minRedemptionOrderAmount: 0n, mintingEnabled: true, redemptionEnabled: true, mintingFeeRatio: { numerator: 1n, denominator: 100n }, redemptionFeeRatio: { numerator: 1n, denominator: 100n }, }, ]), ], emulator.slot, ); }); test<MyContext>('Validate Lucid protocol parameters match Mainnet', ({ lucid, }: MyContext) => { const protocolParameters = lucid.config().protocolParameters!; assert( protocolParameters.maxTxSize === 16384, 'Lucid maxTxSize does not match Cardano Mainnet', ); assert( protocolParameters.maxTxExMem === 16500000n, 'Lucid maxTxExMem does not match Cardano Mainnet', ); assert( protocolParameters.maxTxExSteps === 10000000000n, 'Lucid maxTxExSteps does not match Cardano Mainnet', ); });