pub struct DataAccessLayer<S> {
pub block_store: BlockStore,
pub state: S,
pub max_query_depth: u64,
pub enable_addressable_entity: bool,
}Expand description
Data access layer.
Fields§
§block_store: BlockStoreBlock store instance.
state: SMemoized state.
max_query_depth: u64Max query depth.
enable_addressable_entity: boolEnable the addressable entity capability.
Implementations§
Trait Implementations§
Source§impl<S: Clone> Clone for DataAccessLayer<S>
impl<S: Clone> Clone for DataAccessLayer<S>
Source§fn clone(&self) -> DataAccessLayer<S>
fn clone(&self) -> DataAccessLayer<S>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<S> CommitProvider for DataAccessLayer<S>where
S: CommitProvider,
impl<S> CommitProvider for DataAccessLayer<S>where
S: CommitProvider,
Source§fn commit_effects(
&self,
state_hash: Digest,
effects: Effects,
) -> Result<Digest, GlobalStateError>
fn commit_effects( &self, state_hash: Digest, effects: Effects, ) -> Result<Digest, GlobalStateError>
Applies changes and returns a new post state hash.
block_hash is used for computing a deterministic and unique keys.
Source§fn commit_values(
&self,
state_hash: Digest,
values_to_write: Vec<(Key, StoredValue)>,
keys_to_prune: BTreeSet<Key>,
) -> Result<Digest, GlobalStateError>
fn commit_values( &self, state_hash: Digest, values_to_write: Vec<(Key, StoredValue)>, keys_to_prune: BTreeSet<Key>, ) -> Result<Digest, GlobalStateError>
Commit values to global state.
Source§fn genesis(&self, request: GenesisRequest) -> GenesisResult
fn genesis(&self, request: GenesisRequest) -> GenesisResult
Runs and commits the genesis process, once per network.
Source§fn protocol_upgrade(
&self,
request: ProtocolUpgradeRequest,
) -> ProtocolUpgradeResult
fn protocol_upgrade( &self, request: ProtocolUpgradeRequest, ) -> ProtocolUpgradeResult
Runs and commits the protocol upgrade process.
Source§fn prune(&self, request: PruneRequest) -> PruneResult
fn prune(&self, request: PruneRequest) -> PruneResult
Safely prune specified keys from global state, using a tracking copy.
Source§fn step(&self, request: StepRequest) -> StepResult
fn step(&self, request: StepRequest) -> StepResult
Step auction state at era end.
Source§fn distribute_block_rewards(
&self,
request: BlockRewardsRequest,
) -> BlockRewardsResult
fn distribute_block_rewards( &self, request: BlockRewardsRequest, ) -> BlockRewardsResult
Distribute block rewards.
Source§fn distribute_fees(&self, request: FeeRequest) -> FeeResult
fn distribute_fees(&self, request: FeeRequest) -> FeeResult
Distribute fees, if relevant to the chainspec configured behavior.
Source§fn forced_undelegate(
&self,
request: ForcedUndelegateRequest,
) -> ForcedUndelegateResult
fn forced_undelegate( &self, request: ForcedUndelegateRequest, ) -> ForcedUndelegateResult
Forcibly unbonds delegator bids which fall outside configured delegation limits.
Source§fn block_global(&self, request: BlockGlobalRequest) -> BlockGlobalResult
fn block_global(&self, request: BlockGlobalRequest) -> BlockGlobalResult
Gets block global data.
Source§impl ScratchProvider for DataAccessLayer<LmdbGlobalState>
impl ScratchProvider for DataAccessLayer<LmdbGlobalState>
Source§fn get_scratch_global_state(&self) -> ScratchGlobalState
fn get_scratch_global_state(&self) -> ScratchGlobalState
Provide a local cached-only version of engine-state.
Source§fn write_scratch_to_db(
&self,
state_root_hash: Digest,
scratch_global_state: ScratchGlobalState,
) -> Result<Digest, GlobalStateError>
fn write_scratch_to_db( &self, state_root_hash: Digest, scratch_global_state: ScratchGlobalState, ) -> Result<Digest, GlobalStateError>
Writes state cached in an EngineState<ScratchEngineState> to LMDB.
Source§fn prune_keys(&self, state_root_hash: Digest, keys: &[Key]) -> TriePruneResult
fn prune_keys(&self, state_root_hash: Digest, keys: &[Key]) -> TriePruneResult
Prune keys.
Source§impl<S> StateProvider for DataAccessLayer<S>where
S: StateProvider,
impl<S> StateProvider for DataAccessLayer<S>where
S: StateProvider,
Source§type Reader = <S as StateProvider>::Reader
type Reader = <S as StateProvider>::Reader
Associated reader type for
StateProvider.Source§fn flush(&self, request: FlushRequest) -> FlushResult
fn flush(&self, request: FlushRequest) -> FlushResult
Flush the state provider.
Source§fn empty_root(&self) -> Digest
fn empty_root(&self) -> Digest
Returns an empty root hash.
Source§fn tracking_copy(
&self,
hash: Digest,
) -> Result<Option<TrackingCopy<S::Reader>>, GlobalStateError>
fn tracking_copy( &self, hash: Digest, ) -> Result<Option<TrackingCopy<S::Reader>>, GlobalStateError>
Get a tracking copy.
Source§fn checkout(
&self,
state_hash: Digest,
) -> Result<Option<Self::Reader>, GlobalStateError>
fn checkout( &self, state_hash: Digest, ) -> Result<Option<Self::Reader>, GlobalStateError>
Checkouts a slice of initial state using root state hash.
Source§fn trie(&self, request: TrieRequest) -> TrieResult
fn trie(&self, request: TrieRequest) -> TrieResult
Reads a
Trie from the state if it is presentSource§fn put_trie(&self, request: PutTrieRequest) -> PutTrieResult
fn put_trie(&self, request: PutTrieRequest) -> PutTrieResult
Persists a trie element.
Source§fn missing_children(
&self,
trie_raw: &[u8],
) -> Result<Vec<Digest>, GlobalStateError>
fn missing_children( &self, trie_raw: &[u8], ) -> Result<Vec<Digest>, GlobalStateError>
Finds all the children of
trie_raw which aren’t present in the state.Source§fn enable_entity(&self) -> bool
fn enable_entity(&self) -> bool
Gets the value of enable entity flag.
Source§fn query(&self, request: QueryRequest) -> QueryResult
fn query(&self, request: QueryRequest) -> QueryResult
Query state.
Source§fn message_topics(
&self,
message_topics_request: MessageTopicsRequest,
) -> MessageTopicsResult
fn message_topics( &self, message_topics_request: MessageTopicsRequest, ) -> MessageTopicsResult
Message topics request.
Source§fn balance_purse(
&self,
request: BalanceIdentifierPurseRequest,
) -> BalanceIdentifierPurseResult
fn balance_purse( &self, request: BalanceIdentifierPurseRequest, ) -> BalanceIdentifierPurseResult
Provides the underlying addr for the imputed balance identifier.
Source§fn balance(&self, request: BalanceRequest) -> BalanceResult
fn balance(&self, request: BalanceRequest) -> BalanceResult
Balance inquiry.
Source§fn balance_hold(&self, request: BalanceHoldRequest) -> BalanceHoldResult
fn balance_hold(&self, request: BalanceHoldRequest) -> BalanceHoldResult
Balance hold.
Source§fn era_validators(&self, request: EraValidatorsRequest) -> EraValidatorsResult
fn era_validators(&self, request: EraValidatorsRequest) -> EraValidatorsResult
Get the requested era validators.
Source§fn seigniorage_recipients(
&self,
request: SeigniorageRecipientsRequest,
) -> SeigniorageRecipientsResult
fn seigniorage_recipients( &self, request: SeigniorageRecipientsRequest, ) -> SeigniorageRecipientsResult
Get the requested seigniorage recipients.
Source§fn bids(&self, request: BidsRequest) -> BidsResult
fn bids(&self, request: BidsRequest) -> BidsResult
Gets the bids.
Source§fn bidding(&self, _: BiddingRequest) -> BiddingResult
fn bidding(&self, _: BiddingRequest) -> BiddingResult
Direct auction interaction for all variations of bid management.
Source§fn handle_refund(&self, _: HandleRefundRequest) -> HandleRefundResult
fn handle_refund(&self, _: HandleRefundRequest) -> HandleRefundResult
Handle refund.
Source§fn handle_fee(&self, _: HandleFeeRequest) -> HandleFeeResult
fn handle_fee(&self, _: HandleFeeRequest) -> HandleFeeResult
Handle payment.
Source§fn execution_result_checksum(
&self,
request: ExecutionResultsChecksumRequest,
) -> ExecutionResultsChecksumResult
fn execution_result_checksum( &self, request: ExecutionResultsChecksumRequest, ) -> ExecutionResultsChecksumResult
Gets the execution result checksum.
Source§fn addressable_entity(
&self,
request: AddressableEntityRequest,
) -> AddressableEntityResult
fn addressable_entity( &self, request: AddressableEntityRequest, ) -> AddressableEntityResult
Gets an addressable entity.
Source§fn system_entity_registry(
&self,
request: SystemEntityRegistryRequest,
) -> SystemEntityRegistryResult
fn system_entity_registry( &self, request: SystemEntityRegistryRequest, ) -> SystemEntityRegistryResult
Returns the system entity registry or the key for a system entity registered within it.
Source§fn entry_point(&self, request: EntryPointRequest) -> EntryPointResult
fn entry_point(&self, request: EntryPointRequest) -> EntryPointResult
Gets an entry point value.
Source§fn contract(&self, request: ContractRequest) -> ContractResult
fn contract(&self, request: ContractRequest) -> ContractResult
Gets a contract value.
Source§fn entry_point_exists(
&self,
request: EntryPointExistsRequest,
) -> EntryPointExistsResult
fn entry_point_exists( &self, request: EntryPointExistsRequest, ) -> EntryPointExistsResult
Gets an entry point value.
Source§fn total_supply(&self, request: TotalSupplyRequest) -> TotalSupplyResult
fn total_supply(&self, request: TotalSupplyRequest) -> TotalSupplyResult
Gets total supply.
Source§fn round_seigniorage_rate(
&self,
request: RoundSeigniorageRateRequest,
) -> RoundSeigniorageRateResult
fn round_seigniorage_rate( &self, request: RoundSeigniorageRateRequest, ) -> RoundSeigniorageRateResult
Gets the current round seigniorage rate.
Source§fn transfer(&self, request: TransferRequest) -> TransferResult
fn transfer(&self, request: TransferRequest) -> TransferResult
Direct transfer.
Source§fn burn(&self, request: BurnRequest) -> BurnResult
fn burn(&self, request: BurnRequest) -> BurnResult
Direct burn.
Source§fn tagged_values(&self, request: TaggedValuesRequest) -> TaggedValuesResult
fn tagged_values(&self, request: TaggedValuesRequest) -> TaggedValuesResult
Gets all values under a given key tag.
Source§fn prefixed_values(
&self,
request: PrefixedValuesRequest,
) -> PrefixedValuesResult
fn prefixed_values( &self, request: PrefixedValuesRequest, ) -> PrefixedValuesResult
Gets all values under a given key prefix.
Currently, this ignores the cache and only provides values from the trie.
impl<S: Copy> Copy for DataAccessLayer<S>
Auto Trait Implementations§
impl<S> Freeze for DataAccessLayer<S>where
S: Freeze,
impl<S> RefUnwindSafe for DataAccessLayer<S>where
S: RefUnwindSafe,
impl<S> Send for DataAccessLayer<S>where
S: Send,
impl<S> Sync for DataAccessLayer<S>where
S: Sync,
impl<S> Unpin for DataAccessLayer<S>where
S: Unpin,
impl<S> UnwindSafe for DataAccessLayer<S>where
S: UnwindSafe,
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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