@etherisc/gif-next 0.0.2-d64ea51-772 → 0.0.2-d6609af-567

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 (706) hide show
  1. package/README.md +121 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +483 -552
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1363 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1033 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +927 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1512 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1999 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1432 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1192 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1566 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2001 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +277 -1290
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +447 -170
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +346 -3093
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1010 -379
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +515 -393
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +329 -123
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3607 -0
  76. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  78. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  79. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  80. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  82. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  84. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  86. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  88. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  90. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  91. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  94. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  95. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  96. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1000 -0
  98. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  100. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +398 -372
  104. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +892 -0
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1297 -0
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1431 -0
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  120. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +931 -0
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +958 -0
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1267 -0
  126. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/Pool.sol/Pool.json +1083 -0
  128. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1612 -0
  130. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
  132. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  134. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  136. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1119 -0
  138. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  140. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1397 -0
  142. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  144. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  145. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → product/IApplicationService.sol/IApplicationService.json} +205 -228
  146. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +913 -0
  148. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +896 -0
  150. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IPricingService.sol/IPricingService.json} +290 -187
  152. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +971 -0
  154. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +125 -191
  156. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1268 -0
  158. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +770 -0
  160. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  162. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  164. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  165. package/artifacts/contracts/product/Product.sol/Product.json +1077 -0
  166. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  168. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  170. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +611 -127
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +290 -297
  176. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  178. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.json +940 -162
  180. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  182. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +279 -410
  184. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +315 -131
  186. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  188. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  190. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  192. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  194. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  195. package/artifacts/contracts/shared/Component.sol/Component.json +706 -0
  196. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  198. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  200. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  201. package/artifacts/contracts/shared/{RegisterableUpgradable.sol/RegisterableUpgradable.json → ComponentVerifyingService.sol/ComponentVerifyingService.json} +149 -159
  202. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  204. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  205. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponent.sol/IComponent.json} +316 -338
  206. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  208. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  209. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +721 -0
  210. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  212. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  214. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  216. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  217. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  218. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  220. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  221. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  222. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
  224. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  226. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +814 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  233. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +65 -30
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  237. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +44 -54
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  241. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  242. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Service.sol/Service.json +115 -183
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  249. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1459 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  255. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  308. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  320. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  326. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  328. package/contracts/authorization/AccessAdmin.sol +592 -0
  329. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  330. package/contracts/authorization/Authorization.sol +221 -0
  331. package/contracts/authorization/IAccess.sol +48 -0
  332. package/contracts/authorization/IAccessAdmin.sol +135 -0
  333. package/contracts/authorization/IAuthorization.sol +54 -0
  334. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  335. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  336. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  337. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  338. package/contracts/distribution/BasicDistribution.sol +138 -0
  339. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  340. package/contracts/distribution/Distribution.sol +295 -0
  341. package/contracts/distribution/DistributionService.sol +336 -0
  342. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  343. package/contracts/distribution/IDistributionComponent.sol +52 -0
  344. package/contracts/distribution/IDistributionService.sol +101 -0
  345. package/contracts/examples/fire/DamageLevel.sol +59 -0
  346. package/contracts/examples/fire/FirePool.sol +75 -0
  347. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  348. package/contracts/examples/fire/FireProduct.sol +413 -0
  349. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  350. package/contracts/examples/fire/FireUSD.sol +26 -0
  351. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  352. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  353. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  354. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  355. package/contracts/instance/BundleSet.sol +126 -0
  356. package/contracts/instance/IInstance.sol +56 -47
  357. package/contracts/instance/IInstanceService.sol +78 -16
  358. package/contracts/instance/Instance.sol +159 -373
  359. package/contracts/instance/InstanceAdmin.sol +288 -0
  360. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  361. package/contracts/instance/InstanceReader.sol +264 -84
  362. package/contracts/instance/InstanceService.sol +421 -154
  363. package/contracts/instance/InstanceServiceManager.sol +14 -32
  364. package/contracts/instance/InstanceStore.sol +287 -0
  365. package/contracts/instance/base/BalanceStore.sol +123 -0
  366. package/contracts/instance/base/Cloneable.sol +28 -0
  367. package/contracts/instance/base/ObjectCounter.sol +21 -0
  368. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  369. package/contracts/instance/base/ObjectSet.sol +79 -0
  370. package/contracts/instance/module/IAccess.sol +29 -21
  371. package/contracts/instance/module/IBundle.sol +8 -8
  372. package/contracts/instance/module/IComponents.sol +48 -0
  373. package/contracts/instance/module/IDistribution.sol +6 -4
  374. package/contracts/instance/module/IPolicy.sol +58 -19
  375. package/contracts/instance/module/IRisk.sol +1 -1
  376. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  377. package/contracts/oracle/BasicOracle.sol +48 -0
  378. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  379. package/contracts/oracle/IOracle.sol +36 -0
  380. package/contracts/oracle/IOracleComponent.sol +33 -0
  381. package/contracts/oracle/IOracleService.sol +65 -0
  382. package/contracts/oracle/Oracle.sol +167 -0
  383. package/contracts/oracle/OracleService.sol +281 -0
  384. package/contracts/oracle/OracleServiceManager.sol +39 -0
  385. package/contracts/pool/BasicPool.sol +166 -0
  386. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  387. package/contracts/pool/BundleService.sol +461 -0
  388. package/contracts/pool/BundleServiceManager.sol +39 -0
  389. package/contracts/pool/IBundleService.sol +143 -0
  390. package/contracts/pool/IPoolComponent.sol +68 -0
  391. package/contracts/pool/IPoolService.sol +171 -0
  392. package/contracts/pool/Pool.sol +353 -0
  393. package/contracts/pool/PoolService.sol +563 -0
  394. package/contracts/pool/PoolServiceManager.sol +39 -0
  395. package/contracts/product/ApplicationService.sol +251 -0
  396. package/contracts/product/ApplicationServiceManager.sol +38 -0
  397. package/contracts/product/BasicProduct.sol +53 -0
  398. package/contracts/product/BasicProductAuthorization.sol +43 -0
  399. package/contracts/product/ClaimService.sol +581 -0
  400. package/contracts/product/ClaimServiceManager.sol +38 -0
  401. package/contracts/product/IApplicationService.sol +63 -0
  402. package/contracts/product/IClaimService.sol +123 -0
  403. package/contracts/product/IPolicyService.sol +80 -0
  404. package/contracts/product/IPricingService.sol +39 -0
  405. package/contracts/product/IProductComponent.sol +53 -0
  406. package/contracts/product/IRiskService.sol +33 -0
  407. package/contracts/product/PolicyService.sol +686 -0
  408. package/contracts/product/PolicyServiceManager.sol +39 -0
  409. package/contracts/product/PricingService.sol +300 -0
  410. package/contracts/product/PricingServiceManager.sol +39 -0
  411. package/contracts/product/Product.sol +432 -0
  412. package/contracts/product/RiskService.sol +96 -0
  413. package/contracts/product/RiskServiceManager.sol +39 -0
  414. package/contracts/registry/ChainNft.sol +79 -31
  415. package/contracts/registry/IRegistry.sol +124 -35
  416. package/contracts/registry/IRegistryService.sol +38 -28
  417. package/contracts/registry/ITransferInterceptor.sol +1 -0
  418. package/contracts/registry/Registry.sol +532 -273
  419. package/contracts/registry/RegistryAdmin.sol +464 -0
  420. package/contracts/registry/RegistryService.sol +135 -234
  421. package/contracts/registry/RegistryServiceManager.sol +26 -53
  422. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  423. package/contracts/registry/ReleaseRegistry.sol +491 -0
  424. package/contracts/registry/ServiceAuthorizationV3.sol +198 -0
  425. package/contracts/registry/TokenRegistry.sol +261 -57
  426. package/contracts/shared/Component.sol +276 -0
  427. package/contracts/shared/ComponentService.sol +641 -0
  428. package/contracts/shared/ComponentServiceManager.sol +38 -0
  429. package/contracts/shared/ComponentVerifyingService.sol +116 -0
  430. package/contracts/shared/ContractLib.sol +38 -0
  431. package/contracts/shared/IComponent.sol +73 -0
  432. package/contracts/shared/IComponentService.sol +108 -0
  433. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  434. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  435. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  436. package/contracts/shared/INftOwnable.sol +13 -12
  437. package/contracts/shared/IPolicyHolder.sol +35 -0
  438. package/contracts/shared/IRegisterable.sol +4 -6
  439. package/contracts/shared/IRegistryLinked.sol +11 -0
  440. package/contracts/shared/IService.sol +16 -6
  441. package/contracts/shared/InitializableERC165.sol +27 -0
  442. package/contracts/shared/InstanceLinkedComponent.sol +171 -0
  443. package/contracts/shared/KeyValueStore.sol +131 -0
  444. package/contracts/shared/Lifecycle.sol +77 -0
  445. package/contracts/shared/NftIdSet.sol +65 -0
  446. package/contracts/shared/NftOwnable.sol +59 -86
  447. package/contracts/shared/PolicyHolder.sol +62 -0
  448. package/contracts/shared/Registerable.sol +23 -38
  449. package/contracts/shared/RegistryLinked.sol +44 -0
  450. package/contracts/shared/Service.sol +62 -30
  451. package/contracts/shared/TokenHandler.sol +122 -10
  452. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  453. package/contracts/staking/IStaking.sol +168 -0
  454. package/contracts/staking/IStakingService.sol +160 -0
  455. package/contracts/staking/StakeManagerLib.sol +224 -0
  456. package/contracts/staking/Staking.sol +498 -0
  457. package/contracts/staking/StakingLifecycle.sol +23 -0
  458. package/contracts/staking/StakingManager.sol +52 -0
  459. package/contracts/staking/StakingReader.sol +190 -0
  460. package/contracts/staking/StakingService.sol +407 -0
  461. package/contracts/staking/StakingServiceManager.sol +44 -0
  462. package/contracts/staking/StakingStore.sol +605 -0
  463. package/contracts/staking/TargetManagerLib.sol +211 -0
  464. package/contracts/{types → type}/AddressSet.sol +1 -1
  465. package/contracts/type/Amount.sol +150 -0
  466. package/contracts/{types → type}/Blocknumber.sol +27 -3
  467. package/contracts/type/ClaimId.sol +80 -0
  468. package/contracts/{types → type}/DistributorType.sol +2 -2
  469. package/contracts/{types → type}/Fee.sol +33 -23
  470. package/contracts/{types → type}/NftId.sol +22 -15
  471. package/contracts/type/NftIdSet.sol +62 -0
  472. package/contracts/type/ObjectType.sol +276 -0
  473. package/contracts/type/PayoutId.sol +82 -0
  474. package/contracts/{types → type}/Referral.sol +6 -1
  475. package/contracts/type/RequestId.sol +75 -0
  476. package/contracts/{types → type}/RiskId.sol +16 -2
  477. package/contracts/type/RoleId.sol +174 -0
  478. package/contracts/type/Seconds.sol +101 -0
  479. package/contracts/type/Selector.sol +102 -0
  480. package/contracts/{types → type}/StateId.sol +35 -4
  481. package/contracts/type/String.sol +53 -0
  482. package/contracts/{types → type}/Timestamp.sol +34 -15
  483. package/contracts/{types → type}/UFixed.sol +39 -9
  484. package/contracts/{types → type}/Version.sol +5 -2
  485. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  486. package/contracts/upgradeability/ProxyManager.sol +231 -0
  487. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  488. package/contracts/upgradeability/Versionable.sol +59 -0
  489. package/package.json +10 -7
  490. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  492. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  493. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  494. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  495. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  496. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  497. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  498. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  499. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  500. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  501. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  502. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  503. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
  504. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  505. package/artifacts/contracts/components/Product.sol/Product.json +0 -724
  506. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  508. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  510. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  512. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  514. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  516. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  518. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  520. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  522. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  524. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  525. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  526. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  527. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  529. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  531. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  532. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  533. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  534. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  536. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  537. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  538. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  539. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  540. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  541. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  542. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  543. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  544. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  545. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  546. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  547. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  548. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  550. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  553. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  555. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  557. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  559. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  565. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  567. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -926
  573. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  575. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  577. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  579. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  580. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  581. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  582. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  583. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  584. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  585. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  586. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  587. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  588. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  589. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  590. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  591. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  592. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  593. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  594. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  595. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  596. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  597. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  598. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  600. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  602. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  604. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  606. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  607. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  608. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  609. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  610. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  612. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  614. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  616. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  618. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  620. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  622. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  623. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  624. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  626. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  628. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  630. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  632. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  634. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  637. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  639. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  641. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  643. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  645. package/contracts/components/BaseComponent.sol +0 -91
  646. package/contracts/components/Distribution.sol +0 -163
  647. package/contracts/components/IBaseComponent.sol +0 -25
  648. package/contracts/components/IDistributionComponent.sol +0 -44
  649. package/contracts/components/IPoolComponent.sol +0 -62
  650. package/contracts/components/IProductComponent.sol +0 -35
  651. package/contracts/components/Pool.sol +0 -246
  652. package/contracts/components/Product.sol +0 -288
  653. package/contracts/experiment/cloning/Cloner.sol +0 -47
  654. package/contracts/experiment/errors/Require.sol +0 -38
  655. package/contracts/experiment/errors/Revert.sol +0 -44
  656. package/contracts/experiment/inheritance/A.sol +0 -53
  657. package/contracts/experiment/inheritance/B.sol +0 -28
  658. package/contracts/experiment/inheritance/C.sol +0 -34
  659. package/contracts/experiment/inheritance/IA.sol +0 -13
  660. package/contracts/experiment/inheritance/IB.sol +0 -10
  661. package/contracts/experiment/inheritance/IC.sol +0 -12
  662. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  663. package/contracts/experiment/statemachine/ISM.sol +0 -25
  664. package/contracts/experiment/statemachine/SM.sol +0 -57
  665. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  666. package/contracts/experiment/types/TypeA.sol +0 -47
  667. package/contracts/experiment/types/TypeB.sol +0 -29
  668. package/contracts/instance/AccessManagedSimple.sol +0 -115
  669. package/contracts/instance/AccessManagerSimple.sol +0 -692
  670. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  671. package/contracts/instance/InstanceAccessManager.sol +0 -288
  672. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  673. package/contracts/instance/base/IInstanceBase.sol +0 -23
  674. package/contracts/instance/base/KeyValueStore.sol +0 -172
  675. package/contracts/instance/base/Lifecycle.sol +0 -100
  676. package/contracts/instance/module/ISetup.sol +0 -45
  677. package/contracts/instance/module/ITreasury.sol +0 -23
  678. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  679. package/contracts/instance/service/DistributionService.sol +0 -88
  680. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  681. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  682. package/contracts/instance/service/IDistributionService.sol +0 -12
  683. package/contracts/instance/service/IPoolService.sol +0 -41
  684. package/contracts/instance/service/IProductService.sol +0 -110
  685. package/contracts/instance/service/PoolService.sol +0 -201
  686. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  687. package/contracts/instance/service/ProductService.sol +0 -563
  688. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  689. package/contracts/shared/ContractDeployerLib.sol +0 -72
  690. package/contracts/shared/ERC165.sol +0 -25
  691. package/contracts/shared/ProxyManager.sol +0 -94
  692. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  693. package/contracts/shared/Versionable.sol +0 -147
  694. package/contracts/test/TestFee.sol +0 -25
  695. package/contracts/test/TestRegisterable.sol +0 -18
  696. package/contracts/test/TestRoleId.sol +0 -14
  697. package/contracts/test/TestService.sol +0 -24
  698. package/contracts/test/TestToken.sol +0 -26
  699. package/contracts/test/TestVersion.sol +0 -44
  700. package/contracts/test/TestVersionable.sol +0 -17
  701. package/contracts/types/ChainId.sol +0 -38
  702. package/contracts/types/NftIdSet.sol +0 -60
  703. package/contracts/types/NumberId.sol +0 -52
  704. package/contracts/types/ObjectType.sol +0 -152
  705. package/contracts/types/RoleId.sol +0 -90
  706. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,173 +1,153 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
