@etherisc/gif-next 0.0.2-a6ce659-551 → 0.0.2-a6d7b34-014

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 (594) hide show
  1. package/README.md +116 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +525 -342
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -606
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +754 -323
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +227 -123
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +145 -272
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +535 -78
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1472 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2045 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1423 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1639 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2471 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +566 -85
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +380 -73
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +556 -215
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1954 -313
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1704 -759
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +373 -271
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +140 -126
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +922 -735
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +48 -7
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +142 -129
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +140 -413
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +176 -96
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +569 -265
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +215 -103
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +147 -396
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  136. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  137. package/artifacts/contracts/pool/Pool.sol/Pool.json +154 -694
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +923 -543
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +229 -105
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +158 -98
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +472 -235
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +194 -122
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +348 -16
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +282 -261
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  167. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +196 -163
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +195 -107
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +164 -136
  178. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  179. package/artifacts/contracts/product/Product.sol/Product.json +284 -564
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.json +780 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +381 -66
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +97 -148
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  194. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/Registry.sol/Registry.json +614 -130
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -545
  198. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +140 -88
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +48 -7
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +504 -27
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Component.sol/Component.json +86 -277
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +602 -578
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +188 -130
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  228. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +131 -129
  234. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  236. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +125 -366
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +46 -55
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +341 -133
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +184 -23
  277. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  278. package/artifacts/contracts/staking/Staking.sol/Staking.json +468 -419
  279. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +48 -7
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +180 -99
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -171
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +157 -93
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +213 -153
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -49
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +59 -4
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -91
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  353. package/contracts/accounting/AccountingService.sol +274 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +47 -0
  356. package/contracts/authorization/AccessAdmin.sol +780 -0
  357. package/contracts/authorization/AccessAdminLib.sol +396 -0
  358. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  359. package/contracts/authorization/Authorization.sol +169 -0
  360. package/contracts/authorization/IAccess.sol +67 -0
  361. package/contracts/authorization/IAccessAdmin.sol +144 -0
  362. package/contracts/authorization/IAuthorization.sol +27 -0
  363. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  364. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  365. package/contracts/distribution/BasicDistribution.sol +141 -0
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  367. package/contracts/distribution/Distribution.sol +125 -139
  368. package/contracts/distribution/DistributionService.sol +283 -132
  369. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  370. package/contracts/distribution/IDistributionComponent.sol +21 -42
  371. package/contracts/distribution/IDistributionService.sol +60 -26
  372. package/contracts/examples/fire/DamageLevel.sol +59 -0
  373. package/contracts/examples/fire/FirePool.sol +86 -0
  374. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  375. package/contracts/examples/fire/FireProduct.sol +433 -0
  376. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  377. package/contracts/examples/fire/FireUSD.sol +26 -0
  378. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  379. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  382. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  384. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  385. package/contracts/instance/BundleSet.sol +130 -0
  386. package/contracts/instance/IInstance.sol +106 -48
  387. package/contracts/instance/IInstanceService.sol +62 -43
  388. package/contracts/instance/Instance.sol +214 -131
  389. package/contracts/instance/InstanceAdmin.sol +301 -249
  390. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  391. package/contracts/instance/InstanceReader.sol +492 -252
  392. package/contracts/instance/InstanceService.sol +298 -238
  393. package/contracts/instance/InstanceServiceManager.sol +8 -13
  394. package/contracts/instance/InstanceStore.sol +29 -3
  395. package/contracts/instance/RiskSet.sol +118 -0
  396. package/contracts/instance/base/BalanceStore.sol +3 -5
  397. package/contracts/instance/base/ObjectCounter.sol +1 -2
  398. package/contracts/instance/base/ObjectLifecycle.sol +54 -43
  399. package/contracts/instance/base/ObjectSet.sol +77 -0
  400. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  401. package/contracts/instance/module/IBundle.sol +6 -5
  402. package/contracts/instance/module/IComponents.sol +30 -20
  403. package/contracts/instance/module/IDistribution.sol +21 -9
  404. package/contracts/instance/module/IPolicy.sol +50 -29
  405. package/contracts/instance/module/IRisk.sol +5 -0
  406. package/contracts/mock/Dip.sol +1 -1
  407. package/contracts/oracle/BasicOracle.sol +45 -0
  408. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  409. package/contracts/oracle/IOracle.sol +25 -4
  410. package/contracts/oracle/IOracleComponent.sol +2 -1
  411. package/contracts/oracle/IOracleService.sol +2 -1
  412. package/contracts/oracle/Oracle.sol +62 -53
  413. package/contracts/oracle/OracleService.sol +117 -85
  414. package/contracts/oracle/OracleServiceManager.sol +8 -11
  415. package/contracts/pool/BasicPool.sol +162 -0
  416. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  417. package/contracts/pool/BundleService.sol +222 -132
  418. package/contracts/pool/BundleServiceManager.sol +8 -11
  419. package/contracts/pool/IBundleService.sol +43 -33
  420. package/contracts/pool/IPoolComponent.sol +20 -70
  421. package/contracts/pool/IPoolService.sol +97 -77
  422. package/contracts/pool/Pool.sol +198 -164
  423. package/contracts/pool/PoolLib.sol +341 -0
  424. package/contracts/pool/PoolService.sol +419 -257
  425. package/contracts/pool/PoolServiceManager.sol +6 -9
  426. package/contracts/product/ApplicationService.sol +153 -80
  427. package/contracts/product/ApplicationServiceManager.sol +6 -6
  428. package/contracts/product/BasicProduct.sol +49 -0
  429. package/contracts/product/BasicProductAuthorization.sol +63 -0
  430. package/contracts/product/ClaimService.sol +382 -183
  431. package/contracts/product/ClaimServiceManager.sol +6 -6
  432. package/contracts/product/IApplicationService.sol +29 -3
  433. package/contracts/product/IClaimService.sol +44 -8
  434. package/contracts/product/IPolicyService.sol +61 -37
  435. package/contracts/product/IPricingService.sol +11 -10
  436. package/contracts/product/IProductComponent.sol +29 -9
  437. package/contracts/product/IRiskService.sol +37 -0
  438. package/contracts/product/PolicyService.sol +443 -273
  439. package/contracts/product/PolicyServiceLib.sol +139 -0
  440. package/contracts/product/PolicyServiceManager.sol +6 -9
  441. package/contracts/product/PricingService.sol +90 -84
  442. package/contracts/product/PricingServiceManager.sol +6 -9
  443. package/contracts/product/Product.sol +237 -142
  444. package/contracts/product/RiskService.sol +163 -0
  445. package/contracts/product/RiskServiceManager.sol +39 -0
  446. package/contracts/registry/ChainNft.sol +72 -40
  447. package/contracts/registry/IRegistry.sol +84 -33
  448. package/contracts/registry/IRegistryService.sol +3 -10
  449. package/contracts/registry/IRelease.sol +29 -0
  450. package/contracts/registry/ITransferInterceptor.sol +1 -2
  451. package/contracts/registry/Registry.sol +375 -221
  452. package/contracts/registry/RegistryAdmin.sol +115 -260
  453. package/contracts/registry/RegistryAuthorization.sol +284 -0
  454. package/contracts/registry/RegistryService.sol +42 -67
  455. package/contracts/registry/RegistryServiceManager.sol +5 -5
  456. package/contracts/registry/ReleaseAdmin.sol +195 -0
  457. package/contracts/registry/ReleaseLifecycle.sol +14 -10
  458. package/contracts/registry/ReleaseRegistry.sol +520 -0
  459. package/contracts/registry/ServiceAuthorizationV3.sol +209 -65
  460. package/contracts/registry/TokenRegistry.sol +14 -15
  461. package/contracts/shared/Component.sol +65 -136
  462. package/contracts/shared/ComponentService.sol +442 -383
  463. package/contracts/shared/ComponentServiceManager.sol +10 -7
  464. package/contracts/shared/ContractLib.sol +311 -0
  465. package/contracts/shared/IComponent.sol +6 -18
  466. package/contracts/shared/IComponentService.sol +50 -41
  467. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  468. package/contracts/shared/ILifecycle.sol +3 -1
  469. package/contracts/shared/INftOwnable.sol +4 -0
  470. package/contracts/shared/IPolicyHolder.sol +12 -22
  471. package/contracts/shared/IRegisterable.sol +22 -1
  472. package/contracts/shared/IService.sol +4 -6
  473. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  474. package/contracts/shared/InstanceLinkedComponent.sol +95 -45
  475. package/contracts/shared/KeyValueStore.sol +2 -2
  476. package/contracts/shared/Lifecycle.sol +30 -9
  477. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  478. package/contracts/shared/NftOwnable.sol +33 -11
  479. package/contracts/shared/PolicyHolder.sol +20 -59
  480. package/contracts/shared/Registerable.sol +52 -21
  481. package/contracts/shared/RegistryLinked.sol +9 -14
  482. package/contracts/shared/Service.sol +22 -38
  483. package/contracts/shared/TokenHandler.sol +310 -26
  484. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  485. package/contracts/staking/IStaking.sol +49 -22
  486. package/contracts/staking/IStakingService.sol +27 -10
  487. package/contracts/staking/Staking.sol +213 -121
  488. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  489. package/contracts/staking/StakingLifecycle.sol +5 -6
  490. package/contracts/staking/StakingManager.sol +10 -12
  491. package/contracts/staking/StakingReader.sol +46 -34
  492. package/contracts/staking/StakingService.sol +96 -39
  493. package/contracts/staking/StakingServiceManager.sol +8 -7
  494. package/contracts/staking/StakingStore.sol +15 -24
  495. package/contracts/staking/TargetManagerLib.sol +8 -4
  496. package/contracts/type/Amount.sol +27 -5
  497. package/contracts/type/Blocknumber.sol +7 -1
  498. package/contracts/type/ClaimId.sol +6 -1
  499. package/contracts/type/Fee.sol +8 -8
  500. package/contracts/type/Key32.sol +2 -2
  501. package/contracts/type/Key32Set.sol +62 -0
  502. package/contracts/type/NftId.sol +7 -0
  503. package/contracts/type/ObjectType.sol +94 -28
  504. package/contracts/type/PayoutId.sol +10 -10
  505. package/contracts/type/Referral.sol +1 -0
  506. package/contracts/type/RiskId.sol +38 -6
  507. package/contracts/type/RoleId.sol +93 -114
  508. package/contracts/type/Seconds.sol +25 -1
  509. package/contracts/type/Selector.sol +5 -0
  510. package/contracts/type/StateId.sol +15 -1
  511. package/contracts/type/String.sol +12 -0
  512. package/contracts/type/Timestamp.sol +10 -5
  513. package/contracts/type/UFixed.sol +61 -125
  514. package/contracts/type/Version.sol +57 -6
  515. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  516. package/contracts/{shared → upgradeability}/ProxyManager.sol +96 -49
  517. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  518. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  519. package/package.json +7 -6
  520. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  522. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  523. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  524. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  526. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  528. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  529. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  530. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  531. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  532. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  533. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  534. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  535. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +0 -148
  536. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  537. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1211
  538. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  539. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
  540. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  541. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  542. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  543. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  544. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  545. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  546. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  547. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  548. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  549. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  550. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  551. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  552. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  553. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  555. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  556. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  557. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  558. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  559. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  560. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  561. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  562. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  563. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  564. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  565. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  566. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  567. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  568. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  569. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  570. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  571. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  572. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  573. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  574. package/contracts/instance/BundleManager.sol +0 -126
  575. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  576. package/contracts/instance/base/ObjectManager.sol +0 -80
  577. package/contracts/instance/module/IAccess.sol +0 -46
  578. package/contracts/product/IProductService.sol +0 -33
  579. package/contracts/product/ProductService.sol +0 -124
  580. package/contracts/product/ProductServiceManager.sol +0 -42
  581. package/contracts/registry/IServiceAuthorization.sol +0 -38
  582. package/contracts/registry/ReleaseManager.sol +0 -523
  583. package/contracts/registry/ServiceAuthorization.sol +0 -90
  584. package/contracts/shared/AccessAdmin.sol +0 -759
  585. package/contracts/shared/AccessManagerCustom.sol +0 -741
  586. package/contracts/shared/AccessManagerExtended.sol +0 -481
  587. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  588. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  589. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  590. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  591. package/contracts/shared/IAccessAdmin.sol +0 -168
  592. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  593. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  594. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -0,0 +1,284 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IStaking} from "../staking/IStaking.sol";
