@etherisc/gif-next 0.0.2-1d4e54c-829 → 0.0.2-1db506b-213

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.
Files changed (235) hide show
  1. package/README.md +60 -25
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +166 -39
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +212 -60
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +119 -39
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -163
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +6 -185
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -163
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +257 -119
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +220 -50
  18. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  36. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +329 -87
  37. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
  38. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/Instance.sol/Instance.json +452 -154
  40. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +224 -43
  42. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +1 -1
  44. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  46. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/IService.sol/IService.json +174 -53
  48. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
  49. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +224 -56
  50. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  51. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  52. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
  54. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +220 -52
  55. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
  58. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
  59. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +2 -2
  66. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -13
  71. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -13
  73. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +29 -9
  76. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +28 -8
  78. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +2 -2
  82. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +138 -11
  85. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
  87. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +138 -11
  89. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +344 -81
  91. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +268 -58
  93. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  94. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +176 -74
  95. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +174 -53
  97. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +176 -55
  99. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +179 -58
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +270 -60
  103. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +298 -88
  105. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  106. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +141 -12
  107. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  108. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
  109. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  110. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +298 -39
  111. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  112. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +745 -0
  113. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  114. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  115. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  116. package/artifacts/contracts/registry/Registry.sol/Registry.json +489 -120
  117. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  118. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +997 -0
  119. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +468 -0
  121. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  122. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  123. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  124. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  125. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  126. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  127. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  129. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  130. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  131. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  132. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  133. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  134. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  135. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  137. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  138. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  139. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  141. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +1 -1
  142. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +212 -60
  143. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  144. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
  145. package/artifacts/contracts/test/TestPool.sol/TestPool.json +257 -119
  146. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
  147. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +225 -56
  148. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  149. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  150. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  152. package/artifacts/contracts/test/TestService.sol/TestService.json +267 -62
  153. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  156. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +89 -25
  158. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  159. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  160. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  161. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  162. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  163. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  164. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  165. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  166. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  167. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  173. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  175. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  177. package/contracts/components/BaseComponent.sol +12 -27
  178. package/contracts/components/Distribution.sol +29 -6
  179. package/contracts/components/IBaseComponent.sol +2 -2
  180. package/contracts/components/IDistributionComponent.sol +2 -4
  181. package/contracts/components/IPoolComponent.sol +3 -10
  182. package/contracts/components/IProductComponent.sol +2 -3
  183. package/contracts/components/Pool.sol +84 -73
  184. package/contracts/components/Product.sol +85 -13
  185. package/contracts/instance/IInstance.sol +7 -6
  186. package/contracts/instance/Instance.sol +18 -5
  187. package/contracts/instance/base/ComponentServiceBase.sol +13 -6
  188. package/contracts/instance/base/IInstanceBase.sol +3 -2
  189. package/contracts/instance/base/InstanceBase.sol +6 -8
  190. package/contracts/instance/base/ServiceBase.sol +20 -13
  191. package/contracts/instance/module/component/ComponentModule.sol +5 -4
  192. package/contracts/instance/module/component/IComponent.sol +2 -2
  193. package/contracts/instance/module/policy/IPolicy.sol +1 -1
  194. package/contracts/instance/module/pool/IPoolModule.sol +4 -3
  195. package/contracts/instance/module/pool/PoolModule.sol +12 -7
  196. package/contracts/instance/module/treasury/ITreasury.sol +7 -5
  197. package/contracts/instance/module/treasury/TokenHandler.sol +2 -2
  198. package/contracts/instance/module/treasury/TreasuryModule.sol +21 -28
  199. package/contracts/instance/service/ComponentOwnerService.sol +184 -66
  200. package/contracts/instance/service/DistributionService.sol +6 -11
  201. package/contracts/instance/service/IComponentOwnerService.sol +0 -2
  202. package/contracts/instance/service/PoolService.sol +19 -19
  203. package/contracts/instance/service/ProductService.sol +25 -24
  204. package/contracts/registry/ChainNft.sol +43 -15
  205. package/contracts/registry/IChainNft.sol +3 -2
  206. package/contracts/registry/IRegistry.sol +42 -26
  207. package/contracts/registry/IRegistryService.sol +29 -0
  208. package/contracts/registry/ITransferInterceptor.sol +6 -0
  209. package/contracts/registry/Registry.sol +383 -274
  210. package/contracts/registry/RegistryService.sol +368 -0
  211. package/contracts/registry/RegistryServiceManager.sol +43 -0
  212. package/contracts/shared/ContractDeployerLib.sol +72 -0
  213. package/contracts/shared/ERC165.sol +1 -1
  214. package/contracts/shared/INftOwnable.sol +22 -0
  215. package/contracts/shared/IRegisterable.sol +9 -16
  216. package/contracts/shared/IVersionable.sol +55 -11
  217. package/contracts/shared/NftOwnable.sol +136 -0
  218. package/contracts/shared/ProxyManager.sol +94 -0
  219. package/contracts/shared/Registerable.sol +62 -59
  220. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  221. package/contracts/shared/Versionable.sol +112 -54
  222. package/contracts/test/TestDistribution.sol +3 -2
  223. package/contracts/test/TestPool.sol +4 -2
  224. package/contracts/test/TestProduct.sol +4 -2
  225. package/contracts/test/TestRegisterable.sol +5 -6
  226. package/contracts/test/TestService.sol +5 -11
  227. package/contracts/types/Version.sol +9 -0
  228. package/package.json +1 -1
  229. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  230. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  231. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  232. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  233. package/contracts/experiment/statemachine/README.md +0 -112
  234. package/contracts/registry/IRegistryLinked.sol +0 -8
  235. package/contracts/shared/IOwnable.sol +0 -6
