fix: tests/setup/stack.ts: contract addresses have no env var override path (#391)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
openhands 2026-03-02 22:01:49 +00:00
parent b1c2e4aff8
commit 0fe098ddc3

View file

@ -24,18 +24,42 @@ export interface StackConfig {
}
/**
* Load contract addresses from deployments file
* Load contract addresses, preferring env var overrides over the deployments file.
* Env vars: STACK_KRAIKEN_ADDRESS, STACK_STAKE_ADDRESS, STACK_LM_ADDRESS.
* Falls back to onchain/deployments-local.json when env vars are absent.
*/
function loadContractAddresses(): ContractAddresses {
const envKraiken = process.env.STACK_KRAIKEN_ADDRESS;
const envStake = process.env.STACK_STAKE_ADDRESS;
const envLm = process.env.STACK_LM_ADDRESS;
if (envKraiken && envStake && envLm) {
return {
Kraiken: envKraiken,
Stake: envStake,
LiquidityManager: envLm,
};
}
let fileContracts: ContractAddresses;
try {
const deploymentsPath = join(process.cwd(), 'onchain', 'deployments-local.json');
const deploymentsJson = readFileSync(deploymentsPath, 'utf-8');
const deployments = JSON.parse(deploymentsJson);
return deployments.contracts;
fileContracts = deployments.contracts;
} catch (error) {
console.error('Failed to load contract addresses from deployments-local.json:', error);
throw new Error('Cannot run tests without deployed contract addresses');
}
return {
Kraiken: envKraiken ?? fileContracts.Kraiken,
Stake: envStake ?? fileContracts.Stake,
LiquidityManager: envLm ?? fileContracts.LiquidityManager,
...(fileContracts.OptimizerProxy !== undefined
? { OptimizerProxy: fileContracts.OptimizerProxy }
: {}),
};
}
/**