7
+
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {POOL, REGISTRY, STAKING} from "../../contracts/type/ObjectType.sol";
10
+ import {PUBLIC_ROLE} from "../type/RoleId.sol";
11
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
12
+ import {RegistryAdmin} from "./RegistryAdmin.sol";
13
+ import {RoleIdLib, ADMIN_ROLE, GIF_ADMIN_ROLE, GIF_MANAGER_ROLE} from "../type/RoleId.sol";
14
+ import {Staking} from "../staking/Staking.sol";
15
+ import {StakingStore} from "../staking/StakingStore.sol";
16
+ import {TokenHandler} from "../shared/TokenHandler.sol";
17
+ import {TokenRegistry} from "../registry/TokenRegistry.sol";
18
+ import {VersionPartLib} from "../type/Version.sol";
19
+
20
+
21
+ contract RegistryAuthorization
22
+ is Authorization
23
+ {
24
+
25
+ /// @dev gif core roles
26
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
27
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
28
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
29
+ string public constant STAKING_ROLE_NAME = "StakingRole";
30
+
31
+ /// @dev gif roles for external contracts
32
+ string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
33
+ string public constant COMPONENT_SERVICE_ROLE_NAME = "ComponentServiceRole";
34
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
35
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
36
+
37
+ /// @dev gif core targets
38
+ string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
39
+ string public constant REGISTRY_TARGET_NAME = "Registry";
40
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
41
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
42
+
43
+ string public constant STAKING_TARGET_NAME = "Staking";
44
+ string public constant STAKING_TH_TARGET_NAME = "StakingTh";
45
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
46
+
47
+ constructor(string memory commitHash)
48
+ Authorization(
49
+ REGISTRY_TARGET_NAME,
50
+ REGISTRY(),
51
+ 3,
52
+ commitHash,
53
+ false, // isComponent
54
+ false) // includeTokenHandler
55
+ { }
56
+
57
+ /// @dev Sets up the GIF admin and manager roles.
58
+ function _setupRoles() internal override {
59
+
60
+ // max number of versioned contracts per generic service
61
+ uint32 maxReleases = uint32(VersionPartLib.releaseMax().toInt());
62
+
63
+ // service roles (for all releases)
64
+ _addRole(
65
+ RoleIdLib.toGenericServiceRoleId(REGISTRY()),
66
+ _toRoleInfo({
67
+ adminRoleId: ADMIN_ROLE(),
68
+ roleType: RoleType.Core,
69
+ maxMemberCount: maxReleases,
70
+ name: REGISTRY_SERVICE_ROLE_NAME}));
71
+
72
+ _addRole(
73
+ RoleIdLib.toGenericServiceRoleId(STAKING()),
74
+ _toRoleInfo({
75
+ adminRoleId: ADMIN_ROLE(),
76
+ roleType: RoleType.Core,
77
+ maxMemberCount: maxReleases,
78
+ name: STAKING_SERVICE_ROLE_NAME}));
79
+
80
+ _addRole(
81
+ RoleIdLib.toGenericServiceRoleId(POOL()),
82
+ _toRoleInfo({
83
+ adminRoleId: ADMIN_ROLE(),
84
+ roleType: RoleType.Core,
85
+ maxMemberCount: maxReleases,
86
+ name: POOL_SERVICE_ROLE_NAME}));
87
+
88
+ // gif admin role
89
+ _addRole(
90
+ GIF_ADMIN_ROLE(),
91
+ _toRoleInfo({
92
+ adminRoleId: ADMIN_ROLE(),
93
+ roleType: RoleType.Core,
94
+ maxMemberCount: 2, // TODO decide on max member count
95
+ name: GIF_ADMIN_ROLE_NAME}));
96
+
97
+ // gif manager role
98
+ _addRole(
99
+ GIF_MANAGER_ROLE(),
100
+ _toRoleInfo({
101
+ adminRoleId: ADMIN_ROLE(),
102
+ roleType: RoleType.Core,
103
+ maxMemberCount: 1, // TODO decide on max member count
104
+ name: GIF_MANAGER_ROLE_NAME}));
105
+
106
+ }
107
+
108
+ /// @dev Sets up the relevant (non-service) targets for the registry.
109
+ function _setupTargets() internal override {
110
+ _addGifTarget(REGISTRY_ADMIN_TARGET_NAME);
111
+ _addGifTarget(RELEASE_REGISTRY_TARGET_NAME);
112
+ _addGifTarget(TOKEN_REGISTRY_TARGET_NAME);
113
+
114
+ _addGifTarget(STAKING_TARGET_NAME);
115
+ _addGifTarget(STAKING_TH_TARGET_NAME);
116
+ _addGifTarget(STAKING_STORE_TARGET_NAME);
117
+ }
118
+
119
+
120
+ function _setupTargetAuthorizations()
121
+ internal
122
+ override
123
+ {
124
+ // registry
125
+ _setupRegistryAuthorization();
126
+ _setupRegistryAdminAuthorization();
127
+ _setupReleaseRegistryAuthorization();
128
+ _setupTokenRegistryAuthorization();
129
+
130
+ // staking
131
+ _setupStakingAuthorization();
132
+ _setupStakingThAuthorization();
133
+ _setupStakingStoreAuthorization();
134
+ }
135
+
136
+ event LogAccessAdminDebug(string message, string custom, uint256 value);
137
+
138
+ function _setupRegistryAuthorization() internal {
139
+ IAccess.FunctionInfo[] storage functions;
140
+
141
+ // gif admin role
142
+ functions = _authorizeForTarget(REGISTRY_TARGET_NAME, GIF_ADMIN_ROLE());
143
+ _authorize(functions, IRegistry.registerRegistry.selector, "registerRegistry");
144
+
145
+ // registry service role
146
+ functions = _authorizeForTarget(
147
+ REGISTRY_TARGET_NAME,
148
+ RoleIdLib.toGenericServiceRoleId(REGISTRY()));
149
+
150
+ _authorize(functions, IRegistry.register.selector, "register");
151
+ _authorize(functions, IRegistry.registerWithCustomType.selector, "registerWithCustomType");
152
+
153
+ // release registry role
154
+ functions = _authorizeForTarget(
155
+ REGISTRY_TARGET_NAME,
156
+ getTargetRole(getTarget(RELEASE_REGISTRY_TARGET_NAME)));
157
+
158
+ _authorize(functions, IRegistry.registerService.selector, "registerService");
159
+ }
160
+
161
+
162
+ function _setupRegistryAdminAuthorization() internal {
163
+ IAccess.FunctionInfo[] storage functions;
164
+
165
+ // release registry role
166
+ functions = _authorizeForTarget(
167
+ REGISTRY_ADMIN_TARGET_NAME,
168
+ getTargetRole(getTarget(RELEASE_REGISTRY_TARGET_NAME)));
169
+
170
+ _authorize(functions, RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
171
+ }
172
+
173
+
174
+ function _setupReleaseRegistryAuthorization() internal {
175
+ IAccess.FunctionInfo[] storage functions;
176
+
177
+ functions = _authorizeForTarget(RELEASE_REGISTRY_TARGET_NAME, GIF_ADMIN_ROLE());
178
+ _authorize(functions, ReleaseRegistry.createNextRelease.selector, "createNextRelease");
179
+ _authorize(functions, ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
180
+ _authorize(functions, ReleaseRegistry.setActive.selector, "setActive");
181
+
182
+ functions = _authorizeForTarget(RELEASE_REGISTRY_TARGET_NAME, GIF_MANAGER_ROLE());
183
+ _authorize(functions, ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
184
+ _authorize(functions, ReleaseRegistry.registerService.selector, "registerService");
185
+ }
186
+
187
+
188
+ function _setupTokenRegistryAuthorization() internal {
189
+ IAccess.FunctionInfo[] storage functions;
190
+
191
+ // gif manager role
192
+ functions = _authorizeForTarget(TOKEN_REGISTRY_TARGET_NAME, GIF_MANAGER_ROLE());
193
+ _authorize(functions, TokenRegistry.registerToken.selector, "registerToken");
194
+ _authorize(functions, TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
195
+ _authorize(functions, TokenRegistry.setActive.selector, "setActive");
196
+ _authorize(functions, TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
197
+ // TODO find a better way (only needed for testing)
198
+ _authorize(functions, TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
199
+ }
200
+
201
+
202
+ function _setupStakingAuthorization() internal {
203
+ IAccess.FunctionInfo[] storage functions;
204
+
205
+ // staking public role (protected by owner)
206
+ functions = _authorizeForTarget(
207
+ STAKING_TARGET_NAME,
208
+ PUBLIC_ROLE());
209
+
210
+ _authorize(functions, IStaking.setProtocolLockingPeriod.selector, "setProtocolLockingPeriod");
211
+ _authorize(functions, IStaking.setProtocolRewardRate.selector, "setProtocolRewardRate");
212
+ _authorize(functions, IStaking.setStakingReader.selector, "setStakingReader");
213
+ _authorize(functions, IStaking.approveTokenHandler.selector, "approveTokenHandler");
214
+ _authorize(functions, IStaking.approveTokenHandler.selector, "approveTokenHandler");
215
+ _authorize(functions, Staking.setStakingReader.selector, "setStakingReader");
216
+ _authorize(functions, Staking.setStakingRate.selector, "setStaking");
217
+
218
+ // staking service role
219
+ functions = _authorizeForTarget(
220
+ STAKING_TARGET_NAME,
221
+ RoleIdLib.toGenericServiceRoleId(STAKING()));
222
+
223
+ _authorize(functions, IStaking.registerTarget.selector, "registerTarget");
224
+ _authorize(functions, IStaking.setLockingPeriod.selector, "setLockingPeriod");
225
+ _authorize(functions, IStaking.setRewardRate.selector, "setRewardRate");
226
+ _authorize(functions, IStaking.setMaxStakedAmount.selector, "setMaxStakedAmount");
227
+ _authorize(functions, IStaking.refillRewardReserves.selector, "refillRewardReserves");
228
+ _authorize(functions, IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
229
+ _authorize(functions, IStaking.createStake.selector, "createStake");
230
+ _authorize(functions, IStaking.stake.selector, "stake");
231
+ _authorize(functions, IStaking.unstake.selector, "unstake");
232
+ _authorize(functions, IStaking.restake.selector, "restake");
233
+ _authorize(functions, IStaking.updateRewards.selector, "updateRewards");
234
+ _authorize(functions, IStaking.claimRewards.selector, "claimRewards");
235
+
236
+ // pool service role
237
+ functions = _authorizeForTarget(
238
+ STAKING_TARGET_NAME,
239
+ RoleIdLib.toGenericServiceRoleId(POOL()));
240
+
241
+ _authorize(functions, IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
242
+ _authorize(functions, IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
243
+ }
244
+
245
+
246
+ function _setupStakingThAuthorization() internal {
247
+ IAccess.FunctionInfo[] storage functions;
248
+
249
+ // staking service role
250
+ functions = _authorizeForTarget(
251
+ STAKING_TH_TARGET_NAME,
252
+ RoleIdLib.toGenericServiceRoleId(STAKING()));
253
+
254
+ _authorize(functions, TokenHandler.approve.selector, "approve");
255
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
256
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
257
+ }
258
+
259
+
260
+ function _setupStakingStoreAuthorization() internal {
261
+ IAccess.FunctionInfo[] storage functions;
262
+
263
+ // release registry role
264
+ functions = _authorizeForTarget(
265
+ STAKING_STORE_TARGET_NAME,
266
+ getTargetRole(getTarget(STAKING_TARGET_NAME)));
267
+
268
+ _authorize(functions, StakingStore.setStakingRate.selector, "setStakingRate");
269
+ _authorize(functions, StakingStore.createTarget.selector, "createTarget");
270
+ _authorize(functions, StakingStore.updateTarget.selector, "updateTarget");
271
+ _authorize(functions, StakingStore.increaseReserves.selector, "increaseReserves");
272
+ _authorize(functions, StakingStore.decreaseReserves.selector, "decreaseReserves");
273
+ _authorize(functions, StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
274
+ _authorize(functions, StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
275
+ _authorize(functions, StakingStore.create.selector, "create");
276
+ _authorize(functions, StakingStore.update.selector, "update");
277
+ _authorize(functions, StakingStore.increaseStake.selector, "increaseStake");
278
+ _authorize(functions, StakingStore.restakeRewards.selector, "restakeRewards");
279
+ _authorize(functions, StakingStore.updateRewards.selector, "updateRewards");
280
+ _authorize(functions, StakingStore.claimUpTo.selector, "claimUpTo");
281
+ _authorize(functions, StakingStore.unstakeUpTo.selector, "unstakeUpTo");
282
+ }
283
+ }
284
+
@@ -1,39 +1,23 @@
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";
8
- import {IInstance} from "../instance/IInstance.sol";
9
-
10
4
  import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
11
7
  import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
12
8
  import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
13
- import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
14
-
15
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
16
- import {Versionable} from "../../contracts/shared/Versionable.sol";
17
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
18
12
 
19
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
20
13
  import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
21
- import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
22
14
  import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
23
- import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
24
- import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
25
-
26
15
  import {Service} from "../shared/Service.sol";
27
- import {IService} from "../shared/IService.sol";
28
- import {IRegistryService} from "./IRegistryService.sol";
29
- import {Registry} from "./Registry.sol";
30
16
 
31
17
  contract RegistryService is
32
18
  Service,
33
19
  IRegistryService
34
20
  {
35
- using NftIdLib for NftId;
36
-
37
21
  // TODO update to real hash when registry is stable
38
22
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
39
23
 
@@ -46,15 +30,15 @@ contract RegistryService is
46
30
  )
47
31
  internal
48
32
  virtual override
49
- initializer()
33
+ onlyInitializing
50
34
  {
51
35
  (
52
- address registryAddress,
53
- address initialAuthority
36
+ address authority,
37
+ address registry
54
38
  ) = abi.decode(data, (address, address));
55
39
 
56
- initializeService(registryAddress, initialAuthority, owner);
57
- registerInterface(type(IRegistryService).interfaceId);
40
+ __Service_init(authority, registry, owner);
41
+ _registerInterface(type(IRegistryService).interfaceId);
58
42
  }
59
43
 
60
44
 
@@ -74,7 +58,7 @@ contract RegistryService is
74
58
  function registerInstance(IRegisterable instance, address owner)
75
59
  external
76
60
  virtual
77
- restricted
61
+ restricted()
78
62
  returns(
79
63
  IRegistry.ObjectInfo memory info
80
64
  )
@@ -89,29 +73,33 @@ contract RegistryService is
89
73
  instance.linkToRegisteredNftId(); // asume safe
90
74
  }
91
75
 
92
- function registerProduct(IComponent product, address owner)
76
+ function registerProduct(
77
+ IComponent product,
78
+ address initialOwner
79
+ )
93
80
  external
94
- restricted
81
+ virtual
82
+ restricted()
95
83
  returns(
96
84
  IRegistry.ObjectInfo memory info
97
85
  )
98
86
  {
99
- // CAN revert if no ERC165 support -> will revert with empty message
100
87
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
101
88
  revert ErrorRegistryServiceNotProduct(address(product));
102
89
  }
103
90
 
104
- info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
91
+ info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
105
92
  info.nftId = getRegistry().register(info);
106
93
  }
107
94
 
108
- function registerComponent(
95
+ function registerProductLinkedComponent(
109
96
  IComponent component,
110
97
  ObjectType objectType,
111
98
  address initialOwner
112
99
  )
113
100
  external
114
- restricted
101
+ virtual
102
+ restricted()
115
103
  returns(
116
104
  IRegistry.ObjectInfo memory info
117
105
  )
@@ -121,43 +109,18 @@ contract RegistryService is
121
109
  revert ErrorRegistryServiceNotComponent(address(component));
122
110
  }
123
111
 
124
- info = _getAndVerifyContractInfo(component, objectType, initialOwner);
125
- info.nftId = getRegistry().register(info);
126
- }
127
-
128
- function registerPool(IComponent pool, address owner)
129
- external
130
- restricted
131
- returns(
132
- IRegistry.ObjectInfo memory info
133
- )
134
- {
135
- if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
136
- revert ErrorRegistryServiceNotPool(address(pool));
137
- }
138
-
139
- info = _getAndVerifyContractInfo(pool, POOL(), owner);
140
- info.nftId = getRegistry().register(info);
141
- }
142
-
143
- function registerDistribution(IComponent distribution, address owner)
144
- external
145
- restricted
146
- returns(
147
- IRegistry.ObjectInfo memory info
148
- )
149
- {
150
- if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
151
- revert ErrorRegistryServiceNotDistribution(address(distribution));
112
+ if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
113
+ revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
152
114
  }
153
115
 
154
- info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
116
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
155
117
  info.nftId = getRegistry().register(info);
156
118
  }
157
119
 
158
120
  function registerDistributor(IRegistry.ObjectInfo memory info)
159
121
  external
160
- restricted
122
+ virtual
123
+ restricted()
161
124
  returns(NftId nftId)
162
125
  {
163
126
  _verifyObjectInfo(info, DISTRIBUTOR());
@@ -166,7 +129,8 @@ contract RegistryService is
166
129
 
167
130
  function registerPolicy(IRegistry.ObjectInfo memory info)
168
131
  external
169
- restricted
132
+ virtual
133
+ restricted()
170
134
  returns(NftId nftId)
171
135
  {
172
136
  _verifyObjectInfo(info, POLICY());
@@ -175,7 +139,8 @@ contract RegistryService is
175
139
 
176
140
  function registerBundle(IRegistry.ObjectInfo memory info)
177
141
  external
178
- restricted
142
+ virtual
143
+ restricted()
179
144
  returns(NftId nftId)
180
145
  {
181
146
  _verifyObjectInfo(info, BUNDLE());
@@ -184,7 +149,8 @@ contract RegistryService is
184
149
 
185
150
  function registerStake(IRegistry.ObjectInfo memory info)
186
151
  external
187
- restricted
152
+ virtual
153
+ restricted()
188
154
  returns(NftId nftId)
189
155
  {
190
156
  _verifyObjectInfo(info, STAKE());
@@ -199,6 +165,7 @@ contract RegistryService is
199
165
  address expectedOwner // assume can be 0 when given by other service
200
166
  )
201
167
  internal
168
+ virtual
202
169
  view
203
170
  returns(
204
171
  IRegistry.ObjectInfo memory info
@@ -238,6 +205,7 @@ contract RegistryService is
238
205
  ObjectType expectedType
239
206
  )
240
207
  internal
208
+ virtual
241
209
  view
242
210
  {
243
211
  if(info.objectAddress > address(0)) {
@@ -254,8 +222,15 @@ contract RegistryService is
254
222
  revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
255
223
  }
256
224
 
257
- if(getRegistry().isRegistered(owner)) {
258
- revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
225
+ if(owner == msg.sender) {
226
+ revert ErrorRegistryServiceInvalidInitialOwner(owner);
227
+ }
228
+
229
+ if(getRegistry().isRegistered(owner)) {
230
+ ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
231
+ if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
232
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
233
+ }
259
234
  }
260
235
  }
261
236
 
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {RegistryService} from "./RegistryService.sol";
7
7
 
8
8
  contract RegistryServiceManager is
@@ -21,7 +21,6 @@ contract RegistryServiceManager is
21
21
  address registry, // used by implementation
22
22
  bytes32 salt
23
23
  )
24
- ProxyManager(registry)
25
24
  {
26
25
  if(authority == address(0)) {
27
26
  revert ErrorRegistryAccessManagerAuthorityZero();
@@ -32,8 +31,9 @@ contract RegistryServiceManager is
32
31
  }
33
32
 
34
33
  RegistryService srv = new RegistryService{ salt: salt }();
35
- bytes memory data = abi.encode(registry, authority);
36
- IVersionable versionable = deployDetermenistic(
34
+ bytes memory data = abi.encode(authority, registry);
35
+ IVersionable versionable = initialize(
36
+ registry,
37
37
  address(srv),
38
38
  data,
39
39
  salt);