import * as anchor from "@coral-xyz/anchor"; import { Program } from "@coral-xyz/anchor"; import { EuEtsWeb3 } from "../../../blockchain/eu_ets_web3/target/types/eu_ets_web3"; import { PublicKey, Keypair, Connection } from "@solana/web3.js"; import { DbTestHelper, DbConfig } from "./db_helper"; export interface TestContext { connection: Connection; program: Program; axumBaseUrl: string; programAuthority: Keypair; globalAdmin: Keypair; localAdminGermany: Keypair; localAdminFrance: Keypair; company1Admin: Keypair; company2Admin: Keypair; registryPda: PublicKey; localAdminGermanyPda: PublicKey; localAdminFrancePda: PublicKey; company1Pda: PublicKey; company2Pda: PublicKey; marketPda: PublicKey; euaMint: PublicKey; ghgMint: PublicKey; usdcMint: PublicKey; company1EuaVault: PublicKey; company1GhgVault: PublicKey; company1UsdcVault: PublicKey; company2EuaVault: PublicKey; company2GhgVault: PublicKey; company2UsdcVault: PublicKey; company1AdminUsdcAta: PublicKey; company2AdminUsdcAta: PublicKey; db: DbTestHelper; } export const testContext: Partial = {}; export function getTestContext(): TestContext { return testContext as TestContext; } export function setTestContext(updates: Partial) { Object.assign(testContext, updates); } export function getDbConfig(): DbConfig { return { host: process.env.DB_HOST || "localhost", port: parseInt(process.env.DB_PORT || "5432"), database: process.env.DB_NAME || "eu_ets_db", user: process.env.DB_USER || "admin", password: process.env.DB_PASSWORD || "admin123", }; }