@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
85 lines (77 loc) • 2.38 kB
text/typescript
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',
);
});