pub struct registerSloadHookReturn {}Expand description
Registers a callback invoked after each SLOAD against target’s effective storage account,
including when its code runs by delegatecall.
The callback must have the signature function(address,bytes32,bytes32) external.
Registering another callback for the same target and access kind replaces it. Registration
survives EVM reverts, while callback state follows the enclosing EVM context and rolls back
with it. Callback reverts propagate through the storage operation. Hooks are suppressed in
the callback and its entire call subtree. The callback must authenticate
msg.sender == address(vm) to prevent external spoofing. Callback execution is hidden from
mocks, expectations, log recording, and storage-access recording. It does not inherit
staticness. The callback runs as an ordinary call frame and consumes one of the 1024
protocol call-depth slots; a load at the maximum legal call depth can have its callback
rejected as too deep, propagating as a failure of the load.
Container type for the return parameters of the registerSloadHook(address,bytes4) function.
Implementations§
Source§impl registerSloadHookReturn
impl registerSloadHookReturn
fn _tokenize(&self) -> <registerSloadHookCall as SolCall>::ReturnToken<'_>
Trait Implementations§
Source§impl Clone for registerSloadHookReturn
impl Clone for registerSloadHookReturn
Source§fn clone(&self) -> registerSloadHookReturn
fn clone(&self) -> registerSloadHookReturn
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for registerSloadHookReturn
impl RefUnwindSafe for registerSloadHookReturn
impl Send for registerSloadHookReturn
impl Sync for registerSloadHookReturn
impl Unpin for registerSloadHookReturn
impl UnsafeUnpin for registerSloadHookReturn
impl UnwindSafe for registerSloadHookReturn
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 0 bytes