pub struct ContractArtifact {
pub name: String,
pub functions: Vec<FunctionArtifact>,
pub outputs: Option<Value>,
pub file_map: Option<Value>,
pub context_inputs_sizes: Option<HashMap<String, usize>>,
}Expand description
A deserialized contract artifact containing function metadata.
Fields§
§name: StringContract name.
functions: Vec<FunctionArtifact>Functions defined in the contract.
outputs: Option<Value>Compiler output metadata (opaque JSON).
file_map: Option<Value>Source file map (opaque JSON).
context_inputs_sizes: Option<HashMap<String, usize>>Size of the PrivateContextInputs parameter for each private function. Computed during nargo parsing and persisted with the artifact so PXE can reconstruct private-function witnesses after store roundtrips.
Implementations§
Source§impl ContractArtifact
impl ContractArtifact
Sourcepub fn from_json(json: &str) -> Result<Self, Error>
pub fn from_json(json: &str) -> Result<Self, Error>
Deserialize a contract artifact from a JSON string.
Sourcepub fn find_function(&self, name: &str) -> Result<&FunctionArtifact, Error>
pub fn find_function(&self, name: &str) -> Result<&FunctionArtifact, Error>
Find a function by name, returning an error if not found.
Sourcepub fn find_function_by_type(
&self,
name: &str,
function_type: &FunctionType,
) -> Result<&FunctionArtifact, Error>
pub fn find_function_by_type( &self, name: &str, function_type: &FunctionType, ) -> Result<&FunctionArtifact, Error>
Find a function by name and type, returning an error if not found.
Sourcepub fn to_buffer(&self) -> Result<Vec<u8>, Error>
pub fn to_buffer(&self) -> Result<Vec<u8>, Error>
Serialize this artifact to a JSON byte buffer.
Sourcepub fn from_buffer(buffer: &[u8]) -> Result<Self, Error>
pub fn from_buffer(buffer: &[u8]) -> Result<Self, Error>
Deserialize an artifact from a JSON byte buffer.
Sourcepub fn from_nargo_json(json: &str) -> Result<Self, Error>
pub fn from_nargo_json(json: &str) -> Result<Self, Error>
Parse a contract artifact from raw nargo compiler output.
The nargo compiler output has a different structure than the Aztec-processed format. This method handles the conversion:
- Strips
__aztec_nr_internals__prefix from function names - Maps
custom_attributestofunction_type(Private/Public/Utility) - Extracts parameters from
abi.parameters - Computes function selectors from name + parameters
- Filters out the
inputsparameter (PrivateContextInputs) from private functions
Sourcepub fn find_function_by_selector(
&self,
selector: &FunctionSelector,
) -> Option<&FunctionArtifact>
pub fn find_function_by_selector( &self, selector: &FunctionSelector, ) -> Option<&FunctionArtifact>
Find a function by selector.
Sourcepub fn private_context_inputs_size(&self, function_name: &str) -> usize
pub fn private_context_inputs_size(&self, function_name: &str) -> usize
Count the number of field elements the PrivateContextInputs parameter occupies for a given function. Returns 0 if the function has no such parameter (public/utility functions).
This is needed because compiled Noir bytecode expects the full PrivateContextInputs flattened into the initial witness before user args.
Sourcepub fn count_abi_type_fields(typ: &AbiType) -> usize
pub fn count_abi_type_fields(typ: &AbiType) -> usize
Count the number of scalar fields an ABI type flattens to.
Trait Implementations§
Source§impl Clone for ContractArtifact
impl Clone for ContractArtifact
Source§fn clone(&self) -> ContractArtifact
fn clone(&self) -> ContractArtifact
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ContractArtifact
impl Debug for ContractArtifact
Source§impl<'de> Deserialize<'de> for ContractArtifact
impl<'de> Deserialize<'de> for ContractArtifact
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ContractArtifact
impl PartialEq for ContractArtifact
Source§impl Serialize for ContractArtifact
impl Serialize for ContractArtifact
impl Eq for ContractArtifact
impl StructuralPartialEq for ContractArtifact
Auto Trait Implementations§
impl Freeze for ContractArtifact
impl RefUnwindSafe for ContractArtifact
impl Send for ContractArtifact
impl Sync for ContractArtifact
impl Unpin for ContractArtifact
impl UnsafeUnpin for ContractArtifact
impl UnwindSafe for ContractArtifact
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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