@everyprotocol/every-cli 0.1.0
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 +13 -0
- package/README.md +1 -0
- package/abis/ElementRegistry.json +1 -0
- package/abis/IElementRegistry.json +1 -0
- package/abis/IKindRegistry.json +1 -0
- package/abis/IObjectMinter.json +1 -0
- package/abis/IObjectMinterAdmin.json +1 -0
- package/abis/IOmniRegistry.json +1 -0
- package/abis/ISet.json +1 -0
- package/abis/ISetRegistry.json +1 -0
- package/abis/ISetRegistryAdmin.json +1 -0
- package/abis/KindRegistry.json +1 -0
- package/abis/ObjectMinter.json +1 -0
- package/abis/OmniRegistry.json +1 -0
- package/abis/SetRegistry.json +1 -0
- package/dist/abi.js +106 -0
- package/dist/cmdgen.js +144 -0
- package/dist/cmds.js +132 -0
- package/dist/config.js +58 -0
- package/dist/index.js +43 -0
- package/dist/mint.js +64 -0
- package/dist/relate.js +104 -0
- package/dist/utils.js +90 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"abi":[{"type":"function","name":"uniqueDescriptor","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":"uniqueOwner","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"uniqueRegister","inputs":[{"name":"code","type":"address","internalType":"address"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"std","type":"uint8","internalType":"enum TokenStandard"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"symbol","type":"string","internalType":"string"}],"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":"uniqueRevision","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":"uniqueSnapshot","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":"uniqueSota","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":"uniqueStatus","inputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"uniqueTouch","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":"uniqueTransfer","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":"uniqueUpdate","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":"uniqueUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"symbol","type":"string","internalType":"string"}],"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":"uniqueUpgrade","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":"valueDescriptor","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":"valueOwner","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"valueRegister","inputs":[{"name":"code","type":"address","internalType":"address"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"std","type":"uint8","internalType":"enum TokenStandard"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"symbol","type":"string","internalType":"string"}],"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":"valueRevision","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":"valueSnapshot","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":"valueSota","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":"valueStatus","inputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"valueTouch","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":"valueTransfer","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":"valueUpdate","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":"valueUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"symbol","type":"string","internalType":"string"}],"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":"valueUpgrade","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"kindRev0","type":"uint32","internalType":"uint32"},{"name":"setRev0","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":"event","name":"UniqueRegistered","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":"spec","type":"tuple","indexed":false,"internalType":"struct TokenSpec","components":[{"name":"std","type":"uint8","internalType":"enum TokenStandard"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"symbol","type":"bytes30","internalType":"bytes30"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UniqueTouched","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":"UniqueTransferred","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":"UniqueUpdated","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"},{"name":"spec","type":"tuple","indexed":false,"internalType":"struct TokenSpec","components":[{"name":"std","type":"uint8","internalType":"enum TokenStandard"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"symbol","type":"bytes30","internalType":"bytes30"}]}],"anonymous":false},{"type":"event","name":"UniqueUpgraded","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":"ValueRegistered","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":"spec","type":"tuple","indexed":false,"internalType":"struct TokenSpec","components":[{"name":"std","type":"uint8","internalType":"enum TokenStandard"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"symbol","type":"bytes30","internalType":"bytes30"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValueTouched","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":"ValueTransferred","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":"ValueUpdated","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"},{"name":"spec","type":"tuple","indexed":false,"internalType":"struct TokenSpec","components":[{"name":"std","type":"uint8","internalType":"enum TokenStandard"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"symbol","type":"bytes30","internalType":"bytes30"}]}],"anonymous":false},{"type":"event","name":"ValueUpgraded","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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"uniqueDescriptor(uint64,uint32)":"3488c7a4","uniqueOwner(uint64)":"85becce4","uniqueRegister(address,bytes32,uint8,uint8,string)":"4825a5a5","uniqueRevision(uint64,uint32)":"e6cc3bcb","uniqueSnapshot(uint64,uint32)":"70a38c84","uniqueSota(uint64)":"ab1151c1","uniqueStatus(uint64[])":"0d21b887","uniqueTouch(uint64)":"f47d74e7","uniqueTransfer(uint64,address)":"50277e26","uniqueUpdate(uint64,bytes32)":"4b76d309","uniqueUpdate(uint64,bytes32,string)":"d5e3b000","uniqueUpgrade(uint64,uint32,uint32)":"d4abef91","valueDescriptor(uint64,uint32)":"0b321d86","valueOwner(uint64)":"69f3c520","valueRegister(address,bytes32,uint8,uint8,string)":"ef8ac57a","valueRevision(uint64,uint32)":"e1147495","valueSnapshot(uint64,uint32)":"b66f16a4","valueSota(uint64)":"f1e3d37d","valueStatus(uint64[])":"5cf7e830","valueTouch(uint64)":"d4659a12","valueTransfer(uint64,address)":"b824f439","valueUpdate(uint64,bytes32)":"8accf316","valueUpdate(uint64,bytes32,string)":"8c3d3e1a","valueUpgrade(uint64,uint32,uint32)":"1587f444"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"enum TokenStandard\",\"name\":\"std\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"bytes30\",\"name\":\"symbol\",\"type\":\"bytes30\"}],\"indexed\":false,\"internalType\":\"struct TokenSpec\",\"name\":\"spec\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"UniqueRegistered\",\"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\":\"UniqueTouched\",\"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\":\"UniqueTransferred\",\"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\"},{\"components\":[{\"internalType\":\"enum TokenStandard\",\"name\":\"std\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"bytes30\",\"name\":\"symbol\",\"type\":\"bytes30\"}],\"indexed\":false,\"internalType\":\"struct TokenSpec\",\"name\":\"spec\",\"type\":\"tuple\"}],\"name\":\"UniqueUpdated\",\"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\":\"UniqueUpgraded\",\"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\":\"enum TokenStandard\",\"name\":\"std\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"bytes30\",\"name\":\"symbol\",\"type\":\"bytes30\"}],\"indexed\":false,\"internalType\":\"struct TokenSpec\",\"name\":\"spec\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ValueRegistered\",\"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\":\"ValueTouched\",\"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\":\"ValueTransferred\",\"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\"},{\"components\":[{\"internalType\":\"enum TokenStandard\",\"name\":\"std\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"bytes30\",\"name\":\"symbol\",\"type\":\"bytes30\"}],\"indexed\":false,\"internalType\":\"struct TokenSpec\",\"name\":\"spec\",\"type\":\"tuple\"}],\"name\":\"ValueUpdated\",\"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\":\"ValueUpgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"uniqueDescriptor\",\"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\":\"uniqueOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"internalType\":\"enum TokenStandard\",\"name\":\"std\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"uniqueRegister\",\"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\":\"uniqueRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"uniqueSnapshot\",\"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\":\"uniqueSota\",\"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\":\"uniqueStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"uniqueTouch\",\"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\":\"uniqueTransfer\",\"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\":\"uniqueUpdate\",\"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\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"uniqueUpdate\",\"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\":\"uniqueUpgrade\",\"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\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"valueDescriptor\",\"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\":\"valueOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"internalType\":\"enum TokenStandard\",\"name\":\"std\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"valueRegister\",\"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\":\"valueRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"valueSnapshot\",\"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\":\"valueSota\",\"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\":\"valueStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"valueTouch\",\"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\":\"valueTransfer\",\"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\":\"valueUpdate\",\"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\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"valueUpdate\",\"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\":\"kindRev0\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"setRev0\",\"type\":\"uint32\"}],\"name\":\"valueUpgrade\",\"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\"}],\"devdoc\":{\"events\":{\"UniqueRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),address,bytes32,(uint8,uint8,bytes30),address)\":{\"params\":{\"code\":\"Token contract address\",\"data\":\"Hash of the underlying asset (e.g., image, model, metadata)\",\"desc\":\"Descriptor of the unique\",\"id\":\"Unique ID\",\"owner\":\"Address of the initial owner\",\"spec\":\"Token specification (standard, decimals, and symbol)\"}},\"UniqueTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after touch (updated revision only)\",\"id\":\"Unique ID\"}},\"UniqueTransferred(uint64,address,address)\":{\"params\":{\"from\":\"Previous owner's address\",\"id\":\"Unique ID\",\"to\":\"New owner's address\"}},\"UniqueUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32,(uint8,uint8,bytes30))\":{\"params\":{\"data\":\"New data hash representing the updated asset\",\"desc\":\"Updated descriptor (same ID, new revision)\",\"id\":\"Unique ID\",\"spec\":\"Updated or unchanged token specification\"}},\"UniqueUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after the upgrade (revised kind/set refs)\",\"id\":\"Unique ID\"}},\"ValueRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),address,bytes32,(uint8,uint8,bytes30),address)\":{\"params\":{\"code\":\"Token contract address\",\"data\":\"Hash of the underlying asset or metadata\",\"desc\":\"Descriptor of the value\",\"id\":\"ID of the newly registered value\",\"owner\":\"Address of the initial owner\",\"spec\":\"Token specification (standard, decimals, symbol)\"}},\"ValueTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after touch\",\"id\":\"ID of the value\"}},\"ValueTransferred(uint64,address,address)\":{\"params\":{\"from\":\"Previous owner address\",\"id\":\"ID of the value\",\"to\":\"New owner address\"}},\"ValueUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32,(uint8,uint8,bytes30))\":{\"params\":{\"data\":\"New hash of the asset or metadata\",\"desc\":\"Updated descriptor (with bumped revision)\",\"id\":\"ID of the value\",\"spec\":\"Updated or unchanged token specification\"}},\"ValueUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after upgrade\",\"id\":\"ID of the value\"}}},\"kind\":\"dev\",\"methods\":{\"uniqueDescriptor(uint64,uint32)\":{\"params\":{\"id\":\"Unique ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the specified revision\"}},\"uniqueOwner(uint64)\":{\"params\":{\"id\":\"Unique ID\"},\"returns\":{\"owner\":\"Address of the current owner\"}},\"uniqueRegister(address,bytes32,uint8,uint8,string)\":{\"params\":{\"code\":\"Address of the token contract\",\"data\":\"Hash of the associated matter\",\"decimals\":\"Number of decimals\",\"std\":\"Token standard (e.g. ERC721)\",\"symbol\":\"Display symbol (max 30 characters)\"},\"returns\":{\"desc\":\"Descriptor after registration\",\"id\":\"ID of the new unique\"}},\"uniqueRevision(uint64,uint32)\":{\"params\":{\"id\":\"Unique ID\",\"rev0\":\"Requested revision (0 = latest)\"},\"returns\":{\"rev\":\"Resolved revision (0 = not found)\"}},\"uniqueSnapshot(uint64,uint32)\":{\"params\":{\"id\":\"Unique ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the revision\",\"elems\":\"Elements at the revision\"}},\"uniqueSota(uint64)\":{\"params\":{\"id\":\"Unique ID\"},\"returns\":{\"desc\":\"Latest descriptor\",\"owner\":\"Address of the current owner\"}},\"uniqueStatus(uint64[])\":{\"params\":{\"ids\":\"List of unique IDs\"},\"returns\":{\"active\":\"True if all exist and are active\"}},\"uniqueTouch(uint64)\":{\"params\":{\"id\":\"Unique ID\"},\"returns\":{\"desc\":\"Descriptor after touch\"}},\"uniqueTransfer(uint64,address)\":{\"params\":{\"id\":\"Unique ID\",\"to\":\"Address of the new owner\"},\"returns\":{\"from\":\"Address of the previous owner\"}},\"uniqueUpdate(uint64,bytes32)\":{\"params\":{\"data\":\"New data hash\",\"id\":\"Unique ID\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"uniqueUpdate(uint64,bytes32,string)\":{\"params\":{\"data\":\"New data hash\",\"id\":\"Unique ID\",\"symbol\":\"New display symbol (max 30 characters)\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"uniqueUpgrade(uint64,uint32,uint32)\":{\"params\":{\"id\":\"Unique ID\",\"kindRev\":\"New kind revision (0 = no change)\",\"setRev\":\"New set revision (0 = no change)\"},\"returns\":{\"desc\":\"Descriptor after upgrade\"}},\"valueDescriptor(uint64,uint32)\":{\"params\":{\"id\":\"Value ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the given revision\"}},\"valueOwner(uint64)\":{\"params\":{\"id\":\"Value ID\"},\"returns\":{\"owner\":\"Current owner's address\"}},\"valueRegister(address,bytes32,uint8,uint8,string)\":{\"params\":{\"code\":\"Token contract address\",\"data\":\"Hash of the underlying matter or metadata\",\"decimals\":\"Token's decimal precision\",\"std\":\"Token standard (e.g. ERC20)\",\"symbol\":\"Display symbol (max 30 characters)\"},\"returns\":{\"desc\":\"Descriptor after registration\",\"id\":\"New value ID\"}},\"valueRevision(uint64,uint32)\":{\"params\":{\"id\":\"Value ID\",\"rev0\":\"Requested revision (0 = latest)\"},\"returns\":{\"rev\":\"Validated revision (0 = not found)\"}},\"valueSnapshot(uint64,uint32)\":{\"params\":{\"id\":\"Value ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the given revision\",\"elems\":\"Element values at the given revision\"}},\"valueSota(uint64)\":{\"params\":{\"id\":\"Value ID\"},\"returns\":{\"desc\":\"Latest descriptor\",\"owner\":\"Current owner's address\"}},\"valueStatus(uint64[])\":{\"params\":{\"ids\":\"Array of value IDs\"},\"returns\":{\"active\":\"True if all values exist and are active\"}},\"valueTouch(uint64)\":{\"params\":{\"id\":\"Value ID\"},\"returns\":{\"desc\":\"Descriptor after touch\"}},\"valueTransfer(uint64,address)\":{\"params\":{\"id\":\"Value ID\",\"to\":\"Address to transfer ownership to\"},\"returns\":{\"from\":\"Address of the previous owner\"}},\"valueUpdate(uint64,bytes32)\":{\"params\":{\"data\":\"New data hash\",\"id\":\"Value ID\"},\"returns\":{\"desc\":\"Updated descriptor (revision bumped)\"}},\"valueUpdate(uint64,bytes32,string)\":{\"params\":{\"data\":\"New data hash\",\"id\":\"Value ID\",\"symbol\":\"New display symbol\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"valueUpgrade(uint64,uint32,uint32)\":{\"params\":{\"id\":\"Value ID\",\"kindRev0\":\"New kind revision (0 = no change)\",\"setRev0\":\"New set revision (0 = no change)\"},\"returns\":{\"desc\":\"Descriptor after upgrade\"}}},\"title\":\"IElementRegistry\",\"version\":1},\"userdoc\":{\"events\":{\"UniqueRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),address,bytes32,(uint8,uint8,bytes30),address)\":{\"notice\":\"Emitted when a new unique is registered\"},\"UniqueTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a unique is touched (revision bumped with no content change)\"},\"UniqueTransferred(uint64,address,address)\":{\"notice\":\"Emitted when ownership of a unique is transferred\"},\"UniqueUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32,(uint8,uint8,bytes30))\":{\"notice\":\"Emitted when a unique is updated\"},\"UniqueUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a unique is upgraded to a new revision\"},\"ValueRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),address,bytes32,(uint8,uint8,bytes30),address)\":{\"notice\":\"Emitted when a new value is registered\"},\"ValueTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a value is touched (revision bump only, no content change)\"},\"ValueTransferred(uint64,address,address)\":{\"notice\":\"Emitted when ownership of a value is transferred\"},\"ValueUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32,(uint8,uint8,bytes30))\":{\"notice\":\"Emitted when a value is updated\"},\"ValueUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a value is upgraded (revision of kind/set updated)\"}},\"kind\":\"user\",\"methods\":{\"uniqueDescriptor(uint64,uint32)\":{\"notice\":\"Returns the descriptor at a given revision\"},\"uniqueOwner(uint64)\":{\"notice\":\"Returns the current owner of a unique\"},\"uniqueRegister(address,bytes32,uint8,uint8,string)\":{\"notice\":\"Registers a new unique token\"},\"uniqueRevision(uint64,uint32)\":{\"notice\":\"Resolves and validates a revision\"},\"uniqueSnapshot(uint64,uint32)\":{\"notice\":\"Returns descriptor and elements at a specific revision\"},\"uniqueSota(uint64)\":{\"notice\":\"Returns the latest descriptor and current owner\"},\"uniqueStatus(uint64[])\":{\"notice\":\"Checks whether all given uniques are active (revision > 0)\"},\"uniqueTouch(uint64)\":{\"notice\":\"Bumps the revision of a unique with no content change\"},\"uniqueTransfer(uint64,address)\":{\"notice\":\"Transfers ownership of a unique token\"},\"uniqueUpdate(uint64,bytes32)\":{\"notice\":\"Updates the data hash of a unique\"},\"uniqueUpdate(uint64,bytes32,string)\":{\"notice\":\"Updates the data hash and symbol of a unique\"},\"uniqueUpgrade(uint64,uint32,uint32)\":{\"notice\":\"Upgrades the kind and/or set revision of a unique\"},\"valueDescriptor(uint64,uint32)\":{\"notice\":\"Returns the descriptor of a value at a specific revision\"},\"valueOwner(uint64)\":{\"notice\":\"Returns the current owner of a value\"},\"valueRegister(address,bytes32,uint8,uint8,string)\":{\"notice\":\"Registers a new value token\"},\"valueRevision(uint64,uint32)\":{\"notice\":\"Resolves and validates a revision of a value\"},\"valueSnapshot(uint64,uint32)\":{\"notice\":\"Returns descriptor and elements of a value at a specific revision\"},\"valueSota(uint64)\":{\"notice\":\"Returns the latest descriptor and current owner of a value\"},\"valueStatus(uint64[])\":{\"notice\":\"Checks whether all specified values are active (revision > 0)\"},\"valueTouch(uint64)\":{\"notice\":\"Touches a value, bumping its revision without changing its content\"},\"valueTransfer(uint64,address)\":{\"notice\":\"Transfers ownership of a value to a new address\"},\"valueUpdate(uint64,bytes32)\":{\"notice\":\"Updates the data hash of an existing value\"},\"valueUpdate(uint64,bytes32,string)\":{\"notice\":\"Updates the data hash and symbol of an existing value\"},\"valueUpgrade(uint64,uint32,uint32)\":{\"notice\":\"Upgrades the kind/set revision of a value\"}},\"notice\":\"Element registration and management\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/core/IElementRegistry.sol\":\"IElementRegistry\"},\"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/IElementRegistry.sol\":{\"keccak256\":\"0x66a57a950d6893a153013f7f3551a816af0e563d1bdb7738af3cb105aaefa391\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e4d34b5f553a670d95384f8bc5d07d2a6a616eef17a661b9abedb4f70801cfec\",\"dweb:/ipfs/QmPSUMunM2mzbgtp46d6VrSztESDQohUnT9chjvVdC9d5T\"]},\"contracts/interfaces/core/IUniqueRegistry.sol\":{\"keccak256\":\"0xc86ef36c3bf943c9a26f5311320b759cf6f2759251978213855a987ebe39512a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://8ea9944c8a9749ecf4ee8c63caaa5712da41b7f012990479bc3415c22ababac8\",\"dweb:/ipfs/Qmb2KyZyYPTgo7ZqqBEXLMxEKHZpeseYrx46ZVhADNtNqi\"]},\"contracts/interfaces/core/IValueRegistry.sol\":{\"keccak256\":\"0xf00cc5ef9a841d3e03dcd4c76e3976ec87094412621a481e956fabd0f2ca5ff2\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://811cb991f120a2403015ac30b676d422aa5bc7b547c8e81e8038e386de7baa9f\",\"dweb:/ipfs/QmaTF3AZrJhusrGCKQEiTjbaBHFb7RoBiEDwmRTNau3Mty\"]},\"contracts/types/Descriptor.sol\":{\"keccak256\":\"0x37d21c3ba2b6fc1d92c0f90d4b5b9b6d8c9b16c9d36d769a7be93d16c0402fe4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://683a0796984d0e8a0ba15f01fa3ed8abfcd69d12f61b2eb84b7e3a41dfe48aa1\",\"dweb:/ipfs/QmU4L5AFk9NzYtj8nXELhjhyGiCrZH4kycpdKWeJQir3bT\"]},\"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":"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 TokenSpec","name":"spec","type":"tuple","components":[{"internalType":"enum TokenStandard","name":"std","type":"uint8"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"bytes30","name":"symbol","type":"bytes30"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"UniqueRegistered","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":"UniqueTouched","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":"UniqueTransferred","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},{"internalType":"struct TokenSpec","name":"spec","type":"tuple","components":[{"internalType":"enum TokenStandard","name":"std","type":"uint8"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"bytes30","name":"symbol","type":"bytes30"}],"indexed":false}],"type":"event","name":"UniqueUpdated","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":"UniqueUpgraded","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 TokenSpec","name":"spec","type":"tuple","components":[{"internalType":"enum TokenStandard","name":"std","type":"uint8"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"bytes30","name":"symbol","type":"bytes30"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"ValueRegistered","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":"ValueTouched","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":"ValueTransferred","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},{"internalType":"struct TokenSpec","name":"spec","type":"tuple","components":[{"internalType":"enum TokenStandard","name":"std","type":"uint8"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"bytes30","name":"symbol","type":"bytes30"}],"indexed":false}],"type":"event","name":"ValueUpdated","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":"ValueUpgraded","anonymous":false},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"uniqueDescriptor","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":"uniqueOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"enum TokenStandard","name":"std","type":"uint8"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"uniqueRegister","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":"uniqueRevision","outputs":[{"internalType":"uint32","name":"rev","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"uniqueSnapshot","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":"uniqueSota","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":"uniqueStatus","outputs":[{"internalType":"bool","name":"active","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"uniqueTouch","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":"uniqueTransfer","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":"uniqueUpdate","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":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"uniqueUpdate","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":"uniqueUpgrade","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":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"valueDescriptor","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":"valueOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"enum TokenStandard","name":"std","type":"uint8"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"valueRegister","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":"valueRevision","outputs":[{"internalType":"uint32","name":"rev","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"valueSnapshot","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":"valueSota","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":"valueStatus","outputs":[{"internalType":"bool","name":"active","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"valueTouch","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":"valueTransfer","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":"valueUpdate","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":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"valueUpdate","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":"kindRev0","type":"uint32"},{"internalType":"uint32","name":"setRev0","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"valueUpgrade","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"}]}]}],"devdoc":{"kind":"dev","methods":{"uniqueDescriptor(uint64,uint32)":{"params":{"id":"Unique ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the specified revision"}},"uniqueOwner(uint64)":{"params":{"id":"Unique ID"},"returns":{"owner":"Address of the current owner"}},"uniqueRegister(address,bytes32,uint8,uint8,string)":{"params":{"code":"Address of the token contract","data":"Hash of the associated matter","decimals":"Number of decimals","std":"Token standard (e.g. ERC721)","symbol":"Display symbol (max 30 characters)"},"returns":{"desc":"Descriptor after registration","id":"ID of the new unique"}},"uniqueRevision(uint64,uint32)":{"params":{"id":"Unique ID","rev0":"Requested revision (0 = latest)"},"returns":{"rev":"Resolved revision (0 = not found)"}},"uniqueSnapshot(uint64,uint32)":{"params":{"id":"Unique ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the revision","elems":"Elements at the revision"}},"uniqueSota(uint64)":{"params":{"id":"Unique ID"},"returns":{"desc":"Latest descriptor","owner":"Address of the current owner"}},"uniqueStatus(uint64[])":{"params":{"ids":"List of unique IDs"},"returns":{"active":"True if all exist and are active"}},"uniqueTouch(uint64)":{"params":{"id":"Unique ID"},"returns":{"desc":"Descriptor after touch"}},"uniqueTransfer(uint64,address)":{"params":{"id":"Unique ID","to":"Address of the new owner"},"returns":{"from":"Address of the previous owner"}},"uniqueUpdate(uint64,bytes32)":{"params":{"data":"New data hash","id":"Unique ID"},"returns":{"desc":"Updated descriptor"}},"uniqueUpdate(uint64,bytes32,string)":{"params":{"data":"New data hash","id":"Unique ID","symbol":"New display symbol (max 30 characters)"},"returns":{"desc":"Updated descriptor"}},"uniqueUpgrade(uint64,uint32,uint32)":{"params":{"id":"Unique ID","kindRev":"New kind revision (0 = no change)","setRev":"New set revision (0 = no change)"},"returns":{"desc":"Descriptor after upgrade"}},"valueDescriptor(uint64,uint32)":{"params":{"id":"Value ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the given revision"}},"valueOwner(uint64)":{"params":{"id":"Value ID"},"returns":{"owner":"Current owner's address"}},"valueRegister(address,bytes32,uint8,uint8,string)":{"params":{"code":"Token contract address","data":"Hash of the underlying matter or metadata","decimals":"Token's decimal precision","std":"Token standard (e.g. ERC20)","symbol":"Display symbol (max 30 characters)"},"returns":{"desc":"Descriptor after registration","id":"New value ID"}},"valueRevision(uint64,uint32)":{"params":{"id":"Value ID","rev0":"Requested revision (0 = latest)"},"returns":{"rev":"Validated revision (0 = not found)"}},"valueSnapshot(uint64,uint32)":{"params":{"id":"Value ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the given revision","elems":"Element values at the given revision"}},"valueSota(uint64)":{"params":{"id":"Value ID"},"returns":{"desc":"Latest descriptor","owner":"Current owner's address"}},"valueStatus(uint64[])":{"params":{"ids":"Array of value IDs"},"returns":{"active":"True if all values exist and are active"}},"valueTouch(uint64)":{"params":{"id":"Value ID"},"returns":{"desc":"Descriptor after touch"}},"valueTransfer(uint64,address)":{"params":{"id":"Value ID","to":"Address to transfer ownership to"},"returns":{"from":"Address of the previous owner"}},"valueUpdate(uint64,bytes32)":{"params":{"data":"New data hash","id":"Value ID"},"returns":{"desc":"Updated descriptor (revision bumped)"}},"valueUpdate(uint64,bytes32,string)":{"params":{"data":"New data hash","id":"Value ID","symbol":"New display symbol"},"returns":{"desc":"Updated descriptor"}},"valueUpgrade(uint64,uint32,uint32)":{"params":{"id":"Value ID","kindRev0":"New kind revision (0 = no change)","setRev0":"New set revision (0 = no change)"},"returns":{"desc":"Descriptor after upgrade"}}},"version":1},"userdoc":{"kind":"user","methods":{"uniqueDescriptor(uint64,uint32)":{"notice":"Returns the descriptor at a given revision"},"uniqueOwner(uint64)":{"notice":"Returns the current owner of a unique"},"uniqueRegister(address,bytes32,uint8,uint8,string)":{"notice":"Registers a new unique token"},"uniqueRevision(uint64,uint32)":{"notice":"Resolves and validates a revision"},"uniqueSnapshot(uint64,uint32)":{"notice":"Returns descriptor and elements at a specific revision"},"uniqueSota(uint64)":{"notice":"Returns the latest descriptor and current owner"},"uniqueStatus(uint64[])":{"notice":"Checks whether all given uniques are active (revision > 0)"},"uniqueTouch(uint64)":{"notice":"Bumps the revision of a unique with no content change"},"uniqueTransfer(uint64,address)":{"notice":"Transfers ownership of a unique token"},"uniqueUpdate(uint64,bytes32)":{"notice":"Updates the data hash of a unique"},"uniqueUpdate(uint64,bytes32,string)":{"notice":"Updates the data hash and symbol of a unique"},"uniqueUpgrade(uint64,uint32,uint32)":{"notice":"Upgrades the kind and/or set revision of a unique"},"valueDescriptor(uint64,uint32)":{"notice":"Returns the descriptor of a value at a specific revision"},"valueOwner(uint64)":{"notice":"Returns the current owner of a value"},"valueRegister(address,bytes32,uint8,uint8,string)":{"notice":"Registers a new value token"},"valueRevision(uint64,uint32)":{"notice":"Resolves and validates a revision of a value"},"valueSnapshot(uint64,uint32)":{"notice":"Returns descriptor and elements of a value at a specific revision"},"valueSota(uint64)":{"notice":"Returns the latest descriptor and current owner of a value"},"valueStatus(uint64[])":{"notice":"Checks whether all specified values are active (revision > 0)"},"valueTouch(uint64)":{"notice":"Touches a value, bumping its revision without changing its content"},"valueTransfer(uint64,address)":{"notice":"Transfers ownership of a value to a new address"},"valueUpdate(uint64,bytes32)":{"notice":"Updates the data hash of an existing value"},"valueUpdate(uint64,bytes32,string)":{"notice":"Updates the data hash and symbol of an existing value"},"valueUpgrade(uint64,uint32,uint32)":{"notice":"Upgrades the kind/set revision of a value"}},"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/IElementRegistry.sol":"IElementRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/core/IElementRegistry.sol":{"keccak256":"0x66a57a950d6893a153013f7f3551a816af0e563d1bdb7738af3cb105aaefa391","urls":["bzz-raw://e4d34b5f553a670d95384f8bc5d07d2a6a616eef17a661b9abedb4f70801cfec","dweb:/ipfs/QmPSUMunM2mzbgtp46d6VrSztESDQohUnT9chjvVdC9d5T"],"license":"BUSL-1.1"},"contracts/interfaces/core/IUniqueRegistry.sol":{"keccak256":"0xc86ef36c3bf943c9a26f5311320b759cf6f2759251978213855a987ebe39512a","urls":["bzz-raw://8ea9944c8a9749ecf4ee8c63caaa5712da41b7f012990479bc3415c22ababac8","dweb:/ipfs/Qmb2KyZyYPTgo7ZqqBEXLMxEKHZpeseYrx46ZVhADNtNqi"],"license":"BUSL-1.1"},"contracts/interfaces/core/IValueRegistry.sol":{"keccak256":"0xf00cc5ef9a841d3e03dcd4c76e3976ec87094412621a481e956fabd0f2ca5ff2","urls":["bzz-raw://811cb991f120a2403015ac30b676d422aa5bc7b547c8e81e8038e386de7baa9f","dweb:/ipfs/QmaTF3AZrJhusrGCKQEiTjbaBHFb7RoBiEDwmRTNau3Mty"],"license":"BUSL-1.1"},"contracts/types/Descriptor.sol":{"keccak256":"0x37d21c3ba2b6fc1d92c0f90d4b5b9b6d8c9b16c9d36d769a7be93d16c0402fe4","urls":["bzz-raw://683a0796984d0e8a0ba15f01fa3ed8abfcd69d12f61b2eb84b7e3a41dfe48aa1","dweb:/ipfs/QmU4L5AFk9NzYtj8nXELhjhyGiCrZH4kycpdKWeJQir3bT"],"license":"BUSL-1.1"},"contracts/types/Token.sol":{"keccak256":"0x1a4ca38789517abd90a18e9555755b96bd9466d8b152fc871726186c81587481","urls":["bzz-raw://16b4fa220db0b6be9aaab14eee64fdb58f820c4366cd642ed521a59378035090","dweb:/ipfs/Qme3dhteY6tLAvMdZUqQT31ePvUZvigF5s1NCran3XW4Zt"],"license":"BUSL-1.1"}},"version":1},"id":26}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"abi":[{"type":"function","name":"kindAdmit","inputs":[{"name":"kind","type":"uint64","internalType":"uint64"},{"name":"rev","type":"uint32","internalType":"uint32"},{"name":"rel","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"admit","type":"bool","internalType":"bool"},{"name":"relRev","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"kindDescriptor","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":"kindOwner","inputs":[{"name":"id","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"kindRegister","inputs":[{"name":"code","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"elemSpec","type":"uint8[]","internalType":"enum ElementType[]"},{"name":"rels","type":"uint64[]","internalType":"uint64[]"}],"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":"kindRevision","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":"kindSnapshot","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":"kindSota","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":"kindStatus","inputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"kindTouch","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":"kindTransfer","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":"kindUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"code","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes32","internalType":"bytes32"},{"name":"rels","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":"kindUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"code","type":"bytes32","internalType":"bytes32"},{"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":"kindUpdate","inputs":[{"name":"id","type":"uint64","internalType":"uint64"},{"name":"rels","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":"kindUpgrade","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":"event","name":"KindRegistered","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":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"data","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"elemSpec","type":"uint8[]","indexed":false,"internalType":"enum ElementType[]"},{"name":"rels","type":"uint64[]","indexed":false,"internalType":"uint64[]"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"KindTouched","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":"KindTransferred","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":"KindUpdated","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":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"data","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"rels","type":"uint64[]","indexed":false,"internalType":"uint64[]"}],"anonymous":false},{"type":"event","name":"KindUpgraded","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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"kindAdmit(uint64,uint32,uint64)":"2dc61f7d","kindDescriptor(uint64,uint32)":"944ea872","kindOwner(uint64)":"f30bd4f5","kindRegister(bytes32,bytes32,uint8[],uint64[])":"6798dd49","kindRevision(uint64,uint32)":"8399ebdd","kindSnapshot(uint64,uint32)":"700ae53c","kindSota(uint64)":"944504bc","kindStatus(uint64[])":"1cc3fc72","kindTouch(uint64)":"0383f129","kindTransfer(uint64,address)":"6180feb1","kindUpdate(uint64,bytes32,bytes32)":"72e72578","kindUpdate(uint64,bytes32,bytes32,uint64[])":"31961400","kindUpdate(uint64,uint64[])":"81a90030","kindUpgrade(uint64,uint32,uint32)":"c588ead0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"code\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum ElementType[]\",\"name\":\"elemSpec\",\"type\":\"uint8[]\"},{\"indexed\":false,\"internalType\":\"uint64[]\",\"name\":\"rels\",\"type\":\"uint64[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"KindRegistered\",\"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\":\"KindTouched\",\"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\":\"KindTransferred\",\"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\":\"code\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64[]\",\"name\":\"rels\",\"type\":\"uint64[]\"}],\"name\":\"KindUpdated\",\"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\":\"KindUpgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"kind\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"rel\",\"type\":\"uint64\"}],\"name\":\"kindAdmit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"admit\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"relRev\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"kindDescriptor\",\"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\":\"kindOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"code\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"internalType\":\"enum ElementType[]\",\"name\":\"elemSpec\",\"type\":\"uint8[]\"},{\"internalType\":\"uint64[]\",\"name\":\"rels\",\"type\":\"uint64[]\"}],\"name\":\"kindRegister\",\"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\":\"kindRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"rev\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rev0\",\"type\":\"uint32\"}],\"name\":\"kindSnapshot\",\"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\":\"kindSota\",\"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\":\"kindStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"kindTouch\",\"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\":\"kindTransfer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"code\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"internalType\":\"uint64[]\",\"name\":\"rels\",\"type\":\"uint64[]\"}],\"name\":\"kindUpdate\",\"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\":\"code\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"kindUpdate\",\"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\":\"uint64[]\",\"name\":\"rels\",\"type\":\"uint64[]\"}],\"name\":\"kindUpdate\",\"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\":\"kindUpgrade\",\"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\"}],\"devdoc\":{\"events\":{\"KindRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32,bytes32,uint8[],uint64[],address)\":{\"params\":{\"code\":\"Code hash associated with the kind\",\"data\":\"Data hash associated with the kind\",\"desc\":\"Descriptor after registration\",\"elemSpec\":\"Element type layout for objects of this kind\",\"id\":\"Kind ID\",\"owner\":\"Owner address of the kind\",\"rels\":\"Supported relation IDs\"}},\"KindTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after touch\",\"id\":\"Kind ID\"}},\"KindTransferred(uint64,address,address)\":{\"params\":{\"from\":\"Previous owner\",\"id\":\"Kind ID\",\"to\":\"New owner\"}},\"KindUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32,bytes32,uint64[])\":{\"params\":{\"code\":\"Updated code hash\",\"data\":\"Updated data hash\",\"desc\":\"Updated descriptor\",\"id\":\"Kind ID\",\"rels\":\"Updated supported relations\"}},\"KindUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"params\":{\"desc\":\"Descriptor after upgrade\",\"id\":\"Kind ID\"}}},\"kind\":\"dev\",\"methods\":{\"kindAdmit(uint64,uint32,uint64)\":{\"params\":{\"kind\":\"Kind ID\",\"rel\":\"Relation ID to check\",\"rev\":\"Kind revision (0 = latest)\"},\"returns\":{\"admit\":\"Whether the relation is admitted\",\"relRev\":\"Specific relation revision admitted (0 = latest)\"}},\"kindDescriptor(uint64,uint32)\":{\"params\":{\"id\":\"Kind ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at that revision\"}},\"kindOwner(uint64)\":{\"params\":{\"id\":\"Kind ID\"},\"returns\":{\"owner\":\"Owner address\"}},\"kindRegister(bytes32,bytes32,uint8[],uint64[])\":{\"params\":{\"code\":\"Code hash of the kind\",\"data\":\"Data hash of the kind\",\"elemSpec\":\"Element type layout for objects of this kind\",\"rels\":\"Supported relation IDs\"},\"returns\":{\"desc\":\"Descriptor after registration\",\"id\":\"New kind ID\"}},\"kindRevision(uint64,uint32)\":{\"params\":{\"id\":\"Kind ID\",\"rev0\":\"Revision to check (0 = latest)\"},\"returns\":{\"rev\":\"Valid revision number (0 if not found)\"}},\"kindSnapshot(uint64,uint32)\":{\"params\":{\"id\":\"Kind ID\",\"rev0\":\"Revision to query (0 = latest)\"},\"returns\":{\"desc\":\"Descriptor at the revision\",\"elems\":\"Element hashes of the kind at the revision\"}},\"kindSota(uint64)\":{\"params\":{\"id\":\"Kind ID\"},\"returns\":{\"desc\":\"Latest descriptor\",\"owner\":\"Current owner address\"}},\"kindStatus(uint64[])\":{\"params\":{\"ids\":\"List of kind IDs\"},\"returns\":{\"active\":\"True if all specified kinds exist and are active\"}},\"kindTouch(uint64)\":{\"params\":{\"id\":\"Kind ID\"},\"returns\":{\"desc\":\"Descriptor after touch\"}},\"kindTransfer(uint64,address)\":{\"params\":{\"id\":\"Kind ID\",\"to\":\"New owner address\"},\"returns\":{\"from\":\"Previous owner address\"}},\"kindUpdate(uint64,bytes32,bytes32)\":{\"params\":{\"code\":\"New code hash (0 = skip)\",\"data\":\"New data hash (0 = skip)\",\"id\":\"Kind ID\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"kindUpdate(uint64,bytes32,bytes32,uint64[])\":{\"params\":{\"code\":\"New code hash (0 = skip)\",\"data\":\"New data hash (0 = skip)\",\"id\":\"Kind ID\",\"rels\":\"Updated relation list\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"kindUpdate(uint64,uint64[])\":{\"params\":{\"id\":\"Kind ID\",\"rels\":\"Updated relation list\"},\"returns\":{\"desc\":\"Updated descriptor\"}},\"kindUpgrade(uint64,uint32,uint32)\":{\"params\":{\"id\":\"Kind ID\",\"kindRev\":\"New kind revision (0 = skip)\",\"setRev\":\"New set revision (0 = skip)\"},\"returns\":{\"desc\":\"Descriptor after upgrade\"}}},\"title\":\"IKindRegistry\",\"version\":1},\"userdoc\":{\"events\":{\"KindRegistered(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32,bytes32,uint8[],uint64[],address)\":{\"notice\":\"Emitted when a new kind is registered\"},\"KindTouched(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a kind is touched (revision bump only)\"},\"KindTransferred(uint64,address,address)\":{\"notice\":\"Emitted when kind ownership is transferred\"},\"KindUpdated(uint64,(uint32,uint32,uint32,uint32,uint64,uint64),bytes32,bytes32,uint64[])\":{\"notice\":\"Emitted when a kind is updated\"},\"KindUpgraded(uint64,(uint32,uint32,uint32,uint32,uint64,uint64))\":{\"notice\":\"Emitted when a kind is upgraded\"}},\"kind\":\"user\",\"methods\":{\"kindAdmit(uint64,uint32,uint64)\":{\"notice\":\"Checks whether a kind at a given revision admits a specific relation\"},\"kindDescriptor(uint64,uint32)\":{\"notice\":\"Returns the descriptor at a given revision\"},\"kindOwner(uint64)\":{\"notice\":\"Returns the current owner of a kind\"},\"kindRegister(bytes32,bytes32,uint8[],uint64[])\":{\"notice\":\"Registers a new kind\"},\"kindRevision(uint64,uint32)\":{\"notice\":\"Resolves and validates a specific revision\"},\"kindSnapshot(uint64,uint32)\":{\"notice\":\"Returns descriptor and elements at a specific revision\"},\"kindSota(uint64)\":{\"notice\":\"Returns the latest descriptor and current owner of a kind\"},\"kindStatus(uint64[])\":{\"notice\":\"Checks whether all specified kinds are active (rev > 0)\"},\"kindTouch(uint64)\":{\"notice\":\"Touches a kind (bumps revision with no content changes)\"},\"kindTransfer(uint64,address)\":{\"notice\":\"Transfers ownership of a kind\"},\"kindUpdate(uint64,bytes32,bytes32)\":{\"notice\":\"Updates code and/or data of an existing kind\"},\"kindUpdate(uint64,bytes32,bytes32,uint64[])\":{\"notice\":\"Updates code, data, and relations of an existing kind\"},\"kindUpdate(uint64,uint64[])\":{\"notice\":\"Updates supported relations of an existing kind\"},\"kindUpgrade(uint64,uint32,uint32)\":{\"notice\":\"Upgrades kind/set revision of an existing kind\"}},\"notice\":\"Interface for managing and registering object kinds\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/core/IKindRegistry.sol\":\"IKindRegistry\"},\"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/IKindRegistry.sol\":{\"keccak256\":\"0x1fafc5ff965ba91caa8fcb86af8e2c9ec95b0629e488a76004ac38bdab6f2ad9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://08f8596d01747b8e4078525eb54f206562c11a510491ce0c5a881f0c303df00c\",\"dweb:/ipfs/QmPXj59oTBwPbzsM6WZjWJXNLvf5THj2NsDHod7oaoD6nA\"]},\"contracts/types/Descriptor.sol\":{\"keccak256\":\"0x37d21c3ba2b6fc1d92c0f90d4b5b9b6d8c9b16c9d36d769a7be93d16c0402fe4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://683a0796984d0e8a0ba15f01fa3ed8abfcd69d12f61b2eb84b7e3a41dfe48aa1\",\"dweb:/ipfs/QmU4L5AFk9NzYtj8nXELhjhyGiCrZH4kycpdKWeJQir3bT\"]},\"contracts/types/Element.sol\":{\"keccak256\":\"0x78c4d22125d02eba70d42950967bce8cef9143ade1652d3f66d60ae4459706b3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c4b4588b0d125419d991c30069814214c26b28d783808e38246940f5c1062d0c\",\"dweb:/ipfs/QmNpTwSHkjoRSNKicogKqKYC8DPi5iAPd9tyA4R4xp4UMQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"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":"code","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"data","type":"bytes32","indexed":false},{"internalType":"enum ElementType[]","name":"elemSpec","type":"uint8[]","indexed":false},{"internalType":"uint64[]","name":"rels","type":"uint64[]","indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"KindRegistered","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":"KindTouched","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":"KindTransferred","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":"code","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"data","type":"bytes32","indexed":false},{"internalType":"uint64[]","name":"rels","type":"uint64[]","indexed":false}],"type":"event","name":"KindUpdated","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":"KindUpgraded","anonymous":false},{"inputs":[{"internalType":"uint64","name":"kind","type":"uint64"},{"internalType":"uint32","name":"rev","type":"uint32"},{"internalType":"uint64","name":"rel","type":"uint64"}],"stateMutability":"view","type":"function","name":"kindAdmit","outputs":[{"internalType":"bool","name":"admit","type":"bool"},{"internalType":"uint32","name":"relRev","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"kindDescriptor","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":"kindOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"code","type":"bytes32"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"enum ElementType[]","name":"elemSpec","type":"uint8[]"},{"internalType":"uint64[]","name":"rels","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"kindRegister","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":"kindRevision","outputs":[{"internalType":"uint32","name":"rev","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"uint32","name":"rev0","type":"uint32"}],"stateMutability":"view","type":"function","name":"kindSnapshot","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":"kindSota","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":"kindStatus","outputs":[{"internalType":"bool","name":"active","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"kindTouch","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":"kindTransfer","outputs":[{"internalType":"address","name":"from","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"id","type":"uint64"},{"internalType":"bytes32","name":"code","type":"bytes32"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"uint64[]","name":"rels","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"kindUpdate","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":"code","type":"bytes32"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"kindUpdate","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":"uint64[]","name":"rels","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"kindUpdate","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":"kindUpgrade","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"}]}]}],"devdoc":{"kind":"dev","methods":{"kindAdmit(uint64,uint32,uint64)":{"params":{"kind":"Kind ID","rel":"Relation ID to check","rev":"Kind revision (0 = latest)"},"returns":{"admit":"Whether the relation is admitted","relRev":"Specific relation revision admitted (0 = latest)"}},"kindDescriptor(uint64,uint32)":{"params":{"id":"Kind ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at that revision"}},"kindOwner(uint64)":{"params":{"id":"Kind ID"},"returns":{"owner":"Owner address"}},"kindRegister(bytes32,bytes32,uint8[],uint64[])":{"params":{"code":"Code hash of the kind","data":"Data hash of the kind","elemSpec":"Element type layout for objects of this kind","rels":"Supported relation IDs"},"returns":{"desc":"Descriptor after registration","id":"New kind ID"}},"kindRevision(uint64,uint32)":{"params":{"id":"Kind ID","rev0":"Revision to check (0 = latest)"},"returns":{"rev":"Valid revision number (0 if not found)"}},"kindSnapshot(uint64,uint32)":{"params":{"id":"Kind ID","rev0":"Revision to query (0 = latest)"},"returns":{"desc":"Descriptor at the revision","elems":"Element hashes of the kind at the revision"}},"kindSota(uint64)":{"params":{"id":"Kind ID"},"returns":{"desc":"Latest descriptor","owner":"Current owner address"}},"kindStatus(uint64[])":{"params":{"ids":"List of kind IDs"},"returns":{"active":"True if all specified kinds exist and are active"}},"kindTouch(uint64)":{"params":{"id":"Kind ID"},"returns":{"desc":"Descriptor after touch"}},"kindTransfer(uint64,address)":{"params":{"id":"Kind ID","to":"New owner address"},"returns":{"from":"Previous owner address"}},"kindUpdate(uint64,bytes32,bytes32)":{"params":{"code":"New code hash (0 = skip)","data":"New data hash (0 = skip)","id":"Kind ID"},"returns":{"desc":"Updated descriptor"}},"kindUpdate(uint64,bytes32,bytes32,uint64[])":{"params":{"code":"New code hash (0 = skip)","data":"New data hash (0 = skip)","id":"Kind ID","rels":"Updated relation list"},"returns":{"desc":"Updated descriptor"}},"kindUpdate(uint64,uint64[])":{"params":{"id":"Kind ID","rels":"Updated relation list"},"returns":{"desc":"Updated descriptor"}},"kindUpgrade(uint64,uint32,uint32)":{"params":{"id":"Kind ID","kindRev":"New kind revision (0 = skip)","setRev":"New set revision (0 = skip)"},"returns":{"desc":"Descriptor after upgrade"}}},"version":1},"userdoc":{"kind":"user","methods":{"kindAdmit(uint64,uint32,uint64)":{"notice":"Checks whether a kind at a given revision admits a specific relation"},"kindDescriptor(uint64,uint32)":{"notice":"Returns the descriptor at a given revision"},"kindOwner(uint64)":{"notice":"Returns the current owner of a kind"},"kindRegister(bytes32,bytes32,uint8[],uint64[])":{"notice":"Registers a new kind"},"kindRevision(uint64,uint32)":{"notice":"Resolves and validates a specific revision"},"kindSnapshot(uint64,uint32)":{"notice":"Returns descriptor and elements at a specific revision"},"kindSota(uint64)":{"notice":"Returns the latest descriptor and current owner of a kind"},"kindStatus(uint64[])":{"notice":"Checks whether all specified kinds are active (rev > 0)"},"kindTouch(uint64)":{"notice":"Touches a kind (bumps revision with no content changes)"},"kindTransfer(uint64,address)":{"notice":"Transfers ownership of a kind"},"kindUpdate(uint64,bytes32,bytes32)":{"notice":"Updates code and/or data of an existing kind"},"kindUpdate(uint64,bytes32,bytes32,uint64[])":{"notice":"Updates code, data, and relations of an existing kind"},"kindUpdate(uint64,uint64[])":{"notice":"Updates supported relations of an existing kind"},"kindUpgrade(uint64,uint32,uint32)":{"notice":"Upgrades kind/set revision of an existing kind"}},"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/IKindRegistry.sol":"IKindRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/core/IKindRegistry.sol":{"keccak256":"0x1fafc5ff965ba91caa8fcb86af8e2c9ec95b0629e488a76004ac38bdab6f2ad9","urls":["bzz-raw://08f8596d01747b8e4078525eb54f206562c11a510491ce0c5a881f0c303df00c","dweb:/ipfs/QmPXj59oTBwPbzsM6WZjWJXNLvf5THj2NsDHod7oaoD6nA"],"license":"BUSL-1.1"},"contracts/types/Descriptor.sol":{"keccak256":"0x37d21c3ba2b6fc1d92c0f90d4b5b9b6d8c9b16c9d36d769a7be93d16c0402fe4","urls":["bzz-raw://683a0796984d0e8a0ba15f01fa3ed8abfcd69d12f61b2eb84b7e3a41dfe48aa1","dweb:/ipfs/QmU4L5AFk9NzYtj8nXELhjhyGiCrZH4kycpdKWeJQir3bT"],"license":"BUSL-1.1"},"contracts/types/Element.sol":{"keccak256":"0x78c4d22125d02eba70d42950967bce8cef9143ade1652d3f66d60ae4459706b3","urls":["bzz-raw://c4b4588b0d125419d991c30069814214c26b28d783808e38246940f5c1062d0c","dweb:/ipfs/QmNpTwSHkjoRSNKicogKqKYC8DPi5iAPd9tyA4R4xp4UMQ"],"license":"BUSL-1.1"}},"version":1},"id":27}
|