5
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
-
7
- import {IRegistry} from "./IRegistry.sol";
4
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
8
6
  import {IInstance} from "../instance/IInstance.sol";
9
-
10
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
11
- import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
12
- import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
13
- import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
14
- import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
15
-
16
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
17
- import {Versionable} from "../../contracts/shared/Versionable.sol";
7
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
18
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
19
12
 
20
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
21
- import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
22
- import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
23
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
24
- import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
25
- import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
26
-
13
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
14
+ import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
27
15
  import {Service} from "../shared/Service.sol";
28
- import {IService} from "../shared/IService.sol";
29
- import {IRegistryService} from "./IRegistryService.sol";
30
- import {Registry} from "./Registry.sol";
31
16
 
32
17
  contract RegistryService is
33
- AccessManagedUpgradeable,
34
18
  Service,
35
19
  IRegistryService
36
20
  {
37
21
  using NftIdLib for NftId;
38
22
 
39
-
40
- // Initial value for constant variable has to be compile-time constant
41
- // TODO define types as constants?
42
- //ObjectType public constant SERVICE_TYPE = REGISTRY();
43
- string public constant NAME = "RegistryService";
44
-
45
23
  // TODO update to real hash when registry is stable
46
24
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
47
25
 
48
- address public constant NFT_LOCK_ADDRESS = address(0x1);
26
+ // from Versionable
49
27
 
50
- /// @dev
51
- // msg.sender - ONLY registry owner
52
- // CAN NOT register itself
53
- // CAN register ONLY valid object-parent types combinations for SERVICE
54
- // CAN register ONLY IRegisterable address he owns
55
- // IMPORTANT: MUST NOT check owner before calling external contract
56
- function registerService(IService service)
57
- external
58
- restricted
59
- returns(
60
- IRegistry.ObjectInfo memory info,
61
- bytes memory data
62
- )
28
+ /// @dev top level initializer
29
+ function _initialize(
30
+ address owner,
31
+ bytes memory data
32
+ )
33
+ internal
34
+ virtual override
35
+ initializer()
63
36
  {
64
-
65
- // CAN revert if no ERC165 support -> will revert with empty message
66
- if(!service.supportsInterface(type(IService).interfaceId)) {
67
- revert NotService();
68
- }
69
-
70
37
  (
71
- info,
72
- data
73
- ) = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
38
+ address registryAddress,
39
+ address initialAuthority
40
+ ) = abi.decode(data, (address, address));
74
41
 
75
- info.nftId = _registry.register(info);
76
- service.linkToRegisteredNftId();
77
- return (info, data);
42
+ _initializeService(registryAddress, initialAuthority, owner);
43
+ _registerInterface(type(IRegistryService).interfaceId);
78
44
  }
