pub struct StatePath<A: Aleo> { /* private fields */ }
Expand description
The state path proves existence of the transition leaf to either a global or local state root.
Implementations§
Source§impl<A: Aleo> StatePath<A>
impl<A: Aleo> StatePath<A>
Sourcepub fn verify(
&self,
is_global: &Boolean<A>,
local_state_root: &Field<A>,
) -> Boolean<A>
pub fn verify( &self, is_global: &Boolean<A>, local_state_root: &Field<A>, ) -> Boolean<A>
Returns true
if the state path is valid.
§Parameters
local_state_root
is the local transaction root for the current execution.is_global
is a boolean indicating whether this is a global or local state root.
§Diagram
The [[ ]]
notation is used to denote public inputs.
ⓘ
[[ global_state_root ]]
|
block_path
|
block_hash := Hash( previous_block_hash || header_root )
|
header_path
|
header_leaf
|
transactions_path [[ local_state_root ]]
| |
(true) ------ is_global ------ (false)
|
transaction_id
|
transaction_path
|
transaction_leaf
|
transition_id := Hash( transition_root || tcm )
|
transition_path
|
transition_leaf
Source§impl<A: Aleo> StatePath<A>
impl<A: Aleo> StatePath<A>
Sourcepub const fn transition_leaf(&self) -> &TransitionLeaf<A>
pub const fn transition_leaf(&self) -> &TransitionLeaf<A>
Returns the transition leaf.
Trait Implementations§
Source§impl<A: Aleo> Eject for StatePath<A>
impl<A: Aleo> Eject for StatePath<A>
Source§fn eject_mode(&self) -> Mode
fn eject_mode(&self) -> Mode
Ejects the mode of the state path.
Source§fn eject_value(&self) -> Self::Primitive
fn eject_value(&self) -> Self::Primitive
Ejects the state path.
type Primitive = StatePath<<A as Environment>::Network>
Source§fn eject(&self) -> (Mode, Self::Primitive)
fn eject(&self) -> (Mode, Self::Primitive)
Ejects the mode and primitive value of the circuit type.
Source§fn is_constant(&self) -> bool
fn is_constant(&self) -> bool
Returns
true
if the circuit is a constant.Source§fn is_private(&self) -> bool
fn is_private(&self) -> bool
Returns
true
if the circuit is a private.Auto Trait Implementations§
impl<A> !Freeze for StatePath<A>
impl<A> RefUnwindSafe for StatePath<A>
impl<A> !Send for StatePath<A>
impl<A> !Sync for StatePath<A>
impl<A> Unpin for StatePath<A>
impl<A> UnwindSafe for StatePath<A>
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more