Real XMR pilot

This commit is contained in:
2026-10-22 14:40:00 -04:00
parent 52559f65d7
commit 3f04c3afa9
19 changed files with 408 additions and 50 deletions
+11 -2
View File
@@ -1,13 +1,22 @@
import { IS_MAINNET, NETWORK, PROFILE } from '../shared/network.ts';
import { IS_MAINNET, IS_PILOT, NETWORK, PROFILE } from '../shared/network.ts';
import { CHAIN_ID, GENESIS_HASH, GENESIS_TIME } from './testnet/consensus.ts';
export function launchManifest() {
return { profile: PROFILE, network: NETWORK, chainId: CHAIN_ID, genesis: GENESIS_HASH,
genesisTime: GENESIS_TIME, launchStatus: IS_MAINNET ? 'candidate-gated' : 'testnet',
genesisTime: GENESIS_TIME, launchStatus: IS_MAINNET ? 'candidate-gated' : IS_PILOT ? 'private-pilot-mock-only' : 'testnet',
paymentMode: 'mock', audited: false };
}
/** Operator attestation is an accident-prevention gate, NOT proof of a security audit. */
export function assertLaunchAllowed(env: NodeJS.ProcessEnv = process.env, now = Date.now()) {
if (IS_PILOT) {
if (env.WIKIDECK_PILOT_MODE !== 'private-mock-only') {
throw new Error('Private pilot requires WIKIDECK_PILOT_MODE=private-mock-only');
}
if ((env.WIKIDECK_PAYMENT_MODE ?? 'mock') !== 'mock') {
throw new Error('Private pilot supports mock payments only; live XMR remains disabled');
}
return;
}
if (!IS_MAINNET) return;
if (env.WIKIDECK_MAINNET_LAUNCH !== CHAIN_ID || env.WIKIDECK_MAINNET_REVIEW_ACK !== 'independent-review-complete') {
throw new Error(`Mainnet candidate is launch-gated. Review the launch checklist; explicit chain approval required: ${CHAIN_ID}`);