79
45
 
80
- function registerInstance(IRegisterable instance)
46
+
47
+ function registerStaking(IRegisterable staking, address owner)
81
48
  external
49
+ virtual
50
+ restricted()
82
51
  returns(
83
- IRegistry.ObjectInfo memory info,
84
- bytes memory data
85
- )
52
+ IRegistry.ObjectInfo memory info
53
+ )
86
54
  {
87
- if(!instance.supportsInterface(type(IInstance).interfaceId)) {
88
- revert NotInstance();
89
- }
90
-
91
- (
92
- info,
93
- data
94
- ) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);
95
-
96
- info.nftId = _registry.register(info);
97
- instance.linkToRegisteredNftId(); // asume safe
98
-
99
- return (info, data);
55
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
56
+ info.nftId = getRegistry().register(info);
100
57
  }
101
58
 
102
- function registerProduct(IBaseComponent product, address owner)
59
+
60
+ function registerInstance(IRegisterable instance, address owner)
103
61
  external
62
+ virtual
104
63
  restricted
105
64
  returns(
106
- IRegistry.ObjectInfo memory info,
107
- bytes memory data
65
+ IRegistry.ObjectInfo memory info
108
66
  )
109
67
  {
110
- // CAN revert if no ERC165 support -> will revert with empty message
111
- if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
112
- revert NotProduct();
68
+ if(!instance.supportsInterface(type(IInstance).interfaceId)) {
69
+ revert ErrorRegistryServiceNotInstance(address(instance));
113
70
  }
114
71
 
115
- (
116
- info,
117
- data
118
- ) = _getAndVerifyContractInfo(product, PRODUCT(), owner);
119
-
120
- info.nftId = _registry.register(info);
121
- // TODO unsafe, let component or its owner derive nftId latter, when state assumptions and modifications of GIF contracts are finished
122
- product.linkToRegisteredNftId();
72
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
73
+ info.nftId = getRegistry().register(info);
123
74
 
124
- return (info, data);
75
+ instance.linkToRegisteredNftId(); // asume safe
125
76
  }
