@everyprotocol/every-cli 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.every.toml +8 -10
- package/abis/ElementRegistry.json +1 -1
- package/abis/IObjectMinter.json +1 -1
- package/abis/IObjectMinterAdmin.json +1 -1
- package/abis/IOmniRegistry.json +1 -1
- package/abis/ISet.json +1 -1
- package/abis/ISetRegistry.json +1 -1
- package/abis/ISetRegistryAdmin.json +1 -1
- package/abis/KindRegistry.json +1 -1
- package/abis/ObjectMinter.json +1 -1
- package/abis/OmniRegistry.json +1 -1
- package/abis/SetRegistry.json +1 -1
- package/dist/abi.js +5 -0
- package/dist/config.js +86 -0
- package/dist/keystore.js +120 -0
- package/dist/matter.js +25 -81
- package/dist/mint.js +37 -23
- package/dist/options.js +26 -0
- package/dist/program.js +6 -6
- package/dist/substrate.js +57 -0
- package/dist/utils.js +41 -0
- package/dist/wallet.js +85 -103
- package/package.json +1 -1
package/abis/IOmniRegistry.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"allowFrom","inputs":[{"name":"grantId","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"tail","type":"uint128","internalType":"uint128"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"headKind","type":"uint64","internalType":"uint64"},{"name":"headSet","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"allowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allowTo","inputs":[{"name":"grantId","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"head","type":"uint128","internalType":"uint128"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"tailKind","type":"uint64","internalType":"uint64"},{"name":"tailSet","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"allowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"grantFrom","inputs":[{"name":"tail","type":"uint128","internalType":"uint128"},{"name":"grant","type":"tuple","internalType":"struct RelationGrant","components":[{"name":"id","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"uint8"},{"name":"initiator","type":"uint8","internalType":"enum RelationInitiator"},{"name":"reserved","type":"uint16","internalType":"uint16"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"set","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"grantTo","inputs":[{"name":"head","type":"uint128","internalType":"uint128"},{"name":"grant","type":"tuple","internalType":"struct RelationGrant","components":[{"name":"id","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"uint8"},{"name":"initiator","type":"uint8","internalType":"enum RelationInitiator"},{"name":"reserved","type":"uint16","internalType":"uint16"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"set","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relate","inputs":[{"name":"tail","type":"uint256","internalType":"uint256"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"head","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relationAdmit","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kind","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"admit","type":"bool","internalType":"bool"},{"name":"effKind","type":"uint48","internalType":"uint48"},{"name":"effDegs","type":"uint16","internalType":"uint16"},{"name":"totalKind","type":"uint48","internalType":"uint48"},{"name":"totalDegs","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"relationDescriptor","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rev0","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"relationOwner","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"relationRegister","inputs":[{"name":"code","type":"address","internalType":"address"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"rule","type":"tuple","internalType":"struct RelationRule","components":[{"name":"version","type":"uint8","internalType":"uint8"},{"name":"relateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"terminator","type":"uint8","internalType":"enum RelationTerminator"},{"name":"unrelateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"unrelateDelay","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes20","internalType":"bytes20"}]},{"name":"adjs","type":"tuple[]","internalType":"struct Adjacency[]","components":[{"name":"degs","type":"uint16","internalType":"uint16"},{"name":"kind","type":"uint48","internalType":"uint48"}]}],"outputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"relationRevision","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rev0","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rev","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relationRule","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"rule","type":"tuple","internalType":"struct RelationRule","components":[{"name":"version","type":"uint8","internalType":"uint8"},{"name":"relateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"terminator","type":"uint8","internalType":"enum RelationTerminator"},{"name":"unrelateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"unrelateDelay","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes20","internalType":"bytes20"}]}],"stateMutability":"view"},{"type":"function","name":"relationSnapshot","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rev0","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"elems","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"relationSota","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"relationStatus","inputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"relationTouch","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"relationTransfer","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"from","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"relationUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"relationUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"adjs","type":"tuple[]","internalType":"struct Adjacency[]","components":[{"name":"degs","type":"uint16","internalType":"uint16"},{"name":"kind","type":"uint48","internalType":"uint48"}]}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"relationUpgrade","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeFrom","inputs":[{"name":"tail","type":"uint128","internalType":"uint128"},{"name":"grantId","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeTo","inputs":[{"name":"head","type":"uint128","internalType":"uint128"},{"name":"grantId","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unrelate","inputs":[{"name":"tail","type":"uint256","internalType":"uint256"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"head","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"GrantFrom","inputs":[{"name":"tail","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"grant","type":"tuple","indexed":false,"internalType":"struct RelationGrant","components":[{"name":"id","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"uint8"},{"name":"initiator","type":"uint8","internalType":"enum RelationInitiator"},{"name":"reserved","type":"uint16","internalType":"uint16"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"set","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes32","internalType":"bytes32"}]}],"anonymous":false},{"type":"event","name":"GrantTo","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"grant","type":"tuple","indexed":false,"internalType":"struct RelationGrant","components":[{"name":"id","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"uint8"},{"name":"initiator","type":"uint8","internalType":"enum RelationInitiator"},{"name":"reserved","type":"uint16","internalType":"uint16"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"set","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes32","internalType":"bytes32"}]}],"anonymous":false},{"type":"event","name":"Related","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"arc","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Related","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"arcs","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"RelationRegistered","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"code","type":"address","indexed":false,"internalType":"address"},{"name":"data","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"rule","type":"tuple","indexed":false,"internalType":"struct RelationRule","components":[{"name":"version","type":"uint8","internalType":"uint8"},{"name":"relateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"terminator","type":"uint8","internalType":"enum RelationTerminator"},{"name":"unrelateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"unrelateDelay","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes20","internalType":"bytes20"}]},{"name":"adjs","type":"tuple[]","indexed":false,"internalType":"struct Adjacency[]","components":[{"name":"degs","type":"uint16","internalType":"uint16"},{"name":"kind","type":"uint48","internalType":"uint48"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RelationTouched","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"RelationTransferred","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RelationUpdated","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"data","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RelationUpgraded","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"RevokeFrom","inputs":[{"name":"tail","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"grantId","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"RevokeTo","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"grantId","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"Unrelated","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"arc","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unrelated","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"arcs","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowFrom(uint32,address,uint128,uint64,uint64,uint64)":"2629dae8","allowTo(uint32,address,uint128,uint64,uint64,uint64)":"edd716f0","grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":"05be88ac","grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":"3440994b","relate(uint256,uint64,uint256)":"15ae7173","relationAdmit(uint64,uint32,uint64)":"2392f87d","relationDescriptor(uint64,uint32)":"06a883a0","relationOwner(uint64)":"bff9b974","relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])":"b9f17a47","relationRevision(uint64,uint32)":"df89b3fc","relationRule(uint64)":"9e490e90","relationSnapshot(uint64,uint32)":"eab25c41","relationSota(uint64)":"52393e1a","relationStatus(uint64[])":"3dae8c28","relationTouch(uint64)":"418239fb","relationTransfer(uint64,address)":"a926f041","relationUpdate(uint64,bytes32)":"5634ad14","relationUpdate(uint64,bytes32,(uint16,uint48)[])":"c9e2a1fb","relationUpgrade(uint64,uint32,uint32)":"954fc712","revokeFrom(uint128,uint32)":"ebeecfa3","revokeTo(uint128,uint32)":"876993ca","unrelate(uint256,uint64,uint256)":"2aead726"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationInitiator\",\"name\":\"initiator\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"reserved\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"set\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"extra\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct RelationGrant\",\"name\":\"grant\",\"type\":\"tuple\"}],\"name\":\"GrantFrom\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationInitiator\",\"name\":\"initiator\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"reserved\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"set\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"extra\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct RelationGrant\",\"name\":\"grant\",\"type\":\"tuple\"}],\"name\":\"GrantTo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arc\",\"type\":\"uint256\"}],\"name\":\"Related\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"arcs\",\"type\":\"uint256[]\"}],\"name\":\"Related\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"relateShift\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationTerminator\",\"name\":\"terminator\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"unrelateShift\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"unrelateDelay\",\"type\":\"uint64\"},{\"internalType\":\"bytes20\",\"name\":\"extra\",\"type\":\"bytes20\"}],\"indexed\":false,\"internalType\":\"struct RelationRule\",\"name\":\"rule\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"degs\",\"type\":\"uint16\"},{\"internalType\":\"uint48\",\"name\":\"kind\",\"type\":\"uint48\"}],\"indexed\":false,\"internalType\":\"struct Adjacency[]\",\"name\":\"adjs\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"RelationRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"name\":\"RelationTouched\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"RelationTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"RelationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"name\":\"RelationUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"}],\"name\":\"RevokeFrom\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"}],\"name\":\"RevokeTo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arc\",\"type\":\"uint256\"}],\"name\":\"Unrelated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"arcs\",\"type\":\"uint256[]\"}],\"name\":\"Unrelated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"headKind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"headSet\",\"type\":\"uint64\"}],\"name\":\"allowFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tailKind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tailSet\",\"type\":\"uint64\"}],\"name\":\"allowTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationInitiator\",\"name\":\"initiator\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"reserved\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"set\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"extra\",\"type\":\"bytes32\"}],\"internalType\":\"struct RelationGrant\",\"name\":\"grant\",\"type\":\"tuple\"}],\"name\":\"grantFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationInitiator\",\"name\":\"initiator\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"reserved\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"set\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"extra\",\"type\":\"bytes32\"}],\"internalType\":\"struct RelationGrant\",\"name\":\"grant\",\"type\":\"tuple\"}],\"name\":\"grantTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tail\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"head\",\"type\":\"uint256\"}],\"name\":\"relate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"}],\"name\":\"relationAdmit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"admit\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"effKind\",\"type\":\"uint48\"},{\"internalType\":\"uint16\",\"name\":\"effDegs\",\"type\":\"uint16\"},{\"internalType\":\"uint48\",\"name\":\"totalKind\",\"type\":\"uint48\"},{\"internalType\":\"uint16\",\"name\":\"totalDegs\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"relationDescriptor\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"relationOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"relateShift\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationTerminator\",\"name\":\"terminator\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"unrelateShift\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"unrelateDelay\",\"type\":\"uint64\"},{\"internalType\":\"bytes20\",\"name\":\"extra\",\"type\":\"bytes20\"}],\"internalType\":\"struct RelationRule\",\"name\":\"rule\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"degs\",\"type\":\"uint16\"},{\"internalType\":\"uint48\",\"name\":\"kind\",\"type\":\"uint48\"}],\"internalType\":\"struct Adjacency[]\",\"name\":\"adjs\",\"type\":\"tuple[]\"}],\"name\":\"relationRegister\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"relationRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"relationRule\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"relateShift\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationTerminator\",\"name\":\"terminator\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"unrelateShift\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"unrelateDelay\",\"type\":\"uint64\"},{\"internalType\":\"bytes20\",\"name\":\"extra\",\"type\":\"bytes20\"}],\"internalType\":\"struct RelationRule\",\"name\":\"rule\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"relationSnapshot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"elems\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"relationSota\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"ids\",\"type\":\"uint64[]\"}],\"name\":\"relationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"relationTouch\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"relationTransfer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"relationUpdate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"degs\",\"type\":\"uint16\"},{\"internalType\":\"uint48\",\"name\":\"kind\",\"type\":\"uint48\"}],\"internalType\":\"struct Adjacency[]\",\"name\":\"adjs\",\"type\":\"tuple[]\"}],\"name\":\"relationUpdate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"}],\"name\":\"relationUpgrade\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"}],\"name\":\"revokeFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"}],\"name\":\"revokeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tail\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"head\",\"type\":\"uint256\"}],\"name\":\"unrelate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"GrantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"params\":{\"grant\":\"Grant definition\",\"tail\":\"Tail object ID (initiator)\"}},\"GrantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"params\":{\"grant\":\"Grant definition\",\"head\":\"Head object ID (receiver)\"}},\"Related(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256)\":{\"params\":{\"arc\":\"Encoded incoming arc\",\"desc\":\"Descriptor of the head after the relation\",\"head\":\"Encoded SID of the head object\"}},\"Related(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256[])\":{\"params\":{\"arcs\":\"Array of encoded incoming arcs\",\"desc\":\"Descriptor of the head after the relations\",\"head\":\"Encoded SID of the head object\"}},\"RelationRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[],address)\":{\"params\":{\"adjs\":\"List of admitted tail kinds and degree constraints\",\"code\":\"Optional logic contract address\",\"data\":\"Hash of the associated metadata or logic\",\"desc\":\"Descriptor of the relation\",\"id\":\"ID of the relation\",\"owner\":\"Address of the relation's owner\",\"rule\":\"Relation rule defining interaction logic\"}},\"RelationTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after touch\",\"id\":\"ID of the relation\"}},\"RelationTransferred(uint64,address,address)\":{\"params\":{\"from\":\"Previous owner\",\"id\":\"ID of the relation\",\"to\":\"New owner\"}},\"RelationUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32)\":{\"params\":{\"data\":\"New data hash\",\"desc\":\"Updated descriptor\",\"id\":\"ID of the relation\"}},\"RelationUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after upgrade\",\"id\":\"ID of the relation\"}},\"RevokeFrom(uint128,uint32)\":{\"params\":{\"grantId\":\"ID of the revoked grant\",\"tail\":\"Tail object ID (initiator)\"}},\"RevokeTo(uint128,uint32)\":{\"params\":{\"grantId\":\"ID of the revoked grant\",\"head\":\"Head object ID (receiver)\"}},\"Unrelated(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256)\":{\"params\":{\"arc\":\"Encoded incoming arc\",\"desc\":\"Descriptor of the head after unlinking\",\"head\":\"Encoded SID of the head object\"}},\"Unrelated(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256[])\":{\"params\":{\"arcs\":\"Array of encoded incoming arcs\",\"desc\":\"Descriptor of the head after unlinking\",\"head\":\"Encoded SID of the head object\"}}},\"kind\":\"dev\",\"methods\":{\"allowFrom(uint32,address,uint128,uint64,uint64,uint64)\":{\"params\":{\"grantId\":\"Grant ID to check\",\"headKind\":\"Kind ID of the target (head) object\",\"headSet\":\"Set ID of the target (head) object\",\"rel\":\"Relation ID\",\"sender\":\"Address attempting the action\",\"tail\":\"Tail object ID\"},\"returns\":{\"allowed\":\"True if authorized\"}},\"allowTo(uint32,address,uint128,uint64,uint64,uint64)\":{\"params\":{\"grantId\":\"Grant ID to check\",\"head\":\"Head object ID\",\"rel\":\"Relation ID\",\"sender\":\"Address attempting the action\",\"tailKind\":\"Kind ID of the source (tail) object\",\"tailSet\":\"Set ID of the source (tail) object\"},\"returns\":{\"allowed\":\"True if authorized\"}},\"grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"params\":{\"grant\":\"Grant details\",\"tail\":\"Tail object ID\"}},\"grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"params\":{\"grant\":\"Grant details\",\"head\":\"Head object ID\"}},\"relate(uint256,uint64,uint256)\":{\"params\":{\"head\":\"Encoded head node\",\"rel\":\"Relation ID\",\"tail\":\"Encoded tail node\"}},\"relationAdmit(uint64,uint32,uint64)\":{\"params\":{\"id\":\"Relation ID\",\"kind\":\"Tail kind ID to evaluate\",\"rev\":\"Revision to check\"},\"returns\":{\"admit\":\"Whether the kind is admitted\",\"effDegs\":\"Degree bounds for the matched kind\",\"effKind\":\"Matched kind (0 = wildcard match)\",\"totalDegs\":\"Degree bounds for the total-kind\",\"totalKind\":\"Special marker for total-kind (2^48-1 if defined)\"}},\"relationDescriptor(uint64,uint32)\":{\"params\":{\"id\":\"Relation ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the specified revision\"}},\"relationOwner(uint64)\":{\"params\":{\"id\":\"Relation ID\"},\"returns\":{\"owner\":\"Address of the current owner\"}},\"relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])\":{\"params\":{\"adjs\":\"Array of tail kind admissibility and degree limits\",\"code\":\"Optional logic contract address\",\"data\":\"Hash of the relation\\u2019s associated data\",\"rule\":\"Rule defining the behavior and constraints of the relation\"},\"returns\":{\"desc\":\"Descriptor after registration\",\"id\":\"New relation ID\"}},\"relationRevision(uint64,uint32)\":{\"params\":{\"id\":\"Relation ID\",\"rev0\":\"Requested revision (0 = latest)\"},\"returns\":{\"rev\":\"Validated revision (0 if not found)\"}},\"relationRule(uint64)\":{\"params\":{\"id\":\"Relation ID\"},\"returns\":{\"rule\":\"Possession and linkage rule for the relation\"}},\"relationSnapshot(uint64,uint32)\":{\"params\":{\"id\":\"Relation ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the revision\",\"elems\":\"Elements at the revision\"}},\"relationSota(uint64)\":{\"params\":{\"id\":\"Relation ID\"},\"returns\":{\"desc\":\"Latest descriptor\",\"owner\":\"Current owner\"}},\"relationStatus(uint64[])\":{\"params\":{\"ids\":\"Array of relation IDs\"},\"returns\":{\"active\":\"True if all are valid and active\"}},\"relationTouch(uint64)\":{\"params\":{\"id\":\"Relation ID\"},\"returns\":{\"desc\":\"Descriptor after touch\"}},\"relationTransfer(uint64,address)\":{\"params\":{\"id\":\"Relation ID\",\"to\":\"New owner address\"},\"returns\":{\"from\":\"Previous owner address\"}},\"relationUpdate(uint64,bytes32)\":{\"params\":{\"data\":\"New data hash\",\"id\":\"Relation ID\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"relationUpdate(uint64,bytes32,(uint16,uint48)[])\":{\"params\":{\"adjs\":\"New array of adjacency rules\",\"data\":\"New data hash\",\"id\":\"Relation ID\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"relationUpgrade(uint64,uint32,uint32)\":{\"params\":{\"id\":\"Relation ID\",\"kindRev\":\"New kind revision (0 = no change)\",\"setRev\":\"New set revision (0 = no change)\"},\"returns\":{\"desc\":\"Descriptor after upgrade\"}},\"revokeFrom(uint128,uint32)\":{\"params\":{\"grantId\":\"Grant ID to revoke\",\"tail\":\"Tail object ID\"}},\"revokeTo(uint128,uint32)\":{\"params\":{\"grantId\":\"Grant ID to revoke\",\"head\":\"Head object ID\"}},\"unrelate(uint256,uint64,uint256)\":{\"params\":{\"head\":\"Encoded head node\",\"rel\":\"Relation ID\",\"tail\":\"Encoded tail node\"}}},\"title\":\"IOmniRegistry\",\"version\":1},\"userdoc\":{\"events\":{\"GrantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"notice\":\"Emitted when a grant is issued to authorize initiating a relation from a tail object\"},\"GrantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"notice\":\"Emitted when a grant is issued to authorize accepting a relation to a head object\"},\"Related(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256)\":{\"notice\":\"Emitted when a tail is linked to a head through a relation\"},\"Related(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256[])\":{\"notice\":\"Emitted when multiple tails are linked to a head\"},\"RelationRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[],address)\":{\"notice\":\"Emitted when a new relation is registered\"},\"RelationTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a relation is touched (revision incremented without content change)\"},\"RelationTransferred(uint64,address,address)\":{\"notice\":\"Emitted when ownership of a relation is transferred\"},\"RelationUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32)\":{\"notice\":\"Emitted when a relation is updated\"},\"RelationUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a relation is upgraded (kind/set revision bumped)\"},\"RevokeFrom(uint128,uint32)\":{\"notice\":\"Emitted when a grant from a tail object is revoked\"},\"RevokeTo(uint128,uint32)\":{\"notice\":\"Emitted when a grant to a head object is revoked\"},\"Unrelated(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256)\":{\"notice\":\"Emitted when a tail is unlinked from a head\"},\"Unrelated(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256[])\":{\"notice\":\"Emitted when multiple tails are unlinked from a head\"}},\"kind\":\"user\",\"methods\":{\"allowFrom(uint32,address,uint128,uint64,uint64,uint64)\":{\"notice\":\"Checks whether a sender is authorized to initiate a relation from a tail object\"},\"allowTo(uint32,address,uint128,uint64,uint64,uint64)\":{\"notice\":\"Checks whether a sender is authorized to accept a relation to a head object\"},\"grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"notice\":\"Issues a grant to allow initiating relations from a tail object\"},\"grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"notice\":\"Issues a grant to allow accepting relations to a head object\"},\"relate(uint256,uint64,uint256)\":{\"notice\":\"Links a tail object to a head object through a relation\"},\"relationAdmit(uint64,uint32,uint64)\":{\"notice\":\"Checks if a relation admits a specific kind as tail\"},\"relationDescriptor(uint64,uint32)\":{\"notice\":\"Returns descriptor of a relation at a specific revision\"},\"relationOwner(uint64)\":{\"notice\":\"Gets the current owner of a relation\"},\"relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])\":{\"notice\":\"Registers a new relation\"},\"relationRevision(uint64,uint32)\":{\"notice\":\"Resolves and validates a revision number\"},\"relationRule(uint64)\":{\"notice\":\"Returns the rule definition for a relation\"},\"relationSnapshot(uint64,uint32)\":{\"notice\":\"Returns descriptor and packed elements at a specific revision\"},\"relationSota(uint64)\":{\"notice\":\"Returns the latest descriptor and current owner of a relation\"},\"relationStatus(uint64[])\":{\"notice\":\"Checks whether all specified relations are active (rev > 0)\"},\"relationTouch(uint64)\":{\"notice\":\"Touches a relation (bumps revision without modifying content)\"},\"relationTransfer(uint64,address)\":{\"notice\":\"Transfers ownership of a relation to a new address\"},\"relationUpdate(uint64,bytes32)\":{\"notice\":\"Updates the data hash of a relation\"},\"relationUpdate(uint64,bytes32,(uint16,uint48)[])\":{\"notice\":\"Updates the data hash and adjacency configuration of a relation\"},\"relationUpgrade(uint64,uint32,uint32)\":{\"notice\":\"Upgrades the kind or set revision of a relation\"},\"revokeFrom(uint128,uint32)\":{\"notice\":\"Revokes a previously issued `from` grant\"},\"revokeTo(uint128,uint32)\":{\"notice\":\"Revokes a previously issued `to` grant\"},\"unrelate(uint256,uint64,uint256)\":{\"notice\":\"Unlinks a tail object from a head object\"}},\"notice\":\"Interface for object interactions\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/core/IOmniRegistry.sol\":\"IOmniRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@create3-factory/=lib/create3-factory/src/\",\":@everyprotocol/core/=contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":@solmate/=lib/solmate/src/\",\":create3-factory/=lib/create3-factory/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/src/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/core/IObjectAuthorization.sol\":{\"keccak256\":\"0x78fc70b92b4f65163df79f322e7c8f39a00ab1c365426b8d4abc2c287581910e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://35d6e57914e967476a3ba483d05ccfa6abf0e8a0405c2d9eba7708bfcb5bd355\",\"dweb:/ipfs/QmS6NxRTSaJg6FovQHvPzi6aqZGMKdeh3Ate6T661muHjJ\"]},\"contracts/interfaces/core/IObjectInteraction.sol\":{\"keccak256\":\"0xde050ef66ef30f0b01ccdef67a0cb8daef40475e4ea2a7e61ee3f69c9f02dea5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://60efee1ef9fd9e3b070804744de0d633e17fa074f572187dfef4d9fbce32d1f0\",\"dweb:/ipfs/QmRAyuoJ2SeKj5mUP5dXWyhiLmv4seihfXUQN25qg298Rn\"]},\"contracts/interfaces/core/IOmniRegistry.sol\":{\"keccak256\":\"0xa3c92da90cd34c07fb565addd3920c4811d0959dcbc1cf5998bc4356932ed001\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a40013eb1a630d5c1ef0ef4b067de91672f8df2a44b76af43d8bc8ac47b4e693\",\"dweb:/ipfs/QmeA4mjPkd8vWdCRMHfWg4CFgYR733Q98u8VcjmHc28MdV\"]},\"contracts/interfaces/core/IRelationRegistry.sol\":{\"keccak256\":\"0xcb2ec73180f5c2c4d89ee6f1cd3960aa53278936021432b09cf1799df13294ec\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://65e4442dbfc632c450f3793d96895178f7e70d9c784e2aa7c5d7eef69bf22e42\",\"dweb:/ipfs/QmfPzAm7QbYHbuB2Vf4sgE1JQ5muj9WRjkVXnYiQoFCy1f\"]},\"contracts/types/Descriptor.sol\":{\"keccak256\":\"0x37d21c3ba2b6fc1d92c0f90d4b5b9b6d8c9b16c9d36d769a7be93d16c0402fe4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://683a0796984d0e8a0ba15f01fa3ed8abfcd69d12f61b2eb84b7e3a41dfe48aa1\",\"dweb:/ipfs/QmU4L5AFk9NzYtj8nXELhjhyGiCrZH4kycpdKWeJQir3bT\"]},\"contracts/types/Relation.sol\":{\"keccak256\":\"0x8c714d5b0bbe95430b5ff529eec720c29f5f09071073f21e59db7bdc035a2a73\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7d935ee820a2e0e21eb041b3e61a1ae467b535ae09581195a8ca07a7cb309e79\",\"dweb:/ipfs/QmUgjpLg8YmScsCqaVLko43bagVCGuZ5R5Q1BGjQgCxTJk\"]},\"contracts/types/Token.sol\":{\"keccak256\":\"0x1a4ca38789517abd90a18e9555755b96bd9466d8b152fc871726186c81587481\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://16b4fa220db0b6be9aaab14eee64fdb58f820c4366cd642ed521a59378035090\",\"dweb:/ipfs/Qme3dhteY6tLAvMdZUqQT31ePvUZvigF5s1NCran3XW4Zt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint128","name":"tail","type":"uint128","indexed":false},{"internalType":"struct RelationGrant","name":"grant","type":"tuple","components":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"enum RelationInitiator","name":"initiator","type":"uint8"},{"internalType":"uint16","name":"reserved","type":"uint16"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint64","name":"set","type":"uint64"},{"internalType":"bytes32","name":"extra","type":"bytes32"}],"indexed":false}],"type":"event","name":"GrantFrom","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct RelationGrant","name":"grant","type":"tuple","components":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"enum RelationInitiator","name":"initiator","type":"uint8"},{"internalType":"uint16","name":"reserved","type":"uint16"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint64","name":"set","type":"uint64"},{"internalType":"bytes32","name":"extra","type":"bytes32"}],"indexed":false}],"type":"event","name":"GrantTo","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"uint256","name":"arc","type":"uint256","indexed":false}],"type":"event","name":"Related","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"uint256[]","name":"arcs","type":"uint256[]","indexed":false}],"type":"event","name":"Related","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"address","name":"code","type":"address","indexed":false},{"internalType":"bytes32","name":"data","type":"bytes32","indexed":false},{"internalType":"struct RelationRule","name":"rule","type":"tuple","components":[{"internalType":"uint8","name":"version","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"relateShift","type":"uint8"},{"internalType":"enum RelationTerminator","name":"terminator","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"unrelateShift","type":"uint8"},{"internalType":"uint64","name":"unrelateDelay","type":"uint64"},{"internalType":"bytes20","name":"extra","type":"bytes20"}],"indexed":false},{"internalType":"struct Adjacency[]","name":"adjs","type":"tuple[]","components":[{"internalType":"uint16","name":"degs","type":"uint16"},{"internalType":"uint48","name":"kind","type":"uint48"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"RelationRegistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false}],"type":"event","name":"RelationTouched","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false}],"type":"event","name":"RelationTransferred","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"bytes32","name":"data","type":"bytes32","indexed":false}],"type":"event","name":"RelationUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false}],"type":"event","name":"RelationUpgraded","anonymous":false},{"inputs":[{"internalType":"uint128","name":"tail","type":"uint128","indexed":false},{"internalType":"uint32","name":"grantId","type":"uint32","indexed":false}],"type":"event","name":"RevokeFrom","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"uint32","name":"grantId","type":"uint32","indexed":false}],"type":"event","name":"RevokeTo","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"uint256","name":"arc","type":"uint256","indexed":false}],"type":"event","name":"Unrelated","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"uint256[]","name":"arcs","type":"uint256[]","indexed":false}],"type":"event","name":"Unrelated","anonymous":false},{"inputs":[{"internalType":"uint32","name":"grantId","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint128","name":"tail","type":"uint128"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"headKind","type":"uint64"},{"internalType":"uint64","name":"headSet","type":"uint64"}],"stateMutability":"view","type":"function","name":"allowFrom","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"grantId","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint128","name":"head","type":"uint128"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"tailKind","type":"uint64"},{"internalType":"uint64","name":"tailSet","type":"uint64"}],"stateMutability":"view","type":"function","name":"allowTo","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}]},{"inputs":[{"internalType":"uint128","name":"tail","type":"uint128"},{"internalType":"struct RelationGrant","name":"grant","type":"tuple","components":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"enum RelationInitiator","name":"initiator","type":"uint8"},{"internalType":"uint16","name":"reserved","type":"uint16"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint64","name":"set","type":"uint64"},{"internalType":"bytes32","name":"extra","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"grantFrom"},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128"},{"internalType":"struct RelationGrant","name":"grant","type":"tuple","components":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"enum RelationInitiator","name":"initiator","type":"uint8"},{"internalType":"uint16","name":"reserved","type":"uint16"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint64","name":"set","type":"uint64"},{"internalType":"bytes32","name":"extra","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"grantTo"},{"inputs":[{"internalType":"uint256","name":"tail","type":"uint256"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint256","name":"head","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"relate"},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint64","name":"kind","type":"uint64"}],"stateMutability":"view","type":"function","name":"relationAdmit","outputs":[{"internalType":"bool","name":"admit","type":"bool"},{"internalType":"uint48","name":"effKind","type":"uint48"},{"internalType":"uint16","name":"effDegs","type":"uint16"},{"internalType":"uint48","name":"totalKind","type":"uint48"},{"internalType":"uint16","name":"totalDegs","type":"uint16"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"relationDescriptor","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"view","type":"function","name":"relationOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"struct RelationRule","name":"rule","type":"tuple","components":[{"internalType":"uint8","name":"version","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"relateShift","type":"uint8"},{"internalType":"enum RelationTerminator","name":"terminator","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"unrelateShift","type":"uint8"},{"internalType":"uint64","name":"unrelateDelay","type":"uint64"},{"internalType":"bytes20","name":"extra","type":"bytes20"}]},{"internalType":"struct Adjacency[]","name":"adjs","type":"tuple[]","components":[{"internalType":"uint16","name":"degs","type":"uint16"},{"internalType":"uint48","name":"kind","type":"uint48"}]}],"stateMutability":"nonpayable","type":"function","name":"relationRegister","outputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"relationRevision","outputs":[{"internalType":"uint32","name":"rev","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"view","type":"function","name":"relationRule","outputs":[{"internalType":"struct RelationRule","name":"rule","type":"tuple","components":[{"internalType":"uint8","name":"version","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"relateShift","type":"uint8"},{"internalType":"enum RelationTerminator","name":"terminator","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"unrelateShift","type":"uint8"},{"internalType":"uint64","name":"unrelateDelay","type":"uint64"},{"internalType":"bytes20","name":"extra","type":"bytes20"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"relationSnapshot","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]},{"internalType":"bytes32[]","name":"elems","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"view","type":"function","name":"relationSota","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]},{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"uint64[]","name":"ids","type":"uint64[]"}],"stateMutability":"view","type":"function","name":"relationStatus","outputs":[{"internalType":"bool","name":"active","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"relationTouch","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"relationTransfer","outputs":[{"internalType":"address","name":"from","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"relationUpdate","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"struct Adjacency[]","name":"adjs","type":"tuple[]","components":[{"internalType":"uint16","name":"degs","type":"uint16"},{"internalType":"uint48","name":"kind","type":"uint48"}]}],"stateMutability":"nonpayable","type":"function","name":"relationUpdate","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"relationUpgrade","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint128","name":"tail","type":"uint128"},{"internalType":"uint32","name":"grantId","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"revokeFrom"},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128"},{"internalType":"uint32","name":"grantId","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"revokeTo"},{"inputs":[{"internalType":"uint256","name":"tail","type":"uint256"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint256","name":"head","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unrelate"}],"devdoc":{"kind":"dev","methods":{"allowFrom(uint32,address,uint128,uint64,uint64,uint64)":{"params":{"grantId":"Grant ID to check","headKind":"Kind ID of the target (head) object","headSet":"Set ID of the target (head) object","rel":"Relation ID","sender":"Address attempting the action","tail":"Tail object ID"},"returns":{"allowed":"True if authorized"}},"allowTo(uint32,address,uint128,uint64,uint64,uint64)":{"params":{"grantId":"Grant ID to check","head":"Head object ID","rel":"Relation ID","sender":"Address attempting the action","tailKind":"Kind ID of the source (tail) object","tailSet":"Set ID of the source (tail) object"},"returns":{"allowed":"True if authorized"}},"grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":{"params":{"grant":"Grant details","tail":"Tail object ID"}},"grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":{"params":{"grant":"Grant details","head":"Head object ID"}},"relate(uint256,uint64,uint256)":{"params":{"head":"Encoded head node","rel":"Relation ID","tail":"Encoded tail node"}},"relationAdmit(uint64,uint32,uint64)":{"params":{"id":"Relation ID","kind":"Tail kind ID to evaluate","rev":"Revision to check"},"returns":{"admit":"Whether the kind is admitted","effDegs":"Degree bounds for the matched kind","effKind":"Matched kind (0 = wildcard match)","totalDegs":"Degree bounds for the total-kind","totalKind":"Special marker for total-kind (2^48-1 if defined)"}},"relationDescriptor(uint64,uint32)":{"params":{"id":"Relation ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the specified revision"}},"relationOwner(uint64)":{"params":{"id":"Relation ID"},"returns":{"owner":"Address of the current owner"}},"relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])":{"params":{"adjs":"Array of tail kind admissibility and degree limits","code":"Optional logic contract address","data":"Hash of the relation’s associated data","rule":"Rule defining the behavior and constraints of the relation"},"returns":{"desc":"Descriptor after registration","id":"New relation ID"}},"relationRevision(uint64,uint32)":{"params":{"id":"Relation ID","rev0":"Requested revision (0 = latest)"},"returns":{"rev":"Validated revision (0 if not found)"}},"relationRule(uint64)":{"params":{"id":"Relation ID"},"returns":{"rule":"Possession and linkage rule for the relation"}},"relationSnapshot(uint64,uint32)":{"params":{"id":"Relation ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the revision","elems":"Elements at the revision"}},"relationSota(uint64)":{"params":{"id":"Relation ID"},"returns":{"desc":"Latest descriptor","owner":"Current owner"}},"relationStatus(uint64[])":{"params":{"ids":"Array of relation IDs"},"returns":{"active":"True if all are valid and active"}},"relationTouch(uint64)":{"params":{"id":"Relation ID"},"returns":{"desc":"Descriptor after touch"}},"relationTransfer(uint64,address)":{"params":{"id":"Relation ID","to":"New owner address"},"returns":{"from":"Previous owner address"}},"relationUpdate(uint64,bytes32)":{"params":{"data":"New data hash","id":"Relation ID"},"returns":{"desc":"Updated descriptor"}},"relationUpdate(uint64,bytes32,(uint16,uint48)[])":{"params":{"adjs":"New array of adjacency rules","data":"New data hash","id":"Relation ID"},"returns":{"desc":"Updated descriptor"}},"relationUpgrade(uint64,uint32,uint32)":{"params":{"id":"Relation ID","kindRev":"New kind revision (0 = no change)","setRev":"New set revision (0 = no change)"},"returns":{"desc":"Descriptor after upgrade"}},"revokeFrom(uint128,uint32)":{"params":{"grantId":"Grant ID to revoke","tail":"Tail object ID"}},"revokeTo(uint128,uint32)":{"params":{"grantId":"Grant ID to revoke","head":"Head object ID"}},"unrelate(uint256,uint64,uint256)":{"params":{"head":"Encoded head node","rel":"Relation ID","tail":"Encoded tail node"}}},"version":1},"userdoc":{"kind":"user","methods":{"allowFrom(uint32,address,uint128,uint64,uint64,uint64)":{"notice":"Checks whether a sender is authorized to initiate a relation from a tail object"},"allowTo(uint32,address,uint128,uint64,uint64,uint64)":{"notice":"Checks whether a sender is authorized to accept a relation to a head object"},"grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":{"notice":"Issues a grant to allow initiating relations from a tail object"},"grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":{"notice":"Issues a grant to allow accepting relations to a head object"},"relate(uint256,uint64,uint256)":{"notice":"Links a tail object to a head object through a relation"},"relationAdmit(uint64,uint32,uint64)":{"notice":"Checks if a relation admits a specific kind as tail"},"relationDescriptor(uint64,uint32)":{"notice":"Returns descriptor of a relation at a specific revision"},"relationOwner(uint64)":{"notice":"Gets the current owner of a relation"},"relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])":{"notice":"Registers a new relation"},"relationRevision(uint64,uint32)":{"notice":"Resolves and validates a revision number"},"relationRule(uint64)":{"notice":"Returns the rule definition for a relation"},"relationSnapshot(uint64,uint32)":{"notice":"Returns descriptor and packed elements at a specific revision"},"relationSota(uint64)":{"notice":"Returns the latest descriptor and current owner of a relation"},"relationStatus(uint64[])":{"notice":"Checks whether all specified relations are active (rev > 0)"},"relationTouch(uint64)":{"notice":"Touches a relation (bumps revision without modifying content)"},"relationTransfer(uint64,address)":{"notice":"Transfers ownership of a relation to a new address"},"relationUpdate(uint64,bytes32)":{"notice":"Updates the data hash of a relation"},"relationUpdate(uint64,bytes32,(uint16,uint48)[])":{"notice":"Updates the data hash and adjacency configuration of a relation"},"relationUpgrade(uint64,uint32,uint32)":{"notice":"Upgrades the kind or set revision of a relation"},"revokeFrom(uint128,uint32)":{"notice":"Revokes a previously issued `from` grant"},"revokeTo(uint128,uint32)":{"notice":"Revokes a previously issued `to` grant"},"unrelate(uint256,uint64,uint256)":{"notice":"Unlinks a tail object from a head object"}},"version":1}},"settings":{"remappings":["@create3-factory/=lib/create3-factory/src/","@everyprotocol/core/=contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","@solmate/=lib/solmate/src/","create3-factory/=lib/create3-factory/","ds-test/=lib/solmate/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/interfaces/core/IOmniRegistry.sol":"IOmniRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/core/IObjectAuthorization.sol":{"keccak256":"0x78fc70b92b4f65163df79f322e7c8f39a00ab1c365426b8d4abc2c287581910e","urls":["bzz-raw://35d6e57914e967476a3ba483d05ccfa6abf0e8a0405c2d9eba7708bfcb5bd355","dweb:/ipfs/QmS6NxRTSaJg6FovQHvPzi6aqZGMKdeh3Ate6T661muHjJ"],"license":"BUSL-1.1"},"contracts/interfaces/core/IObjectInteraction.sol":{"keccak256":"0xde050ef66ef30f0b01ccdef67a0cb8daef40475e4ea2a7e61ee3f69c9f02dea5","urls":["bzz-raw://60efee1ef9fd9e3b070804744de0d633e17fa074f572187dfef4d9fbce32d1f0","dweb:/ipfs/QmRAyuoJ2SeKj5mUP5dXWyhiLmv4seihfXUQN25qg298Rn"],"license":"BUSL-1.1"},"contracts/interfaces/core/IOmniRegistry.sol":{"keccak256":"0xa3c92da90cd34c07fb565addd3920c4811d0959dcbc1cf5998bc4356932ed001","urls":["bzz-raw://a40013eb1a630d5c1ef0ef4b067de91672f8df2a44b76af43d8bc8ac47b4e693","dweb:/ipfs/QmeA4mjPkd8vWdCRMHfWg4CFgYR733Q98u8VcjmHc28MdV"],"license":"BUSL-1.1"},"contracts/interfaces/core/IRelationRegistry.sol":{"keccak256":"0xcb2ec73180f5c2c4d89ee6f1cd3960aa53278936021432b09cf1799df13294ec","urls":["bzz-raw://65e4442dbfc632c450f3793d96895178f7e70d9c784e2aa7c5d7eef69bf22e42","dweb:/ipfs/QmfPzAm7QbYHbuB2Vf4sgE1JQ5muj9WRjkVXnYiQoFCy1f"],"license":"BUSL-1.1"},"contracts/types/Descriptor.sol":{"keccak256":"0x37d21c3ba2b6fc1d92c0f90d4b5b9b6d8c9b16c9d36d769a7be93d16c0402fe4","urls":["bzz-raw://683a0796984d0e8a0ba15f01fa3ed8abfcd69d12f61b2eb84b7e3a41dfe48aa1","dweb:/ipfs/QmU4L5AFk9NzYtj8nXELhjhyGiCrZH4kycpdKWeJQir3bT"],"license":"BUSL-1.1"},"contracts/types/Relation.sol":{"keccak256":"0x8c714d5b0bbe95430b5ff529eec720c29f5f09071073f21e59db7bdc035a2a73","urls":["bzz-raw://7d935ee820a2e0e21eb041b3e61a1ae467b535ae09581195a8ca07a7cb309e79","dweb:/ipfs/QmUgjpLg8YmScsCqaVLko43bagVCGuZ5R5Q1BGjQgCxTJk"],"license":"BUSL-1.1"},"contracts/types/Token.sol":{"keccak256":"0x1a4ca38789517abd90a18e9555755b96bd9466d8b152fc871726186c81587481","urls":["bzz-raw://16b4fa220db0b6be9aaab14eee64fdb58f820c4366cd642ed521a59378035090","dweb:/ipfs/Qme3dhteY6tLAvMdZUqQT31ePvUZvigF5s1NCran3XW4Zt"],"license":"BUSL-1.1"}},"version":1},"id":31}
|
|
1
|
+
{"abi":[{"type":"function","name":"allowFrom","inputs":[{"name":"grantId","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"tail","type":"uint128","internalType":"uint128"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"headKind","type":"uint64","internalType":"uint64"},{"name":"headSet","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"allowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allowTo","inputs":[{"name":"grantId","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"head","type":"uint128","internalType":"uint128"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"tailKind","type":"uint64","internalType":"uint64"},{"name":"tailSet","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"allowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"grantFrom","inputs":[{"name":"tail","type":"uint128","internalType":"uint128"},{"name":"grant","type":"tuple","internalType":"struct RelationGrant","components":[{"name":"id","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"uint8"},{"name":"initiator","type":"uint8","internalType":"enum RelationInitiator"},{"name":"reserved","type":"uint16","internalType":"uint16"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"set","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"grantTo","inputs":[{"name":"head","type":"uint128","internalType":"uint128"},{"name":"grant","type":"tuple","internalType":"struct RelationGrant","components":[{"name":"id","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"uint8"},{"name":"initiator","type":"uint8","internalType":"enum RelationInitiator"},{"name":"reserved","type":"uint16","internalType":"uint16"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"set","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relate","inputs":[{"name":"tail","type":"uint256","internalType":"uint256"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"head","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relationAdmit","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kind","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"admit","type":"bool","internalType":"bool"},{"name":"effKind","type":"uint48","internalType":"uint48"},{"name":"effDegs","type":"uint16","internalType":"uint16"},{"name":"totalKind","type":"uint48","internalType":"uint48"},{"name":"totalDegs","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"relationDescriptor","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rev0","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"relationOwner","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"relationRegister","inputs":[{"name":"code","type":"address","internalType":"address"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"rule","type":"tuple","internalType":"struct RelationRule","components":[{"name":"version","type":"uint8","internalType":"uint8"},{"name":"relateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"terminator","type":"uint8","internalType":"enum RelationTerminator"},{"name":"unrelateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"unrelateDelay","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes20","internalType":"bytes20"}]},{"name":"adjs","type":"tuple[]","internalType":"struct Adjacency[]","components":[{"name":"degs","type":"uint16","internalType":"uint16"},{"name":"kind","type":"uint48","internalType":"uint48"}]}],"outputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"relationRevision","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rev0","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rev","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relationRule","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"rule","type":"tuple","internalType":"struct RelationRule","components":[{"name":"version","type":"uint8","internalType":"uint8"},{"name":"relateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"terminator","type":"uint8","internalType":"enum RelationTerminator"},{"name":"unrelateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"unrelateDelay","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes20","internalType":"bytes20"}]}],"stateMutability":"view"},{"type":"function","name":"relationSnapshot","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rev0","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"elems","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"relationSota","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"relationStatus","inputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"relationTouch","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"relationTransfer","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"from","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"relationUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"relationUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"adjs","type":"tuple[]","internalType":"struct Adjacency[]","components":[{"name":"degs","type":"uint16","internalType":"uint16"},{"name":"kind","type":"uint48","internalType":"uint48"}]}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"relationUpgrade","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"desc","type":"tuple","internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeFrom","inputs":[{"name":"tail","type":"uint128","internalType":"uint128"},{"name":"grantId","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeTo","inputs":[{"name":"head","type":"uint128","internalType":"uint128"},{"name":"grantId","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unrelate","inputs":[{"name":"tail","type":"uint256","internalType":"uint256"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"head","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"GrantFrom","inputs":[{"name":"tail","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"grant","type":"tuple","indexed":false,"internalType":"struct RelationGrant","components":[{"name":"id","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"uint8"},{"name":"initiator","type":"uint8","internalType":"enum RelationInitiator"},{"name":"reserved","type":"uint16","internalType":"uint16"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"set","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes32","internalType":"bytes32"}]}],"anonymous":false},{"type":"event","name":"GrantTo","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"grant","type":"tuple","indexed":false,"internalType":"struct RelationGrant","components":[{"name":"id","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"uint8"},{"name":"initiator","type":"uint8","internalType":"enum RelationInitiator"},{"name":"reserved","type":"uint16","internalType":"uint16"},{"name":"rel","type":"uint64","internalType":"uint64"},{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"set","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes32","internalType":"bytes32"}]}],"anonymous":false},{"type":"event","name":"Related","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"arc","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Related","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"arcs","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"RelationRegistered","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"code","type":"address","indexed":false,"internalType":"address"},{"name":"data","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"rule","type":"tuple","indexed":false,"internalType":"struct RelationRule","components":[{"name":"version","type":"uint8","internalType":"uint8"},{"name":"relateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"terminator","type":"uint8","internalType":"enum RelationTerminator"},{"name":"unrelateShift","type":"uint8","internalType":"enum RelationOwnerShift"},{"name":"unrelateDelay","type":"uint64","internalType":"uint64"},{"name":"extra","type":"bytes20","internalType":"bytes20"}]},{"name":"adjs","type":"tuple[]","indexed":false,"internalType":"struct Adjacency[]","components":[{"name":"degs","type":"uint16","internalType":"uint16"},{"name":"kind","type":"uint48","internalType":"uint48"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RelationTouched","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"RelationTransferred","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RelationUpdated","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"data","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RelationUpgraded","inputs":[{"name":"id","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"RevokeFrom","inputs":[{"name":"tail","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"grantId","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"RevokeTo","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"grantId","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"Unrelated","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"arc","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unrelated","inputs":[{"name":"head","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"desc","type":"tuple","indexed":false,"internalType":"struct Descriptor","components":[{"name":"traits","type":"uint32","internalType":"uint32"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"kindRev","type":"uint32","internalType":"uint32"},{"name":"setRev","type":"uint32","internalType":"uint32"},{"name":"kindId","type":"uint64","internalType":"uint64"},{"name":"setId","type":"uint64","internalType":"uint64"}]},{"name":"arcs","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowFrom(uint32,address,uint128,uint64,uint64,uint64)":"2629dae8","allowTo(uint32,address,uint128,uint64,uint64,uint64)":"edd716f0","grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":"05be88ac","grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":"3440994b","relate(uint256,uint64,uint256)":"15ae7173","relationAdmit(uint64,uint32,uint64)":"2392f87d","relationDescriptor(uint64,uint32)":"06a883a0","relationOwner(uint64)":"bff9b974","relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])":"b9f17a47","relationRevision(uint64,uint32)":"df89b3fc","relationRule(uint64)":"9e490e90","relationSnapshot(uint64,uint32)":"eab25c41","relationSota(uint64)":"52393e1a","relationStatus(uint64[])":"3dae8c28","relationTouch(uint64)":"418239fb","relationTransfer(uint64,address)":"a926f041","relationUpdate(uint64,bytes32)":"5634ad14","relationUpdate(uint64,bytes32,(uint16,uint48)[])":"c9e2a1fb","relationUpgrade(uint64,uint32,uint32)":"954fc712","revokeFrom(uint128,uint32)":"ebeecfa3","revokeTo(uint128,uint32)":"876993ca","unrelate(uint256,uint64,uint256)":"2aead726"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationInitiator\",\"name\":\"initiator\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"reserved\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"set\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"extra\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct RelationGrant\",\"name\":\"grant\",\"type\":\"tuple\"}],\"name\":\"GrantFrom\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationInitiator\",\"name\":\"initiator\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"reserved\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"set\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"extra\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct RelationGrant\",\"name\":\"grant\",\"type\":\"tuple\"}],\"name\":\"GrantTo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arc\",\"type\":\"uint256\"}],\"name\":\"Related\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"arcs\",\"type\":\"uint256[]\"}],\"name\":\"Related\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"relateShift\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationTerminator\",\"name\":\"terminator\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"unrelateShift\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"unrelateDelay\",\"type\":\"uint64\"},{\"internalType\":\"bytes20\",\"name\":\"extra\",\"type\":\"bytes20\"}],\"indexed\":false,\"internalType\":\"struct RelationRule\",\"name\":\"rule\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"degs\",\"type\":\"uint16\"},{\"internalType\":\"uint48\",\"name\":\"kind\",\"type\":\"uint48\"}],\"indexed\":false,\"internalType\":\"struct Adjacency[]\",\"name\":\"adjs\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"RelationRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"name\":\"RelationTouched\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"RelationTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"RelationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"name\":\"RelationUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"}],\"name\":\"RevokeFrom\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"}],\"name\":\"RevokeTo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arc\",\"type\":\"uint256\"}],\"name\":\"Unrelated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"arcs\",\"type\":\"uint256[]\"}],\"name\":\"Unrelated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"headKind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"headSet\",\"type\":\"uint64\"}],\"name\":\"allowFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tailKind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tailSet\",\"type\":\"uint64\"}],\"name\":\"allowTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationInitiator\",\"name\":\"initiator\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"reserved\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"set\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"extra\",\"type\":\"bytes32\"}],\"internalType\":\"struct RelationGrant\",\"name\":\"grant\",\"type\":\"tuple\"}],\"name\":\"grantFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationInitiator\",\"name\":\"initiator\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"reserved\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"set\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"extra\",\"type\":\"bytes32\"}],\"internalType\":\"struct RelationGrant\",\"name\":\"grant\",\"type\":\"tuple\"}],\"name\":\"grantTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tail\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"head\",\"type\":\"uint256\"}],\"name\":\"relate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"}],\"name\":\"relationAdmit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"admit\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"effKind\",\"type\":\"uint48\"},{\"internalType\":\"uint16\",\"name\":\"effDegs\",\"type\":\"uint16\"},{\"internalType\":\"uint48\",\"name\":\"totalKind\",\"type\":\"uint48\"},{\"internalType\":\"uint16\",\"name\":\"totalDegs\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"relationDescriptor\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"relationOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"relateShift\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationTerminator\",\"name\":\"terminator\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"unrelateShift\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"unrelateDelay\",\"type\":\"uint64\"},{\"internalType\":\"bytes20\",\"name\":\"extra\",\"type\":\"bytes20\"}],\"internalType\":\"struct RelationRule\",\"name\":\"rule\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"degs\",\"type\":\"uint16\"},{\"internalType\":\"uint48\",\"name\":\"kind\",\"type\":\"uint48\"}],\"internalType\":\"struct Adjacency[]\",\"name\":\"adjs\",\"type\":\"tuple[]\"}],\"name\":\"relationRegister\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"relationRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"relationRule\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"relateShift\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationTerminator\",\"name\":\"terminator\",\"type\":\"uint8\"},{\"internalType\":\"enum RelationOwnerShift\",\"name\":\"unrelateShift\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"unrelateDelay\",\"type\":\"uint64\"},{\"internalType\":\"bytes20\",\"name\":\"extra\",\"type\":\"bytes20\"}],\"internalType\":\"struct RelationRule\",\"name\":\"rule\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"relationSnapshot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"elems\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"relationSota\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"ids\",\"type\":\"uint64[]\"}],\"name\":\"relationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"relationTouch\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"relationTransfer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"relationUpdate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"degs\",\"type\":\"uint16\"},{\"internalType\":\"uint48\",\"name\":\"kind\",\"type\":\"uint48\"}],\"internalType\":\"struct Adjacency[]\",\"name\":\"adjs\",\"type\":\"tuple[]\"}],\"name\":\"relationUpdate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"}],\"name\":\"relationUpgrade\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"traits\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"kindRev\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"kindId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"setId\",\"type\":\"uint64\"}],\"internalType\":\"struct Descriptor\",\"name\":\"desc\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"tail\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"}],\"name\":\"revokeFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"head\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"grantId\",\"type\":\"uint32\"}],\"name\":\"revokeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tail\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"head\",\"type\":\"uint256\"}],\"name\":\"unrelate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"GrantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"params\":{\"grant\":\"Grant definition\",\"tail\":\"Tail object ID (initiator)\"}},\"GrantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"params\":{\"grant\":\"Grant definition\",\"head\":\"Head object ID (receiver)\"}},\"Related(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256)\":{\"params\":{\"arc\":\"Encoded incoming arc\",\"desc\":\"Descriptor of the head after the relation\",\"head\":\"Encoded SID of the head object\"}},\"Related(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256[])\":{\"params\":{\"arcs\":\"Array of encoded incoming arcs\",\"desc\":\"Descriptor of the head after the relations\",\"head\":\"Encoded SID of the head object\"}},\"RelationRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[],address)\":{\"params\":{\"adjs\":\"List of admitted tail kinds and degree constraints\",\"code\":\"Optional logic contract address\",\"data\":\"Hash of the associated metadata or logic\",\"desc\":\"Descriptor of the relation\",\"id\":\"ID of the relation\",\"owner\":\"Address of the relation's owner\",\"rule\":\"Relation rule defining interaction logic\"}},\"RelationTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after touch\",\"id\":\"ID of the relation\"}},\"RelationTransferred(uint64,address,address)\":{\"params\":{\"from\":\"Previous owner\",\"id\":\"ID of the relation\",\"to\":\"New owner\"}},\"RelationUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32)\":{\"params\":{\"data\":\"New data hash\",\"desc\":\"Updated descriptor\",\"id\":\"ID of the relation\"}},\"RelationUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after upgrade\",\"id\":\"ID of the relation\"}},\"RevokeFrom(uint128,uint32)\":{\"params\":{\"grantId\":\"ID of the revoked grant\",\"tail\":\"Tail object ID (initiator)\"}},\"RevokeTo(uint128,uint32)\":{\"params\":{\"grantId\":\"ID of the revoked grant\",\"head\":\"Head object ID (receiver)\"}},\"Unrelated(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256)\":{\"params\":{\"arc\":\"Encoded incoming arc\",\"desc\":\"Descriptor of the head after unlinking\",\"head\":\"Encoded SID of the head object\"}},\"Unrelated(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256[])\":{\"params\":{\"arcs\":\"Array of encoded incoming arcs\",\"desc\":\"Descriptor of the head after unlinking\",\"head\":\"Encoded SID of the head object\"}}},\"kind\":\"dev\",\"methods\":{\"allowFrom(uint32,address,uint128,uint64,uint64,uint64)\":{\"params\":{\"grantId\":\"Grant ID to check\",\"headKind\":\"Kind ID of the target (head) object\",\"headSet\":\"Set ID of the target (head) object\",\"rel\":\"Relation ID\",\"sender\":\"Address attempting the action\",\"tail\":\"Tail object ID\"},\"returns\":{\"allowed\":\"True if authorized\"}},\"allowTo(uint32,address,uint128,uint64,uint64,uint64)\":{\"params\":{\"grantId\":\"Grant ID to check\",\"head\":\"Head object ID\",\"rel\":\"Relation ID\",\"sender\":\"Address attempting the action\",\"tailKind\":\"Kind ID of the source (tail) object\",\"tailSet\":\"Set ID of the source (tail) object\"},\"returns\":{\"allowed\":\"True if authorized\"}},\"grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"params\":{\"grant\":\"Grant details\",\"tail\":\"Tail object ID\"}},\"grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"params\":{\"grant\":\"Grant details\",\"head\":\"Head object ID\"}},\"relate(uint256,uint64,uint256)\":{\"params\":{\"head\":\"Encoded head node\",\"rel\":\"Relation ID\",\"tail\":\"Encoded tail node\"}},\"relationAdmit(uint64,uint32,uint64)\":{\"params\":{\"id\":\"Relation ID\",\"kind\":\"Tail kind ID to evaluate\",\"rev\":\"Revision to check\"},\"returns\":{\"admit\":\"Whether the kind is admitted\",\"effDegs\":\"Degree bounds for the matched kind\",\"effKind\":\"Matched kind (0 = wildcard match)\",\"totalDegs\":\"Degree bounds for the total-kind\",\"totalKind\":\"Special marker for total-kind (2^48-1 if defined)\"}},\"relationDescriptor(uint64,uint32)\":{\"params\":{\"id\":\"Relation ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the specified revision\"}},\"relationOwner(uint64)\":{\"params\":{\"id\":\"Relation ID\"},\"returns\":{\"owner\":\"Address of the current owner\"}},\"relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])\":{\"params\":{\"adjs\":\"Array of tail kind admissibility and degree limits\",\"code\":\"Optional logic contract address\",\"data\":\"Hash of the relation\\u2019s associated data\",\"rule\":\"Rule defining the behavior and constraints of the relation\"},\"returns\":{\"desc\":\"Descriptor after registration\",\"id\":\"New relation ID\"}},\"relationRevision(uint64,uint32)\":{\"params\":{\"id\":\"Relation ID\",\"rev0\":\"Requested revision (0 = latest)\"},\"returns\":{\"rev\":\"Validated revision (0 if not found)\"}},\"relationRule(uint64)\":{\"params\":{\"id\":\"Relation ID\"},\"returns\":{\"rule\":\"Possession and linkage rule for the relation\"}},\"relationSnapshot(uint64,uint32)\":{\"params\":{\"id\":\"Relation ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the revision\",\"elems\":\"Elements at the revision\"}},\"relationSota(uint64)\":{\"params\":{\"id\":\"Relation ID\"},\"returns\":{\"desc\":\"Latest descriptor\",\"owner\":\"Current owner\"}},\"relationStatus(uint64[])\":{\"params\":{\"ids\":\"Array of relation IDs\"},\"returns\":{\"active\":\"True if all are valid and active\"}},\"relationTouch(uint64)\":{\"params\":{\"id\":\"Relation ID\"},\"returns\":{\"desc\":\"Descriptor after touch\"}},\"relationTransfer(uint64,address)\":{\"params\":{\"id\":\"Relation ID\",\"to\":\"New owner address\"},\"returns\":{\"from\":\"Previous owner address\"}},\"relationUpdate(uint64,bytes32)\":{\"params\":{\"data\":\"New data hash\",\"id\":\"Relation ID\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"relationUpdate(uint64,bytes32,(uint16,uint48)[])\":{\"params\":{\"adjs\":\"New array of adjacency rules\",\"data\":\"New data hash\",\"id\":\"Relation ID\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"relationUpgrade(uint64,uint32,uint32)\":{\"params\":{\"id\":\"Relation ID\",\"kindRev\":\"New kind revision (0 = no change)\",\"setRev\":\"New set revision (0 = no change)\"},\"returns\":{\"desc\":\"Descriptor after upgrade\"}},\"revokeFrom(uint128,uint32)\":{\"params\":{\"grantId\":\"Grant ID to revoke\",\"tail\":\"Tail object ID\"}},\"revokeTo(uint128,uint32)\":{\"params\":{\"grantId\":\"Grant ID to revoke\",\"head\":\"Head object ID\"}},\"unrelate(uint256,uint64,uint256)\":{\"params\":{\"head\":\"Encoded head node\",\"rel\":\"Relation ID\",\"tail\":\"Encoded tail node\"}}},\"title\":\"IOmniRegistry\",\"version\":1},\"userdoc\":{\"events\":{\"GrantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"notice\":\"Emitted when a grant is issued to authorize initiating a relation from a tail object\"},\"GrantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"notice\":\"Emitted when a grant is issued to authorize accepting a relation to a head object\"},\"Related(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256)\":{\"notice\":\"Emitted when a tail is linked to a head through a relation\"},\"Related(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256[])\":{\"notice\":\"Emitted when multiple tails are linked to a head\"},\"RelationRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[],address)\":{\"notice\":\"Emitted when a new relation is registered\"},\"RelationTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a relation is touched (revision incremented without content change)\"},\"RelationTransferred(uint64,address,address)\":{\"notice\":\"Emitted when ownership of a relation is transferred\"},\"RelationUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32)\":{\"notice\":\"Emitted when a relation is updated\"},\"RelationUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a relation is upgraded (kind/set revision bumped)\"},\"RevokeFrom(uint128,uint32)\":{\"notice\":\"Emitted when a grant from a tail object is revoked\"},\"RevokeTo(uint128,uint32)\":{\"notice\":\"Emitted when a grant to a head object is revoked\"},\"Unrelated(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256)\":{\"notice\":\"Emitted when a tail is unlinked from a head\"},\"Unrelated(uint128,(uint32,uint32,uint32,uint32,uint64,uint64),uint256[])\":{\"notice\":\"Emitted when multiple tails are unlinked from a head\"}},\"kind\":\"user\",\"methods\":{\"allowFrom(uint32,address,uint128,uint64,uint64,uint64)\":{\"notice\":\"Checks whether a sender is authorized to initiate a relation from a tail object\"},\"allowTo(uint32,address,uint128,uint64,uint64,uint64)\":{\"notice\":\"Checks whether a sender is authorized to accept a relation to a head object\"},\"grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"notice\":\"Issues a grant to allow initiating relations from a tail object\"},\"grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))\":{\"notice\":\"Issues a grant to allow accepting relations to a head object\"},\"relate(uint256,uint64,uint256)\":{\"notice\":\"Links a tail object to a head object through a relation\"},\"relationAdmit(uint64,uint32,uint64)\":{\"notice\":\"Checks if a relation admits a specific kind as tail\"},\"relationDescriptor(uint64,uint32)\":{\"notice\":\"Returns descriptor of a relation at a specific revision\"},\"relationOwner(uint64)\":{\"notice\":\"Gets the current owner of a relation\"},\"relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])\":{\"notice\":\"Registers a new relation\"},\"relationRevision(uint64,uint32)\":{\"notice\":\"Resolves and validates a revision number\"},\"relationRule(uint64)\":{\"notice\":\"Returns the rule definition for a relation\"},\"relationSnapshot(uint64,uint32)\":{\"notice\":\"Returns descriptor and packed elements at a specific revision\"},\"relationSota(uint64)\":{\"notice\":\"Returns the latest descriptor and current owner of a relation\"},\"relationStatus(uint64[])\":{\"notice\":\"Checks whether all specified relations are active (rev > 0)\"},\"relationTouch(uint64)\":{\"notice\":\"Touches a relation (bumps revision without modifying content)\"},\"relationTransfer(uint64,address)\":{\"notice\":\"Transfers ownership of a relation to a new address\"},\"relationUpdate(uint64,bytes32)\":{\"notice\":\"Updates the data hash of a relation\"},\"relationUpdate(uint64,bytes32,(uint16,uint48)[])\":{\"notice\":\"Updates the data hash and adjacency configuration of a relation\"},\"relationUpgrade(uint64,uint32,uint32)\":{\"notice\":\"Upgrades the kind or set revision of a relation\"},\"revokeFrom(uint128,uint32)\":{\"notice\":\"Revokes a previously issued `from` grant\"},\"revokeTo(uint128,uint32)\":{\"notice\":\"Revokes a previously issued `to` grant\"},\"unrelate(uint256,uint64,uint256)\":{\"notice\":\"Unlinks a tail object from a head object\"}},\"notice\":\"Interface for object interactions\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/core/IOmniRegistry.sol\":\"IOmniRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@create3-factory/=lib/create3-factory/src/\",\":@everyprotocol/core/=contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":@solmate/=lib/solmate/src/\",\":create3-factory/=lib/create3-factory/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/src/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/core/IObjectAuthorization.sol\":{\"keccak256\":\"0x78fc70b92b4f65163df79f322e7c8f39a00ab1c365426b8d4abc2c287581910e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://35d6e57914e967476a3ba483d05ccfa6abf0e8a0405c2d9eba7708bfcb5bd355\",\"dweb:/ipfs/QmS6NxRTSaJg6FovQHvPzi6aqZGMKdeh3Ate6T661muHjJ\"]},\"contracts/interfaces/core/IObjectInteraction.sol\":{\"keccak256\":\"0x9d101797c8186a60d794b940433ad132a9f5763103aa5ca6beeb05a6995273ed\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e0fd6bae1cdd6e395caf04ac88ddd2d58e199be168de5fec0fbf14371f56601b\",\"dweb:/ipfs/QmWhp15h87ZqeqN4o2UfncJy9PygakDKFkeKDY4qDxcGbY\"]},\"contracts/interfaces/core/IOmniRegistry.sol\":{\"keccak256\":\"0xa3c92da90cd34c07fb565addd3920c4811d0959dcbc1cf5998bc4356932ed001\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a40013eb1a630d5c1ef0ef4b067de91672f8df2a44b76af43d8bc8ac47b4e693\",\"dweb:/ipfs/QmeA4mjPkd8vWdCRMHfWg4CFgYR733Q98u8VcjmHc28MdV\"]},\"contracts/interfaces/core/IRelationRegistry.sol\":{\"keccak256\":\"0xcb2ec73180f5c2c4d89ee6f1cd3960aa53278936021432b09cf1799df13294ec\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://65e4442dbfc632c450f3793d96895178f7e70d9c784e2aa7c5d7eef69bf22e42\",\"dweb:/ipfs/QmfPzAm7QbYHbuB2Vf4sgE1JQ5muj9WRjkVXnYiQoFCy1f\"]},\"contracts/types/Descriptor.sol\":{\"keccak256\":\"0x37d21c3ba2b6fc1d92c0f90d4b5b9b6d8c9b16c9d36d769a7be93d16c0402fe4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://683a0796984d0e8a0ba15f01fa3ed8abfcd69d12f61b2eb84b7e3a41dfe48aa1\",\"dweb:/ipfs/QmU4L5AFk9NzYtj8nXELhjhyGiCrZH4kycpdKWeJQir3bT\"]},\"contracts/types/Relation.sol\":{\"keccak256\":\"0x8c714d5b0bbe95430b5ff529eec720c29f5f09071073f21e59db7bdc035a2a73\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7d935ee820a2e0e21eb041b3e61a1ae467b535ae09581195a8ca07a7cb309e79\",\"dweb:/ipfs/QmUgjpLg8YmScsCqaVLko43bagVCGuZ5R5Q1BGjQgCxTJk\"]},\"contracts/types/Token.sol\":{\"keccak256\":\"0x1a4ca38789517abd90a18e9555755b96bd9466d8b152fc871726186c81587481\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://16b4fa220db0b6be9aaab14eee64fdb58f820c4366cd642ed521a59378035090\",\"dweb:/ipfs/Qme3dhteY6tLAvMdZUqQT31ePvUZvigF5s1NCran3XW4Zt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint128","name":"tail","type":"uint128","indexed":false},{"internalType":"struct RelationGrant","name":"grant","type":"tuple","components":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"enum RelationInitiator","name":"initiator","type":"uint8"},{"internalType":"uint16","name":"reserved","type":"uint16"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint64","name":"set","type":"uint64"},{"internalType":"bytes32","name":"extra","type":"bytes32"}],"indexed":false}],"type":"event","name":"GrantFrom","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct RelationGrant","name":"grant","type":"tuple","components":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"enum RelationInitiator","name":"initiator","type":"uint8"},{"internalType":"uint16","name":"reserved","type":"uint16"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint64","name":"set","type":"uint64"},{"internalType":"bytes32","name":"extra","type":"bytes32"}],"indexed":false}],"type":"event","name":"GrantTo","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"uint256","name":"arc","type":"uint256","indexed":false}],"type":"event","name":"Related","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"uint256[]","name":"arcs","type":"uint256[]","indexed":false}],"type":"event","name":"Related","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"address","name":"code","type":"address","indexed":false},{"internalType":"bytes32","name":"data","type":"bytes32","indexed":false},{"internalType":"struct RelationRule","name":"rule","type":"tuple","components":[{"internalType":"uint8","name":"version","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"relateShift","type":"uint8"},{"internalType":"enum RelationTerminator","name":"terminator","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"unrelateShift","type":"uint8"},{"internalType":"uint64","name":"unrelateDelay","type":"uint64"},{"internalType":"bytes20","name":"extra","type":"bytes20"}],"indexed":false},{"internalType":"struct Adjacency[]","name":"adjs","type":"tuple[]","components":[{"internalType":"uint16","name":"degs","type":"uint16"},{"internalType":"uint48","name":"kind","type":"uint48"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"RelationRegistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false}],"type":"event","name":"RelationTouched","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false}],"type":"event","name":"RelationTransferred","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"bytes32","name":"data","type":"bytes32","indexed":false}],"type":"event","name":"RelationUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false}],"type":"event","name":"RelationUpgraded","anonymous":false},{"inputs":[{"internalType":"uint128","name":"tail","type":"uint128","indexed":false},{"internalType":"uint32","name":"grantId","type":"uint32","indexed":false}],"type":"event","name":"RevokeFrom","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"uint32","name":"grantId","type":"uint32","indexed":false}],"type":"event","name":"RevokeTo","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"uint256","name":"arc","type":"uint256","indexed":false}],"type":"event","name":"Unrelated","anonymous":false},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128","indexed":false},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}],"indexed":false},{"internalType":"uint256[]","name":"arcs","type":"uint256[]","indexed":false}],"type":"event","name":"Unrelated","anonymous":false},{"inputs":[{"internalType":"uint32","name":"grantId","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint128","name":"tail","type":"uint128"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"headKind","type":"uint64"},{"internalType":"uint64","name":"headSet","type":"uint64"}],"stateMutability":"view","type":"function","name":"allowFrom","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"grantId","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint128","name":"head","type":"uint128"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"tailKind","type":"uint64"},{"internalType":"uint64","name":"tailSet","type":"uint64"}],"stateMutability":"view","type":"function","name":"allowTo","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}]},{"inputs":[{"internalType":"uint128","name":"tail","type":"uint128"},{"internalType":"struct RelationGrant","name":"grant","type":"tuple","components":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"enum RelationInitiator","name":"initiator","type":"uint8"},{"internalType":"uint16","name":"reserved","type":"uint16"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint64","name":"set","type":"uint64"},{"internalType":"bytes32","name":"extra","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"grantFrom"},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128"},{"internalType":"struct RelationGrant","name":"grant","type":"tuple","components":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"enum RelationInitiator","name":"initiator","type":"uint8"},{"internalType":"uint16","name":"reserved","type":"uint16"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint64","name":"set","type":"uint64"},{"internalType":"bytes32","name":"extra","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"grantTo"},{"inputs":[{"internalType":"uint256","name":"tail","type":"uint256"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint256","name":"head","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"relate"},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint64","name":"kind","type":"uint64"}],"stateMutability":"view","type":"function","name":"relationAdmit","outputs":[{"internalType":"bool","name":"admit","type":"bool"},{"internalType":"uint48","name":"effKind","type":"uint48"},{"internalType":"uint16","name":"effDegs","type":"uint16"},{"internalType":"uint48","name":"totalKind","type":"uint48"},{"internalType":"uint16","name":"totalDegs","type":"uint16"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"relationDescriptor","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"view","type":"function","name":"relationOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"struct RelationRule","name":"rule","type":"tuple","components":[{"internalType":"uint8","name":"version","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"relateShift","type":"uint8"},{"internalType":"enum RelationTerminator","name":"terminator","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"unrelateShift","type":"uint8"},{"internalType":"uint64","name":"unrelateDelay","type":"uint64"},{"internalType":"bytes20","name":"extra","type":"bytes20"}]},{"internalType":"struct Adjacency[]","name":"adjs","type":"tuple[]","components":[{"internalType":"uint16","name":"degs","type":"uint16"},{"internalType":"uint48","name":"kind","type":"uint48"}]}],"stateMutability":"nonpayable","type":"function","name":"relationRegister","outputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"relationRevision","outputs":[{"internalType":"uint32","name":"rev","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"view","type":"function","name":"relationRule","outputs":[{"internalType":"struct RelationRule","name":"rule","type":"tuple","components":[{"internalType":"uint8","name":"version","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"relateShift","type":"uint8"},{"internalType":"enum RelationTerminator","name":"terminator","type":"uint8"},{"internalType":"enum RelationOwnerShift","name":"unrelateShift","type":"uint8"},{"internalType":"uint64","name":"unrelateDelay","type":"uint64"},{"internalType":"bytes20","name":"extra","type":"bytes20"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"relationSnapshot","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]},{"internalType":"bytes32[]","name":"elems","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"view","type":"function","name":"relationSota","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]},{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"uint64[]","name":"ids","type":"uint64[]"}],"stateMutability":"view","type":"function","name":"relationStatus","outputs":[{"internalType":"bool","name":"active","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"relationTouch","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"relationTransfer","outputs":[{"internalType":"address","name":"from","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"relationUpdate","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"struct Adjacency[]","name":"adjs","type":"tuple[]","components":[{"internalType":"uint16","name":"degs","type":"uint16"},{"internalType":"uint48","name":"kind","type":"uint48"}]}],"stateMutability":"nonpayable","type":"function","name":"relationUpdate","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"relationUpgrade","outputs":[{"internalType":"struct Descriptor","name":"desc","type":"tuple","components":[{"internalType":"uint32","name":"traits","type":"uint32"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint32","name":"kindRev","type":"uint32"},{"internalType":"uint32","name":"setRev","type":"uint32"},{"internalType":"uint64","name":"kindId","type":"uint64"},{"internalType":"uint64","name":"setId","type":"uint64"}]}]},{"inputs":[{"internalType":"uint128","name":"tail","type":"uint128"},{"internalType":"uint32","name":"grantId","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"revokeFrom"},{"inputs":[{"internalType":"uint128","name":"head","type":"uint128"},{"internalType":"uint32","name":"grantId","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"revokeTo"},{"inputs":[{"internalType":"uint256","name":"tail","type":"uint256"},{"internalType":"uint64","name":"rel","type":"uint64"},{"internalType":"uint256","name":"head","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unrelate"}],"devdoc":{"kind":"dev","methods":{"allowFrom(uint32,address,uint128,uint64,uint64,uint64)":{"params":{"grantId":"Grant ID to check","headKind":"Kind ID of the target (head) object","headSet":"Set ID of the target (head) object","rel":"Relation ID","sender":"Address attempting the action","tail":"Tail object ID"},"returns":{"allowed":"True if authorized"}},"allowTo(uint32,address,uint128,uint64,uint64,uint64)":{"params":{"grantId":"Grant ID to check","head":"Head object ID","rel":"Relation ID","sender":"Address attempting the action","tailKind":"Kind ID of the source (tail) object","tailSet":"Set ID of the source (tail) object"},"returns":{"allowed":"True if authorized"}},"grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":{"params":{"grant":"Grant details","tail":"Tail object ID"}},"grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":{"params":{"grant":"Grant details","head":"Head object ID"}},"relate(uint256,uint64,uint256)":{"params":{"head":"Encoded head node","rel":"Relation ID","tail":"Encoded tail node"}},"relationAdmit(uint64,uint32,uint64)":{"params":{"id":"Relation ID","kind":"Tail kind ID to evaluate","rev":"Revision to check"},"returns":{"admit":"Whether the kind is admitted","effDegs":"Degree bounds for the matched kind","effKind":"Matched kind (0 = wildcard match)","totalDegs":"Degree bounds for the total-kind","totalKind":"Special marker for total-kind (2^48-1 if defined)"}},"relationDescriptor(uint64,uint32)":{"params":{"id":"Relation ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the specified revision"}},"relationOwner(uint64)":{"params":{"id":"Relation ID"},"returns":{"owner":"Address of the current owner"}},"relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])":{"params":{"adjs":"Array of tail kind admissibility and degree limits","code":"Optional logic contract address","data":"Hash of the relation’s associated data","rule":"Rule defining the behavior and constraints of the relation"},"returns":{"desc":"Descriptor after registration","id":"New relation ID"}},"relationRevision(uint64,uint32)":{"params":{"id":"Relation ID","rev0":"Requested revision (0 = latest)"},"returns":{"rev":"Validated revision (0 if not found)"}},"relationRule(uint64)":{"params":{"id":"Relation ID"},"returns":{"rule":"Possession and linkage rule for the relation"}},"relationSnapshot(uint64,uint32)":{"params":{"id":"Relation ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the revision","elems":"Elements at the revision"}},"relationSota(uint64)":{"params":{"id":"Relation ID"},"returns":{"desc":"Latest descriptor","owner":"Current owner"}},"relationStatus(uint64[])":{"params":{"ids":"Array of relation IDs"},"returns":{"active":"True if all are valid and active"}},"relationTouch(uint64)":{"params":{"id":"Relation ID"},"returns":{"desc":"Descriptor after touch"}},"relationTransfer(uint64,address)":{"params":{"id":"Relation ID","to":"New owner address"},"returns":{"from":"Previous owner address"}},"relationUpdate(uint64,bytes32)":{"params":{"data":"New data hash","id":"Relation ID"},"returns":{"desc":"Updated descriptor"}},"relationUpdate(uint64,bytes32,(uint16,uint48)[])":{"params":{"adjs":"New array of adjacency rules","data":"New data hash","id":"Relation ID"},"returns":{"desc":"Updated descriptor"}},"relationUpgrade(uint64,uint32,uint32)":{"params":{"id":"Relation ID","kindRev":"New kind revision (0 = no change)","setRev":"New set revision (0 = no change)"},"returns":{"desc":"Descriptor after upgrade"}},"revokeFrom(uint128,uint32)":{"params":{"grantId":"Grant ID to revoke","tail":"Tail object ID"}},"revokeTo(uint128,uint32)":{"params":{"grantId":"Grant ID to revoke","head":"Head object ID"}},"unrelate(uint256,uint64,uint256)":{"params":{"head":"Encoded head node","rel":"Relation ID","tail":"Encoded tail node"}}},"version":1},"userdoc":{"kind":"user","methods":{"allowFrom(uint32,address,uint128,uint64,uint64,uint64)":{"notice":"Checks whether a sender is authorized to initiate a relation from a tail object"},"allowTo(uint32,address,uint128,uint64,uint64,uint64)":{"notice":"Checks whether a sender is authorized to accept a relation to a head object"},"grantFrom(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":{"notice":"Issues a grant to allow initiating relations from a tail object"},"grantTo(uint128,(uint32,uint8,uint8,uint16,uint64,uint64,uint64,bytes32))":{"notice":"Issues a grant to allow accepting relations to a head object"},"relate(uint256,uint64,uint256)":{"notice":"Links a tail object to a head object through a relation"},"relationAdmit(uint64,uint32,uint64)":{"notice":"Checks if a relation admits a specific kind as tail"},"relationDescriptor(uint64,uint32)":{"notice":"Returns descriptor of a relation at a specific revision"},"relationOwner(uint64)":{"notice":"Gets the current owner of a relation"},"relationRegister(address,bytes32,(uint8,uint8,uint8,uint8,uint64,bytes20),(uint16,uint48)[])":{"notice":"Registers a new relation"},"relationRevision(uint64,uint32)":{"notice":"Resolves and validates a revision number"},"relationRule(uint64)":{"notice":"Returns the rule definition for a relation"},"relationSnapshot(uint64,uint32)":{"notice":"Returns descriptor and packed elements at a specific revision"},"relationSota(uint64)":{"notice":"Returns the latest descriptor and current owner of a relation"},"relationStatus(uint64[])":{"notice":"Checks whether all specified relations are active (rev > 0)"},"relationTouch(uint64)":{"notice":"Touches a relation (bumps revision without modifying content)"},"relationTransfer(uint64,address)":{"notice":"Transfers ownership of a relation to a new address"},"relationUpdate(uint64,bytes32)":{"notice":"Updates the data hash of a relation"},"relationUpdate(uint64,bytes32,(uint16,uint48)[])":{"notice":"Updates the data hash and adjacency configuration of a relation"},"relationUpgrade(uint64,uint32,uint32)":{"notice":"Upgrades the kind or set revision of a relation"},"revokeFrom(uint128,uint32)":{"notice":"Revokes a previously issued `from` grant"},"revokeTo(uint128,uint32)":{"notice":"Revokes a previously issued `to` grant"},"unrelate(uint256,uint64,uint256)":{"notice":"Unlinks a tail object from a head object"}},"version":1}},"settings":{"remappings":["@create3-factory/=lib/create3-factory/src/","@everyprotocol/core/=contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","@solmate/=lib/solmate/src/","create3-factory/=lib/create3-factory/","ds-test/=lib/solmate/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/interfaces/core/IOmniRegistry.sol":"IOmniRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/core/IObjectAuthorization.sol":{"keccak256":"0x78fc70b92b4f65163df79f322e7c8f39a00ab1c365426b8d4abc2c287581910e","urls":["bzz-raw://35d6e57914e967476a3ba483d05ccfa6abf0e8a0405c2d9eba7708bfcb5bd355","dweb:/ipfs/QmS6NxRTSaJg6FovQHvPzi6aqZGMKdeh3Ate6T661muHjJ"],"license":"BUSL-1.1"},"contracts/interfaces/core/IObjectInteraction.sol":{"keccak256":"0x9d101797c8186a60d794b940433ad132a9f5763103aa5ca6beeb05a6995273ed","urls":["bzz-raw://e0fd6bae1cdd6e395caf04ac88ddd2d58e199be168de5fec0fbf14371f56601b","dweb:/ipfs/QmWhp15h87ZqeqN4o2UfncJy9PygakDKFkeKDY4qDxcGbY"],"license":"BUSL-1.1"},"contracts/interfaces/core/IOmniRegistry.sol":{"keccak256":"0xa3c92da90cd34c07fb565addd3920c4811d0959dcbc1cf5998bc4356932ed001","urls":["bzz-raw://a40013eb1a630d5c1ef0ef4b067de91672f8df2a44b76af43d8bc8ac47b4e693","dweb:/ipfs/QmeA4mjPkd8vWdCRMHfWg4CFgYR733Q98u8VcjmHc28MdV"],"license":"BUSL-1.1"},"contracts/interfaces/core/IRelationRegistry.sol":{"keccak256":"0xcb2ec73180f5c2c4d89ee6f1cd3960aa53278936021432b09cf1799df13294ec","urls":["bzz-raw://65e4442dbfc632c450f3793d96895178f7e70d9c784e2aa7c5d7eef69bf22e42","dweb:/ipfs/QmfPzAm7QbYHbuB2Vf4sgE1JQ5muj9WRjkVXnYiQoFCy1f"],"license":"BUSL-1.1"},"contracts/types/Descriptor.sol":{"keccak256":"0x37d21c3ba2b6fc1d92c0f90d4b5b9b6d8c9b16c9d36d769a7be93d16c0402fe4","urls":["bzz-raw://683a0796984d0e8a0ba15f01fa3ed8abfcd69d12f61b2eb84b7e3a41dfe48aa1","dweb:/ipfs/QmU4L5AFk9NzYtj8nXELhjhyGiCrZH4kycpdKWeJQir3bT"],"license":"BUSL-1.1"},"contracts/types/Relation.sol":{"keccak256":"0x8c714d5b0bbe95430b5ff529eec720c29f5f09071073f21e59db7bdc035a2a73","urls":["bzz-raw://7d935ee820a2e0e21eb041b3e61a1ae467b535ae09581195a8ca07a7cb309e79","dweb:/ipfs/QmUgjpLg8YmScsCqaVLko43bagVCGuZ5R5Q1BGjQgCxTJk"],"license":"BUSL-1.1"},"contracts/types/Token.sol":{"keccak256":"0x1a4ca38789517abd90a18e9555755b96bd9466d8b152fc871726186c81587481","urls":["bzz-raw://16b4fa220db0b6be9aaab14eee64fdb58f820c4366cd642ed521a59378035090","dweb:/ipfs/Qme3dhteY6tLAvMdZUqQT31ePvUZvigF5s1NCran3XW4Zt"],"license":"BUSL-1.1"}},"version":1},"id":31}
|