[codex] Add crypto transaction verifier catalog#6
Merged
Conversation
intel352
marked this pull request as ready for review
June 23, 2026 23:02
There was a problem hiding this comment.
Pull request overview
Adds a new first-class transaction-verifier crypto catalog role/profile to support bounded BTC/BCH raw transaction verification without modeling it as a full node, including associated provider contracts, network product metadata, and evidence document validation.
Changes:
- Introduces
CryptoRoleTransactionVerifier/CryptoProofModeTransactionVerifyand adds BTC/BCH transaction-verifier profiles to the provider manifest. - Adds transaction-verifier operational evidence schema + validation (including case-insensitive txid comparison) and corresponding tests.
- Extends protocol aliases to expose additional compute-core protocol types/constants needed by the new provider contract shape.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
internal/plugin_test.go |
Updates stable manifest expectations and adds coverage for the new transaction-verifier role/profile being bounded (non-node-service). |
catalog/protocol_aliases.go |
Exposes additional protocol aliases (batch/offline modes, provider operation/artifact types) needed by the new contract. |
catalog/evidence.go |
Adds transaction-verifier evidence document type, contract requirements, and validation (including case-insensitive txid match). |
catalog/evidence_test.go |
Adds tests for transaction-verifier evidence validation and the mixed-case txid regression. |
catalog/crypto.go |
Defines the new role/proof mode and adds transaction-verifier profiles, contract generation, product generation, and manifest validation updates. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+103
to
+114
| { | ||
| Role: CryptoRoleTransactionVerifier, | ||
| ProofMode: CryptoProofModeTransactionVerify, | ||
| ActivationStatus: CryptoRoleStatusSupported, | ||
| RequiredRefs: []string{ | ||
| "raw_transaction_digest", | ||
| "expected_txid", | ||
| "computed_txid", | ||
| "output_accounting", | ||
| "runtime_receipt_ref", | ||
| }, | ||
| }, |
Comment on lines
+86
to
+87
| manifest.Profiles[3].Chain != "btc" || manifest.Profiles[3].Role.ID != "transaction-verifier" || | ||
| manifest.Profiles[4].Chain != "bch" || manifest.Profiles[4].Role.ID != "transaction-verifier" { |
Comment on lines
91
to
+93
| manifest.EvidenceContracts[0].Role != catalog.CryptoRoleFullNode || | ||
| manifest.EvidenceContracts[1].Role != catalog.CryptoRoleMiner || | ||
| manifest.EvidenceContracts[2].Role != catalog.CryptoRoleValidator || | ||
| manifest.EvidenceContracts[3].Role != catalog.CryptoRoleProtocolReward { | ||
| t.Fatalf("manifest evidence contracts are not stable full-node/miner/validator/protocol-reward order: %+v", manifest.EvidenceContracts) | ||
| manifest.EvidenceContracts[1].Role != "transaction-verifier" || | ||
| manifest.EvidenceContracts[2].Role != catalog.CryptoRoleMiner || |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a first-class
transaction-verifiercrypto catalog role for bounded BTC/BCH raw transaction verification without modeling it as a full-node service. The new role is provider-owned inworkflow-plugin-cryptoand exposes provider contracts, network product metadata, evidence contracts, and evidence document validation for transaction verification.Why
The workflow-compute scenario was proving bounded transaction verification while still presenting the product shape as a crypto full node. This change gives workflow-compute a plugin-owned role/profile to consume so the agent/control plane can stay provider-neutral.
Self-review notes
Adversarial self-review found and fixed a txid normalization edge case: evidence validation accepted uppercase hex txids but compared expected/computed txids case-sensitively. The regression test now covers mixed-case expected txids.
Verification
GOWORK=off go test ./catalog -run TestCryptoTransactionVerifierEvidence_RequiresBoundedVerificationRefsWithoutRewardClaim -count=1GOWORK=off go test ./... -count=1git diff --checkTDD evidence
CryptoTransactionVerifierProfile.TransactionVerifierevidence type/field.computed_txid must match expected_txid, then passed after switching to case-insensitive txid comparison.