126
77
 
127
- function registerPool(IBaseComponent pool, address owner)
78
+ // function registerProduct(IComponent product, address owner)
79
+ // external
80
+ // restricted
81
+ // returns(
82
+ // IRegistry.ObjectInfo memory info
83
+ // )
84
+ // {
85
+ // // CAN revert if no ERC165 support -> will revert with empty message
86
+ // if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
87
+ // revert ErrorRegistryServiceNotProduct(address(product));
88
+ // }
89
+
90
+ // info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
91
+ // info.nftId = getRegistry().register(info);
92
+ // }
93
+
94
+ function registerComponent(
95
+ IComponent component,
96
+ ObjectType objectType,
97
+ address initialOwner
98
+ )
128
99
  external
129
100
  restricted
130
101
  returns(
131
- IRegistry.ObjectInfo memory info,
132
- bytes memory data
102
+ IRegistry.ObjectInfo memory info
133
103
  )
134
104
  {
135
- if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
136
- revert NotPool();
105
+ // CAN revert if no ERC165 support -> will revert with empty message
106
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
107
+ revert ErrorRegistryServiceNotComponent(address(component));
137
108
  }
138
109
 
139
- (
140
- info,
141
- data
142
- ) = _getAndVerifyContractInfo(pool, POOL(), owner);
143
-
144
- info.nftId = _registry.register(info);
145
- pool.linkToRegisteredNftId();
146
-
147
- return (info, data);
110
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
111
+ info.nftId = getRegistry().register(info);
148
112
  }
