diff --git a/clarity/src/vm/docs/contracts.rs b/clarity/src/vm/docs/contracts.rs index 7426be796..7bb88aa05 100644 --- a/clarity/src/vm/docs/contracts.rs +++ b/clarity/src/vm/docs/contracts.rs @@ -95,10 +95,13 @@ fn doc_execute(program: &str) -> Result, vm::Error> { } #[allow(clippy::expect_used)] -pub fn make_docs(content: &str, support_docs: &ContractSupportDocs) -> ContractRef { - let (_, contract_analysis) = - mem_type_check(content, ClarityVersion::latest(), StacksEpochId::latest()) - .expect("BUG: failed to type check boot contract"); +pub fn make_docs( + content: &str, + support_docs: &ContractSupportDocs, + version: ClarityVersion, +) -> ContractRef { + let (_, contract_analysis) = mem_type_check(content, version, StacksEpochId::latest()) + .expect("BUG: failed to type check boot contract"); let ContractAnalysis { public_function_types, @@ -179,12 +182,13 @@ pub fn make_docs(content: &str, support_docs: &ContractSupportDocs) -> ContractR pub fn produce_docs_refs, B: AsRef>( contracts: &[(A, B)], support_docs: &HashMap<&str, ContractSupportDocs>, + version: ClarityVersion, ) -> BTreeMap { let mut docs = BTreeMap::new(); for (contract_name, content) in contracts.iter() { if let Some(contract_support) = support_docs.get(contract_name.as_ref()) { - let contract_ref = make_docs(content.as_ref(), contract_support); + let contract_ref = make_docs(content.as_ref(), contract_support, version); docs.insert(contract_name.as_ref().to_string(), contract_ref); } diff --git a/stackslib/src/chainstate/stacks/boot/docs.rs b/stackslib/src/chainstate/stacks/boot/docs.rs index 62580f384..fa0290d0e 100644 --- a/stackslib/src/chainstate/stacks/boot/docs.rs +++ b/stackslib/src/chainstate/stacks/boot/docs.rs @@ -1,4 +1,5 @@ use clarity::vm::docs::contracts::{produce_docs_refs, ContractSupportDocs}; +use clarity::vm::ClarityVersion; use hashbrown::{HashMap, HashSet}; use super::STACKS_BOOT_CODE_MAINNET; @@ -139,7 +140,11 @@ If your name is in a namespace where names do not expire, then you never need to pub fn make_json_boot_contracts_reference() -> String { let contract_supporting_docs = make_contract_support_docs(); - let api_out = produce_docs_refs(&*STACKS_BOOT_CODE_MAINNET, &contract_supporting_docs); + let api_out = produce_docs_refs( + &*STACKS_BOOT_CODE_MAINNET, + &contract_supporting_docs, + ClarityVersion::Clarity1, + ); format!( "{}", serde_json::to_string(&api_out).expect("Failed to serialize documentation") diff --git a/stackslib/src/chainstate/stacks/boot/mod.rs b/stackslib/src/chainstate/stacks/boot/mod.rs index 06b448cd2..d3e8a494d 100644 --- a/stackslib/src/chainstate/stacks/boot/mod.rs +++ b/stackslib/src/chainstate/stacks/boot/mod.rs @@ -119,7 +119,7 @@ lazy_static! { format!("{}\n{}", BOOT_CODE_POX_MAINNET_CONSTS, POX_3_BODY); pub static ref POX_3_TESTNET_CODE: String = format!("{}\n{}", BOOT_CODE_POX_TESTNET_CONSTS, POX_3_BODY); - pub static ref POX_4_CODE: String = format!("{}", POX_4_BODY); + pub static ref POX_4_CODE: String = POX_4_BODY.to_string(); pub static ref BOOT_CODE_COST_VOTING_TESTNET: String = make_testnet_cost_voting(); pub static ref STACKS_BOOT_CODE_MAINNET: [(&'static str, &'static str); 6] = [ ("pox", &BOOT_CODE_POX_MAINNET),