pub struct HyliOutput {Show 13 fields
pub version: u32,
pub initial_state: StateCommitment,
pub next_state: StateCommitment,
pub identity: Identity,
pub index: BlobIndex,
pub blobs: IndexedBlobs,
pub tx_blob_count: usize,
pub tx_hash: TxHash,
pub success: bool,
pub state_reads: Vec<(ContractName, StateCommitment)>,
pub tx_ctx: Option<TxContext>,
pub onchain_effects: Vec<OnchainEffect>,
pub program_outputs: Vec<u8>,
}Expand description
This struct has to be the zkvm committed output. It will be used by hyli node to verify & settle the blob transaction.
Fields§
§version: u32The version of the HyliOutput. This is unchecked for now.
initial_state: StateCommitmentThe initial state of the contract. This is the state before the transaction is executed.
next_state: StateCommitmentThe state of the contract after the transaction is executed.
identity: IdentityThe identity used to execute the transaction. This must match the one used in the BlobTransaction.
index: BlobIndexThe index of the blob being proven.
blobs: IndexedBlobsThe blobs that were used by the contract. It has to be a subset of the transaction blobs. It can be the complete list of blobs if the contract used all of them. No further semantic checks are enforced by node state: contracts and verifiers are responsible for validating that the provided blob subset is sufficient for their logic.
tx_blob_count: usizeNumber of blobs in the transaction. This must match the originating BlobTransaction’s total blob count exactly.
tx_hash: TxHashTxHash of the BlobTransaction.
success: boolWhether the execution was successful or not. If false, the BlobTransaction will be settled as failed.
state_reads: Vec<(ContractName, StateCommitment)>List of other contracts used by the proof. Each state commitment will be checked against the contract’s state when settling.
tx_ctx: Option<TxContext>Optional - if empty, these won’t be checked, but also can’t be used inside the program.
onchain_effects: Vec<OnchainEffect>§program_outputs: Vec<u8>Arbitrary data that could be used by indexers or other tools. Some contracts write a utf-8 string here, but it can be anything. Note: As this data is generated by the contract in the zkvm, this can be trusted.
Trait Implementations§
Source§impl BorshDeserialize for HyliOutput
impl BorshDeserialize for HyliOutput
fn deserialize_reader<__R: Read>(reader: &mut __R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for HyliOutput
impl BorshSerialize for HyliOutput
Source§impl Clone for HyliOutput
impl Clone for HyliOutput
Source§fn clone(&self) -> HyliOutput
fn clone(&self) -> HyliOutput
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ComposeSchema for HyliOutput
impl ComposeSchema for HyliOutput
Source§impl Debug for HyliOutput
impl Debug for HyliOutput
Source§impl Default for HyliOutput
impl Default for HyliOutput
Source§fn default() -> HyliOutput
fn default() -> HyliOutput
Source§impl<'de> Deserialize<'de> for HyliOutput
impl<'de> Deserialize<'de> for HyliOutput
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 Hashed<HyliOutputHash> for HyliOutput
impl Hashed<HyliOutputHash> for HyliOutput
fn hashed(&self) -> HyliOutputHash
Source§impl PartialEq for HyliOutput
impl PartialEq for HyliOutput
Source§impl Serialize for HyliOutput
impl Serialize for HyliOutput
Source§impl ToSchema for HyliOutput
impl ToSchema for HyliOutput
impl Eq for HyliOutput
impl StructuralPartialEq for HyliOutput
Auto Trait Implementations§
impl Freeze for HyliOutput
impl RefUnwindSafe for HyliOutput
impl Send for HyliOutput
impl Sync for HyliOutput
impl Unpin for HyliOutput
impl UnsafeUnpin for HyliOutput
impl UnwindSafe for HyliOutput
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.