149
113
 
150
- function registerDistribution(IBaseComponent distribution, address owner)
114
+ // function registerPool(IComponent pool, address owner)
115
+ // external
116
+ // restricted
117
+ // returns(
118
+ // IRegistry.ObjectInfo memory info
119
+ // )
120
+ // {
121
+ // if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
122
+ // revert ErrorRegistryServiceNotPool(address(pool));
123
+ // }
124
+
125
+ // info = _getAndVerifyContractInfo(pool, POOL(), owner);
126
+ // info.nftId = getRegistry().register(info);
127
+ // }
128
+
129
+ // function registerDistribution(IComponent distribution, address owner)
130
+ // external
131
+ // restricted
132
+ // returns(
133
+ // IRegistry.ObjectInfo memory info
134
+ // )
135
+ // {
136
+ // if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
137
+ // revert ErrorRegistryServiceNotDistribution(address(distribution));
138
+ // }
139
+
140
+ // info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
141
+ // info.nftId = getRegistry().register(info);
142
+ // }
143
+
144
+ function registerDistributor(IRegistry.ObjectInfo memory info)
151
145
  external
152
- restricted
153
- returns(
154
- IRegistry.ObjectInfo memory info,
155
- bytes memory data
156
- )
146
+ restricted
147
+ returns(NftId nftId)
157
148
  {
158
- if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
159
- revert NotDistribution();
160
- }
161
-
162
- (
163
- info,
164
- data
165
- ) = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
166
-
167
- info.nftId = _registry.register(info);
168
- distribution.linkToRegisteredNftId();
169
-
170
- return (info, data);
149
+ _verifyObjectInfo(info, DISTRIBUTOR());
150
+ nftId = getRegistry().register(info);
171
151
  }
