pub mod clarity_repl {
pub fn execute_clarity_code(_code: &str) -> Result<String, String> {
Ok("Mock clarity execution result".to_string())
}
pub mod vm {
pub mod test_util {
pub static TEST_HEADER_DB: &str = "mock_header_db";
pub static TEST_BURN_STATE_DB: &str = "mock_burn_state_db";
}
use std::collections::HashMap;
#[derive(Debug, Clone)]
pub enum Value {
UInt(u64),
Bool(bool),
Principal(PrincipalData),
Object(HashMap<String, Value>),
Optional(Option<Box<Value>>),
}
#[derive(Debug, Clone)]
pub struct PrincipalData {
pub address: String,
}
impl PrincipalData {
pub fn from(address: String) -> Self {
Self { address }
}
}
pub fn execute(_tx: &StacksTransaction) -> Result<Value, String> {
Ok(Value::Bool(true))
}
#[derive(Debug)]
pub struct StacksTransaction {
pub contract_call: String,
pub function_name: String,
pub args: Vec<Value>,
}
}
pub mod clarity {
#[derive(Debug)]
pub struct ClarityInstance {
pub name: String,
}
impl ClarityInstance {
pub fn new(name: &str) -> Self {
Self {
name: name.to_string(),
}
}
}
}
pub mod repl {
use super::vm::Value;
use std::collections::HashMap;
#[derive(Debug)]
pub struct Session {
pub contracts: HashMap<String, String>,
}
impl Session {
pub fn new(_accounts: Vec<String>, _default_address: String) -> Self {
Self {
contracts: HashMap::new(),
}
}
pub fn deploy_contract(&mut self, _name: &str, _code: &str) -> Result<(), String> {
Ok(())
}
pub fn call_contract(
&self,
_contract: &str,
_function: &str,
_args: &[Value],
) -> Result<Value, String> {
Ok(Value::Bool(true))
}
}
#[derive(Debug)]
pub struct TestEnvironment {
pub session: Session,
}
impl Default for TestEnvironment {
fn default() -> Self {
Self::new()
}
}
impl TestEnvironment {
pub fn new() -> Self {
Self {
session: Session::new(vec![], "default".to_string()),
}
}
pub fn execute_transaction(
&mut self,
_request: TransactionRequest,
) -> Result<Value, String> {
Ok(Value::Bool(true))
}
pub fn execute_read_only(&self, _request: ReadOnlyRequest) -> Result<Value, String> {
Ok(Value::Bool(true))
}
}
#[derive(Debug)]
pub struct TransactionRequest {
pub contract: String,
pub function: String,
pub args: Vec<Value>,
}
#[derive(Debug)]
pub struct ReadOnlyRequest {
pub contract: String,
pub function: String,
pub args: Vec<Value>,
}
}
#[derive(Debug, Clone)]
pub struct QualifiedContractIdentifier {
pub name: String,
}
impl QualifiedContractIdentifier {
pub fn local(name: &str) -> Result<Self, String> {
Ok(Self {
name: name.to_string(),
})
}
}
#[derive(Debug)]
pub struct ClarityWasmSession {
pub accounts: Vec<String>,
}
impl ClarityWasmSession {
pub fn new(accounts: Vec<String>, _default_address: String) -> Self {
Self { accounts }
}
}
}
pub mod clarinet {
use super::clarity_repl::vm::Value;
pub fn setup_test_env() -> Result<(), String> {
Ok(())
}
pub mod test_runner {
pub use super::*;
}
pub mod types {
pub use super::*;
#[derive(Debug)]
pub struct TransactionRequest {
pub contract_call: String,
pub function_name: String,
pub args: Vec<super::Value>,
pub sender: String,
}
#[derive(Debug)]
pub struct ReadOnlyRequest {
pub contract_call: String,
pub function_name: String,
pub args: Vec<super::Value>,
}
#[derive(Debug)]
pub struct QualifiedContractIdentifier {
pub name: String,
}
impl QualifiedContractIdentifier {
pub fn local(name: &str) -> Result<Self, String> {
Ok(Self {
name: name.to_string(),
})
}
}
#[derive(Debug)]
pub struct ClarityWasmSession {
pub accounts: Vec<String>,
pub default_address: String,
}
impl ClarityWasmSession {
pub fn new(accounts: Vec<String>, default_address: String) -> Self {
Self {
accounts,
default_address,
}
}
pub fn execute_transaction(
&mut self,
_req: TransactionRequest,
) -> Result<super::Value, String> {
Ok(super::Value::UInt(1))
}
pub fn execute_read_only(&self, _req: ReadOnlyRequest) -> Result<super::Value, String> {
Ok(super::Value::Bool(true))
}
}
pub mod clarity {
#[derive(Debug, Clone)]
pub struct BuffData {
pub value: String,
}
}
#[derive(Debug, Clone)]
pub struct Address {
pub value: String,
}
#[derive(Debug)]
pub struct Clarity;
pub type StacksAddress = Address;
}
pub mod utils {
pub use super::*;
}
pub mod client {
pub mod clarity_wasm {
pub mod test {
pub use super::*;
}
#[derive(Debug)]
pub struct ClarityWasmSession;
}
pub mod contracts {
#[derive(Debug)]
pub struct Contract {
pub name: String,
}
impl Contract {
pub fn new(name: &str) -> Self {
Self {
name: name.to_string(),
}
}
}
}
#[derive(Debug)]
pub struct Tx;
#[derive(Debug)]
pub enum Error {
TestError(String),
}
pub type NetworkKeyCompression = u8;
}
pub mod contract_helpers {
pub use super::*;
}
pub mod macros {
pub use super::*;
}
}
#[cfg(test)]
pub use clarinet::types::{
ClarityWasmSession, QualifiedContractIdentifier, ReadOnlyRequest, TransactionRequest,
};
#[cfg(test)]
pub use clarity_repl::vm::{PrincipalData, StacksTransaction, Value};