Files
dbis_core/src/sovereign/omnl/omnl.service.ts
2026-03-02 12:14:07 -08:00

61 lines
1.6 KiB
TypeScript

// OMNL White-Label Instance Setup
import prisma from '@/shared/database/prisma';
import { sovereignIdentityFabric } from '@/sovereign/identity/sovereign-identity-fabric.service';
import { SOVEREIGN_CODES } from '@/shared/constants';
import { IdentityType } from '@/shared/types';
import { v4 as uuidv4 } from 'uuid';
export class OmnlService {
/**
* Initialize OMNL sovereign instance
*/
async initializeOmnlInstance(): Promise<void> {
// Create OMNL sovereign bank record
const omnlBank = await prisma.sovereign_banks.upsert({
where: { sovereignCode: SOVEREIGN_CODES.OMNL },
update: {},
create: {
id: uuidv4(),
sovereignCode: SOVEREIGN_CODES.OMNL,
name: 'OMNL Central Bank',
bic: 'OMNLXXXX',
status: 'active',
createdAt: new Date(),
updatedAt: new Date(),
},
});
// Create Root Sovereign Identity
await sovereignIdentityFabric.createRootSovereignIdentity(
omnlBank.id,
SOVEREIGN_CODES.OMNL
);
// Create tiered identities
await sovereignIdentityFabric.createTieredIdentity(
omnlBank.id,
IdentityType.TREASURY,
SOVEREIGN_CODES.OMNL
);
await sovereignIdentityFabric.createTieredIdentity(
omnlBank.id,
IdentityType.CBDC,
SOVEREIGN_CODES.OMNL
);
await sovereignIdentityFabric.createTieredIdentity(
omnlBank.id,
IdentityType.SETTLEMENT,
SOVEREIGN_CODES.OMNL
);
await sovereignIdentityFabric.createTieredIdentity(
omnlBank.id,
IdentityType.API,
SOVEREIGN_CODES.OMNL
);
}
}
export const omnlService = new OmnlService();