package/README.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # gif-next (Generic Insurance Framework next version)
2
2
 
3
+ ## Add OpenZeppelin V5 Dependencies
4
+
5
+ ```shell
6
+ forge install openzeppelin-contracts-500=OpenZeppelin/openzeppelin-contracts@v5.0.0
7
+ cd cd lib/openzeppelin-contracts-500
8
+ git checkout tags/v5.0.0
9
+ cd ../..
10
+ ```
11
+
12
+ See `remappings.txt` to see how to work with different OpenZeppelin versions in parallel
13
+
14
+ ```
15
+ cat remappings.txt
16
+ @openzeppelin5/contracts/=lib/openzeppelin-contracts-500/contracts/
17
+ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
18
+ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
19
+ ```
20
+
21
+
3
22
  ## Submodules checkout
4
23
 
5
24
  This repository uses submodules. To checkout or update to the latest submodules, run the following command after updating to any revision (or checking out the repository)
@@ -201,6 +220,7 @@ sudo apt update
201
220
  sudo apt install python3-pip
202
221
  pip install eth-brownie
203
222
  brownie pm install OpenZeppelin/openzeppelin-contracts@4.9.3
223
+ brownie pm install OpenZeppelin/openzeppelin-contracts@5.0.0
204
224
  ```
205
225
 
206
226
  ```bash
@@ -252,28 +272,43 @@ pool_id = pool.getNftId()
252
272
  product_id = product.getNftId()
