payments: the receipt reader says that a notarization is not under a post-quantum certified anchor yet only when finality is PENDING; when finality was not measured (for example a chain that did not answer) it now says the notarization was not measured, and the test of the reader covers both cases (dated 2026-10-28)
This commit is contained in:
parent
0bb03d8eba
commit
b93bcc5425
@ -1,7 +1,7 @@
|
||||
# Citations in this repository that you cannot open
|
||||
|
||||
This file is generated by the publication stager of this repository (scripts/legaturi-declaratie.cjs in the Aere working
|
||||
tree) and enforced by legaturi.cjs. It is the complete list, measured on 2026-10-27, of every path cited in this
|
||||
tree) and enforced by legaturi.cjs. It is the complete list, measured on 2026-10-28, of every path cited in this
|
||||
repository that does not resolve to a published file.
|
||||
|
||||
A citation is a promise that a claim is checkable. Where the target is not published, or names a file the reader creates
|
||||
|
||||
@ -110,8 +110,14 @@ try {
|
||||
await ruleaza([FISIER]), 2, 'PARTIAL', /not consulted/);
|
||||
cer('V4 (NEW) the reference verifier answers PARTIAL, finality PENDING (a receipt checked right after it was issued): PARTIAL, exit 2 (the route says PARTIAL)',
|
||||
await ruleaza([FISIER, '--rpc', RPC('bun'), '--verify-proof', VP], { AERE_STUB_FIN: 'PENDING' }), 2, 'PARTIAL', /finality PENDING/);
|
||||
cer('V5 (NEW) finality UNMEASURED: PARTIAL, exit 2',
|
||||
await ruleaza([FISIER, '--rpc', RPC('bun'), '--verify-proof', VP], { AERE_STUB_FIN: 'UNMEASURED' }), 2, 'PARTIAL', /finality UNMEASURED/);
|
||||
// 2026-10-28 (R10-STRAIN-05, NEW3): with UNMEASURED the reader must not state that the notarization is not under an anchor (a fact
|
||||
// about the chain nobody measured); the old reader wrote exactly that for every state but PASSED
|
||||
cer('V5 (NEW, NEW3) finality UNMEASURED: PARTIAL, exit 2, the notarization NOT MEASURED, never "not under an anchor yet"',
|
||||
await ruleaza([FISIER, '--rpc', RPC('bun'), '--verify-proof', VP], { AERE_STUB_FIN: 'UNMEASURED' }), 2, 'PARTIAL',
|
||||
/^(?![\s\S]*is not under a post-quantum certified anchor yet)[\s\S]*was not measured under a post-quantum certified anchor \(finality UNMEASURED/);
|
||||
cer('V5b (NEW3) finality PENDING keeps the statement about the chain: "not under a post-quantum certified anchor yet"',
|
||||
await ruleaza([FISIER, '--rpc', RPC('bun'), '--verify-proof', VP], { AERE_STUB_FIN: 'PENDING' }), 2, 'PARTIAL',
|
||||
/is not under a post-quantum certified anchor yet \(finality PENDING/);
|
||||
cer('V6 finality FAILED (the verifier says INVALID): INVALID, exit 1 (the route says INVALID)',
|
||||
await ruleaza([FISIER, '--rpc', RPC('bun'), '--verify-proof', VP], { AERE_STUB_FIN: 'FAILED' }), 1, 'INVALID');
|
||||
cer('V7 (NEW) the chain does not answer (HTTP 500): PARTIAL, exit 2, said (the route says PARTIAL since 2026-10-27)',
|
||||
|
||||
@ -11,14 +11,17 @@
|
||||
// notarization under a post-quantum certified anchor (finality PASSED). Exit 1 INVALID, with the reasons; a file that is not a receipt
|
||||
// (not JSON, or no instruction and settlement envelope objects) is INVALID by name. Exit 2 PARTIAL: something was not measured (no
|
||||
// --rpc, no chain answer, an RPC of another chain, no --verify-proof or no verifier at that path, a verifier that ran and gave no
|
||||
// verdict, the policy or the inputs missing from the file, or the notarization not under an anchor yet: finality PENDING or
|
||||
// UNMEASURED), or the reader itself stopped before a verdict. These are the verdicts of POST /v1/payments/verify on the same rules.
|
||||
// verdict, the policy or the inputs missing from the file, the notarization not under an anchor yet: finality PENDING, or the
|
||||
// notarization not measured: finality UNMEASURED or absent), or the reader itself stopped before a verdict. These are the verdicts of POST /v1/payments/verify on the same rules.
|
||||
// (Corrected 2026-10-27: until this date the tool wrote VALID and exited 0 without --verify-proof, and when the notarization was PENDING
|
||||
// or UNMEASURED; a file without policy or inputs was INVALID. An envelope that the reference verifier calls PARTIAL on ANOTHER level,
|
||||
// the Bitcoin witness or a signature scheme it cannot check, with the finality of its notarization PASSED, is VALID here as on the
|
||||
// route, which decides on finality. Corrected again the same day: an RPC of another chain was handed on to the reference verifier,
|
||||
// which answered FAILED, so an authentic receipt came out INVALID; it is now judged offline and the verdict is PARTIAL. A file that
|
||||
// was not a receipt ended in an exception with the exit code of INVALID; it is now refused by name.)
|
||||
// was not a receipt ended in an exception with the exit code of INVALID; it is now refused by name. Corrected 2026-10-28: with the
|
||||
// finality UNMEASURED, for example a chain that did not answer, the reader said that the notarization is not under a post-quantum
|
||||
// certified anchor yet, a statement about the chain that nothing had measured; it now says the notarization was not measured, and
|
||||
// keeps "not under an anchor yet" for PENDING.)
|
||||
import fs from 'node:fs';
|
||||
import os from 'node:os';
|
||||
import path from 'node:path';
|
||||
@ -94,7 +97,11 @@ async function citeste(f) {
|
||||
const invalid = motiveRele.length > 0;
|
||||
// as POST /v1/payments/verify: VALID only with the finality of the notarization PASSED (and the chain compared); PENDING, UNMEASURED or
|
||||
// no finality level at all is PARTIAL. On an RPC of another chain the envelope was judged offline, and the reason is already named.
|
||||
if (verdictPlic && !invalid && altLant === null && !(fin && fin.state === 'PASSED')) nem.push(`the notarization is not under a post-quantum certified anchor yet (finality ${fin ? fin.state + ': ' + String(fin.detail).slice(0, 120) : 'absent'})`);
|
||||
// 2026-10-28 (R10-STRAIN-05): "not under an anchor yet" is a fact about the chain and is said only for PENDING; UNMEASURED or no finality
|
||||
// level is a gap of this run, said as such (the same receipt read through an endpoint that answers can come out PASSED)
|
||||
if (verdictPlic && !invalid && altLant === null && !(fin && fin.state === 'PASSED')) nem.push(fin && fin.state === 'PENDING'
|
||||
? `the notarization is not under a post-quantum certified anchor yet (finality PENDING: ${String(fin.detail).slice(0, 120)})`
|
||||
: `the notarization was not measured under a post-quantum certified anchor (finality ${fin ? fin.state + ': ' + String(fin.detail).slice(0, 120) : 'absent'})`);
|
||||
const s = (x, n) => (typeof x === 'string' ? x.slice(0, n) : '?');
|
||||
const rate = obj(ins.rate) ? ins.rate : {}, risk = obj(ins.risk) ? ins.risk : {};
|
||||
const randuri = [`receipt: ${ins.amountUsd ?? '?'} USD = ${ins.amount ?? '?'} units of ${ins.asset ?? '?'} at ${rate.usdPerUnit ?? '?'} USD/unit (${rate.source ?? '?'}), ${s(ins.payer, 10)}.. -> ${s(ins.payee, 10)}.., tx ${s(ins.txHash, 18)}.., risk ${risk.decision ?? '?'} under policy ${s(risk.policyHash, 18)}..`,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user