lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit bb70a5cb8f6f2d0a2d341f6d686eaff6270678d4
parent 23ffac2afb2c7c85c79940468bbb32ed95443c5e
Author: triesap <tyson@radroots.org>
Date:   Sun, 12 Jul 2026 00:49:52 +0000

trade-sp1-host: expose guest elf capability

- add an explicit order-acceptance guest ELF capability query
- cover build-cfg parity with a targeted host unit test
- keep local SP1 execution fail-closed when the ELF is absent
- validate the host crate with targeted check and test lanes

Diffstat:
Mcrates/trade_sp1_host/src/lib.rs | 17+++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/crates/trade_sp1_host/src/lib.rs b/crates/trade_sp1_host/src/lib.rs @@ -430,6 +430,11 @@ pub struct RadrootsSp1TradeExecuteBundle { pub report: RadrootsSp1TradeExecuteReport, } +/// Returns whether this build includes the order-acceptance SP1 guest ELF. +pub fn order_acceptance_sp1_guest_elf_available() -> bool { + cfg!(radroots_sp1_guest_elf) +} + #[cfg(all(feature = "sp1_verify", radroots_sp1_guest_elf))] pub fn order_acceptance_guest_elf() -> sp1_sdk::Elf { sp1_sdk::include_elf!("radroots_sp1_trade_order_acceptance_guest") @@ -1744,8 +1749,8 @@ struct ProofEnvelopeDigestMaterial<'a> { mod tests { use super::{ RadrootsSp1TradeHostError, RadrootsSp1TradeProofMode, generate_order_acceptance_proof, - validation_receipt_for_order_acceptance_proof, validation_receipt_result_label, - verify_order_acceptance_proof_artifact_structure, + order_acceptance_sp1_guest_elf_available, validation_receipt_for_order_acceptance_proof, + validation_receipt_result_label, verify_order_acceptance_proof_artifact_structure, }; use base64::Engine; use radroots_event::{RadrootsEventEnvelope, kinds::KIND_TRADE_VALIDATION_RECEIPT}; @@ -1774,6 +1779,14 @@ mod tests { type PublicValuesExecutionMutation = (&'static str, fn(&mut RadrootsSp1TradePublicValuesExecution)); + #[test] + fn order_acceptance_sp1_guest_elf_capability_matches_build_cfg() { + assert_eq!( + order_acceptance_sp1_guest_elf_available(), + cfg!(radroots_sp1_guest_elf) + ); + } + fn witness() -> RadrootsSp1TradeOrderAcceptanceWitness { RadrootsSp1TradeOrderAcceptanceWitness { witness_version: RADROOTS_SP1_TRADE_WITNESS_VERSION,