172
152
 
173
153
  function registerPolicy(IRegistry.ObjectInfo memory info)
@@ -176,8 +156,7 @@ contract RegistryService is
176
156
  returns(NftId nftId)
177
157
  {
178
158
  _verifyObjectInfo(info, POLICY());
179
-
180
- nftId = _registry.register(info);
159
+ nftId = getRegistry().register(info);
181
160
  }
182
161
 
183
162
  function registerBundle(IRegistry.ObjectInfo memory info)
@@ -186,8 +165,7 @@ contract RegistryService is
186
165
  returns(NftId nftId)
187
166
  {
188
167
  _verifyObjectInfo(info, BUNDLE());
189
-
190
- nftId = _registry.register(info);
168
+ nftId = getRegistry().register(info);
191
169
  }
192
170
 
193
171
  function registerStake(IRegistry.ObjectInfo memory info)
@@ -196,119 +174,49 @@ contract RegistryService is
196
174
  returns(NftId nftId)
197
175
  {
198
176
  _verifyObjectInfo(info, STAKE());
199
-
200
- nftId = _registry.register(info);
201
- }
202
-
203
- // From IService
204
- function getName() public pure override(IService, Service) returns(string memory) {
205
- return NAME;
177
+ nftId = getRegistry().register(info);
206
178
  }
207
- //function getType() public pure override(IService, ServiceBase) returns(ObjectType serviceType) {
208
- // return SERVICE_TYPE;
209
- //}
210
-
211
-
212
- // from Versionable
213
-
214
- /// @dev top level initializer
215
- // 1) registry is non upgradeable -> don't need a proxy and uses constructor !
216
- // 2) deploy registry service first -> from its initialization func it is easier to deploy registry then vice versa
217
- // 3) deploy registry -> pass registry service address as constructor argument
218
- // registry is getting instantiated and locked to registry service address forever
219
- function _initialize(
220
- address owner,
221
- bytes memory data
222
- )
223
- internal
224
- initializer
225
- virtual override
226
- {
227
- (
228
- address initialAuthority,
229
- bytes memory registryByteCodeWithInitCode
230
- ) = abi.decode(data, (address, bytes));
231
-
232
- __AccessManaged_init(initialAuthority);
233
-
234
- bytes memory encodedConstructorArguments = abi.encode(
235
- owner,
236
- getMajorVersion());
237
-
238
- bytes memory registryCreationCode = ContractDeployerLib.getCreationCode(
239
- registryByteCodeWithInitCode,
240
- encodedConstructorArguments);
241
179
 
242
- IRegistry registry = IRegistry(ContractDeployerLib.deploy(
243
- registryCreationCode,
244
- REGISTRY_CREATION_CODE_HASH));
245
-
246
- NftId registryNftId = registry.getNftId(address(registry));
247
-
248
- _initializeService(address(registry), owner);
249
-
250
- // TODO why do registry service proxy need to keep its nftId??? -> no registryServiceNftId checks in implementation
251
- // if they are -> use registry address to obtain owner of registry service nft (works the same with any registerable and(or) implementation)
252
- linkToRegisteredNftId();
253
- _registerInterface(type(IRegistryService).interfaceId);
254
- }
180
+ // Internal
255
181
 
