ValueRegistry

Git Source

Inherits: IValueRegistry, ElementRegistryErrors, Initializable, Soke

State Variables

VALUEREGISTRY_STORAGE_LOCATION

Deterministic storage slot per ERC-7201

keccak256(abi.encode(uint256(keccak256("every.storage.ValueRegistry")) - 1)) & ~bytes32(uint256(0xff))

bytes32 private constant VALUEREGISTRY_STORAGE_LOCATION =
    0x7e2fb0066d5c30a775c561af98650c8a5856bdd87a1fa6e7b509179e09d6c200;

Functions

_getValueRegistryStorage

function _getValueRegistryStorage() private pure returns (ValueRegistryStorage storage $);

__ValueRegistry_init

function __ValueRegistry_init(uint64 idStart, address owner, bytes32 data, uint8 decimals, string memory symbol)
    internal
    onlyInitializing;

valueRegister

Registers a new value token

function valueRegister(address code, bytes32 data, TokenStandard std, uint8 decimals, string memory symbol)
    external
    override
    returns (uint64 id, Descriptor memory meta);

Parameters

NameTypeDescription
codeaddressToken contract address
databytes32Hash of the underlying matter or metadata
stdTokenStandardToken standard (e.g. ERC20)
decimalsuint8Token's decimal precision
symbolstringDisplay symbol (max 30 characters)

Returns

NameTypeDescription
iduint64New value ID
metaDescriptordesc Descriptor after registration

valueUpdate

Updates the data hash of an existing value

function valueUpdate(uint64 id, bytes32 data) external override returns (Descriptor memory meta);

Parameters

NameTypeDescription
iduint64Value ID
databytes32New data hash

Returns

NameTypeDescription
metaDescriptordesc Updated descriptor (revision bumped)

valueUpdate

Updates the data hash of an existing value

function valueUpdate(uint64 id, bytes32 data, string memory symbol)
    external
    override
    returns (Descriptor memory meta);

Parameters

NameTypeDescription
iduint64Value ID
databytes32New data hash
symbolstring

Returns

NameTypeDescription
metaDescriptordesc Updated descriptor (revision bumped)

valueUpgrade

Upgrades the kind/set revision of a value

function valueUpgrade(uint64 id, uint32 kindRev0, uint32 setRev0) external override returns (Descriptor memory meta);

Parameters

NameTypeDescription
iduint64Value ID
kindRev0uint32New kind revision (0 = no change)
setRev0uint32New set revision (0 = no change)

Returns

NameTypeDescription
metaDescriptordesc Descriptor after upgrade

valueTouch

Touches a value, bumping its revision without changing its content

function valueTouch(uint64 id) external override returns (Descriptor memory meta);

Parameters

NameTypeDescription
iduint64Value ID

Returns

NameTypeDescription
metaDescriptordesc Descriptor after touch

valueTransfer

Transfers ownership of a value to a new address

function valueTransfer(uint64 id, address to) external override returns (address from);

Parameters

NameTypeDescription
iduint64Value ID
toaddressAddress to transfer ownership to

Returns

NameTypeDescription
fromaddressAddress of the previous owner

valueRevision

Resolves and validates a revision of a value

function valueRevision(uint64 id, uint32 rev0) external view override returns (uint32 rev);

Parameters

NameTypeDescription
iduint64Value ID
rev0uint32Requested revision (0 = latest)

Returns

NameTypeDescription
revuint32Validated revision (0 = not found)

valueDescriptor

Returns the descriptor of a value at a specific revision

function valueDescriptor(uint64 id, uint32 rev0) external view override returns (Descriptor memory desc);

Parameters

NameTypeDescription
iduint64Value ID
rev0uint32Revision to query (0 = latest)

Returns

NameTypeDescription
descDescriptorDescriptor at the given revision

valueSnapshot

Returns descriptor and elements of a value at a specific revision

function valueSnapshot(uint64 id, uint32 rev0)
    external
    view
    override
    returns (Descriptor memory desc, bytes32[] memory elems);

Parameters

NameTypeDescription
iduint64Value ID
rev0uint32Revision to query (0 = latest)

Returns

NameTypeDescription
descDescriptorDescriptor at the given revision
elemsbytes32[]Element values at the given revision

valueOwner

Returns the current owner of a value

function valueOwner(uint64 id) external view override returns (address owner);

Parameters

NameTypeDescription
iduint64Value ID

Returns

NameTypeDescription
owneraddressCurrent owner's address

valueSota

Returns the latest descriptor and current owner of a value

function valueSota(uint64 id) external view override returns (Descriptor memory desc, address owner);

Parameters

NameTypeDescription
iduint64Value ID

Returns

NameTypeDescription
descDescriptorLatest descriptor
owneraddressCurrent owner's address

valueStatus

Checks whether all specified values are active (revision > 0)

function valueStatus(uint64[] memory ids) external view override returns (bool active);

Parameters

NameTypeDescription
idsuint64[]Array of value IDs

Returns

NameTypeDescription
activeboolTrue if all values exist and are active

_register

function _register(
    uint64 id,
    address code,
    bytes32 data,
    TokenStandard std,
    uint8 decimals,
    string memory symbol,
    address owner
) private returns (Descriptor memory);

_kindOfValueRevision

Returns the latest revision of the Kind-of-Value object

function _kindOfValueRevision() private view returns (uint32);

_setOfValueRevision

Returns the latest revision of the Set-of-Value object

function _setOfValueRevision() private view returns (uint32);

Structs

ValueRegistryStorage

Note: storage-location: erc7201:every.storage.ValueRegistry

struct ValueRegistryStorage {
    Counter48.Counter counter;
    Snapshots.Storage values;
}