Skip to content

Commit 55b0048

Browse files
committed
fix: build clarity-vm for wasm
1 parent cad3461 commit 55b0048

File tree

5 files changed

+11
-19
lines changed

5 files changed

+11
-19
lines changed

clarity/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ rstest = { version = "0.17.0", optional = true }
3434
rstest_reuse = { version = "0.5.0", optional = true }
3535
wasmtime = { version = "15.0.0", optional = true }
3636
hashbrown = { workspace = true, features = ["serde"] }
37-
getrandom = { version = "0.2", features = ["js"], optional = true}
37+
getrandom = { version = "0.2", features = ["js"], optional = true }
3838

3939
[dependencies.serde_json]
4040
version = "1.0"

clarity/src/vm/analysis/mod.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,9 @@ use self::trait_checker::TraitChecker;
3434
use self::type_checker::v2_05::TypeChecker as TypeChecker2_05;
3535
use self::type_checker::v2_1::TypeChecker as TypeChecker2_1;
3636
pub use self::types::{AnalysisPass, ContractAnalysis};
37+
#[cfg(feature = "rusqlite")]
3738
use crate::vm::ast::{build_ast_with_rules, ASTRules};
3839
use crate::vm::costs::LimitedCostTracker;
39-
#[cfg(feature = "rusqlite")]
40-
use crate::vm::database::MemoryBackingStore;
4140
use crate::vm::database::STORE_CONTRACT_SRC_INTERFACE;
4241
use crate::vm::representations::SymbolicExpression;
4342
use crate::vm::types::{QualifiedContractIdentifier, TypeSignature};
@@ -62,7 +61,7 @@ pub fn mem_type_check(
6261
.map_err(|_| CheckErrors::Expects("Failed to build AST".into()))?
6362
.expressions;
6463

65-
let mut marf = MemoryBackingStore::new();
64+
let mut marf = crate::vm::database::MemoryBackingStore::new();
6665
let mut analysis_db = marf.as_analysis_db();
6766
let cost_tracker = LimitedCostTracker::new_free();
6867
match run_analysis(

clarity/src/vm/contexts.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,14 @@ use super::analysis::{self, ContractAnalysis};
3131
#[cfg(feature = "clarity-wasm")]
3232
use super::clarity_wasm::call_function;
3333
use super::EvalHook;
34-
use crate::vm::analysis::AnalysisDatabase;
3534
use crate::vm::ast::{ASTRules, ContractAST};
3635
use crate::vm::callables::{DefinedFunction, FunctionIdentifier};
3736
use crate::vm::contracts::Contract;
3837
use crate::vm::costs::cost_functions::ClarityCostFunction;
3938
use crate::vm::costs::{runtime_cost, CostErrors, CostTracker, ExecutionCost, LimitedCostTracker};
4039
use crate::vm::database::{
4140
ClarityDatabase, DataMapMetadata, DataVariableMetadata, FungibleTokenMetadata,
42-
MemoryBackingStore, NonFungibleTokenMetadata,
41+
NonFungibleTokenMetadata,
4342
};
4443
use crate::vm::errors::{
4544
CheckErrors, InterpreterError, InterpreterResult as Result, RuntimeErrorType,
@@ -660,7 +659,7 @@ impl<'a> OwnedEnvironment<'a> {
660659
sponsor: Option<PrincipalData>,
661660
ast_rules: ASTRules,
662661
) -> Result<((), AssetMap, Vec<StacksTransactionEvent>)> {
663-
let mut store = MemoryBackingStore::new();
662+
let mut store = crate::vm::database::MemoryBackingStore::new();
664663
let mut analysis_db = store.as_analysis_db();
665664
analysis_db.begin();
666665

@@ -696,7 +695,7 @@ impl<'a> OwnedEnvironment<'a> {
696695
contract_content: &str,
697696
sponsor: Option<PrincipalData>,
698697
ast_rules: ASTRules,
699-
analysis_db: &mut AnalysisDatabase,
698+
analysis_db: &mut analysis::AnalysisDatabase,
700699
) -> Result<((), AssetMap, Vec<StacksTransactionEvent>)> {
701700
self.execute_in_env(
702701
contract_identifier.issuer.clone().into(),
@@ -760,7 +759,7 @@ impl<'a> OwnedEnvironment<'a> {
760759
contract_content: &str,
761760
sponsor: Option<PrincipalData>,
762761
ast_rules: ASTRules,
763-
analysis_db: &mut AnalysisDatabase,
762+
analysis_db: &mut analysis::AnalysisDatabase,
764763
) -> Result<((), AssetMap, Vec<StacksTransactionEvent>)> {
765764
self.execute_in_env(
766765
contract_identifier.issuer.clone().into(),
@@ -1430,7 +1429,7 @@ impl<'a, 'b> Environment<'a, 'b> {
14301429
contract_content: &str,
14311430
ast_rules: ASTRules,
14321431
) -> Result<()> {
1433-
let mut store = MemoryBackingStore::new();
1432+
let mut store = crate::vm::database::MemoryBackingStore::new();
14341433
let mut analysis_db = store.as_analysis_db();
14351434
analysis_db.begin();
14361435

@@ -1468,7 +1467,7 @@ impl<'a, 'b> Environment<'a, 'b> {
14681467
contract_identifier: QualifiedContractIdentifier,
14691468
contract_content: &str,
14701469
ast_rules: ASTRules,
1471-
analysis_db: &mut AnalysisDatabase,
1470+
analysis_db: &mut analysis::AnalysisDatabase,
14721471
) -> Result<()> {
14731472
let clarity_version = self.contract_context.clarity_version;
14741473

clarity/src/vm/docs/contracts.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,10 @@ use hashbrown::{HashMap, HashSet};
44
use stacks_common::consts::CHAIN_ID_TESTNET;
55
use stacks_common::types::StacksEpochId;
66

7-
#[cfg(feature = "rusqlite")]
8-
use crate::vm::analysis::mem_type_check;
9-
use crate::vm::analysis::ContractAnalysis;
7+
use crate::vm::analysis::{mem_type_check, ContractAnalysis};
108
use crate::vm::ast::{build_ast_with_rules, ASTRules};
119
use crate::vm::contexts::GlobalContext;
1210
use crate::vm::costs::LimitedCostTracker;
13-
#[cfg(feature = "rusqlite")]
1411
use crate::vm::database::MemoryBackingStore;
1512
use crate::vm::docs::{get_input_type_string, get_output_type_string, get_signature};
1613
use crate::vm::types::{FunctionType, QualifiedContractIdentifier, Value};
@@ -63,7 +60,6 @@ pub fn make_func_ref(func_name: &str, func_type: &FunctionType, description: &st
6360
}
6461
}
6562

66-
#[cfg(feature = "rusqlite")]
6763
#[allow(clippy::expect_used)]
6864
fn get_constant_value(var_name: &str, contract_content: &str) -> Value {
6965
let to_eval = format!("{}\n{}", contract_content, var_name);
@@ -72,7 +68,6 @@ fn get_constant_value(var_name: &str, contract_content: &str) -> Value {
7268
.expect("BUG: failed to return constant value")
7369
}
7470

75-
#[cfg(feature = "rusqlite")]
7671
fn doc_execute(program: &str) -> Result<Option<Value>, vm::Error> {
7772
let contract_id = QualifiedContractIdentifier::transient();
7873
let mut contract_context = ContractContext::new(contract_id.clone(), ClarityVersion::Clarity2);
@@ -99,7 +94,6 @@ fn doc_execute(program: &str) -> Result<Option<Value>, vm::Error> {
9994
})
10095
}
10196

102-
#[cfg(feature = "rusqlite")]
10397
#[allow(clippy::expect_used)]
10498
pub fn make_docs(
10599
content: &str,
@@ -185,7 +179,6 @@ pub fn make_docs(
185179

186180
/// Produce a set of documents for multiple contracts, supplied as a list of `(contract_name, contract_content)` pairs,
187181
/// and a map from `contract_name` to corresponding `ContractSupportDocs`
188-
#[cfg(feature = "rusqlite")]
189182
pub fn produce_docs_refs<A: AsRef<str>, B: AsRef<str>>(
190183
contracts: &[(A, B)],
191184
support_docs: &HashMap<&str, ContractSupportDocs>,

clarity/src/vm/docs/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use crate::vm::types::{FixedFunction, FunctionType};
2323
use crate::vm::variables::NativeVariables;
2424
use crate::vm::ClarityVersion;
2525

26+
#[cfg(feature = "rusqlite")]
2627
pub mod contracts;
2728

2829
#[derive(Serialize)]

0 commit comments

Comments
 (0)