256
182
  function _getAndVerifyContractInfo(
257
183
  IRegisterable registerable,
258
184
  ObjectType expectedType, // assume can be valid only
259
- address expectedOwner // assume can be 0
185
+ address expectedOwner // assume can be 0 when given by other service
260
186
  )
261
187
  internal
262
188
  view
263
189
  returns(
264
- IRegistry.ObjectInfo memory info,
265
- bytes memory data
190
+ IRegistry.ObjectInfo memory info
266
191
  )
267
192
  {
268
- (
269
- info,
270
- data
271
- ) = registerable.getInitialInfo();
272
- info.objectAddress = address(registerable);
193
+ info = registerable.getInitialInfo();
194
+
195
+ if(info.objectAddress != address(registerable)) {
196
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
197
+ }
273
198
 
274
199
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
275
- revert UnexpectedRegisterableType(expectedType, info.objectType);
200
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
276
201
  }
277
202
 
278
203
  address owner = info.initialOwner;
279
204
 
280
- // solhint-disable-next-line
281
- if(expectedType == INSTANCE()) {
282
- // any address may create a new instance via instance service
283
- } else {
284
- if(owner != expectedOwner) { // registerable owner protection
285
- revert NotRegisterableOwner(expectedOwner);
286
- }
205
+ if(owner != expectedOwner) { // registerable owner protection
206
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
287
207
  }
288
208
 
289
209
  if(owner == address(registerable)) {
290
- revert SelfRegistration();
210
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
291
211
  }
292
212
 
293
213
  if(owner == address(0)) {
294
- revert RegisterableOwnerIsZero();
214
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
295
215
  }
296
216
 
297
217
  if(getRegistry().isRegistered(owner)) {
298
- revert RegisterableOwnerIsRegistered();
218
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
299
219
  }
300
-
301
- /*NftId parentNftId = info.parentNftId;
302
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
303
-
304
- if(parentInfo.objectType != parentType) { // parent registration + type
305
- revert InvalidParent(parentNftId);
306
- }*/
307
-
308
- return(
309
- info,
310
- data
311
- );
312
220
  }
313
221
 
314
222
  function _verifyObjectInfo(
@@ -318,41 +226,34 @@ contract RegistryService is
318
226
  internal
319
227
  view
320
228
  {
321
- // enforce instead of check
322
- info.objectAddress = address(0);
229
+ if(info.objectAddress > address(0)) {
230
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
231
+ }
323
232
 
324
233
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
325
- revert UnexpectedRegisterableType(expectedType, info.objectType);
234
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
326
235
  }
327
236
 
328
237
  address owner = info.initialOwner;
329
238
 
330
239
  if(owner == address(0)) {
331
- revert RegisterableOwnerIsZero();
332
- }
333
-
334
- if(getRegistry().isRegistered(owner)) {
335
- revert RegisterableOwnerIsRegistered();
240
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
336
241
  }
337
242
 
338
- // can catch all 3 if check that initialOwner is not registered
339
- /*if(info.initialOwner == msg.sender) {
340
- revert InitialOwnerIsParent();
243
+ if(owner == msg.sender) {
244
+ revert ErrorRegistryServiceInvalidInitialOwner(owner);
341
245
  }
342
246
 
343
- if(info.initialOwner == address(this)) {
344
- revert InitialOwnerIsService();
247
+ if(getRegistry().isRegistered(owner)) {
248
+ ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
249
+ if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
250
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
251
+ }
345
252
  }
253
+ }
346
254
 
347
- if(info.initialOwner == address(getRegistry())) {
348
- revert InitialOwnerIsRegistry();
349
- }*/
350
-
351
- /*NftId parentNftId = info.parentNftId;
352
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
353
-
354
- if(parentInfo.objectType != parentType) { // parent registration + type
355
- revert InvalidParent(parentNftId);
356
- }*/
255
+ // From IService
256
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
257
+ return REGISTRY();
357
258
  }
