1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// Copyright (c) The Libra Core Contributors // SPDX-License-Identifier: Apache-2.0 //! This crate defines [`trait StateView`](StateView). use failure::prelude::*; use types::access_path::AccessPath; /// `StateView` is a trait that defines a read-only snapshot of the global state. It is passed to /// the VM for transaction execution, during which the VM is guaranteed to read anything at the /// given state. pub trait StateView { /// Gets the state for a single access path. fn get(&self, access_path: &AccessPath) -> Result<Option<Vec<u8>>>; /// Gets states for a list of access paths. fn multi_get(&self, access_paths: &[AccessPath]) -> Result<Vec<Option<Vec<u8>>>>; /// VM needs this method to know whether the current state view is for genesis state creation. /// Currently TransactionPayload::WriteSet is only valid for genesis state creation. fn is_genesis(&self) -> bool; }