Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

TransientSlot

*Library for reading and writing value-types to specific transient storage slots. Transient slots are often used to store temporary values that are removed after the current transaction. This library helps with reading and writing to such slots without the need for inline assembly. Example reading and writing values using transient storage:

contract Lock {
using TransientSlot for *;
// Define the slot. Alternatively, use the SlotDerivation library to derive the slot.
bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;
modifier locked() {
require(!_LOCK_SLOT.asBoolean().tload());
_LOCK_SLOT.asBoolean().tstore(true);
_;
_LOCK_SLOT.asBoolean().tstore(false);
}
}

TIP: Consider using this library along with {SlotDerivation}.*

Functions

asAddress

Cast an arbitrary slot to a AddressSlot.

function asAddress(bytes32 slot) internal pure returns (AddressSlot);

asBoolean

Cast an arbitrary slot to a BooleanSlot.

function asBoolean(bytes32 slot) internal pure returns (BooleanSlot);

asBytes32

Cast an arbitrary slot to a Bytes32Slot.

function asBytes32(bytes32 slot) internal pure returns (Bytes32Slot);

asUint256

Cast an arbitrary slot to a Uint256Slot.

function asUint256(bytes32 slot) internal pure returns (Uint256Slot);

asInt256

Cast an arbitrary slot to a Int256Slot.

function asInt256(bytes32 slot) internal pure returns (Int256Slot);

tload

Load the value held at location slot in transient storage.

function tload(AddressSlot slot) internal view returns (address value);

tstore

Store value at location slot in transient storage.

function tstore(AddressSlot slot, address value) internal;

tload

Load the value held at location slot in transient storage.

function tload(BooleanSlot slot) internal view returns (bool value);

tstore

Store value at location slot in transient storage.

function tstore(BooleanSlot slot, bool value) internal;

tload

Load the value held at location slot in transient storage.

function tload(Bytes32Slot slot) internal view returns (bytes32 value);

tstore

Store value at location slot in transient storage.

function tstore(Bytes32Slot slot, bytes32 value) internal;

tload

Load the value held at location slot in transient storage.

function tload(Uint256Slot slot) internal view returns (uint256 value);

tstore

Store value at location slot in transient storage.

function tstore(Uint256Slot slot, uint256 value) internal;

tload

Load the value held at location slot in transient storage.

function tload(Int256Slot slot) internal view returns (int256 value);

tstore

Store value at location slot in transient storage.

function tstore(Int256Slot slot, int256 value) internal;