Struct clarity_repl::clarity::contexts::Environment
source · [−]pub struct Environment<'a, 'b> {
pub global_context: &'a mut GlobalContext<'b>,
pub contract_context: &'a ContractContext,
pub call_stack: &'a mut CallStack,
pub sender: Option<PrincipalData>,
pub caller: Option<PrincipalData>,
}
Fields
global_context: &'a mut GlobalContext<'b>
contract_context: &'a ContractContext
call_stack: &'a mut CallStack
sender: Option<PrincipalData>
caller: Option<PrincipalData>
Implementations
sourceimpl<'a, 'b> Environment<'a, 'b>
impl<'a, 'b> Environment<'a, 'b>
pub fn new(
global_context: &'a mut GlobalContext<'b>,
contract_context: &'a ContractContext,
call_stack: &'a mut CallStack,
sender: Option<PrincipalData>,
caller: Option<PrincipalData>
) -> Environment<'a, 'b>
pub fn nest_as_principal<'c>(
&'c mut self,
sender: PrincipalData
) -> Environment<'c, 'b>
pub fn nest_with_caller<'c>(
&'c mut self,
caller: PrincipalData
) -> Environment<'c, 'b>
pub fn eval_read_only(
&mut self,
contract_identifier: &QualifiedContractIdentifier,
program: &str
) -> Result<Value>
pub fn eval_raw(&mut self, program: &str) -> Result<Value>
sourcepub fn run_free<F, A>(&mut self, to_run: F) -> Awhere
F: FnOnce(&mut Environment<'_, '_>) -> A,
pub fn run_free<F, A>(&mut self, to_run: F) -> Awhere
F: FnOnce(&mut Environment<'_, '_>) -> A,
Used only for contract-call! cost short-circuiting. Once the short-circuited cost has been evaluated and assessed, the contract-call! itself is executed “for free”.
pub fn execute_contract(
&mut self,
contract_identifier: &QualifiedContractIdentifier,
tx_name: &str,
args: &[SymbolicExpression],
read_only: bool
) -> Result<Value>
pub fn execute_function_as_transaction(
&mut self,
function: &DefinedFunction,
args: &[Value],
next_contract_context: Option<&ContractContext>
) -> Result<Value>
pub fn evaluate_at_block(
&mut self,
bhh: StacksBlockId,
closure: &SymbolicExpression,
local: &LocalContext<'_>
) -> Result<Value>
pub fn initialize_contract(
&mut self,
contract_identifier: QualifiedContractIdentifier,
contract_content: &str
) -> Result<()>
pub fn initialize_contract_from_ast(
&mut self,
contract_identifier: QualifiedContractIdentifier,
contract_content: &ContractAST,
contract_string: &str
) -> Result<()>
sourcepub fn stx_transfer(
&mut self,
from: &PrincipalData,
to: &PrincipalData,
amount: u128
) -> Result<Value>
pub fn stx_transfer(
&mut self,
from: &PrincipalData,
to: &PrincipalData,
amount: u128
) -> Result<Value>
Top-level STX-transfer, invoked by TokenTransfer transactions. Only commits if the inner stx_transfer_consolidated() returns an (ok true) value. Rolls back if it returns an (err ..) value, or if the method itself fails for some reason (miners should never build blocks that spend non-existent STX in a top-level token-transfer)
pub fn register_print_event(&mut self, value: Value) -> Result<()>
pub fn register_stx_transfer_event(
&mut self,
sender: PrincipalData,
recipient: PrincipalData,
amount: u128
) -> Result<()>
pub fn register_stx_burn_event(
&mut self,
sender: PrincipalData,
amount: u128
) -> Result<()>
pub fn register_nft_transfer_event(
&mut self,
sender: PrincipalData,
recipient: PrincipalData,
value: Value,
asset_identifier: AssetIdentifier
) -> Result<()>
pub fn register_nft_mint_event(
&mut self,
recipient: PrincipalData,
value: Value,
asset_identifier: AssetIdentifier
) -> Result<()>
pub fn register_nft_burn_event(
&mut self,
sender: PrincipalData,
value: Value,
asset_identifier: AssetIdentifier
) -> Result<()>
pub fn register_ft_transfer_event(
&mut self,
sender: PrincipalData,
recipient: PrincipalData,
amount: u128,
asset_identifier: AssetIdentifier
) -> Result<()>
pub fn register_ft_mint_event(
&mut self,
recipient: PrincipalData,
amount: u128,
asset_identifier: AssetIdentifier
) -> Result<()>
pub fn register_ft_burn_event(
&mut self,
sender: PrincipalData,
amount: u128,
asset_identifier: AssetIdentifier
) -> Result<()>
Trait Implementations
sourceimpl CostTracker for Environment<'_, '_>
impl CostTracker for Environment<'_, '_>
fn compute_cost(
&mut self,
cost_function: ClarityCostFunction,
input: &[u64]
) -> Result<ExecutionCost, CostErrors>
fn add_cost(&mut self, cost: ExecutionCost) -> Result<(), CostErrors>
fn add_memory(&mut self, memory: u64) -> Result<(), CostErrors>
fn drop_memory(&mut self, memory: u64)
fn reset_memory(&mut self)
sourcefn short_circuit_contract_call(
&mut self,
contract: &QualifiedContractIdentifier,
function: &ClarityName,
input: &[u64]
) -> Result<bool, CostErrors>
fn short_circuit_contract_call(
&mut self,
contract: &QualifiedContractIdentifier,
function: &ClarityName,
input: &[u64]
) -> Result<bool, CostErrors>
Check if the given contract-call should be short-circuited.
If so: this charges the cost to the CostTracker, and return true
If not: return false Read more
Auto Trait Implementations
impl<'a, 'b> !RefUnwindSafe for Environment<'a, 'b>
impl<'a, 'b> !Send for Environment<'a, 'b>
impl<'a, 'b> !Sync for Environment<'a, 'b>
impl<'a, 'b> Unpin for Environment<'a, 'b>where
'b: 'a,
impl<'a, 'b> !UnwindSafe for Environment<'a, 'b>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more