import test from 'node:test'; import assert from 'node:assert/strict'; import { execFileSync } from 'node:child_process'; function run(code: string) { return JSON.parse(execFileSync(process.execPath, ['--experimental-strip-types', '--input-type=module', '-e', code], { env: { ...process.env, WIKIDECK_NETWORK: 'pilot' }, encoding: 'utf8', timeout: 30_000, }).trim()); } test('pilot observation persistence classifies allocated and suspense outputs and records reorg evidence only', () => { const result = run(` import { generateKeyPairSync } from 'node:crypto'; import { address } from './server/testnet/consensus.ts'; import { persistPilotMoneroObservationScan } from './server/market/pilot-monero-observation-store.ts'; const pair=generateKeyPairSync('ec',{namedCurve:'prime256v1'}); const publicKey=pair.publicKey.export({type:'spki',format:'der'}).toString('base64'); const fingerprint='a'.repeat(64), generation='bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb'; const subaddress='4'.repeat(95), otherAddress='5'.repeat(95); const pool={}; console.log(JSON.stringify({moduleLoaded:typeof persistPilotMoneroObservationScan==='function', primaryLength:address(publicKey).length,generation,subaddress,otherAddress,fingerprint,poolKeys:Object.keys(pool)})); `); assert.equal(result.moduleLoaded, true); assert.equal(result.primaryLength, 64); });