Skip to content

feat(prs-556): integrate MetadataTrustPolicy into Ethereum converter - #453

Draft
pepe-anchor wants to merge 1 commit into
prs-556-core-policyfrom
prs-556-ethereum-converter
Draft

feat(prs-556): integrate MetadataTrustPolicy into Ethereum converter#453
pepe-anchor wants to merge 1 commit into
prs-556-core-policyfrom
prs-556-ethereum-converter

Conversation

@pepe-anchor

Copy link
Copy Markdown
Contributor

Replaces #442, which GitHub closed as merged when it was merged into its parent
stack branch instead of being rebased. Same commit, same content, correct base.

Why am I making this PR?

The Ethereum converter needs to honour the deploy-time MetadataTrustPolicy: drop unsigned caller ABIs under require-signed, accept them under accept-unsigned while still verifying integrity of present signatures.

What am I changing?

Thread the policy through try_extract_from_chain_metadata. Under AcceptUnsigned, entries with no signature are accepted and present signatures are verified for integrity (signer identity not checked). Under RequireAllowlistedSigner, unsigned entries are dropped and signatures must match an allowed key. Remove the AbiExtraction wrapper struct; the function now returns Option<AbiRegistry>. Update CLI plugin to construct the require-signed posture.

This commit also introduces abi_metadata::signer_allowlist_from_hex, which the parser_app commit on top of this one consumes. That dependency is why this PR sits below parser_app in the stack rather than above it, which is how the original split had it.

What is the Linear ticket?

PRS-556

What are the rollback steps?

Revert the commit.

Is this change backwards compatible?

The public API changes (AbiExtraction removed, try_extract_from_chain_metadata return type narrowed). Callers are internal to the workspace.

Does this require cross-team/service coordination?

No.

How do I know it works as designed? Which tests exercise this code?

Existing converter tests updated for the new signature. Test helpers (require_signed_converter) constructed from cfg(test) dev keys.

Verified at this commit: cargo clippy --all-targets -- -D warnings clean.

Wire the deploy-time policy through try_extract_from_chain_metadata.
Remove AbiExtraction wrapper; function now returns Option<AbiRegistry>.
@pepe-anchor pepe-anchor added the CI label Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant