pub struct VirtualMachine { /* private fields */ }
Expand description
Virtual Machine for executing TEAL programs
Implementations§
Source§impl VirtualMachine
impl VirtualMachine
Sourcepub fn with_version(version: TealVersion) -> Self
pub fn with_version(version: TealVersion) -> Self
Create a virtual machine with standard opcodes for a specific TEAL version
Sourcepub fn builder() -> VirtualMachineBuilder
pub fn builder() -> VirtualMachineBuilder
Create a builder for fluent VM construction
Sourcepub fn load_standard_opcodes(&mut self, version: TealVersion)
pub fn load_standard_opcodes(&mut self, version: TealVersion)
Load standard opcodes for a specific TEAL version
Sourcepub fn register_opcode(&mut self, opcode: u8, spec: OpSpec)
pub fn register_opcode(&mut self, opcode: u8, spec: OpSpec)
Register an opcode specification
Sourcepub fn opcode_count(&self) -> usize
pub fn opcode_count(&self) -> usize
Get the number of registered opcodes (for debugging)
Sourcepub fn has_opcode(&self, opcode: u8) -> bool
pub fn has_opcode(&self, opcode: u8) -> bool
Check if an opcode is registered (for debugging)
Sourcepub fn execute_simple(
&self,
program: &[u8],
version: TealVersion,
ledger: &mut dyn LedgerAccess,
) -> AvmResult<bool>
pub fn execute_simple( &self, program: &[u8], version: TealVersion, ledger: &mut dyn LedgerAccess, ) -> AvmResult<bool>
Execute a TEAL program with automatic configuration
Sourcepub fn execute_application(
&self,
program: &[u8],
version: TealVersion,
ledger: &mut dyn LedgerAccess,
) -> AvmResult<bool>
pub fn execute_application( &self, program: &[u8], version: TealVersion, ledger: &mut dyn LedgerAccess, ) -> AvmResult<bool>
Execute a TEAL program in application mode
Sourcepub fn create_eval_context<'a>(
&'a self,
program: &'a [u8],
config: ExecutionConfig,
ledger: &'a mut dyn LedgerAccess,
) -> AvmResult<EvalContext<'a>>
pub fn create_eval_context<'a>( &'a self, program: &'a [u8], config: ExecutionConfig, ledger: &'a mut dyn LedgerAccess, ) -> AvmResult<EvalContext<'a>>
Create an evaluation context for step-by-step execution
Sourcepub fn execute(
&self,
program: &[u8],
config: ExecutionConfig,
ledger: &mut dyn LedgerAccess,
) -> AvmResult<bool>
pub fn execute( &self, program: &[u8], config: ExecutionConfig, ledger: &mut dyn LedgerAccess, ) -> AvmResult<bool>
Execute a TEAL program
Trait Implementations§
Source§impl Debug for VirtualMachine
impl Debug for VirtualMachine
Auto Trait Implementations§
impl Freeze for VirtualMachine
impl RefUnwindSafe for VirtualMachine
impl Send for VirtualMachine
impl Sync for VirtualMachine
impl Unpin for VirtualMachine
impl UnwindSafe for VirtualMachine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more