PrivateKernelOracle

Struct PrivateKernelOracle 

Source
pub struct PrivateKernelOracle<'a, N: AztecNode> { /* private fields */ }
Expand description

Oracle for private kernel circuit interactions with state trees.

Provides hints and data lookups needed during kernel circuit execution:

  • Contract address and class preimages
  • Function membership witnesses
  • VK membership witnesses in the protocol VK tree
  • Note hash and nullifier tree membership witnesses
  • Master secret keys for key verification

Implementations§

Source§

impl<'a, N: AztecNode> PrivateKernelOracle<'a, N>

Source

pub fn new( node: &'a N, contract_store: &'a ContractStore, key_store: &'a KeyStore, block_hash: Fr, ) -> Self

Source

pub async fn get_contract_address_preimage( &self, address: &AztecAddress, ) -> Result<Value, Error>

Get the contract address preimage (instance data including salted init hash).

Returns the contract instance data needed to verify the contract address derivation inside the kernel circuit.

Source

pub async fn get_contract_class_id_preimage( &self, class_id: &Fr, ) -> Result<Value, Error>

Get the contract class ID preimage (artifact hash, bytecode commitment).

Returns the contract class data needed to verify class ID derivation.

Source

pub async fn get_function_membership_witness( &self, class_id: &Fr, function_selector: &Fr, ) -> Result<Value, Error>

Get function membership witness in the contract’s private function tree.

Proves that a function selector belongs to a specific contract class.

Source

pub async fn get_vk_membership_witness( &self, vk_hash: &Fr, ) -> Result<Value, Error>

Get VK membership witness in the protocol VK indexed merkle tree.

Proves that a verification key is part of the protocol’s VK tree.

Source

pub async fn get_note_hash_membership_witness( &self, note_hash: &Fr, ) -> Result<Option<Value>, Error>

Get note hash membership witness at the current block.

Source

pub async fn get_nullifier_membership_witness( &self, nullifier: &Fr, ) -> Result<Option<Value>, Error>

Get nullifier membership witness at the current block.

Source

pub async fn get_note_hash_tree_root(&self) -> Result<Fr, Error>

Get the note hash tree root from the block header.

Source

pub async fn get_master_secret_key( &self, pk_hash: &Fr, ) -> Result<Option<Fr>, Error>

Get the master secret key (sk_m) for key verification in the kernel.

Source

pub async fn get_block_hash_membership_witness( &self, block_hash: &Fr, ) -> Result<Option<Value>, Error>

Get block hash membership witness in the archive tree.

Source

pub async fn get_updated_class_id_hints( &self, address: &AztecAddress, ) -> Result<Value, Error>

Get updated class ID hints (public data witnesses for class ID updates).

Source

pub async fn get_debug_function_name( &self, contract_address: &AztecAddress, function_selector: &FunctionSelector, ) -> Result<Option<String>, Error>

Get debug function name from selector (for error messages).

Source

pub fn block_hash(&self) -> &Fr

Get the block hash used for consistent state reads.

Auto Trait Implementations§

§

impl<'a, N> Freeze for PrivateKernelOracle<'a, N>

§

impl<'a, N> !RefUnwindSafe for PrivateKernelOracle<'a, N>

§

impl<'a, N> Send for PrivateKernelOracle<'a, N>

§

impl<'a, N> Sync for PrivateKernelOracle<'a, N>

§

impl<'a, N> Unpin for PrivateKernelOracle<'a, N>

§

impl<'a, N> !UnwindSafe for PrivateKernelOracle<'a, N>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more