253
273
  ```
254
274
 
255
- ## migrate to kv store
256
-
257
- sizes before
258
- | Instance | 23.178 | 1.398 |
259
- | TestInstanceBase | 3.305 | 21.271 |
260
- | TestInstanceModuleAccess | 7.86 | 16.716 |
261
- | TestInstanceModuleBundle | 7.586 | 16.99 |
262
- | TestInstanceModuleCompensation | 3.305 | 21.271 |
263
- | TestInstanceModuleComponent | 5.123 | 19.453 |
264
- | TestInstanceModulePolicy | 6.937 | 17.639 |
265
- | TestInstanceModulePool | 4.809 | 19.767 |
266
- | TestInstanceModuleRisk | 3.305 | 21.271 |
267
- | TestInstanceModuleTreasury | 7.563 | 17.013 |
268
- ---
269
- sizes after
270
- | Instance | 22.727 | 1.849 |
271
- | TestInstanceBase | 3.485 | 21.091 |
272
- | TestInstanceModuleAccess | 8.036 | 16.54 |
273
- | TestInstanceModuleBundle | 8.354 | 16.222 |
274
- | TestInstanceModuleCompensation | 3.485 | 21.091 |
275
- | TestInstanceModuleComponent | 5.482 | 19.094 |
276
- | TestInstanceModulePolicy | 7.502 | 17.074 |
277
- | TestInstanceModulePool | 5.522 | 19.054 |
278
- | TestInstanceModuleRisk | 4.635 | 19.941 |
279
- | TestInstanceModuleTreasury | 8.945 | 15.631 |
275
+ ## Registry and Services
276
+
277
+ ### Principles
278
+
279
+ - 1 service per object type and major version
280
+ - registry service guards write access to registry
281
+ - all other objects registered via registry service
282
+ - root object for the complete tree is the protocol object
283
+ - under the root object a single registry object is registered (= global registry/ethereum mainnet)
284
+
285
+
286
+ ### Service Responsibilities
287
+
288
+ Registry Service
289
+
290
+ - deployed and registered during bootstrapping of registry
291
+ - used to register tokens and other services by registry owner
292
+ - an object may only be registered by the service designated by the type of the object
293
+ - to register an object the parent object needs already be registered
294
+ - the type of the object to be registered needs to match a valid child type/parent type combination
295
+
296
+ Instance Service
297
+
298
+ - deploys master instance during its own bootstrapping (if allowed by contract size)
299
+ - registered via registry service by registry owner
300
+ - registeres master instance during its own registration by regsitry owner
301
+ - deploys and registeres new instances (= instance factory) by instance owner (instance owner is a permissionless role, anybody may creates a new instance)
302
+ - provides upgrade functionality to instance owners
303
+
304
+ Product Service
305
+
306
+ - registered via registry service by registry owner
307
+ - registers products for registered instances via registry service by product owner (product owner role is permissend by the product's instance)
308
+ - registers applications/policies for registered products via registry service
309
+
310
+ Distribution Service
311
+
312
+ - registered via registry service by registry owner
313
+ - registers distribution components for registered products via registry service by distribution owner (distribution owner role is permissend by the product's instance)
314
+ - registers distributors for registered distribution components via registry service
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/bb7e3a8f79eaabeda9b0ac6ad2b6d9a9.json"
3
+ "buildInfo": "../../../build-info/012ca89f3ac4e827547ee6f4d256fa06.json"
4
4
  }
@@ -3,10 +3,169 @@
3
3
  "contractName": "BaseComponent",
4
4
  "sourceName": "contracts/components/BaseComponent.sol",
5
5
  "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "registry",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "NftId",
15
+ "name": "nftId",
16
+ "type": "uint96"
17
+ }
18
+ ],
19
+ "name": "ErrorAlreadyLinked",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "address",
26
+ "name": "contractAddress",
27
+ "type": "address"
28
+ }
29
+ ],
30
+ "name": "ErrorContractNotRegistered",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "account",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "ErrorNotOwner",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "registryAddress",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ErrorNotRegistry",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "registryAddress",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ErrorRegisterableNotRegistry",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ErrorRegistryAddressZero",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "registry",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "ErrorRegistryAlreadyInitialized",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [],
84
+ "name": "ErrorRegistryNotInitialized",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [],
89
+ "name": "InvalidInitialization",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "NotInitializing",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "anonymous": false,
99
+ "inputs": [
100
+ {
101
+ "indexed": false,
102
+ "internalType": "uint64",
103
+ "name": "version",
104
+ "type": "uint64"
105
+ }
106
+ ],
107
+ "name": "Initialized",
108
+ "type": "event"
109
+ },
110
+ {
111
+ "inputs": [],
112
+ "name": "REGISTERABLE_LOCATION_V1",
113
+ "outputs": [
114
+ {
115
+ "internalType": "bytes32",
116
+ "name": "",
117
+ "type": "bytes32"
118
+ }
119
+ ],
120
+ "stateMutability": "view",
121
+ "type": "function"
122
+ },
6
123
  {
7
124
  "inputs": [],
8
- "name": "getData",
125
+ "name": "getInitialInfo",
9
126
  "outputs": [
127
+ {
128
+ "components": [
129
+ {
130
+ "internalType": "NftId",
131
+ "name": "nftId",
132
+ "type": "uint96"
133
+ },
134
+ {
135
+ "internalType": "NftId",
136
+ "name": "parentNftId",
137
+ "type": "uint96"
138
+ },
139
+ {
140
+ "internalType": "ObjectType",
141
+ "name": "objectType",
142
+ "type": "uint8"
143
+ },
144
+ {
145
+ "internalType": "bool",
146
+ "name": "isInterceptor",
147
+ "type": "bool"
148
+ },
149
+ {
150
+ "internalType": "address",
151
+ "name": "objectAddress",
152
+ "type": "address"
153
+ },
154
+ {
155
+ "internalType": "address",
156
+ "name": "initialOwner",
157
+ "type": "address"
158
+ },
159
+ {
160
+ "internalType": "bytes",
161
+ "name": "data",
162
+ "type": "bytes"
163
+ }
164
+ ],
165
+ "internalType": "struct IRegistry.ObjectInfo",
166
+ "name": "",
167
+ "type": "tuple"
168
+ },
10
169
  {
11
170
  "internalType": "bytes",
12
171
  "name": "data",
@@ -35,7 +194,7 @@
35
194
  "outputs": [
36
195
  {
37
196
  "internalType": "NftId",
38
- "name": "nftId",
197
+ "name": "",
39
198
  "type": "uint96"
40
199
  }
41
200
  ],
@@ -48,33 +207,20 @@
48
207
  "outputs": [
49
208
  {
50
209
  "internalType": "address",
51
- "name": "owner",
210
+ "name": "",
52
211
  "type": "address"
53
212
  }
54
213
  ],
55
214
  "stateMutability": "view",
56
215
  "type": "function"
57
216
  },
58
- {
59
- "inputs": [],
60
- "name": "getParentNftId",
61
- "outputs": [
62
- {
63
- "internalType": "NftId",
64
- "name": "nftId",
65
- "type": "uint96"
66
- }
67
- ],
68
- "stateMutability": "view",
69
- "type": "function"
70
- },
71
217
  {
72
218
  "inputs": [],
73
219
  "name": "getRegistry",
74
220
  "outputs": [
75
221
  {
76
222
  "internalType": "contract IRegistry",
77
- "name": "registry",
223
+ "name": "",
78
224
  "type": "address"
79
225
  }
80
226
  ],
@@ -94,19 +240,6 @@
94
240
  "stateMutability": "view",
95
241
  "type": "function"
96
242
  },
97
- {
98
- "inputs": [],
99
- "name": "getType",
100
- "outputs": [
101
- {
102
- "internalType": "ObjectType",
103
- "name": "objectType",
104
- "type": "uint8"
105
- }
106
- ],
107
- "stateMutability": "pure",
108
- "type": "function"
109
- },
110
243
  {
111
244
  "inputs": [],
112
245
  "name": "getWallet",
@@ -122,21 +255,15 @@
122
255
  },
123
256
  {
124
257
  "inputs": [],
125
- "name": "lock",
258
+ "name": "linkToRegisteredNftId",
126
259
  "outputs": [],
127
260
  "stateMutability": "nonpayable",
128
261
  "type": "function"
129
262
  },
130
263
  {
131
264
  "inputs": [],
132
- "name": "register",
133
- "outputs": [
134
- {
135
- "internalType": "NftId",
136
- "name": "componentId",
137
- "type": "uint96"
138
- }
139
- ],
265
+ "name": "lock",
266
+ "outputs": [],
140
267
  "stateMutability": "nonpayable",
141
268
  "type": "function"
142
269
  },
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/bb7e3a8f79eaabeda9b0ac6ad2b6d9a9.json"
3
+ "buildInfo": "../../../build-info/012ca89f3ac4e827547ee6f4d256fa06.json"
4
4
  }