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:
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,