-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.js
More file actions
31 lines (28 loc) · 959 Bytes
/
Copy pathconfig.js
File metadata and controls
31 lines (28 loc) · 959 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// config.js — environment validation and config loading
export function loadConfig() {
const required = [
'HEDERA_ACCOUNT_ID',
'HEDERA_PRIVATE_KEY',
'GROQ_API_KEY',
'PRIZE_POOL_ACCOUNT_ID',
];
for (const key of required) {
if (!process.env[key]) {
console.error(`Missing required environment variable: ${key}`);
process.exit(1);
}
}
const entryFeeHbar = Number(process.env.ENTRY_FEE_HBAR) || 1;
const payoutMultiplier = Number(process.env.PAYOUT_MULTIPLIER) || 2;
return {
operatorAccountId: process.env.HEDERA_ACCOUNT_ID,
operatorPrivateKey: process.env.HEDERA_PRIVATE_KEY,
network: process.env.HEDERA_NETWORK || 'testnet',
groqApiKey: process.env.GROQ_API_KEY,
prizePoolAccountId: process.env.PRIZE_POOL_ACCOUNT_ID,
prizePoolPrivateKey: process.env.PRIZE_POOL_PRIVATE_KEY || null,
entryFeeHbar,
payoutMultiplier,
payoutHbar: entryFeeHbar * payoutMultiplier,
};
}