pub struct ReadWriteSetAnalysis(_);
Implementations§
source§impl ReadWriteSetAnalysis
impl ReadWriteSetAnalysis
sourcepub fn new(rw: ReadWriteSetAnalysis) -> Self
pub fn new(rw: ReadWriteSetAnalysis) -> Self
Create a Diem transaction read/write set analysis from a generic Move module read/write set analysis
sourcepub fn get_keys_written(
&self,
tx: &SignedTransaction,
blockchain_view: &impl MoveResolver
) -> Result<Vec<ResourceKey>>
pub fn get_keys_written( &self, tx: &SignedTransaction, blockchain_view: &impl MoveResolver ) -> Result<Vec<ResourceKey>>
Returns an overapproximation of the ResourceKey
’s in global storage that will be written
by tx
if executed in state blockchain_view
.
Note: this will return both writes performed by the transaction prologue/epilogue and by its
embedded payload.
sourcepub fn get_keys_read(
&self,
tx: &SignedTransaction,
blockchain_view: &impl MoveResolver
) -> Result<Vec<ResourceKey>>
pub fn get_keys_read( &self, tx: &SignedTransaction, blockchain_view: &impl MoveResolver ) -> Result<Vec<ResourceKey>>
Returns an overapproximation of the ResourceKey
’s in global storage that will be read
by tx
if executed in state blockchain_view
.
Note: this will return both reads performed by the transaction prologue/epilogue and by its
embedded payload.
Methods from Deref<Target = ReadWriteSetAnalysis>§
pub fn get_summary(
&self,
module: &ModuleId,
fun: &IdentStr
) -> Option<&ReadWriteSetState>
pub fn get_summary( &self, module: &ModuleId, fun: &IdentStr ) -> Option<&ReadWriteSetState>
Return an overapproximation access paths read/written by module
::fun
.
Returns None
if the function or module does not exist.
pub fn get_concretized_summary(
&self,
module: &ModuleId,
fun: &IdentStr,
signers: &[AccountAddress],
actuals: &[Vec<u8, Global>],
type_actuals: &[TypeTag],
blockchain_view: &impl MoveResolver
) -> Result<ConcretizedSecondaryIndexes, Error>
pub fn get_concretized_summary( &self, module: &ModuleId, fun: &IdentStr, signers: &[AccountAddress], actuals: &[Vec<u8, Global>], type_actuals: &[TypeTag], blockchain_view: &impl MoveResolver ) -> Result<ConcretizedSecondaryIndexes, Error>
Returns an overapproximation of the access paths in global storage that will be read/written
by module::fun
if called with arguments signers
, actuals
, type_actuals
in state
blockchain_view
.
pub fn may_have_secondary_indexes(
&self,
module: &ModuleId,
fun: &IdentStr
) -> Result<bool, Error>
pub fn may_have_secondary_indexes( &self, module: &ModuleId, fun: &IdentStr ) -> Result<bool, Error>
Return true
if module
::fun
may read an address from the blockchain state and
subsequently read/write a resource stored at that address. Return false
if the function
will not do this in any possible concrete execution. Return an error if module
::fun
does
not exist.
pub fn get_keys_written(
&self,
module: &ModuleId,
fun: &IdentStr,
signers: &[AccountAddress],
actuals: &[Vec<u8, Global>],
type_actuals: &[TypeTag],
blockchain_view: &impl MoveResolver
) -> Result<Vec<ResourceKey, Global>, Error>
pub fn get_keys_written( &self, module: &ModuleId, fun: &IdentStr, signers: &[AccountAddress], actuals: &[Vec<u8, Global>], type_actuals: &[TypeTag], blockchain_view: &impl MoveResolver ) -> Result<Vec<ResourceKey, Global>, Error>
Returns an overapproximation of the ResourceKey
’s in global storage that will be written
by module::fun
if called with arguments signers
, actuals
, type_actuals
in state
blockchain_view
.
pub fn get_keys_read(
&self,
module: &ModuleId,
fun: &IdentStr,
signers: &[AccountAddress],
actuals: &[Vec<u8, Global>],
type_actuals: &[TypeTag],
blockchain_view: &impl MoveResolver
) -> Result<Vec<ResourceKey, Global>, Error>
pub fn get_keys_read( &self, module: &ModuleId, fun: &IdentStr, signers: &[AccountAddress], actuals: &[Vec<u8, Global>], type_actuals: &[TypeTag], blockchain_view: &impl MoveResolver ) -> Result<Vec<ResourceKey, Global>, Error>
Returns an overapproximation of the ResourceKey
’s in global storage that will be read by
module::fun
if called with arguments signers
, actuals
, type_actuals
in state
blockchain_view
.
pub fn get_concretized_keys(
&self,
module: &ModuleId,
fun: &IdentStr,
signers: &[AccountAddress],
actuals: &[Vec<u8, Global>],
type_actuals: &[TypeTag],
blockchain_view: &impl MoveResolver,
is_write: bool
) -> Result<Vec<ResourceKey, Global>, Error>
pub fn get_concretized_keys( &self, module: &ModuleId, fun: &IdentStr, signers: &[AccountAddress], actuals: &[Vec<u8, Global>], type_actuals: &[TypeTag], blockchain_view: &impl MoveResolver, is_write: bool ) -> Result<Vec<ResourceKey, Global>, Error>
Returns an overapproximation of the ResourceKey
’s in global storage that will be accesses
by module::funif called with arguments
signers,
actuals,
type_actualsin state
blockchain_view. If
is_write` is true, only ResourceKey’s written will be returned; otherwise, only
ResourceKey’s read will be returned.
pub fn get_function_env(
&self,
module: &ModuleId,
fun: &IdentStr
) -> Option<FunctionEnv<'_>>
pub fn get_function_env( &self, module: &ModuleId, fun: &IdentStr ) -> Option<FunctionEnv<'_>>
Returns the FunctionEnv for module
::fun
Returns None
if this function does not exist