Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions crates/config/src/program_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,25 @@ pub struct BoundlessConfig {
pub program_url: Option<String>,
#[serde(default = "default_true")]
pub onchain: bool,
// --- Offer params (all optional, fall back to defaults in build_offer_params) ---
/// Minimum price in ETH (default: 0.00005)
#[serde(default)]
pub min_price_eth: Option<f64>,
/// Maximum price in ETH (default: 0.002)
#[serde(default)]
pub max_price_eth: Option<f64>,
/// Total timeout in seconds (default: 600 = 10 min)
#[serde(default)]
pub timeout_secs: Option<u64>,
/// Lock timeout in seconds (default: 300 = 5 min)
#[serde(default)]
pub lock_timeout_secs: Option<u64>,
/// Ramp-up period in seconds (default: 60 = 1 min)
#[serde(default)]
pub ramp_up_secs: Option<u64>,
/// Lock collateral in ZKC (default: 2.0)
#[serde(default)]
pub lock_collateral_zkc: Option<f64>,
}

fn default_true() -> bool {
Expand Down
43 changes: 35 additions & 8 deletions crates/support-scripts/src/program_risc0.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,27 +34,54 @@ impl ProgramSupportApi for ProgramSupportRisc0 {
bail!("start must be run with risc0 config available");
};

let risc0_dev_mode_str = risc0_config.risc0_dev_mode.to_string();
let mut args = vec!["--risc0-dev-mode", risc0_dev_mode_str.as_str()];
let mut args: Vec<String> = vec![
"--risc0-dev-mode".into(),
risc0_config.risc0_dev_mode.to_string(),
];

// Boundless support
if let Some(boundless) = &risc0_config.boundless {
args.extend(["--rpc-url", boundless.rpc_url.as_str()]);
args.extend(["--private-key", boundless.private_key.as_str()]);
args.extend_from_slice(&[
"--rpc-url".into(),
boundless.rpc_url.clone(),
"--private-key".into(),
boundless.private_key.clone(),
]);

if let Some(jwt) = &boundless.pinata_jwt {
args.extend(["--pinata-jwt", jwt.as_str()]);
args.extend_from_slice(&["--pinata-jwt".into(), jwt.clone()]);
}

if let Some(url) = &boundless.program_url {
args.extend(["--program-url", url.as_str()]);
args.extend_from_slice(&["--program-url".into(), url.clone()]);
}

let onchain = if boundless.onchain { "true" } else { "false" };
args.extend(["--boundless-onchain", onchain]);
args.extend_from_slice(&["--boundless-onchain".into(), onchain.into()]);

// Offer params — push flag + value as owned Strings
if let Some(v) = boundless.min_price_eth {
args.extend_from_slice(&["--boundless-min-price-eth".into(), v.to_string()]);
}
if let Some(v) = boundless.max_price_eth {
args.extend_from_slice(&["--boundless-max-price-eth".into(), v.to_string()]);
}
if let Some(v) = boundless.timeout_secs {
args.extend_from_slice(&["--boundless-timeout-secs".into(), v.to_string()]);
}
if let Some(v) = boundless.lock_timeout_secs {
args.extend_from_slice(&["--boundless-lock-timeout-secs".into(), v.to_string()]);
}
if let Some(v) = boundless.ramp_up_secs {
args.extend_from_slice(&["--boundless-ramp-up-secs".into(), v.to_string()]);
}
if let Some(v) = boundless.lock_collateral_zkc {
args.extend_from_slice(&["--boundless-lock-collateral-zkc".into(), v.to_string()]);
}
}

run_bash_script(&cwd, &script, &args).await?;
let arg_refs: Vec<&str> = args.iter().map(|s| s.as_str()).collect();
run_bash_script(&cwd, &script, &arg_refs).await?;
Ok(())
}

Expand Down
151 changes: 7 additions & 144 deletions crates/support/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions crates/support/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ RUN rzup install rust ${RISC0_TOOLCHAIN}
RUN rzup install r0vm ${RISC0_VERSION}
RUN rzup install cargo-risczero ${RISC0_VERSION}

RUN sudo ln -sf "$(readlink -f "$(command -v r0vm)")" /usr/local/bin/r0vm && \
test -x /usr/local/bin/r0vm
ENV RISC0_SERVER_PATH=/usr/local/bin/r0vm

ENV PATH="/home/${USERNAME}/.foundry/bin:${PATH}"
RUN curl -L https://foundry.paradigm.xyz | bash
RUN foundryup
Expand Down
Loading
Loading