#
Solidity API
#
Bytes
#
toBytes32
function toBytes32(bytes input, uint256 offset) internal pure returns (bytes32 output)
Converts a bytes
memory blob to a single bytes32
memory value, starting at the given byte offset.
#
equals
function equals(bytes a, bytes b) internal pure returns (bool)
#
setLength
function setLength(bytes input, uint256 length) internal pure returns (bytes)
In-place set the length of a bytes
memory value.
#
setBytes1
function setBytes1(bytes32 input, uint256 index, bytes1 overwrite) internal pure returns (bytes32 output)
Overwrite a single byte of a bytes32
value and return the new value.
#
setBytes2
function setBytes2(bytes32 input, uint256 index, bytes2 overwrite) internal pure returns (bytes32 output)
Overwrite two bytes of a bytes32
value and return the new value.
#
setBytes4
function setBytes4(bytes32 input, uint256 index, bytes4 overwrite) internal pure returns (bytes32 output)
Overwrite four bytes of a bytes32
value and return the new value.
#
setBytes4
function setBytes4(bytes input, uint256 offset, bytes4 overwrite) internal pure returns (bytes)
In-place overwrite four bytes of a bytes memory
value.
#
slice1
function slice1(bytes data, uint256 start) internal pure returns (bytes1)
Slice bytes to bytes1 without copying data
#
slice1
function slice1(bytes32 data, uint256 start) internal pure returns (bytes1)
#
slice2
function slice2(bytes data, uint256 start) internal pure returns (bytes2)
Slice bytes to bytes2 without copying data
#
slice2
function slice2(bytes32 data, uint256 start) internal pure returns (bytes2)
#
slice3
function slice3(bytes data, uint256 start) internal pure returns (bytes3)
Slice bytes to bytes3 without copying data
#
slice4
function slice4(bytes data, uint256 start) internal pure returns (bytes4)
Slice bytes to bytes4 without copying data
#
slice4
function slice4(bytes32 data, uint256 start) internal pure returns (bytes4)
#
slice5
function slice5(bytes data, uint256 start) internal pure returns (bytes5)
Slice bytes to bytes5 without copying data
#
slice6
function slice6(bytes data, uint256 start) internal pure returns (bytes6)
Slice bytes to bytes6 without copying data
#
slice7
function slice7(bytes data, uint256 start) internal pure returns (bytes7)
Slice bytes to bytes7 without copying data
#
slice8
function slice8(bytes data, uint256 start) internal pure returns (bytes8)
Slice bytes to bytes8 without copying data
#
slice9
function slice9(bytes data, uint256 start) internal pure returns (bytes9)
Slice bytes to bytes9 without copying data
#
slice10
function slice10(bytes data, uint256 start) internal pure returns (bytes10)
Slice bytes to bytes10 without copying data
#
slice11
function slice11(bytes data, uint256 start) internal pure returns (bytes11)
Slice bytes to bytes11 without copying data
#
slice12
function slice12(bytes data, uint256 start) internal pure returns (bytes12)
Slice bytes to bytes12 without copying data
#
slice13
function slice13(bytes data, uint256 start) internal pure returns (bytes13)
Slice bytes to bytes13 without copying data
#
slice14
function slice14(bytes data, uint256 start) internal pure returns (bytes14)
Slice bytes to bytes14 without copying data
#
slice15
function slice15(bytes data, uint256 start) internal pure returns (bytes15)
Slice bytes to bytes15 without copying data
#
slice16
function slice16(bytes data, uint256 start) internal pure returns (bytes16)
Slice bytes to bytes16 without copying data
#
slice17
function slice17(bytes data, uint256 start) internal pure returns (bytes17)
Slice bytes to bytes17 without copying data
#
slice18
function slice18(bytes data, uint256 start) internal pure returns (bytes18)
Slice bytes to bytes18 without copying data
#
slice19
function slice19(bytes data, uint256 start) internal pure returns (bytes19)
Slice bytes to bytes19 without copying data
#
slice20
function slice20(bytes data, uint256 start) internal pure returns (bytes20)
Slice bytes to bytes20 without copying data
#
slice21
function slice21(bytes data, uint256 start) internal pure returns (bytes21)
Slice bytes to bytes21 without copying data
#
slice22
function slice22(bytes data, uint256 start) internal pure returns (bytes22)
Slice bytes to bytes22 without copying data
#
slice23
function slice23(bytes data, uint256 start) internal pure returns (bytes23)
Slice bytes to bytes23 without copying data
#
slice24
function slice24(bytes data, uint256 start) internal pure returns (bytes24)
Slice bytes to bytes24 without copying data
#
slice25
function slice25(bytes data, uint256 start) internal pure returns (bytes25)
Slice bytes to bytes25 without copying data
#
slice26
function slice26(bytes data, uint256 start) internal pure returns (bytes26)
Slice bytes to bytes26 without copying data
#
slice27
function slice27(bytes data, uint256 start) internal pure returns (bytes27)
Slice bytes to bytes27 without copying data
#
slice28
function slice28(bytes data, uint256 start) internal pure returns (bytes28)
Slice bytes to bytes28 without copying data
#
slice29
function slice29(bytes data, uint256 start) internal pure returns (bytes29)
Slice bytes to bytes29 without copying data
#
slice30
function slice30(bytes data, uint256 start) internal pure returns (bytes30)
Slice bytes to bytes30 without copying data
#
slice31
function slice31(bytes data, uint256 start) internal pure returns (bytes31)
Slice bytes to bytes31 without copying data
#
slice32
function slice32(bytes data, uint256 start) internal pure returns (bytes32)
Slice bytes to bytes32 without copying data
#
IErrors
#
StoreCore_TableAlreadyExists
error StoreCore_TableAlreadyExists(bytes32 tableId, string tableIdString)
#
StoreCore_TableNotFound
error StoreCore_TableNotFound(bytes32 tableId, string tableIdString)
#
StoreCore_NotImplemented
error StoreCore_NotImplemented()
#
StoreCore_NotDynamicField
error StoreCore_NotDynamicField()
#
StoreCore_InvalidDataLength
error StoreCore_InvalidDataLength(uint256 expected, uint256 received)
#
StoreCore_InvalidFieldNamesLength
error StoreCore_InvalidFieldNamesLength(uint256 expected, uint256 received)
#
StoreCore_DataIndexOverflow
error StoreCore_DataIndexOverflow(uint256 length, uint256 received)
#
IStoreRead
#
getSchema
function getSchema(bytes32 table) external view returns (Schema schema)
#
getKeySchema
function getKeySchema(bytes32 table) external view returns (Schema schema)
#
getRecord
function getRecord(bytes32 table, bytes32[] key) external view returns (bytes data)
#
getRecord
function getRecord(bytes32 table, bytes32[] key, Schema schema) external view returns (bytes data)
#
getField
function getField(bytes32 table, bytes32[] key, uint8 schemaIndex) external view returns (bytes data)
#
isStore
function isStore() external view
#
IStoreWrite
#
StoreSetRecord
event StoreSetRecord(bytes32 table, bytes32[] key, bytes data)
#
StoreSetField
event StoreSetField(bytes32 table, bytes32[] key, uint8 schemaIndex, bytes data)
#
StoreDeleteRecord
event StoreDeleteRecord(bytes32 table, bytes32[] key)
#
setRecord
function setRecord(bytes32 table, bytes32[] key, bytes data) external
#
setField
function setField(bytes32 table, bytes32[] key, uint8 schemaIndex, bytes data) external
#
pushToField
function pushToField(bytes32 table, bytes32[] key, uint8 schemaIndex, bytes dataToPush) external
#
updateInField
function updateInField(bytes32 table, bytes32[] key, uint8 schemaIndex, uint256 startByteIndex, bytes dataToSet) external
#
deleteRecord
function deleteRecord(bytes32 table, bytes32[] key) external
#
IStoreData
The IStoreData interface includes methods for reading and writing table values. These methods are frequently invoked during runtime, so it is essential to prioritize optimizing their gas cost
#
IStoreRegistration
The IStoreRegistration interface includes methods for managing table schemas, metadata, and hooks, which are usually called once in the setup phase of an application, making them less performance critical than the IStoreData methods.
#
registerSchema
function registerSchema(bytes32 table, Schema schema, Schema keySchema) external
#
setMetadata
function setMetadata(bytes32 table, string tableName, string[] fieldNames) external
#
registerStoreHook
function registerStoreHook(bytes32 table, contract IStoreHook hook) external
#
IStore
#
IStoreHook
#
onSetRecord
function onSetRecord(bytes32 table, bytes32[] key, bytes data) external
#
onBeforeSetField
function onBeforeSetField(bytes32 table, bytes32[] key, uint8 schemaIndex, bytes data) external
#
onAfterSetField
function onAfterSetField(bytes32 table, bytes32[] key, uint8 schemaIndex, bytes data) external
#
onDeleteRecord
function onDeleteRecord(bytes32 table, bytes32[] key) external
#
Memory
#
load
function load(uint256 memoryPointer) internal pure returns (bytes32 data)
#
load
function load(uint256 memoryPointer, uint256 offset) internal pure returns (bytes32 data)
#
dataPointer
function dataPointer(bytes data) internal pure returns (uint256 memoryPointer)
#
lengthPointer
function lengthPointer(bytes data) internal pure returns (uint256 memoryPointer)
#
store
function store(uint256 memoryPointer, bytes32 value) internal pure
#
copy
function copy(uint256 fromPointer, uint256 toPointer, uint256 length) internal view
#
PackedCounter
#
PackedCounterLib
#
pack
function pack(uint16[] counters) internal pure returns (PackedCounter)
Encode the given counters into a single packed counter
- 4 bytes for the accumulated length
- 2 bytes per counter -> max 14 counters
#
pack
function pack(uint16 a) internal pure returns (PackedCounter)
#
pack
function pack(uint16 a, uint16 b) internal pure returns (PackedCounter)
#
pack
function pack(uint16 a, uint16 b, uint16 c) internal pure returns (PackedCounter)
#
pack
function pack(uint16 a, uint16 b, uint16 c, uint16 d) internal pure returns (PackedCounter)
#
total
function total(PackedCounter packedCounter) internal pure returns (uint256)
Decode the accumulated counter (first four bytes of packed counter)
#
atIndex
function atIndex(PackedCounter packedCounter, uint256 index) internal pure returns (uint256)
Decode the counter at the given index (two bytes per counter after the first four bytes)
#
setAtIndex
function setAtIndex(PackedCounter packedCounter, uint256 index, uint256 newValueAtIndex) internal pure returns (PackedCounter)
Set a counter at the given index, return the new packed counter
#
unwrap
function unwrap(PackedCounter packedCounter) internal pure returns (bytes32)
#
Schema
#
SchemaLib
#
SchemaLib_InvalidLength
error SchemaLib_InvalidLength(uint256 length)
#
SchemaLib_StaticTypeAfterDynamicType
error SchemaLib_StaticTypeAfterDynamicType()
#
encode
function encode(enum SchemaType[] _schema) internal pure returns (Schema)
Encode the given schema into a single bytes32
#
encode
function encode(enum SchemaType a) internal pure returns (Schema)
#
encode
function encode(enum SchemaType a, enum SchemaType b) internal pure returns (Schema)
#
encode
function encode(enum SchemaType a, enum SchemaType b, enum SchemaType c) internal pure returns (Schema)
#
encode
function encode(enum SchemaType a, enum SchemaType b, enum SchemaType c, enum SchemaType d) internal pure returns (Schema)
#
encode
function encode(enum SchemaType a, enum SchemaType b, enum SchemaType c, enum SchemaType d, enum SchemaType e) internal pure returns (Schema)
#
encode
function encode(enum SchemaType a, enum SchemaType b, enum SchemaType c, enum SchemaType d, enum SchemaType e, enum SchemaType f) internal pure returns (Schema)
#
staticDataLength
function staticDataLength(Schema schema) internal pure returns (uint256)
Get the length of the static data for the given schema
#
atIndex
function atIndex(Schema schema, uint256 index) internal pure returns (enum SchemaType)
Get the type of the data for the given schema at the given index
#
numDynamicFields
function numDynamicFields(Schema schema) internal pure returns (uint8)
Get the number of dynamic length fields for the given schema
#
numStaticFields
function numStaticFields(Schema schema) internal pure returns (uint8)
Get the number of static fields for the given schema
#
numFields
function numFields(Schema schema) internal pure returns (uint8)
Get the total number of fields for the given schema
#
isEmpty
function isEmpty(Schema schema) internal pure returns (bool)
Check if the given schema is empty
#
validate
function validate(Schema schema, bool allowEmpty) internal pure
#
unwrap
function unwrap(Schema schema) internal pure returns (bytes32)
Unwrap the schema
#
Slice
#
SliceLib
#
Slice_OutOfBounds
error Slice_OutOfBounds(bytes data, uint256 start, uint256 end)
#
MASK_LEN
uint256 MASK_LEN
#
MASK_PTR
uint256 MASK_PTR
#
fromBytes
function fromBytes(bytes data) internal pure returns (Slice)
Converts a bytes array to a slice (without copying data)
#
getSubslice
function getSubslice(bytes data, uint256 start) internal pure returns (Slice)
Subslice a bytes array using the given start index until the end of the array (without copying data)
#
getSubslice
function getSubslice(bytes data, uint256 start, uint256 end) internal pure returns (Slice)
Subslice a bytes array using the given indexes (without copying data) The start index is inclusive, the end index is exclusive
#
SliceInstance
#
pointer
function pointer(Slice self) internal pure returns (uint256)
Returns the pointer to the start of a slice
#
length
function length(Slice self) internal pure returns (uint256)
Returns the slice length in bytes
#
toBytes
function toBytes(Slice self) internal view returns (bytes data)
Copies the slice to a new bytes array The slice will NOT point to the new bytes array
#
toBytes32
function toBytes32(Slice self) internal pure returns (bytes32 result)
#
Storage
TODO Probably not fully optimized (see https://github.com/latticexyz/mud/issues/444)
#
store
function store(uint256 storagePointer, bytes data) internal
#
store
function store(uint256 storagePointer, bytes32 data) internal
#
store
function store(uint256 storagePointer, uint256 offset, bytes data) internal
#
store
function store(uint256 storagePointer, uint256 offset, uint256 memoryPointer, uint256 length) internal
Stores raw bytes to storage at the given storagePointer and offset (keeping the rest of the word intact)
#
load
function load(uint256 storagePointer) internal view returns (bytes32 word)
#
load
function load(uint256 storagePointer, uint256 length) internal view returns (bytes)
#
load
function load(uint256 storagePointer, uint256 length, uint256 offset) internal view returns (bytes result)
Load raw bytes from storage at the given storagePointer, offset, and length
#
load
function load(uint256 storagePointer, uint256 length, uint256 offset, uint256 memoryPointer) internal view
Append raw bytes from storage at the given storagePointer, offset, and length to the given memoryPointer
#
StoreCore
#
StoreSetRecord
event StoreSetRecord(bytes32 tableId, bytes32[] key, bytes data)
#
StoreSetField
event StoreSetField(bytes32 tableId, bytes32[] key, uint8 schemaIndex, bytes data)
#
StoreDeleteRecord
event StoreDeleteRecord(bytes32 tableId, bytes32[] key)
#
initialize
function initialize() internal
Initialize internal tables. Consumers must call this function in their constructor. TODO: should we turn the schema table into a "proper table" and register it here? (see https://github.com/latticexyz/mud/issues/444)
#
getSchema
function getSchema(bytes32 tableId) internal view returns (Schema schema)
Get the schema for the given tableId
#
getKeySchema
function getKeySchema(bytes32 tableId) internal view returns (Schema keySchema)
Get the key schema for the given tableId
#
hasTable
function hasTable(bytes32 tableId) internal view returns (bool)
Check if a table with the given tableId exists
#
registerSchema
function registerSchema(bytes32 tableId, Schema valueSchema, Schema keySchema) internal
Register a new tableId schema
#
setMetadata
function setMetadata(bytes32 tableId, string tableName, string[] fieldNames) internal
Set metadata for a given tableId
#
registerStoreHook
function registerStoreHook(bytes32 tableId, contract IStoreHook hook) internal
#
setRecord
function setRecord(bytes32 tableId, bytes32[] key, bytes data) internal
Set full data record for the given tableId and key tuple (static and dynamic data)
#
setField
function setField(bytes32 tableId, bytes32[] key, uint8 schemaIndex, bytes data) internal
#
deleteRecord
function deleteRecord(bytes32 tableId, bytes32[] key) internal
#
pushToField
function pushToField(bytes32 tableId, bytes32[] key, uint8 schemaIndex, bytes dataToPush) internal
#
updateInField
function updateInField(bytes32 tableId, bytes32[] key, uint8 schemaIndex, uint256 startByteIndex, bytes dataToSet) internal
#
getRecord
function getRecord(bytes32 tableId, bytes32[] key) internal view returns (bytes)
Get full record (all fields, static and dynamic data) for the given tableId and key tuple (loading schema from storage)
#
getRecord
function getRecord(bytes32 tableId, bytes32[] key, Schema schema) internal view returns (bytes)
Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given schema
#
getField
function getField(bytes32 tableId, bytes32[] key, uint8 schemaIndex) internal view returns (bytes)
Get a single field from the given tableId and key tuple (loading schema from storage)
#
getField
function getField(bytes32 tableId, bytes32[] key, uint8 schemaIndex, Schema schema) internal view returns (bytes)
Get a single field from the given tableId and key tuple, with the given schema
#
StoreCoreInternal
#
SLOT
bytes32 SLOT
#
SCHEMA_TABLE
bytes32 SCHEMA_TABLE
#
_getSchema
function _getSchema(bytes32 tableId) internal view returns (Schema)
#
_getKeySchema
function _getKeySchema(bytes32 tableId) internal view returns (Schema)
#
_registerSchemaUnchecked
function _registerSchemaUnchecked(bytes32 tableId, Schema valueSchema, Schema keySchema) internal
Register a new tableId schema without validity checks
#
_setStaticField
function _setStaticField(bytes32 tableId, bytes32[] key, Schema schema, uint8 schemaIndex, bytes data) internal
#
_setDynamicField
function _setDynamicField(bytes32 tableId, bytes32[] key, Schema schema, uint8 schemaIndex, bytes data) internal
#
_pushToDynamicField
function _pushToDynamicField(bytes32 tableId, bytes32[] key, Schema schema, uint8 schemaIndex, bytes dataToPush) internal
#
_setDynamicFieldItem
function _setDynamicFieldItem(bytes32 tableId, bytes32[] key, Schema schema, uint8 schemaIndex, uint256 startByteIndex, bytes dataToSet) internal
#
_getStaticData
function _getStaticData(bytes32 tableId, bytes32[] key, uint256 memoryPointer) internal view
Get full static record for the given tableId and key tuple (loading schema's static length from storage)
#
_getStaticData
function _getStaticData(bytes32 tableId, bytes32[] key, uint256 length, uint256 memoryPointer) internal view
Get full static data for the given tableId and key tuple, with the given static length
#
_getStaticField
function _getStaticField(bytes32 tableId, bytes32[] key, uint8 schemaIndex, Schema schema) internal view returns (bytes)
Get a single static field from the given tableId and key tuple, with the given schema
#
_getDynamicField
function _getDynamicField(bytes32 tableId, bytes32[] key, uint8 schemaIndex, Schema schema) internal view returns (bytes)
Get a single dynamic field from the given tableId and key tuple, with the given schema
#
_getStaticDataLocation
function _getStaticDataLocation(bytes32 tableId, bytes32[] key) internal pure returns (uint256)
Compute the storage location based on tableId id and index tuple
#
_getStaticDataOffset
function _getStaticDataOffset(Schema schema, uint8 schemaIndex) internal pure returns (uint256)
Get storage offset for the given schema and (static length) index
#
_getDynamicDataLocation
function _getDynamicDataLocation(bytes32 tableId, bytes32[] key, uint8 schemaIndex) internal pure returns (uint256)
Compute the storage location based on tableId id and index tuple
#
_getDynamicDataLengthLocation
function _getDynamicDataLengthLocation(bytes32 tableId, bytes32[] key) internal pure returns (uint256)
Compute the storage location for the length of the dynamic data
#
_loadEncodedDynamicDataLength
function _loadEncodedDynamicDataLength(bytes32 tableId, bytes32[] key) internal view returns (PackedCounter)
Get the length of the dynamic data for the given schema and index
#
_setDynamicDataLengthAtIndex
function _setDynamicDataLengthAtIndex(bytes32 tableId, bytes32[] key, uint8 dynamicSchemaIndex, uint256 newLengthAtIndex) internal
Set the length of the dynamic data (in bytes) for the given schema and index
#
_setPartialDynamicData
function _setPartialDynamicData(bytes32 tableId, bytes32[] key, uint8 dynamicSchemaIndex, uint256 startByteIndex, bytes partialData) internal
Modify a part of the dynamic field's data (without changing the field's length)
#
StoreCoreExtended
#
getRecord
function getRecord(bytes32 tableId, bytes32 _key) internal view returns (bytes)
#
getData
function getData(bytes32 tableId, bytes32[2] _key) internal view returns (bytes)
#
StoreRead
#
constructor
constructor() public
#
getSchema
function getSchema(bytes32 table) public view virtual returns (Schema schema)
#
getKeySchema
function getKeySchema(bytes32 table) public view virtual returns (Schema schema)
#
getRecord
function getRecord(bytes32 table, bytes32[] key) public view virtual returns (bytes data)
#
getRecord
function getRecord(bytes32 table, bytes32[] key, Schema schema) public view virtual returns (bytes data)
#
getField
function getField(bytes32 table, bytes32[] key, uint8 schemaIndex) public view virtual returns (bytes data)
#
isStore
function isStore() public view
#
StoreReadWithStubs
StoreReadWithStubs is not abstract and has signatures for all IStore methods, but only implements read methods (inheriting from StoreRead), so it can be used as IStore mock for testing or when write methods are not needed.
#
StoreReadWithStubs_NotImplemented
error StoreReadWithStubs_NotImplemented()
#
registerSchema
function registerSchema(bytes32, Schema, Schema) public virtual
Not implemented in StoreReadWithStubs
#
setMetadata
function setMetadata(bytes32, string, string[]) public virtual
Not implemented in StoreReadWithStubs
#
setRecord
function setRecord(bytes32, bytes32[], bytes) public virtual
Not implemented in StoreReadWithStubs
#
setField
function setField(bytes32, bytes32[], uint8, bytes) public virtual
Not implemented in StoreReadWithStubs
#
pushToField
function pushToField(bytes32, bytes32[], uint8, bytes) public virtual
Not implemented in StoreReadWithStubs
#
updateInField
function updateInField(bytes32, bytes32[], uint8, uint256, bytes) public virtual
Not implemented in StoreReadWithStubs
#
registerStoreHook
function registerStoreHook(bytes32, contract IStoreHook) public virtual
Not implemented in StoreReadWithStubs
#
deleteRecord
function deleteRecord(bytes32, bytes32[]) public virtual
Not implemented in StoreReadWithStubs
#
StoreSwitch
Call IStore functions on self or msg.sender, depending on whether the call is a delegatecall or regular call.
#
StoreSwitch_InvalidInsideConstructor
error StoreSwitch_InvalidInsideConstructor()
#
isDelegateCall
function isDelegateCall() internal view returns (bool success)
Detect whether the current call is a delegatecall or regular call. (The isStore method doesn't return a value to save gas, but it if exists, the call will succeed.)
#
inferStoreAddress
function inferStoreAddress() internal view returns (address)
#
registerStoreHook
function registerStoreHook(bytes32 table, contract IStoreHook hook) internal
#
getSchema
function getSchema(bytes32 table) internal view returns (Schema schema)
#
setMetadata
function setMetadata(bytes32 table, string tableName, string[] fieldNames) internal
#
registerSchema
function registerSchema(bytes32 table, Schema schema, Schema keySchema) internal
#
setRecord
function setRecord(bytes32 table, bytes32[] key, bytes data) internal
#
setField
function setField(bytes32 table, bytes32[] key, uint8 fieldIndex, bytes data) internal
#
pushToField
function pushToField(bytes32 table, bytes32[] key, uint8 fieldIndex, bytes dataToPush) internal
#
updateInField
function updateInField(bytes32 table, bytes32[] key, uint8 fieldIndex, uint256 startByteIndex, bytes dataToSet) internal
#
deleteRecord
function deleteRecord(bytes32 table, bytes32[] key) internal
#
getRecord
function getRecord(bytes32 table, bytes32[] key) internal view returns (bytes)
#
getRecord
function getRecord(bytes32 table, bytes32[] key, Schema schema) internal view returns (bytes)
#
getField
function getField(bytes32 table, bytes32[] key, uint8 fieldIndex) internal view returns (bytes)
#
TableId
#
toString
function toString(bytes32 tableId) internal pure returns (string)
#
Utils
#
divCeil
function divCeil(uint256 a, uint256 b) internal pure returns (uint256)
#
leftMask
function leftMask(uint256 byteLength) internal pure returns (uint256)
Adapted from https://github.com/dk1a/solidity-stringutils/blob/main/src/utils/mem.sol#L149-L167
_Left-aligned byte mask (e.g. for partial mload/mstore). For byteLength >= 32 returns type(uint256).max
length 0: 0x000000...000000 length 1: 0xff0000...000000 length 2: 0xffff00...000000 ... length 30: 0xffffff...ff0000 length 31: 0xffffff...ffff00 length 32+: 0xffffff...ffffff_
#
_tableId
bytes32 _tableId
#
CallbacksTableId
bytes32 CallbacksTableId
#
Callbacks
#
getSchema
function getSchema() internal pure returns (Schema)
Get the table's schema
#
getKeySchema
function getKeySchema() internal pure returns (Schema)
#
getMetadata
function getMetadata() internal pure returns (string, string[])
Get the table's metadata
#
registerSchema
function registerSchema() internal
Register the table's schema
#
registerSchema
function registerSchema(contract IStore _store) internal
Register the table's schema (using the specified store)
#
setMetadata
function setMetadata() internal
Set the table's metadata
#
setMetadata
function setMetadata(contract IStore _store) internal
Set the table's metadata (using the specified store)
#
get
function get(bytes32 key) internal view returns (bytes24[] value)
Get value
#
get
function get(contract IStore _store, bytes32 key) internal view returns (bytes24[] value)
Get value (using the specified store)
#
set
function set(bytes32 key, bytes24[] value) internal
Set value
#
set
function set(contract IStore _store, bytes32 key, bytes24[] value) internal
Set value (using the specified store)
#
push
function push(bytes32 key, bytes24 _element) internal
Push an element to value
#
push
function push(contract IStore _store, bytes32 key, bytes24 _element) internal
Push an element to value (using the specified store)
#
update
function update(bytes32 key, uint256 _index, bytes24 _element) internal
Update an element of value at _index
#
update
function update(contract IStore _store, bytes32 key, uint256 _index, bytes24 _element) internal
Update an element of value (using the specified store) at _index
#
encode
function encode(bytes24[] value) internal view returns (bytes)
Tightly pack full data using this table's schema
#
deleteRecord
function deleteRecord(bytes32 key) internal
#
deleteRecord
function deleteRecord(contract IStore _store, bytes32 key) internal
#
_tableId
bytes32 _tableId
#
HooksTableId
bytes32 HooksTableId
#
Hooks
#
getSchema
function getSchema() internal pure returns (Schema)
Get the table's schema
#
getKeySchema
function getKeySchema() internal pure returns (Schema)
#
getMetadata
function getMetadata() internal pure returns (string, string[])
Get the table's metadata
#
registerSchema
function registerSchema() internal
Register the table's schema
#
registerSchema
function registerSchema(contract IStore _store) internal
Register the table's schema (using the specified store)
#
setMetadata
function setMetadata() internal
Set the table's metadata
#
setMetadata
function setMetadata(contract IStore _store) internal
Set the table's metadata (using the specified store)
#
get
function get(bytes32 key) internal view returns (address[] value)
Get value
#
get
function get(contract IStore _store, bytes32 key) internal view returns (address[] value)
Get value (using the specified store)
#
set
function set(bytes32 key, address[] value) internal
Set value
#
set
function set(contract IStore _store, bytes32 key, address[] value) internal
Set value (using the specified store)
#
push
function push(bytes32 key, address _element) internal
Push an element to value
#
push
function push(contract IStore _store, bytes32 key, address _element) internal
Push an element to value (using the specified store)
#
update
function update(bytes32 key, uint256 _index, address _element) internal
Update an element of value at _index
#
update
function update(contract IStore _store, bytes32 key, uint256 _index, address _element) internal
Update an element of value (using the specified store) at _index
#
encode
function encode(address[] value) internal view returns (bytes)
Tightly pack full data using this table's schema
#
deleteRecord
function deleteRecord(bytes32 key) internal
#
deleteRecord
function deleteRecord(contract IStore _store, bytes32 key) internal
#
_tableId
bytes32 _tableId
#
MixedTableId
bytes32 MixedTableId
#
MixedData
struct MixedData {
uint32 u32;
uint128 u128;
uint32[] a32;
string s;
}
#
Mixed
#
getSchema
function getSchema() internal pure returns (Schema)
Get the table's schema
#
getKeySchema
function getKeySchema() internal pure returns (Schema)
#
getMetadata
function getMetadata() internal pure returns (string, string[])
Get the table's metadata
#
registerSchema
function registerSchema() internal
Register the table's schema
#
registerSchema
function registerSchema(contract IStore _store) internal
Register the table's schema (using the specified store)
#
setMetadata
function setMetadata() internal
Set the table's metadata
#
setMetadata
function setMetadata(contract IStore _store) internal
Set the table's metadata (using the specified store)
#
getU32
function getU32(bytes32 key) internal view returns (uint32 u32)
Get u32
#
getU32
function getU32(contract IStore _store, bytes32 key) internal view returns (uint32 u32)
Get u32 (using the specified store)
#
setU32
function setU32(bytes32 key, uint32 u32) internal
Set u32
#
setU32
function setU32(contract IStore _store, bytes32 key, uint32 u32) internal
Set u32 (using the specified store)
#
getU128
function getU128(bytes32 key) internal view returns (uint128 u128)
Get u128
#
getU128
function getU128(contract IStore _store, bytes32 key) internal view returns (uint128 u128)
Get u128 (using the specified store)
#
setU128
function setU128(bytes32 key, uint128 u128) internal
Set u128
#
setU128
function setU128(contract IStore _store, bytes32 key, uint128 u128) internal
Set u128 (using the specified store)
#
getA32
function getA32(bytes32 key) internal view returns (uint32[] a32)
Get a32
#
getA32
function getA32(contract IStore _store, bytes32 key) internal view returns (uint32[] a32)
Get a32 (using the specified store)
#
setA32
function setA32(bytes32 key, uint32[] a32) internal
Set a32
#
setA32
function setA32(contract IStore _store, bytes32 key, uint32[] a32) internal
Set a32 (using the specified store)
#
pushA32
function pushA32(bytes32 key, uint32 _element) internal
Push an element to a32
#
pushA32
function pushA32(contract IStore _store, bytes32 key, uint32 _element) internal
Push an element to a32 (using the specified store)
#
updateA32
function updateA32(bytes32 key, uint256 _index, uint32 _element) internal
Update an element of a32 at _index
#
updateA32
function updateA32(contract IStore _store, bytes32 key, uint256 _index, uint32 _element) internal
Update an element of a32 (using the specified store) at _index
#
getS
function getS(bytes32 key) internal view returns (string s)
Get s
#
getS
function getS(contract IStore _store, bytes32 key) internal view returns (string s)
Get s (using the specified store)
#
setS
function setS(bytes32 key, string s) internal
Set s
#
setS
function setS(contract IStore _store, bytes32 key, string s) internal
Set s (using the specified store)
#
pushS
function pushS(bytes32 key, string _slice) internal
Push a slice to s
#
pushS
function pushS(contract IStore _store, bytes32 key, string _slice) internal
Push a slice to s (using the specified store)
#
updateS
function updateS(bytes32 key, uint256 _index, string _slice) internal
Update a slice of s at _index
#
updateS
function updateS(contract IStore _store, bytes32 key, uint256 _index, string _slice) internal
Update a slice of s (using the specified store) at _index
#
get
function get(bytes32 key) internal view returns (struct MixedData _table)
Get the full data
#
get
function get(contract IStore _store, bytes32 key) internal view returns (struct MixedData _table)
Get the full data (using the specified store)
#
set
function set(bytes32 key, uint32 u32, uint128 u128, uint32[] a32, string s) internal
Set the full data using individual values
#
set
function set(contract IStore _store, bytes32 key, uint32 u32, uint128 u128, uint32[] a32, string s) internal
Set the full data using individual values (using the specified store)
#
set
function set(bytes32 key, struct MixedData _table) internal
Set the full data using the data struct
#
set
function set(contract IStore _store, bytes32 key, struct MixedData _table) internal
Set the full data using the data struct (using the specified store)
#
decode
function decode(bytes _blob) internal view returns (struct MixedData _table)
Decode the tightly packed blob using this table's schema
#
encode
function encode(uint32 u32, uint128 u128, uint32[] a32, string s) internal view returns (bytes)
Tightly pack full data using this table's schema
#
deleteRecord
function deleteRecord(bytes32 key) internal
#
deleteRecord
function deleteRecord(contract IStore _store, bytes32 key) internal
#
_tableId
bytes32 _tableId
#
StoreMetadataTableId
bytes32 StoreMetadataTableId
#
StoreMetadataData
struct StoreMetadataData {
string tableName;
bytes abiEncodedFieldNames;
}
#
StoreMetadata
#
getSchema
function getSchema() internal pure returns (Schema)
Get the table's schema
#
getKeySchema
function getKeySchema() internal pure returns (Schema)
#
getMetadata
function getMetadata() internal pure returns (string, string[])
Get the table's metadata
#
registerSchema
function registerSchema() internal
Register the table's schema
#
registerSchema
function registerSchema(contract IStore _store) internal
Register the table's schema (using the specified store)
#
setMetadata
function setMetadata() internal
Set the table's metadata
#
setMetadata
function setMetadata(contract IStore _store) internal
Set the table's metadata (using the specified store)
#
getTableName
function getTableName(bytes32 tableId) internal view returns (string tableName)
Get tableName
#
getTableName
function getTableName(contract IStore _store, bytes32 tableId) internal view returns (string tableName)
Get tableName (using the specified store)
#
setTableName
function setTableName(bytes32 tableId, string tableName) internal
Set tableName
#
setTableName
function setTableName(contract IStore _store, bytes32 tableId, string tableName) internal
Set tableName (using the specified store)
#
pushTableName
function pushTableName(bytes32 tableId, string _slice) internal
Push a slice to tableName
#
pushTableName
function pushTableName(contract IStore _store, bytes32 tableId, string _slice) internal
Push a slice to tableName (using the specified store)
#
updateTableName
function updateTableName(bytes32 tableId, uint256 _index, string _slice) internal
Update a slice of tableName at _index
#
updateTableName
function updateTableName(contract IStore _store, bytes32 tableId, uint256 _index, string _slice) internal
Update a slice of tableName (using the specified store) at _index
#
getAbiEncodedFieldNames
function getAbiEncodedFieldNames(bytes32 tableId) internal view returns (bytes abiEncodedFieldNames)
Get abiEncodedFieldNames
#
getAbiEncodedFieldNames
function getAbiEncodedFieldNames(contract IStore _store, bytes32 tableId) internal view returns (bytes abiEncodedFieldNames)
Get abiEncodedFieldNames (using the specified store)
#
setAbiEncodedFieldNames
function setAbiEncodedFieldNames(bytes32 tableId, bytes abiEncodedFieldNames) internal
Set abiEncodedFieldNames
#
setAbiEncodedFieldNames
function setAbiEncodedFieldNames(contract IStore _store, bytes32 tableId, bytes abiEncodedFieldNames) internal
Set abiEncodedFieldNames (using the specified store)
#
pushAbiEncodedFieldNames
function pushAbiEncodedFieldNames(bytes32 tableId, bytes _slice) internal
Push a slice to abiEncodedFieldNames
#
pushAbiEncodedFieldNames
function pushAbiEncodedFieldNames(contract IStore _store, bytes32 tableId, bytes _slice) internal
Push a slice to abiEncodedFieldNames (using the specified store)
#
updateAbiEncodedFieldNames
function updateAbiEncodedFieldNames(bytes32 tableId, uint256 _index, bytes _slice) internal
Update a slice of abiEncodedFieldNames at _index
#
updateAbiEncodedFieldNames
function updateAbiEncodedFieldNames(contract IStore _store, bytes32 tableId, uint256 _index, bytes _slice) internal
Update a slice of abiEncodedFieldNames (using the specified store) at _index
#
get
function get(bytes32 tableId) internal view returns (struct StoreMetadataData _table)
Get the full data
#
get
function get(contract IStore _store, bytes32 tableId) internal view returns (struct StoreMetadataData _table)
Get the full data (using the specified store)
#
set
function set(bytes32 tableId, string tableName, bytes abiEncodedFieldNames) internal
Set the full data using individual values
#
set
function set(contract IStore _store, bytes32 tableId, string tableName, bytes abiEncodedFieldNames) internal
Set the full data using individual values (using the specified store)
#
set
function set(bytes32 tableId, struct StoreMetadataData _table) internal
Set the full data using the data struct
#
set
function set(contract IStore _store, bytes32 tableId, struct StoreMetadataData _table) internal
Set the full data using the data struct (using the specified store)
#
decode
function decode(bytes _blob) internal view returns (struct StoreMetadataData _table)
Decode the tightly packed blob using this table's schema
#
encode
function encode(string tableName, bytes abiEncodedFieldNames) internal view returns (bytes)
Tightly pack full data using this table's schema
#
deleteRecord
function deleteRecord(bytes32 tableId) internal
#
deleteRecord
function deleteRecord(contract IStore _store, bytes32 tableId) internal
#
_tableId
bytes32 _tableId
#
Vector2TableId
bytes32 Vector2TableId
#
Vector2Data
struct Vector2Data {
uint32 x;
uint32 y;
}
#
Vector2
#
getSchema
function getSchema() internal pure returns (Schema)
Get the table's schema
#
getKeySchema
function getKeySchema() internal pure returns (Schema)
#
getMetadata
function getMetadata() internal pure returns (string, string[])
Get the table's metadata
#
registerSchema
function registerSchema() internal
Register the table's schema
#
registerSchema
function registerSchema(contract IStore _store) internal
Register the table's schema (using the specified store)
#
setMetadata
function setMetadata() internal
Set the table's metadata
#
setMetadata
function setMetadata(contract IStore _store) internal
Set the table's metadata (using the specified store)
#
getX
function getX(bytes32 key) internal view returns (uint32 x)
Get x
#
getX
function getX(contract IStore _store, bytes32 key) internal view returns (uint32 x)
Get x (using the specified store)
#
setX
function setX(bytes32 key, uint32 x) internal
Set x
#
setX
function setX(contract IStore _store, bytes32 key, uint32 x) internal
Set x (using the specified store)
#
getY
function getY(bytes32 key) internal view returns (uint32 y)
Get y
#
getY
function getY(contract IStore _store, bytes32 key) internal view returns (uint32 y)
Get y (using the specified store)
#
setY
function setY(bytes32 key, uint32 y) internal
Set y
#
setY
function setY(contract IStore _store, bytes32 key, uint32 y) internal
Set y (using the specified store)
#
get
function get(bytes32 key) internal view returns (struct Vector2Data _table)
Get the full data
#
get
function get(contract IStore _store, bytes32 key) internal view returns (struct Vector2Data _table)
Get the full data (using the specified store)
#
set
function set(bytes32 key, uint32 x, uint32 y) internal
Set the full data using individual values
#
set
function set(contract IStore _store, bytes32 key, uint32 x, uint32 y) internal
Set the full data using individual values (using the specified store)
#
set
function set(bytes32 key, struct Vector2Data _table) internal
Set the full data using the data struct
#
set
function set(contract IStore _store, bytes32 key, struct Vector2Data _table) internal
Set the full data using the data struct (using the specified store)
#
decode
function decode(bytes _blob) internal pure returns (struct Vector2Data _table)
Decode the tightly packed blob using this table's schema
#
encode
function encode(uint32 x, uint32 y) internal view returns (bytes)
Tightly pack full data using this table's schema
#
deleteRecord
function deleteRecord(bytes32 key) internal
#
deleteRecord
function deleteRecord(contract IStore _store, bytes32 key) internal
#
DecodeSlice
#
decodeArray_uint8
function decodeArray_uint8(Slice self) internal pure returns (uint8[] output)
#
decodeArray_uint16
function decodeArray_uint16(Slice self) internal pure returns (uint16[] output)
#
decodeArray_uint24
function decodeArray_uint24(Slice self) internal pure returns (uint24[] output)
#
decodeArray_uint32
function decodeArray_uint32(Slice self) internal pure returns (uint32[] output)
#
decodeArray_uint40
function decodeArray_uint40(Slice self) internal pure returns (uint40[] output)
#
decodeArray_uint48
function decodeArray_uint48(Slice self) internal pure returns (uint48[] output)
#
decodeArray_uint56
function decodeArray_uint56(Slice self) internal pure returns (uint56[] output)
#
decodeArray_uint64
function decodeArray_uint64(Slice self) internal pure returns (uint64[] output)
#
decodeArray_uint72
function decodeArray_uint72(Slice self) internal pure returns (uint72[] output)
#
decodeArray_uint80
function decodeArray_uint80(Slice self) internal pure returns (uint80[] output)
#
decodeArray_uint88
function decodeArray_uint88(Slice self) internal pure returns (uint88[] output)
#
decodeArray_uint96
function decodeArray_uint96(Slice self) internal pure returns (uint96[] output)
#
decodeArray_uint104
function decodeArray_uint104(Slice self) internal pure returns (uint104[] output)
#
decodeArray_uint112
function decodeArray_uint112(Slice self) internal pure returns (uint112[] output)
#
decodeArray_uint120
function decodeArray_uint120(Slice self) internal pure returns (uint120[] output)
#
decodeArray_uint128
function decodeArray_uint128(Slice self) internal pure returns (uint128[] output)
#
decodeArray_uint136
function decodeArray_uint136(Slice self) internal pure returns (uint136[] output)
#
decodeArray_uint144
function decodeArray_uint144(Slice self) internal pure returns (uint144[] output)
#
decodeArray_uint152
function decodeArray_uint152(Slice self) internal pure returns (uint152[] output)
#
decodeArray_uint160
function decodeArray_uint160(Slice self) internal pure returns (uint160[] output)
#
decodeArray_uint168
function decodeArray_uint168(Slice self) internal pure returns (uint168[] output)
#
decodeArray_uint176
function decodeArray_uint176(Slice self) internal pure returns (uint176[] output)
#
decodeArray_uint184
function decodeArray_uint184(Slice self) internal pure returns (uint184[] output)
#
decodeArray_uint192
function decodeArray_uint192(Slice self) internal pure returns (uint192[] output)
#
decodeArray_uint200
function decodeArray_uint200(Slice self) internal pure returns (uint200[] output)
#
decodeArray_uint208
function decodeArray_uint208(Slice self) internal pure returns (uint208[] output)
#
decodeArray_uint216
function decodeArray_uint216(Slice self) internal pure returns (uint216[] output)
#
decodeArray_uint224
function decodeArray_uint224(Slice self) internal pure returns (uint224[] output)
#
decodeArray_uint232
function decodeArray_uint232(Slice self) internal pure returns (uint232[] output)
#
decodeArray_uint240
function decodeArray_uint240(Slice self) internal pure returns (uint240[] output)
#
decodeArray_uint248
function decodeArray_uint248(Slice self) internal pure returns (uint248[] output)
#
decodeArray_uint256
function decodeArray_uint256(Slice self) internal pure returns (uint256[] output)
#
decodeArray_int8
function decodeArray_int8(Slice self) internal pure returns (int8[] output)
#
decodeArray_int16
function decodeArray_int16(Slice self) internal pure returns (int16[] output)
#
decodeArray_int24
function decodeArray_int24(Slice self) internal pure returns (int24[] output)
#
decodeArray_int32
function decodeArray_int32(Slice self) internal pure returns (int32[] output)
#
decodeArray_int40
function decodeArray_int40(Slice self) internal pure returns (int40[] output)
#
decodeArray_int48
function decodeArray_int48(Slice self) internal pure returns (int48[] output)
#
decodeArray_int56
function decodeArray_int56(Slice self) internal pure returns (int56[] output)
#
decodeArray_int64
function decodeArray_int64(Slice self) internal pure returns (int64[] output)
#
decodeArray_int72
function decodeArray_int72(Slice self) internal pure returns (int72[] output)
#
decodeArray_int80
function decodeArray_int80(Slice self) internal pure returns (int80[] output)
#
decodeArray_int88
function decodeArray_int88(Slice self) internal pure returns (int88[] output)
#
decodeArray_int96
function decodeArray_int96(Slice self) internal pure returns (int96[] output)
#
decodeArray_int104
function decodeArray_int104(Slice self) internal pure returns (int104[] output)
#
decodeArray_int112
function decodeArray_int112(Slice self) internal pure returns (int112[] output)
#
decodeArray_int120
function decodeArray_int120(Slice self) internal pure returns (int120[] output)
#
decodeArray_int128
function decodeArray_int128(Slice self) internal pure returns (int128[] output)
#
decodeArray_int136
function decodeArray_int136(Slice self) internal pure returns (int136[] output)
#
decodeArray_int144
function decodeArray_int144(Slice self) internal pure returns (int144[] output)
#
decodeArray_int152
function decodeArray_int152(Slice self) internal pure returns (int152[] output)
#
decodeArray_int160
function decodeArray_int160(Slice self) internal pure returns (int160[] output)
#
decodeArray_int168
function decodeArray_int168(Slice self) internal pure returns (int168[] output)
#
decodeArray_int176
function decodeArray_int176(Slice self) internal pure returns (int176[] output)
#
decodeArray_int184
function decodeArray_int184(Slice self) internal pure returns (int184[] output)
#
decodeArray_int192
function decodeArray_int192(Slice self) internal pure returns (int192[] output)
#
decodeArray_int200
function decodeArray_int200(Slice self) internal pure returns (int200[] output)
#
decodeArray_int208
function decodeArray_int208(Slice self) internal pure returns (int208[] output)
#
decodeArray_int216
function decodeArray_int216(Slice self) internal pure returns (int216[] output)
#
decodeArray_int224
function decodeArray_int224(Slice self) internal pure returns (int224[] output)
#
decodeArray_int232
function decodeArray_int232(Slice self) internal pure returns (int232[] output)
#
decodeArray_int240
function decodeArray_int240(Slice self) internal pure returns (int240[] output)
#
decodeArray_int248
function decodeArray_int248(Slice self) internal pure returns (int248[] output)
#
decodeArray_int256
function decodeArray_int256(Slice self) internal pure returns (int256[] output)
#
decodeArray_bytes1
function decodeArray_bytes1(Slice self) internal pure returns (bytes1[] output)
#
decodeArray_bytes2
function decodeArray_bytes2(Slice self) internal pure returns (bytes2[] output)
#
decodeArray_bytes3
function decodeArray_bytes3(Slice self) internal pure returns (bytes3[] output)
#
decodeArray_bytes4
function decodeArray_bytes4(Slice self) internal pure returns (bytes4[] output)
#
decodeArray_bytes5
function decodeArray_bytes5(Slice self) internal pure returns (bytes5[] output)
#
decodeArray_bytes6
function decodeArray_bytes6(Slice self) internal pure returns (bytes6[] output)
#
decodeArray_bytes7
function decodeArray_bytes7(Slice self) internal pure returns (bytes7[] output)
#
decodeArray_bytes8
function decodeArray_bytes8(Slice self) internal pure returns (bytes8[] output)
#
decodeArray_bytes9
function decodeArray_bytes9(Slice self) internal pure returns (bytes9[] output)
#
decodeArray_bytes10
function decodeArray_bytes10(Slice self) internal pure returns (bytes10[] output)
#
decodeArray_bytes11
function decodeArray_bytes11(Slice self) internal pure returns (bytes11[] output)
#
decodeArray_bytes12
function decodeArray_bytes12(Slice self) internal pure returns (bytes12[] output)
#
decodeArray_bytes13
function decodeArray_bytes13(Slice self) internal pure returns (bytes13[] output)
#
decodeArray_bytes14
function decodeArray_bytes14(Slice self) internal pure returns (bytes14[] output)
#
decodeArray_bytes15
function decodeArray_bytes15(Slice self) internal pure returns (bytes15[] output)
#
decodeArray_bytes16
function decodeArray_bytes16(Slice self) internal pure returns (bytes16[] output)
#
decodeArray_bytes17
function decodeArray_bytes17(Slice self) internal pure returns (bytes17[] output)
#
decodeArray_bytes18
function decodeArray_bytes18(Slice self) internal pure returns (bytes18[] output)
#
decodeArray_bytes19
function decodeArray_bytes19(Slice self) internal pure returns (bytes19[] output)
#
decodeArray_bytes20
function decodeArray_bytes20(Slice self) internal pure returns (bytes20[] output)
#
decodeArray_bytes21
function decodeArray_bytes21(Slice self) internal pure returns (bytes21[] output)
#
decodeArray_bytes22
function decodeArray_bytes22(Slice self) internal pure returns (bytes22[] output)
#
decodeArray_bytes23
function decodeArray_bytes23(Slice self) internal pure returns (bytes23[] output)
#
decodeArray_bytes24
function decodeArray_bytes24(Slice self) internal pure returns (bytes24[] output)
#
decodeArray_bytes25
function decodeArray_bytes25(Slice self) internal pure returns (bytes25[] output)
#
decodeArray_bytes26
function decodeArray_bytes26(Slice self) internal pure returns (bytes26[] output)
#
decodeArray_bytes27
function decodeArray_bytes27(Slice self) internal pure returns (bytes27[] output)
#
decodeArray_bytes28
function decodeArray_bytes28(Slice self) internal pure returns (bytes28[] output)
#
decodeArray_bytes29
function decodeArray_bytes29(Slice self) internal pure returns (bytes29[] output)
#
decodeArray_bytes30
function decodeArray_bytes30(Slice self) internal pure returns (bytes30[] output)
#
decodeArray_bytes31
function decodeArray_bytes31(Slice self) internal pure returns (bytes31[] output)
#
decodeArray_bytes32
function decodeArray_bytes32(Slice self) internal pure returns (bytes32[] output)
#
decodeArray_address
function decodeArray_address(Slice self) internal pure returns (address[] output)
#
decodeArray_bool
function decodeArray_bool(Slice self) internal pure returns (bool[] output)
#
decodeArray_SchemaType
function decodeArray_SchemaType(Slice self) internal pure returns (enum SchemaType[] output)
#
EncodeArray
#
encode
function encode(uint8[] input) internal pure returns (bytes output)
#
encode
function encode(uint16[] input) internal pure returns (bytes output)
#
encode
function encode(uint24[] input) internal pure returns (bytes output)
#
encode
function encode(uint32[] input) internal pure returns (bytes output)
#
encode
function encode(uint40[] input) internal pure returns (bytes output)
#
encode
function encode(uint48[] input) internal pure returns (bytes output)
#
encode
function encode(uint56[] input) internal pure returns (bytes output)
#
encode
function encode(uint64[] input) internal pure returns (bytes output)
#
encode
function encode(uint72[] input) internal pure returns (bytes output)
#
encode
function encode(uint80[] input) internal pure returns (bytes output)
#
encode
function encode(uint88[] input) internal pure returns (bytes output)
#
encode
function encode(uint96[] input) internal pure returns (bytes output)
#
encode
function encode(uint104[] input) internal pure returns (bytes output)
#
encode
function encode(uint112[] input) internal pure returns (bytes output)
#
encode
function encode(uint120[] input) internal pure returns (bytes output)
#
encode
function encode(uint128[] input) internal pure returns (bytes output)
#
encode
function encode(uint136[] input) internal pure returns (bytes output)
#
encode
function encode(uint144[] input) internal pure returns (bytes output)
#
encode
function encode(uint152[] input) internal pure returns (bytes output)
#
encode
function encode(uint160[] input) internal pure returns (bytes output)
#
encode
function encode(uint168[] input) internal pure returns (bytes output)
#
encode
function encode(uint176[] input) internal pure returns (bytes output)
#
encode
function encode(uint184[] input) internal pure returns (bytes output)
#
encode
function encode(uint192[] input) internal pure returns (bytes output)
#
encode
function encode(uint200[] input) internal pure returns (bytes output)
#
encode
function encode(uint208[] input) internal pure returns (bytes output)
#
encode
function encode(uint216[] input) internal pure returns (bytes output)
#
encode
function encode(uint224[] input) internal pure returns (bytes output)
#
encode
function encode(uint232[] input) internal pure returns (bytes output)
#
encode
function encode(uint240[] input) internal pure returns (bytes output)
#
encode
function encode(uint248[] input) internal pure returns (bytes output)
#
encode
function encode(uint256[] input) internal pure returns (bytes output)
#
encode
function encode(int8[] input) internal pure returns (bytes output)
#
encode
function encode(int16[] input) internal pure returns (bytes output)
#
encode
function encode(int24[] input) internal pure returns (bytes output)
#
encode
function encode(int32[] input) internal pure returns (bytes output)
#
encode
function encode(int40[] input) internal pure returns (bytes output)
#
encode
function encode(int48[] input) internal pure returns (bytes output)
#
encode
function encode(int56[] input) internal pure returns (bytes output)
#
encode
function encode(int64[] input) internal pure returns (bytes output)
#
encode
function encode(int72[] input) internal pure returns (bytes output)
#
encode
function encode(int80[] input) internal pure returns (bytes output)
#
encode
function encode(int88[] input) internal pure returns (bytes output)
#
encode
function encode(int96[] input) internal pure returns (bytes output)
#
encode
function encode(int104[] input) internal pure returns (bytes output)
#
encode
function encode(int112[] input) internal pure returns (bytes output)
#
encode
function encode(int120[] input) internal pure returns (bytes output)
#
encode
function encode(int128[] input) internal pure returns (bytes output)
#
encode
function encode(int136[] input) internal pure returns (bytes output)
#
encode
function encode(int144[] input) internal pure returns (bytes output)
#
encode
function encode(int152[] input) internal pure returns (bytes output)
#
encode
function encode(int160[] input) internal pure returns (bytes output)
#
encode
function encode(int168[] input) internal pure returns (bytes output)
#
encode
function encode(int176[] input) internal pure returns (bytes output)
#
encode
function encode(int184[] input) internal pure returns (bytes output)
#
encode
function encode(int192[] input) internal pure returns (bytes output)
#
encode
function encode(int200[] input) internal pure returns (bytes output)
#
encode
function encode(int208[] input) internal pure returns (bytes output)
#
encode
function encode(int216[] input) internal pure returns (bytes output)
#
encode
function encode(int224[] input) internal pure returns (bytes output)
#
encode
function encode(int232[] input) internal pure returns (bytes output)
#
encode
function encode(int240[] input) internal pure returns (bytes output)
#
encode
function encode(int248[] input) internal pure returns (bytes output)
#
encode
function encode(int256[] input) internal pure returns (bytes output)
#
encode
function encode(bytes1[] input) internal pure returns (bytes output)
#
encode
function encode(bytes2[] input) internal pure returns (bytes output)
#
encode
function encode(bytes3[] input) internal pure returns (bytes output)
#
encode
function encode(bytes4[] input) internal pure returns (bytes output)
#
encode
function encode(bytes5[] input) internal pure returns (bytes output)
#
encode
function encode(bytes6[] input) internal pure returns (bytes output)
#
encode
function encode(bytes7[] input) internal pure returns (bytes output)
#
encode
function encode(bytes8[] input) internal pure returns (bytes output)
#
encode
function encode(bytes9[] input) internal pure returns (bytes output)
#
encode
function encode(bytes10[] input) internal pure returns (bytes output)
#
encode
function encode(bytes11[] input) internal pure returns (bytes output)
#
encode
function encode(bytes12[] input) internal pure returns (bytes output)
#
encode
function encode(bytes13[] input) internal pure returns (bytes output)
#
encode
function encode(bytes14[] input) internal pure returns (bytes output)
#
encode
function encode(bytes15[] input) internal pure returns (bytes output)
#
encode
function encode(bytes16[] input) internal pure returns (bytes output)
#
encode
function encode(bytes17[] input) internal pure returns (bytes output)
#
encode
function encode(bytes18[] input) internal pure returns (bytes output)
#
encode
function encode(bytes19[] input) internal pure returns (bytes output)
#
encode
function encode(bytes20[] input) internal pure returns (bytes output)
#
encode
function encode(bytes21[] input) internal pure returns (bytes output)
#
encode
function encode(bytes22[] input) internal pure returns (bytes output)
#
encode
function encode(bytes23[] input) internal pure returns (bytes output)
#
encode
function encode(bytes24[] input) internal pure returns (bytes output)
#
encode
function encode(bytes25[] input) internal pure returns (bytes output)
#
encode
function encode(bytes26[] input) internal pure returns (bytes output)
#
encode
function encode(bytes27[] input) internal pure returns (bytes output)
#
encode
function encode(bytes28[] input) internal pure returns (bytes output)
#
encode
function encode(bytes29[] input) internal pure returns (bytes output)
#
encode
function encode(bytes30[] input) internal pure returns (bytes output)
#
encode
function encode(bytes31[] input) internal pure returns (bytes output)
#
encode
function encode(bytes32[] input) internal pure returns (bytes output)
#
encode
function encode(address[] input) internal pure returns (bytes output)
#
encode
function encode(bool[] input) internal pure returns (bytes output)
#
encode
function encode(enum SchemaType[] input) internal pure returns (bytes output)
#
encode
function encode(bytes[] input) internal pure returns (bytes output)
Converts a bytes
memory array to a single bytes
memory value.
TODO: optimize gas cost
#
TightCoder
#
_encodeToLocation
function _encodeToLocation(bytes32[] array, Slice packedSlice, uint256 elementSize, bool leftAligned) private pure
_Copies the array to the location of packedSlice
,
tightly packing it using the given size per element (in bytes)
TODO this function is currently not used externally and will be changed in the future (see https://github.com/latticexyz/mud/issues/444)_
#
encode
function encode(bytes32[] array, uint256 elementSize, bool leftAligned) internal pure returns (bytes data)
Copies the array to a new bytes array, tightly packing it using the given size per element (in bytes)
#
decode
function decode(Slice packedSlice, uint256 elementSize, bool leftAligned) internal pure returns (bytes32[] array)
Unpacks the slice to a new memory location and lays it out like a memory array with the given size per element (in bytes)