$ ENCLAVE=zkdeal-public $ EVIDENCE_DIR="$(mktemp -d)" && \ > kurtosis files download "$ENCLAVE" zkdeal-v5-kurtosis-evidence "$EVIDENCE_DIR" && \ > EVIDENCE="$(find "$EVIDENCE_DIR" -name v5-kurtosis-evidence.json -print -quit)" $ node -e "const e=JSON.parse(require('fs').readFileSync(process.argv[1])); const full=(v)=>/^0x[0-9a-fA-F]{64}$/.test(v); console.log(JSON.stringify({decision:e.decision,imageIdPresent:e.imageId.length>0,journalHashComplete:full(e.journalHash),transactionComplete:full(e.transactions.submit),submitBlock:e.transactions.submitBlock}))" "$EVIDENCE" {"decision":"VERIFIED","imageIdPresent":true,"journalHashComplete":true,"transactionComplete":true,"submitBlock":""} $ export TX="$(jq -r .transactions.submit "$EVIDENCE")" \ > BLOCK="$(jq -r .transactions.submitBlock "$EVIDENCE")" \ > MANAGER="$(jq -r .contracts.manager "$EVIDENCE")" && \ > EXPLORER="$(kurtosis port print "$ENCLAVE" explorer http --format ip,number)" && \ > export BLOCK MANAGER EXPLORER $ curl -fsS "http://$EXPLORER/api/v2/transactions/$TX" | jq -c \ > '{indexed:(.hash==env.TX),success:((.status|ascii_downcase)=="ok"),managerMatches:(((.to.hash // .to)|ascii_downcase)==(env.MANAGER|ascii_downcase)),blockMatches:((.block_number|tostring)==env.BLOCK)}' {"indexed":true,"success":true,"managerMatches":true,"blockMatches":true} $ node -e "console.log('http://' + process.env.EXPLORER + '/tx/' + process.env.TX)" http://127.0.0.1:3200/tx/<64-hex-checkpoint-transaction> $ rm -r -- "$EVIDENCE_DIR" && unset EVIDENCE_DIR EVIDENCE TX BLOCK MANAGER EXPLORER