RelationRegistry
Interface for registering and managing relations
Functions
relationRegister
Registers a new relation
Parameters
Name | Type | Description |
---|---|---|
code | address | Optional logic contract address |
data | bytes32 | Hash of the relation’s associated data |
rule | RelationRule | Rule defining the behavior and constraints of the relation |
adjs | Adjacency[] | Array of tail kind admissibility and degree limits |
Returns
Name | Type | Description |
---|---|---|
id | uint64 | New relation ID |
desc | Descriptor | Descriptor after registration |
relationUpdate
Updates the data hash of a relation
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
data | bytes32 | New data hash |
Returns
Name | Type | Description |
---|---|---|
desc | Descriptor | Updated descriptor |
relationUpdate
Updates the data hash and adjacency configuration of a relation
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
data | bytes32 | New data hash |
adjs | Adjacency[] | New array of adjacency rules |
Returns
Name | Type | Description |
---|---|---|
desc | Descriptor | Updated descriptor |
relationUpgrade
Upgrades the kind or set revision of a relation
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
kindRev | uint32 | New kind revision (0 = no change) |
setRev | uint32 | New set revision (0 = no change) |
Returns
Name | Type | Description |
---|---|---|
desc | Descriptor | Descriptor after upgrade |
relationTouch
Touches a relation (bumps revision without modifying content)
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
Returns
Name | Type | Description |
---|---|---|
desc | Descriptor | Descriptor after touch |
relationTransfer
Transfers ownership of a relation to a new address
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
to | address | New owner address |
Returns
Name | Type | Description |
---|---|---|
from | address | Previous owner address |
relationRevision
Resolves and validates a revision number
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
rev0 | uint32 | Requested revision (0 = latest) |
Returns
Name | Type | Description |
---|---|---|
rev | uint32 | Validated revision (0 if not found) |
relationDescriptor
Returns descriptor of a relation at a specific revision
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
rev0 | uint32 | Revision to query (0 = latest) |
Returns
Name | Type | Description |
---|---|---|
desc | Descriptor | Descriptor at the specified revision |
relationSnapshot
Returns descriptor and packed elements at a specific revision
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
rev0 | uint32 | Revision to query (0 = latest) |
Returns
Name | Type | Description |
---|---|---|
desc | Descriptor | Descriptor at the revision |
elems | bytes32[] | Elements at the revision |
relationOwner
Gets the current owner of a relation
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
Returns
Name | Type | Description |
---|---|---|
owner | address | Address of the current owner |
relationSota
Returns the latest descriptor and current owner of a relation
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
Returns
Name | Type | Description |
---|---|---|
desc | Descriptor | Latest descriptor |
owner | address | Current owner |
relationStatus
Checks whether all specified relations are active (rev > 0)
Parameters
Name | Type | Description |
---|---|---|
ids | uint64[] | Array of relation IDs |
Returns
Name | Type | Description |
---|---|---|
active | bool | True if all are valid and active |
relationRule
Returns the rule definition for a relation
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
Returns
Name | Type | Description |
---|---|---|
rule | RelationRule | Possession and linkage rule for the relation |
relationAdmit
Checks if a relation admits a specific kind as tail
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | Relation ID |
rev | uint32 | Revision to check |
kind | uint64 | Tail kind ID to evaluate |
Returns
Name | Type | Description |
---|---|---|
admit | bool | Whether the kind is admitted |
effKind | uint48 | Matched kind (0 = wildcard match) |
effDegs | uint16 | Degree bounds for the matched kind |
totalKind | uint48 | Special marker for total-kind (2^48-1 if defined) |
totalDegs | uint16 | Degree bounds for the total-kind |
Events
RelationRegistered
Emitted when a new relation is registered
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | ID of the relation |
desc | Descriptor | Descriptor of the relation |
code | address | Optional logic contract address |
data | bytes32 | Hash of the associated metadata or logic |
rule | RelationRule | Relation rule defining interaction logic |
adjs | Adjacency[] | List of admitted tail kinds and degree constraints |
owner | address | Address of the relation’s owner |
RelationUpdated
Emitted when a relation is updated
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | ID of the relation |
desc | Descriptor | Updated descriptor |
data | bytes32 | New data hash |
RelationUpgraded
Emitted when a relation is upgraded (kind/set revision bumped)
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | ID of the relation |
desc | Descriptor | Descriptor after upgrade |
RelationTouched
Emitted when a relation is touched (revision incremented without content change)
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | ID of the relation |
desc | Descriptor | Descriptor after touch |
RelationTransferred
Emitted when ownership of a relation is transferred
Parameters
Name | Type | Description |
---|---|---|
id | uint64 | ID of the relation |
from | address | Previous owner |
to | address | New owner |