@etherisc/gif-next 0.0.2-dc7e4cb-141 → 0.0.2-de220d6-949
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/README.md +5 -14
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +2 -2
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +2 -2
- package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IIncrementRevert.dbg.json +4 -0
- package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IIncrementRevert.json +27 -0
- package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IncrementRevert.dbg.json +4 -0
- package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IncrementRevert.json +83 -0
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/IRevert.dbg.json +4 -0
- package/artifacts/contracts/experiment/errors/Revert.sol/IRevert.json +75 -0
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +34 -2
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -195
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +202 -269
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{service → base}/ComponentServiceBase.sol/ComponentServiceBase.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{IServiceLinked.sol/IServiceLinked.json → base/IInstanceBase.sol/IInstanceBase.json} +15 -2
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +511 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/{module/lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/instance/{service → base}/IService.sol/IService.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{InstanceBase.sol → base/InstanceBase.sol}/InstanceBase.json +14 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +692 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.json +10 -0
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{service → base}/ServiceBase.sol/ServiceBase.json +1 -1
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +50 -30
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +50 -30
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +1 -1
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +12 -2
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +12 -2
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +34 -2
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +4 -4
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +2 -2
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +38 -4
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +2 -2
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +111 -0
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/BaseComponent.sol +0 -1
- package/contracts/experiment/errors/IncrementRevert.sol +43 -0
- package/contracts/experiment/errors/Revert.sol +13 -4
- package/contracts/instance/IInstance.sol +9 -10
- package/contracts/instance/Instance.sol +9 -7
- package/contracts/instance/{service → base}/ComponentServiceBase.sol +1 -0
- package/contracts/instance/base/IInstanceBase.sol +14 -0
- package/contracts/instance/base/IKeyValueStore.sol +49 -0
- package/contracts/instance/base/ILifecycle.sol +30 -0
- package/contracts/instance/{InstanceBase.sol → base/InstanceBase.sol} +20 -11
- package/contracts/instance/base/KeyValueStore.sol +156 -0
- package/contracts/instance/{module/lifecycle/LifecycleModule.sol → base/Lifecycle.sol} +36 -30
- package/contracts/instance/base/ModuleBase.sol +52 -0
- package/contracts/instance/{service → base}/ServiceBase.sol +0 -2
- package/contracts/instance/module/access/Access.sol +3 -3
- package/contracts/instance/module/bundle/BundleModule.sol +24 -116
- package/contracts/instance/module/bundle/IBundle.sol +8 -3
- package/contracts/instance/module/component/ComponentModule.sol +10 -18
- package/contracts/instance/module/policy/IPolicy.sol +2 -1
- package/contracts/instance/module/policy/PolicyModule.sol +4 -11
- package/contracts/instance/service/ComponentOwnerService.sol +1 -2
- package/contracts/instance/service/IComponentOwnerService.sol +1 -1
- package/contracts/instance/service/IPoolService.sol +1 -1
- package/contracts/instance/service/IProductService.sol +1 -1
- package/contracts/instance/service/PoolService.sol +1 -1
- package/contracts/instance/service/ProductService.sol +2 -3
- package/contracts/registry/Registry.sol +1 -1
- package/contracts/test/TestRoleId.sol +2 -2
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Key32.sol +45 -0
- package/contracts/types/NftId.sol +16 -1
- package/contracts/types/RoleId.sol +11 -9
- package/contracts/types/StateId.sol +7 -1
- package/package.json +1 -1
- package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
- package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/contracts/instance/IServiceLinked.sol +0 -12
- package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
- /package/contracts/instance/{service → base}/IService.sol +0 -0
@@ -83,10 +83,71 @@
|
|
83
83
|
],
|
84
84
|
"stateMutability": "pure",
|
85
85
|
"type": "function"
|
86
|
+
},
|
87
|
+
{
|
88
|
+
"inputs": [
|
89
|
+
{
|
90
|
+
"internalType": "NftId",
|
91
|
+
"name": "id",
|
92
|
+
"type": "uint96"
|
93
|
+
},
|
94
|
+
{
|
95
|
+
"internalType": "ObjectType",
|
96
|
+
"name": "objectType",
|
97
|
+
"type": "uint8"
|
98
|
+
}
|
99
|
+
],
|
100
|
+
"name": "toKey32",
|
101
|
+
"outputs": [
|
102
|
+
{
|
103
|
+
"internalType": "Key32",
|
104
|
+
"name": "key",
|
105
|
+
"type": "bytes32"
|
106
|
+
}
|
107
|
+
],
|
108
|
+
"stateMutability": "pure",
|
109
|
+
"type": "function"
|
110
|
+
},
|
111
|
+
{
|
112
|
+
"inputs": [
|
113
|
+
{
|
114
|
+
"internalType": "NftId",
|
115
|
+
"name": "id",
|
116
|
+
"type": "uint96"
|
117
|
+
}
|
118
|
+
],
|
119
|
+
"name": "toKeyId",
|
120
|
+
"outputs": [
|
121
|
+
{
|
122
|
+
"internalType": "KeyId",
|
123
|
+
"name": "keyId",
|
124
|
+
"type": "bytes31"
|
125
|
+
}
|
126
|
+
],
|
127
|
+
"stateMutability": "pure",
|
128
|
+
"type": "function"
|
86
129
|
}
|
87
130
|
],
|
88
|
-
"bytecode": "
|
89
|
-
"deployedBytecode": "
|
90
|
-
"linkReferences": {
|
91
|
-
|
131
|
+
"bytecode": "0x6102fa61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c806308dc895e1461007157806330b8415f1461009f5780633889a4c8146100cb57806340a8cd9e146100ec57806352694ee814610122578063c4cade9d1461013d575b600080fd5b61008261007f366004610220565b90565b6040516001600160601b0390911681526020015b60405180910390f35b6100bb6100ad366004610220565b6001600160601b0316151590565b6040519015158152602001610096565b6100de6100d936600461023b565b610161565b604051908152602001610096565b61010f6100fa366004610220565b60081b6cffffffffffffffffffffffff001690565b60405160ff199091168152602001610096565b6100bb610130366004610220565b6001600160601b03161590565b6100bb61014b366004610278565b60006001600160601b03808416908316146101fd565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce83600886901b6cffffffffffffffffffffffff00166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906102ab565b9392505050565b80356001600160601b038116811461021b57600080fd5b919050565b60006020828403121561023257600080fd5b6101fd82610204565b6000806040838503121561024e57600080fd5b61025783610204565b9150602083013560ff8116811461026d57600080fd5b809150509250929050565b6000806040838503121561028b57600080fd5b61029483610204565b91506102a260208401610204565b90509250929050565b6000602082840312156102bd57600080fd5b505191905056fea2646970667358221220df26126a07b6b22c5aa899d018fa4432b5bd97173c5abb9e0c874c0310162a6864736f6c63430008140033",
|
132
|
+
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c806308dc895e1461007157806330b8415f1461009f5780633889a4c8146100cb57806340a8cd9e146100ec57806352694ee814610122578063c4cade9d1461013d575b600080fd5b61008261007f366004610220565b90565b6040516001600160601b0390911681526020015b60405180910390f35b6100bb6100ad366004610220565b6001600160601b0316151590565b6040519015158152602001610096565b6100de6100d936600461023b565b610161565b604051908152602001610096565b61010f6100fa366004610220565b60081b6cffffffffffffffffffffffff001690565b60405160ff199091168152602001610096565b6100bb610130366004610220565b6001600160601b03161590565b6100bb61014b366004610278565b60006001600160601b03808416908316146101fd565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce83600886901b6cffffffffffffffffffffffff00166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906102ab565b9392505050565b80356001600160601b038116811461021b57600080fd5b919050565b60006020828403121561023257600080fd5b6101fd82610204565b6000806040838503121561024e57600080fd5b61025783610204565b9150602083013560ff8116811461026d57600080fd5b809150509250929050565b6000806040838503121561028b57600080fd5b61029483610204565b91506102a260208401610204565b90509250929050565b6000602082840312156102bd57600080fd5b505191905056fea2646970667358221220df26126a07b6b22c5aa899d018fa4432b5bd97173c5abb9e0c874c0310162a6864736f6c63430008140033",
|
133
|
+
"linkReferences": {
|
134
|
+
"contracts/types/Key32.sol": {
|
135
|
+
"Key32Lib": [
|
136
|
+
{
|
137
|
+
"length": 20,
|
138
|
+
"start": 415
|
139
|
+
}
|
140
|
+
]
|
141
|
+
}
|
142
|
+
},
|
143
|
+
"deployedLinkReferences": {
|
144
|
+
"contracts/types/Key32.sol": {
|
145
|
+
"Key32Lib": [
|
146
|
+
{
|
147
|
+
"length": 20,
|
148
|
+
"start": 357
|
149
|
+
}
|
150
|
+
]
|
151
|
+
}
|
152
|
+
}
|
92
153
|
}
|
@@ -3,8 +3,8 @@
|
|
3
3
|
"contractName": "LibNftIdSet",
|
4
4
|
"sourceName": "contracts/types/NftIdSet.sol",
|
5
5
|
"abi": [],
|
6
|
-
"bytecode": "
|
7
|
-
"deployedBytecode": "
|
6
|
+
"bytecode": "0x61048d61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80632bfdd6b91461007157806331a97de214610099578063a3082a18146100ac578063a73d5756146100cc578063d2fa1e36146100ec578063e797d8991461010c575b600080fd5b61008461007f366004610393565b610137565b60405190151581526020015b60405180910390f35b6100846100a73660046103cf565b541590565b8180156100b857600080fd5b506100846100c7366004610393565b61015b565b8180156100d857600080fd5b506100846100e7366004610393565b6101da565b6100fe6100fa3660046103cf565b5490565b604051908152602001610090565b61011f61011a3660046103e8565b61034b565b6040516001600160601b039091168152602001610090565b6001600160601b038116600090815260018301602052604090205415155b92915050565b6001600160601b038116600090815260018301602052604081205481036101d2575081546001818101845560008481526020808220600285040180546001600160601b03808816600c978716979097026101000a878102910219909116179055855493825282860190526040902091909155610155565b506000610155565b6001600160601b0381166000908152600183016020526040812054801561034157600061020860018361040a565b855490915060009061021c9060019061040a565b90508181146102c657600086600001828154811061023c5761023c61042b565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b031690508087600001848154811061027d5761027d61042b565b60009182526020808320600283040180546001600160601b03958616600c6001958616026101000a90810290870219909116179055939092168152908801909152604090208390555b85548690806102d7576102d7610441565b6001900381819060005260206000209060029182820401919006600c026101000a8154906001600160601b0302191690559055856001016000866001600160601b03166001600160601b031681526020019081526020016000206000905560019350505050610155565b6000915050610155565b60008260000182815481106103625761036261042b565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b0316905092915050565b600080604083850312156103a657600080fd5b8235915060208301356001600160601b03811681146103c457600080fd5b809150509250929050565b6000602082840312156103e157600080fd5b5035919050565b600080604083850312156103fb57600080fd5b50508035926020909101359150565b8181038181111561015557634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea26469706673582212203671666ea18cfda18ca091df4619c96f246117d64794b84cdca8490cc177435364736f6c63430008140033",
|
7
|
+
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80632bfdd6b91461007157806331a97de214610099578063a3082a18146100ac578063a73d5756146100cc578063d2fa1e36146100ec578063e797d8991461010c575b600080fd5b61008461007f366004610393565b610137565b60405190151581526020015b60405180910390f35b6100846100a73660046103cf565b541590565b8180156100b857600080fd5b506100846100c7366004610393565b61015b565b8180156100d857600080fd5b506100846100e7366004610393565b6101da565b6100fe6100fa3660046103cf565b5490565b604051908152602001610090565b61011f61011a3660046103e8565b61034b565b6040516001600160601b039091168152602001610090565b6001600160601b038116600090815260018301602052604090205415155b92915050565b6001600160601b038116600090815260018301602052604081205481036101d2575081546001818101845560008481526020808220600285040180546001600160601b03808816600c978716979097026101000a878102910219909116179055855493825282860190526040902091909155610155565b506000610155565b6001600160601b0381166000908152600183016020526040812054801561034157600061020860018361040a565b855490915060009061021c9060019061040a565b90508181146102c657600086600001828154811061023c5761023c61042b565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b031690508087600001848154811061027d5761027d61042b565b60009182526020808320600283040180546001600160601b03958616600c6001958616026101000a90810290870219909116179055939092168152908801909152604090208390555b85548690806102d7576102d7610441565b6001900381819060005260206000209060029182820401919006600c026101000a8154906001600160601b0302191690559055856001016000866001600160601b03166001600160601b031681526020019081526020016000206000905560019350505050610155565b6000915050610155565b60008260000182815481106103625761036261042b565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b0316905092915050565b600080604083850312156103a657600080fd5b8235915060208301356001600160601b03811681146103c457600080fd5b809150509250929050565b6000602082840312156103e157600080fd5b5035919050565b600080604083850312156103fb57600080fd5b50508035926020909101359150565b8181038181111561015557634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea26469706673582212203671666ea18cfda18ca091df4619c96f246117d64794b84cdca8490cc177435364736f6c63430008140033",
|
8
8
|
"linkReferences": {},
|
9
9
|
"deployedLinkReferences": {}
|
10
10
|
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"_format": "hh-sol-artifact-1",
|
3
|
+
"contractName": "RoleIdLib",
|
4
|
+
"sourceName": "contracts/types/RoleId.sol",
|
5
|
+
"abi": [
|
6
|
+
{
|
7
|
+
"inputs": [
|
8
|
+
{
|
9
|
+
"internalType": "string",
|
10
|
+
"name": "role",
|
11
|
+
"type": "string"
|
12
|
+
}
|
13
|
+
],
|
14
|
+
"name": "toRoleId",
|
15
|
+
"outputs": [
|
16
|
+
{
|
17
|
+
"internalType": "RoleId",
|
18
|
+
"name": "",
|
19
|
+
"type": "bytes8"
|
20
|
+
}
|
21
|
+
],
|
22
|
+
"stateMutability": "pure",
|
23
|
+
"type": "function"
|
24
|
+
}
|
25
|
+
],
|
26
|
+
"bytecode": "0x6101e561003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063e14787cb1461003a575b600080fd5b61004d6100483660046100b0565b61006a565b6040516001600160c01b0319909116815260200160405180910390f35b60008160405160200161007d9190610161565b604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156100c257600080fd5b813567ffffffffffffffff808211156100da57600080fd5b818401915084601f8301126100ee57600080fd5b8135818111156101005761010061009a565b604051601f8201601f19908116603f011681019083821181831017156101285761012861009a565b8160405282815287602084870101111561014157600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b8181101561018e57858101830151858201604001528201610172565b506000604082860101526040601f19601f830116850101925050509291505056fea264697066735822122014adc4b849bd9afd84a3b1a9fac090c52ba8dc67a14adca8a18a281f4f5d618d64736f6c63430008140033",
|
27
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063e14787cb1461003a575b600080fd5b61004d6100483660046100b0565b61006a565b6040516001600160c01b0319909116815260200160405180910390f35b60008160405160200161007d9190610161565b604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156100c257600080fd5b813567ffffffffffffffff808211156100da57600080fd5b818401915084601f8301126100ee57600080fd5b8135818111156101005761010061009a565b604051601f8201601f19908116603f011681019083821181831017156101285761012861009a565b8160405282815287602084870101111561014157600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b8181101561018e57858101830151858201604001528201610172565b506000604082860101526040601f19601f830116850101925050509291505056fea264697066735822122014adc4b849bd9afd84a3b1a9fac090c52ba8dc67a14adca8a18a281f4f5d618d64736f6c63430008140033",
|
28
|
+
"linkReferences": {},
|
29
|
+
"deployedLinkReferences": {}
|
30
|
+
}
|
@@ -85,8 +85,8 @@
|
|
85
85
|
"type": "function"
|
86
86
|
}
|
87
87
|
],
|
88
|
-
"bytecode": "
|
89
|
-
"deployedBytecode": "
|
88
|
+
"bytecode": "0x61018c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80632c2f8a671461005b5780636f91962014610083578063ac43d83414610098578063b2466acf146100c9575b600080fd5b61006e610069366004610108565b6100df565b60405190151581526020015b60405180910390f35b61006e61009136600461013b565b60ff161590565b6100ac6100a636600461013b565b60ff1690565b6040516bffffffffffffffffffffffff909116815260200161007a565b61006e6100d736600461013b565b60ff16151590565b600060ff808416908316145b9392505050565b803560ff8116811461010357600080fd5b919050565b6000806040838503121561011b57600080fd5b610124836100f2565b9150610132602084016100f2565b90509250929050565b60006020828403121561014d57600080fd5b6100eb826100f256fea2646970667358221220cd3ba790b6ede070d3b32f6205741f67fdd82bf17dc91ff99902cd5f2ce0711a64736f6c63430008140033",
|
89
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80632c2f8a671461005b5780636f91962014610083578063ac43d83414610098578063b2466acf146100c9575b600080fd5b61006e610069366004610108565b6100df565b60405190151581526020015b60405180910390f35b61006e61009136600461013b565b60ff161590565b6100ac6100a636600461013b565b60ff1690565b6040516bffffffffffffffffffffffff909116815260200161007a565b61006e6100d736600461013b565b60ff16151590565b600060ff808416908316145b9392505050565b803560ff8116811461010357600080fd5b919050565b6000806040838503121561011b57600080fd5b610124836100f2565b9150610132602084016100f2565b90509250929050565b60006020828403121561014d57600080fd5b6100eb826100f256fea2646970667358221220cd3ba790b6ede070d3b32f6205741f67fdd82bf17dc91ff99902cd5f2ce0711a64736f6c63430008140033",
|
90
90
|
"linkReferences": {},
|
91
91
|
"deployedLinkReferences": {}
|
92
92
|
}
|
@@ -8,7 +8,6 @@ import {Registerable} from "../shared/Registerable.sol";
|
|
8
8
|
|
9
9
|
import {IRegistry} from "../registry/IRegistry.sol";
|
10
10
|
import {IInstance} from "../instance/IInstance.sol";
|
11
|
-
import {IServiceLinked} from "../instance/IServiceLinked.sol";
|
12
11
|
|
13
12
|
import {IInstance} from "../instance/IInstance.sol";
|
14
13
|
import {IComponent, IComponentModule} from "../instance/module/component/IComponent.sol";
|
@@ -0,0 +1,43 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
interface IIncrementRevert {
|
5
|
+
error ErrorMaximumValueExceed();
|
6
|
+
error ErrorIncrementTooLarge(uint256 value);
|
7
|
+
}
|
8
|
+
|
9
|
+
contract IncrementRevert is IIncrementRevert {
|
10
|
+
uint256 private _limit;
|
11
|
+
uint256 private _value;
|
12
|
+
|
13
|
+
constructor(uint256 limit) {
|
14
|
+
_limit = limit;
|
15
|
+
_value = 0;
|
16
|
+
}
|
17
|
+
|
18
|
+
function getValue() external view returns (uint256) {
|
19
|
+
return _value;
|
20
|
+
}
|
21
|
+
|
22
|
+
function increment() external returns (uint256) {
|
23
|
+
if (_value + 1 >= _limit) {
|
24
|
+
revert ErrorMaximumValueExceed();
|
25
|
+
}
|
26
|
+
_value += 1;
|
27
|
+
return _value;
|
28
|
+
}
|
29
|
+
|
30
|
+
function increment(uint256 inc) external returns (uint256) {
|
31
|
+
if (inc > 9) {
|
32
|
+
revert ErrorIncrementTooLarge(inc);
|
33
|
+
}
|
34
|
+
|
35
|
+
if (_value + inc >= _limit) {
|
36
|
+
revert ErrorMaximumValueExceed();
|
37
|
+
}
|
38
|
+
|
39
|
+
_value += inc;
|
40
|
+
return _value;
|
41
|
+
}
|
42
|
+
|
43
|
+
}
|
@@ -1,11 +1,17 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
|
4
|
+
interface IRevert {
|
5
5
|
error AsmallerThanB_S();
|
6
6
|
error AsmallerThanB_M(uint a);
|
7
7
|
error AsmallerThanB_L(uint a, uint b);
|
8
|
+
error Error001AsmallerThanB_S();
|
9
|
+
error Error002AsmallerThanB_M(uint a);
|
10
|
+
error Error003AsmallerThanB_L(uint a, uint b);
|
11
|
+
}
|
8
12
|
|
13
|
+
contract Revert is IRevert {
|
14
|
+
|
9
15
|
uint256 private _b;
|
10
16
|
|
11
17
|
constructor() {
|
@@ -16,7 +22,7 @@ contract Revert {
|
|
16
22
|
uint a
|
17
23
|
) external view returns (bool isLarger) {
|
18
24
|
if (a <= _b) {
|
19
|
-
revert
|
25
|
+
revert Error001AsmallerThanB_S();
|
20
26
|
}
|
21
27
|
|
22
28
|
return true;
|
@@ -25,8 +31,11 @@ contract Revert {
|
|
25
31
|
function isAlargerThanBRevert_M(
|
26
32
|
uint a
|
27
33
|
) external view returns (bool isLarger) {
|
34
|
+
if (a == 0) {
|
35
|
+
revert Error002AsmallerThanB_M(0);
|
36
|
+
}
|
28
37
|
if (a <= _b) {
|
29
|
-
revert
|
38
|
+
revert Error002AsmallerThanB_M(a);
|
30
39
|
}
|
31
40
|
|
32
41
|
return true;
|
@@ -36,7 +45,7 @@ contract Revert {
|
|
36
45
|
uint a
|
37
46
|
) external view returns (bool isLarger) {
|
38
47
|
if (a <= _b) {
|
39
|
-
revert
|
48
|
+
revert Error003AsmallerThanB_L(a, _b);
|
40
49
|
}
|
41
50
|
|
42
51
|
return true;
|
@@ -3,7 +3,6 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
5
|
|
6
|
-
|
7
6
|
import {IVersionable} from "../shared/IVersionable.sol";
|
8
7
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
9
8
|
import {IOwnable} from "../shared/IOwnable.sol";
|
@@ -12,20 +11,19 @@ import {RoleId} from "../types/RoleId.sol";
|
|
12
11
|
import {IAccessModule} from "./module/access/IAccess.sol";
|
13
12
|
import {IBundleModule} from "./module/bundle/IBundle.sol";
|
14
13
|
import {ICompensationModule} from "./module/compensation/ICompensation.sol";
|
15
|
-
import {ILifecycleModule} from "./module/lifecycle/ILifecycle.sol";
|
16
14
|
import {IComponentModule} from "./module/component/IComponent.sol";
|
17
15
|
import {IPolicyModule} from "./module/policy/IPolicy.sol";
|
18
16
|
import {IPoolModule} from "./module/pool/IPoolModule.sol";
|
19
17
|
import {IRiskModule} from "./module/risk/IRisk.sol";
|
20
18
|
import {ITreasuryModule} from "./module/treasury/ITreasury.sol";
|
21
19
|
|
20
|
+
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
22
21
|
import {IRegistry, IRegistryLinked} from "../registry/IRegistryLinked.sol";
|
23
|
-
import {IServiceLinked} from "./IServiceLinked.sol";
|
24
22
|
|
25
23
|
import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
|
26
24
|
import {IProductService} from "./service/IProductService.sol";
|
27
25
|
import {IPoolService} from "./service/IPoolService.sol";
|
28
|
-
|
26
|
+
import {IInstanceBase} from "./base/IInstanceBase.sol";
|
29
27
|
|
30
28
|
// solhint-disable-next-line no-empty-blocks
|
31
29
|
interface IInstance is
|
@@ -33,21 +31,22 @@ interface IInstance is
|
|
33
31
|
IVersionable,
|
34
32
|
IRegisterable,
|
35
33
|
IAccessModule,
|
36
|
-
ILifecycleModule,
|
37
34
|
IPolicyModule,
|
38
35
|
IPoolModule,
|
39
36
|
IBundleModule,
|
40
37
|
IComponentModule,
|
41
38
|
ITreasuryModule,
|
42
39
|
ICompensationModule,
|
43
|
-
|
40
|
+
IInstanceBase
|
44
41
|
{
|
45
42
|
function getRegistry() external view override (IBundleModule, IComponentModule, IPolicyModule, IRegisterable) returns (IRegistry registry);
|
43
|
+
function getOwner() external view override (IOwnable, IAccessModule) returns(address owner);
|
44
|
+
|
46
45
|
function hasRole(RoleId role, address member) external view override (IAccessModule, IComponentModule) returns (bool hasRole);
|
47
46
|
|
48
|
-
function
|
49
|
-
function
|
50
|
-
function
|
47
|
+
function getKeyValueStore() external view override (IBundleModule, IInstanceBase) returns (IKeyValueStore keyValueStore);
|
48
|
+
function getComponentOwnerService() external view override (IInstanceBase, IComponentModule) returns(IComponentOwnerService);
|
49
|
+
function getProductService() external view override (IInstanceBase, IBundleModule, IPolicyModule) returns(IProductService);
|
50
|
+
function getPoolService() external view override (IInstanceBase, IBundleModule, IPoolModule) returns(IPoolService);
|
51
51
|
|
52
|
-
function getOwner() external view override (IOwnable, IAccessModule) returns(address owner);
|
53
52
|
}
|
@@ -4,10 +4,9 @@ pragma solidity ^0.8.19;
|
|
4
4
|
import {NftId} from "../types/NftId.sol";
|
5
5
|
import {RoleId} from "../types/RoleId.sol";
|
6
6
|
|
7
|
-
import {InstanceBase} from "./InstanceBase.sol";
|
7
|
+
import {InstanceBase} from "./base/InstanceBase.sol";
|
8
8
|
import {AccessModule} from "./module/access/Access.sol";
|
9
9
|
import {CompensationModule} from "./module/compensation/CompensationModule.sol";
|
10
|
-
import {LifecycleModule} from "./module/lifecycle/LifecycleModule.sol";
|
11
10
|
import {ComponentModule} from "./module/component/ComponentModule.sol";
|
12
11
|
import {PolicyModule} from "./module/policy/PolicyModule.sol";
|
13
12
|
import {PoolModule} from "./module/pool/PoolModule.sol";
|
@@ -22,19 +21,20 @@ import {IBundleModule} from "./module/bundle/IBundle.sol";
|
|
22
21
|
import {IComponentModule} from "./module/component/IComponent.sol";
|
23
22
|
import {IPoolModule} from "./module/pool/IPoolModule.sol";
|
24
23
|
import {IPolicyModule} from "./module/policy/IPolicy.sol";
|
25
|
-
import {
|
24
|
+
import {IInstanceBase} from "./base/IInstanceBase.sol";
|
26
25
|
|
27
26
|
import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
|
28
27
|
import {IProductService} from "./service/IProductService.sol";
|
29
28
|
import {IPoolService} from "./service/IPoolService.sol";
|
30
29
|
|
30
|
+
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
31
|
+
|
31
32
|
contract Instance is
|
32
33
|
InstanceBase,
|
33
34
|
AccessModule,
|
34
35
|
BundleModule,
|
35
36
|
ComponentModule,
|
36
37
|
CompensationModule,
|
37
|
-
LifecycleModule,
|
38
38
|
PolicyModule,
|
39
39
|
PoolModule,
|
40
40
|
RiskModule,
|
@@ -52,15 +52,17 @@ contract Instance is
|
|
52
52
|
PoolModule()
|
53
53
|
TreasuryModule()
|
54
54
|
{
|
55
|
+
initializeBundleModule(_keyValueStore);
|
55
56
|
}
|
56
57
|
|
57
58
|
function getRegistry() public view override (Registerable, IBundleModule, IComponentModule, IPolicyModule) returns (IRegistry registry) { return super.getRegistry(); }
|
59
|
+
function getKeyValueStore() public view override (InstanceBase, IBundleModule) returns (IKeyValueStore keyValueStore) { return super.getKeyValueStore(); }
|
58
60
|
|
59
61
|
function hasRole(RoleId role, address member) public view override (AccessModule, IComponentModule) returns (bool) { return super.hasRole(role, member); }
|
60
62
|
|
61
|
-
function getComponentOwnerService() external view override (IComponentModule,
|
62
|
-
function getProductService() external view override (IBundleModule, IPolicyModule,
|
63
|
-
function getPoolService() external view override (IBundleModule, IPoolModule,
|
63
|
+
function getComponentOwnerService() external view override (IComponentModule, IInstanceBase) returns(IComponentOwnerService service) { return _componentOwnerService; }
|
64
|
+
function getProductService() external view override (IBundleModule, IPolicyModule, IInstanceBase) returns(IProductService service) { return _productService; }
|
65
|
+
function getPoolService() external view override (IBundleModule, IPoolModule, IInstanceBase) returns(IPoolService service) { return _poolService; }
|
64
66
|
|
65
67
|
function getOwner() public view override (IAccessModule, Registerable) returns(address owner) { return super.getOwner(); }
|
66
68
|
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
5
|
+
import {IComponentOwnerService} from "../service/IComponentOwnerService.sol";
|
6
|
+
import {IProductService} from "../service/IProductService.sol";
|
7
|
+
import {IPoolService} from "../service/IPoolService.sol";
|
8
|
+
|
9
|
+
interface IInstanceBase {
|
10
|
+
function getKeyValueStore() external view returns (IKeyValueStore keyValueStore);
|
11
|
+
function getComponentOwnerService() external view returns(IComponentOwnerService service);
|
12
|
+
function getProductService() external view returns(IProductService service);
|
13
|
+
function getPoolService() external view returns(IPoolService service);
|
14
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../types/Blocknumber.sol";
|
5
|
+
import {Key32, KeyId} from "../../types/Key32.sol";
|
6
|
+
import {NftId} from "../../types/NftId.sol";
|
7
|
+
import {ObjectType} from "../../types/ObjectType.sol";
|
8
|
+
import {StateId} from "../../types/StateId.sol";
|
9
|
+
|
10
|
+
import {ILifecycle} from "./ILifecycle.sol";
|
11
|
+
|
12
|
+
interface IKeyValueStore is ILifecycle {
|
13
|
+
|
14
|
+
struct Key {
|
15
|
+
ObjectType objectType;
|
16
|
+
KeyId id;
|
17
|
+
}
|
18
|
+
|
19
|
+
struct Value {
|
20
|
+
Metadata metadata;
|
21
|
+
bytes data;
|
22
|
+
}
|
23
|
+
|
24
|
+
struct Metadata {
|
25
|
+
ObjectType objectType;
|
26
|
+
StateId state;
|
27
|
+
address updatedBy;
|
28
|
+
Blocknumber updatedIn;
|
29
|
+
Blocknumber createdIn;
|
30
|
+
}
|
31
|
+
|
32
|
+
event LogInfoCreated(Key key, StateId state, address createdBy);
|
33
|
+
event LogInfoUpdated(Key key, StateId state, address updatedBy, Blocknumber lastUpdatedIn);
|
34
|
+
event LogStateUpdated(Key key, StateId stateOld, StateId stateNew, address updatedBy, Blocknumber lastUpdatedIn);
|
35
|
+
|
36
|
+
// generic state changing functions
|
37
|
+
function create(Key32 key, ObjectType objectType, bytes memory data) external;
|
38
|
+
function update(Key32 key, StateId state, bytes memory data) external;
|
39
|
+
function updateData(Key32 key, bytes memory data) external;
|
40
|
+
function updateState(Key32 key, StateId state) external;
|
41
|
+
|
42
|
+
function exists(Key32 key) external view returns (bool);
|
43
|
+
function get(Key32 key) external view returns (Value memory value);
|
44
|
+
function getData(Key32 key) external view returns (bytes memory data);
|
45
|
+
function getMetadata(Key32 key) external view returns (Metadata memory metadata);
|
46
|
+
function getState(Key32 key) external view returns (StateId state);
|
47
|
+
|
48
|
+
function toKey32(ObjectType objectType, KeyId id) external pure returns(Key32);
|
49
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {ObjectType} from "../../types/ObjectType.sol";
|
5
|
+
import {StateId, toStateId, zeroStateId} from "../../types/StateId.sol";
|
6
|
+
import {NftId} from "../../types/NftId.sol";
|
7
|
+
|
8
|
+
interface ILifecycle {
|
9
|
+
|
10
|
+
error ErrorNoLifecycle(NftId nftId, ObjectType objectType);
|
11
|
+
error ErrorInvalidStateTransition(
|
12
|
+
ObjectType objectType,
|
13
|
+
StateId fromStateId,
|
14
|
+
StateId toStateId
|
15
|
+
);
|
16
|
+
|
17
|
+
function hasLifecycle(
|
18
|
+
ObjectType objectType
|
19
|
+
) external view returns (bool);
|
20
|
+
|
21
|
+
function getInitialState(
|
22
|
+
ObjectType objectType
|
23
|
+
) external view returns (StateId);
|
24
|
+
|
25
|
+
function isValidTransition(
|
26
|
+
ObjectType objectType,
|
27
|
+
StateId fromId,
|
28
|
+
StateId toId
|
29
|
+
) external view returns (bool);
|
30
|
+
}
|
@@ -1,27 +1,32 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {Versionable} from "
|
5
|
-
import {Registerable} from "
|
4
|
+
import {Versionable} from "../../shared/Versionable.sol";
|
5
|
+
import {Registerable} from "../../shared/Registerable.sol";
|
6
6
|
// import {IRegistry} from "../registry/IRegistry.sol";
|
7
7
|
|
8
8
|
// import {IInstance} from "./IInstance.sol";
|
9
|
-
import {ObjectType, INSTANCE} from "
|
10
|
-
import {NftId} from "
|
11
|
-
import {Version, VersionPart, VersionLib} from "
|
9
|
+
import {ObjectType, INSTANCE} from "../../types/ObjectType.sol";
|
10
|
+
import {NftId} from "../../types/NftId.sol";
|
11
|
+
import {Version, VersionPart, VersionLib} from "../../types/Version.sol";
|
12
12
|
|
13
|
-
import {IComponentOwnerService} from "
|
14
|
-
import {IProductService} from "
|
15
|
-
import {IPoolService} from "
|
13
|
+
import {IComponentOwnerService} from "../service/IComponentOwnerService.sol";
|
14
|
+
import {IProductService} from "../service/IProductService.sol";
|
15
|
+
import {IPoolService} from "../service/IPoolService.sol";
|
16
16
|
|
17
|
-
import {
|
18
|
-
import {IInstance} from "
|
17
|
+
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
18
|
+
import {IInstance} from "../IInstance.sol";
|
19
|
+
import {IInstanceBase} from "./IInstanceBase.sol";
|
20
|
+
|
21
|
+
import {KeyValueStore} from "./KeyValueStore.sol";
|
19
22
|
|
20
23
|
abstract contract InstanceBase is
|
21
24
|
Versionable,
|
22
25
|
Registerable,
|
23
|
-
|
26
|
+
IInstanceBase
|
24
27
|
{
|
28
|
+
IKeyValueStore internal _keyValueStore;
|
29
|
+
|
25
30
|
IComponentOwnerService internal _componentOwnerService;
|
26
31
|
IProductService internal _productService;
|
27
32
|
IPoolService internal _poolService;
|
@@ -33,10 +38,14 @@ abstract contract InstanceBase is
|
|
33
38
|
Registerable(registry, registryNftId)
|
34
39
|
Versionable()
|
35
40
|
{
|
41
|
+
_keyValueStore = new KeyValueStore();
|
42
|
+
|
36
43
|
_registerInterface(type(IInstance).interfaceId);
|
37
44
|
_linkToServicesInRegistry();
|
38
45
|
}
|
39
46
|
|
47
|
+
function getKeyValueStore() public view virtual override returns (IKeyValueStore keyValueStore) { return _keyValueStore; }
|
48
|
+
|
40
49
|
// from versionable
|
41
50
|
function getVersion()
|
42
51
|
public
|