358
- }
259
+ }
@@ -1,67 +1,48 @@
1
- // SPDX-License-Identifier: UNLICENSED
1
+ // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
-
6
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
7
-
8
- import {Registry} from "./Registry.sol";
9
- import {IVersionable} from "../shared/IVersionable.sol";
10
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
11
6
  import {RegistryService} from "./RegistryService.sol";
12
- import {TokenRegistry} from "./TokenRegistry.sol";
13
-
14
7
 
15
8
  contract RegistryServiceManager is
16
9
  ProxyManager
17
10
  {
11
+ error ErrorRegistryAccessManagerAuthorityZero();
12
+ error ErrorRegistryAccessManagerRegistryZero();
13
+
18
14
  bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
19
15
 
20
- AccessManager private _accessManager;
21
- RegistryService private _registryService;
22
- TokenRegistry private _tokenRegistry;
16
+ RegistryService private immutable _registryService;
23
17
 
24
18
  /// @dev initializes proxy manager with registry service implementation and deploys registry
25
19
  constructor(
26
- address accessManager
27
- )
28
- ProxyManager()
20
+ address authority, // used by implementation
21
+ address registry, // used by implementation
22
+ bytes32 salt
23
+ )
29
24
  {
30
- _accessManager = AccessManager(accessManager);
31
-
32
- bytes memory initializationData = abi.encode(accessManager, type(Registry).creationCode);
33
-
34
- IVersionable versionable = deploy(
35
- address(new RegistryService()),
36
- initializationData);
25
+ if(authority == address(0)) {
26
+ revert ErrorRegistryAccessManagerAuthorityZero();
27
+ }
28
+
29
+ if(registry == address(0)) {
30
+ revert ErrorRegistryAccessManagerRegistryZero();
31
+ }
32
+
33
+ RegistryService srv = new RegistryService{ salt: salt }();
34
+ bytes memory data = abi.encode(registry, authority);
35
+ IVersionable versionable = initialize(
36
+ registry,
37
+ address(srv),
38
+ data,
39
+ salt);
37
40
 
38
41
  _registryService = RegistryService(address(versionable));
39
-
40
- // link ownership of registry service manager ot nft owner of registry service
41
- _linkToNftOwnable(
42
- address(_registryService.getRegistry()),
43
- address(_registryService));
44
-
45
- // deploy token registry
46
-
47
- // _tokenRegistry = new TokenRegistry(
48
- // address(_registryService.getRegistry()),
49
- // address(_registryService));
50
-
51
- // implies that after this constructor call only upgrade functionality is available
52
- _isDeployed = true;
53
42
  }
54
43
 
55
44
  //--- view functions ----------------------------------------------------//
56
45
 
57
- function getAccessManager()
58
- external
59
- view
60
- returns (AccessManager)
61
- {
62
- return _accessManager;
63
- }
64
-
65
46
  function getRegistryService()
66
47
  external
67
48
  view
@@ -69,12 +50,4 @@ contract RegistryServiceManager is
69
50
  {
70
51
  return _registryService;
71
52
  }
72
-
73
- function getTokenRegistry()
74
- external
75
- view
76
- returns (TokenRegistry)
77
- {
78
- return _tokenRegistry;
79
- }
80
53
  }
@@ -0,0 +1,27 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {RELEASE} from "../type/ObjectType.sol";
5
+ import {SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED/*, FREE*/} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ contract ReleaseLifecycle is
9
+ Lifecycle
10
+ {
11
+ constructor() {
12
+ _setupLifecycle();
13
+ }
14
+
15
+ function _setupLifecycle()
16
+ internal
17
+ override
18
+ {
19
+ setInitialState(RELEASE(), SCHEDULED());
20
+
21
+ setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
22
+ setStateTransition(RELEASE(), DEPLOYING(), DEPLOYING());
23
+ setStateTransition(RELEASE(), DEPLOYING(), ACTIVE());
24
+ setStateTransition(RELEASE(), ACTIVE(), PAUSED());
25
+ setStateTransition(RELEASE(), PAUSED(), ACTIVE());
26
+ }
27
+ }