Trait snarkvm_ledger_store::OutputStorage
source · pub trait OutputStorage<N: Network>: Clone + Send + Sync {
type IDMap: for<'a> Map<'a, N::TransitionID, Vec<Field<N>>>;
type ReverseIDMap: for<'a> Map<'a, Field<N>, N::TransitionID>;
type ConstantMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>;
type PublicMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>;
type PrivateMap: for<'a> Map<'a, Field<N>, Option<Ciphertext<N>>>;
type RecordMap: for<'a> Map<'a, Field<N>, (Field<N>, Option<Record<N, Ciphertext<N>>>)>;
type RecordNonceMap: for<'a> Map<'a, Group<N>, Field<N>>;
type ExternalRecordMap: for<'a> Map<'a, Field<N>, ()>;
type FutureMap: for<'a> Map<'a, Field<N>, Option<Future<N>>>;
Show 23 methods
// Required methods
fn open(dev: Option<u16>) -> Result<Self>;
fn id_map(&self) -> &Self::IDMap;
fn reverse_id_map(&self) -> &Self::ReverseIDMap;
fn constant_map(&self) -> &Self::ConstantMap;
fn public_map(&self) -> &Self::PublicMap;
fn private_map(&self) -> &Self::PrivateMap;
fn record_map(&self) -> &Self::RecordMap;
fn record_nonce_map(&self) -> &Self::RecordNonceMap;
fn external_record_map(&self) -> &Self::ExternalRecordMap;
fn future_map(&self) -> &Self::FutureMap;
fn dev(&self) -> Option<u16>;
// Provided methods
fn start_atomic(&self) { ... }
fn is_atomic_in_progress(&self) -> bool { ... }
fn atomic_checkpoint(&self) { ... }
fn clear_latest_checkpoint(&self) { ... }
fn atomic_rewind(&self) { ... }
fn abort_atomic(&self) { ... }
fn finish_atomic(&self) -> Result<()> { ... }
fn insert(
&self,
transition_id: N::TransitionID,
outputs: &[Output<N>]
) -> Result<()> { ... }
fn remove(&self, transition_id: &N::TransitionID) -> Result<()> { ... }
fn find_transition_id(
&self,
output_id: &Field<N>
) -> Result<Option<N::TransitionID>> { ... }
fn get_ids(&self, transition_id: &N::TransitionID) -> Result<Vec<Field<N>>> { ... }
fn get(&self, transition_id: &N::TransitionID) -> Result<Vec<Output<N>>> { ... }
}
Expand description
A trait for transition output storage.
Required Associated Types§
sourcetype IDMap: for<'a> Map<'a, N::TransitionID, Vec<Field<N>>>
type IDMap: for<'a> Map<'a, N::TransitionID, Vec<Field<N>>>
The mapping of transition ID
to output IDs
.
sourcetype ReverseIDMap: for<'a> Map<'a, Field<N>, N::TransitionID>
type ReverseIDMap: for<'a> Map<'a, Field<N>, N::TransitionID>
The mapping of output ID
to transition ID
.
sourcetype ConstantMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>
type ConstantMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>
The mapping of plaintext hash
to (optional) plaintext
.
sourcetype PublicMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>
type PublicMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>
The mapping of plaintext hash
to (optional) plaintext
.
sourcetype PrivateMap: for<'a> Map<'a, Field<N>, Option<Ciphertext<N>>>
type PrivateMap: for<'a> Map<'a, Field<N>, Option<Ciphertext<N>>>
The mapping of ciphertext hash
to (optional) ciphertext
.
sourcetype RecordMap: for<'a> Map<'a, Field<N>, (Field<N>, Option<Record<N, Ciphertext<N>>>)>
type RecordMap: for<'a> Map<'a, Field<N>, (Field<N>, Option<Record<N, Ciphertext<N>>>)>
The mapping of commitment
to (checksum, (optional) record ciphertext)
.
sourcetype RecordNonceMap: for<'a> Map<'a, Group<N>, Field<N>>
type RecordNonceMap: for<'a> Map<'a, Group<N>, Field<N>>
The mapping of record nonce
to commitment
.
sourcetype ExternalRecordMap: for<'a> Map<'a, Field<N>, ()>
type ExternalRecordMap: for<'a> Map<'a, Field<N>, ()>
The mapping of external hash
to ()
. Note: This is not the record commitment.
Required Methods§
sourcefn reverse_id_map(&self) -> &Self::ReverseIDMap
fn reverse_id_map(&self) -> &Self::ReverseIDMap
Returns the reverse ID map.
sourcefn constant_map(&self) -> &Self::ConstantMap
fn constant_map(&self) -> &Self::ConstantMap
Returns the constant map.
sourcefn public_map(&self) -> &Self::PublicMap
fn public_map(&self) -> &Self::PublicMap
Returns the public map.
sourcefn private_map(&self) -> &Self::PrivateMap
fn private_map(&self) -> &Self::PrivateMap
Returns the private map.
sourcefn record_map(&self) -> &Self::RecordMap
fn record_map(&self) -> &Self::RecordMap
Returns the record map.
sourcefn record_nonce_map(&self) -> &Self::RecordNonceMap
fn record_nonce_map(&self) -> &Self::RecordNonceMap
Returns the record nonce map.
sourcefn external_record_map(&self) -> &Self::ExternalRecordMap
fn external_record_map(&self) -> &Self::ExternalRecordMap
Returns the external record map.
sourcefn future_map(&self) -> &Self::FutureMap
fn future_map(&self) -> &Self::FutureMap
Returns the future map.
Provided Methods§
sourcefn start_atomic(&self)
fn start_atomic(&self)
Starts an atomic batch write operation.
sourcefn is_atomic_in_progress(&self) -> bool
fn is_atomic_in_progress(&self) -> bool
Checks if an atomic batch is in progress.
sourcefn atomic_checkpoint(&self)
fn atomic_checkpoint(&self)
Checkpoints the atomic batch.
sourcefn clear_latest_checkpoint(&self)
fn clear_latest_checkpoint(&self)
Clears the latest atomic batch checkpoint.
sourcefn atomic_rewind(&self)
fn atomic_rewind(&self)
Rewinds the atomic batch to the previous checkpoint.
sourcefn abort_atomic(&self)
fn abort_atomic(&self)
Aborts an atomic batch write operation.
sourcefn finish_atomic(&self) -> Result<()>
fn finish_atomic(&self) -> Result<()>
Finishes an atomic batch write operation.
sourcefn insert(
&self,
transition_id: N::TransitionID,
outputs: &[Output<N>]
) -> Result<()>
fn insert( &self, transition_id: N::TransitionID, outputs: &[Output<N>] ) -> Result<()>
Stores the given (transition ID, output)
pair into storage.
sourcefn remove(&self, transition_id: &N::TransitionID) -> Result<()>
fn remove(&self, transition_id: &N::TransitionID) -> Result<()>
Removes the output for the given transition ID
.
sourcefn find_transition_id(
&self,
output_id: &Field<N>
) -> Result<Option<N::TransitionID>>
fn find_transition_id( &self, output_id: &Field<N> ) -> Result<Option<N::TransitionID>>
Returns the transition ID that contains the given output ID
.