// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; address constant STORAGE_ADDR = 0x0000000000000000000000000000000000000901; interface IStorage { /// Clear the value at the given key in the contract storage. /// /// # Important /// /// This function can only be called via a delegate call! For Solidity, the low level /// `delegatecall` function has to be used. For languages that use the FFI /// of `pallet-revive`, the [`crate::HostFn::delegate_call`] function can be used. /// /// # Parameters /// /// - `key`: The storage key. /// /// # Return /// /// If no entry existed for this key, `containedKey` is `false` and /// `valueLen` is `0`. function clearStorage(uint32 flags, bool isFixedKey, bytes memory key) external returns (bool containedKey, uint valueLen); /// Checks whether there is a value stored under the given key. /// /// The key length must not exceed the maximum defined by the contracts module parameter. /// /// # Important /// /// This function can only be called via a delegate call! For Solidity, the low level /// `delegatecall` function has to be used. For languages that use the FFI /// of `pallet-revive`, the [`crate::HostFn::delegate_call`] function can be used. /// /// # Parameters /// /// - `key`: The storage key. /// /// # Return /// /// Returns the size of the pre-existing value at the specified key. /// If no entry exists for this key `containedKey` is `false` and /// `valueLen` is `0`. function containsStorage(uint32 flags, bool isFixedKey, bytes memory key) external view returns (bool containedKey, uint valueLen); /// Retrieve and remove the value under the given key from storage. /// /// # Important /// /// This function can only be called via a delegate call! For Solidity, the low level /// `delegatecall` function has to be used. For languages that use the FFI /// of `pallet-revive`, the [`crate::HostFn::delegate_call`] function can be used. /// /// # Parameters /// /// - `key`: The storage key. /// /// # Errors /// /// Returns empty bytes if no value was found under `key`. function takeStorage(uint32 flags, bool isFixedKey, bytes memory key) external returns (bytes memory); }