@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-df69269-973

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 (406) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +65 -58
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +20 -22
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -55
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  12. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +115 -21
  14. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +37 -5
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +42 -13
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -47
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +90 -33
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -21
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -8
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +76 -42
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +93 -40
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +233 -184
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +90 -33
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -54
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +90 -33
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +98 -48
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +93 -40
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +262 -147
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +90 -33
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +289 -92
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +97 -40
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +81 -195
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +40 -268
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  84. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  91. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  97. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -38
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +92 -35
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -8
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -22
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +93 -40
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +101 -94
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +38 -40
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +27 -3
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +27 -3
  127. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  128. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +85 -78
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +30 -32
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +90 -33
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +249 -150
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +57 -55
  145. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +27 -3
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
  155. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +95 -88
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +35 -37
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  165. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  166. package/artifacts/contracts/product/Product.sol/Product.json +157 -112
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +7 -2
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  176. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  177. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +45 -40
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +176 -214
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  187. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +307 -49
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  197. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  198. package/artifacts/contracts/shared/Component.sol/Component.json +51 -21
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  200. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +113 -90
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +44 -38
  203. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
  207. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  211. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -8
  213. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -3
  215. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
  217. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  219. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  223. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  241. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +3 -3
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  249. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -8
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  255. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  256. package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +59 -52
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +17 -19
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  276. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  278. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  281. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  282. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +23 -4
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  306. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  309. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  311. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  312. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  313. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  314. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  315. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  316. package/contracts/accounting/AccountingService.sol +3 -4
  317. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  318. package/contracts/authorization/AccessAdmin.sol +115 -71
  319. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  320. package/contracts/authorization/Authorization.sol +268 -227
  321. package/contracts/authorization/IAccessAdmin.sol +6 -3
  322. package/contracts/authorization/IAuthorization.sol +7 -1
  323. package/contracts/distribution/BasicDistributionAuthorization.sol +9 -8
  324. package/contracts/distribution/DistributionService.sol +6 -6
  325. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  326. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  327. package/contracts/examples/fire/FireProduct.sol +3 -1
  328. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  329. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  330. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  331. package/contracts/examples/unpermissioned/SimpleProduct.sol +18 -0
  332. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  333. package/contracts/instance/BundleSet.sol +0 -1
  334. package/contracts/instance/IInstance.sol +6 -7
  335. package/contracts/instance/IInstanceService.sol +2 -0
  336. package/contracts/instance/Instance.sol +17 -9
  337. package/contracts/instance/InstanceAdmin.sol +227 -53
  338. package/contracts/instance/InstanceAuthorizationV3.sol +14 -8
  339. package/contracts/instance/InstanceReader.sol +6 -6
  340. package/contracts/instance/InstanceService.sol +41 -29
  341. package/contracts/instance/InstanceServiceManager.sol +1 -1
  342. package/contracts/instance/InstanceStore.sol +1 -0
  343. package/contracts/instance/RiskSet.sol +7 -9
  344. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  345. package/contracts/instance/module/IComponents.sol +0 -8
  346. package/contracts/instance/module/IRisk.sol +2 -0
  347. package/contracts/oracle/BasicOracleAuthorization.sol +11 -10
  348. package/contracts/oracle/Oracle.sol +1 -1
  349. package/contracts/oracle/OracleService.sol +16 -15
  350. package/contracts/oracle/OracleServiceManager.sol +1 -1
  351. package/contracts/pool/BasicPoolAuthorization.sol +10 -9
  352. package/contracts/pool/BundleService.sol +3 -3
  353. package/contracts/pool/BundleServiceManager.sol +1 -1
  354. package/contracts/pool/PoolService.sol +4 -4
  355. package/contracts/pool/PoolServiceManager.sol +1 -1
  356. package/contracts/product/ApplicationService.sol +3 -3
  357. package/contracts/product/ApplicationServiceManager.sol +1 -1
  358. package/contracts/product/BasicProduct.sol +2 -0
  359. package/contracts/product/BasicProductAuthorization.sol +10 -9
  360. package/contracts/product/ClaimService.sol +144 -50
  361. package/contracts/product/ClaimServiceManager.sol +1 -1
  362. package/contracts/product/IClaimService.sol +13 -0
  363. package/contracts/product/IProductComponent.sol +4 -1
  364. package/contracts/product/PolicyService.sol +3 -3
  365. package/contracts/product/PolicyServiceManager.sol +1 -1
  366. package/contracts/product/PricingService.sol +23 -19
  367. package/contracts/product/PricingServiceManager.sol +3 -3
  368. package/contracts/product/Product.sol +36 -0
  369. package/contracts/product/RiskService.sol +65 -21
  370. package/contracts/product/RiskServiceManager.sol +1 -1
  371. package/contracts/registry/IRegistry.sol +6 -15
  372. package/contracts/registry/IRelease.sol +26 -0
  373. package/contracts/registry/Registry.sol +3 -2
  374. package/contracts/registry/RegistryAdmin.sol +117 -230
  375. package/contracts/registry/RegistryService.sol +3 -3
  376. package/contracts/registry/RegistryServiceManager.sol +1 -1
  377. package/contracts/registry/ReleaseAdmin.sol +245 -0
  378. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  379. package/contracts/registry/ReleaseRegistry.sol +124 -99
  380. package/contracts/registry/ServiceAuthorizationV3.sol +36 -1
  381. package/contracts/registry/TokenRegistry.sol +6 -8
  382. package/contracts/shared/Component.sol +24 -17
  383. package/contracts/shared/ComponentService.sol +63 -51
  384. package/contracts/shared/ComponentServiceManager.sol +1 -1
  385. package/contracts/shared/ContractLib.sol +29 -1
  386. package/contracts/shared/IComponent.sol +3 -4
  387. package/contracts/shared/IRegisterable.sol +15 -4
  388. package/contracts/shared/IService.sol +3 -5
  389. package/contracts/shared/NftOwnable.sol +4 -4
  390. package/contracts/shared/PolicyHolder.sol +1 -1
  391. package/contracts/shared/Registerable.sol +45 -19
  392. package/contracts/shared/RegistryLinked.sol +1 -1
  393. package/contracts/shared/Service.sol +8 -27
  394. package/contracts/shared/TokenHandler.sol +2 -2
  395. package/contracts/staking/Staking.sol +23 -12
  396. package/contracts/staking/StakingService.sol +2 -3
  397. package/contracts/type/ObjectType.sol +41 -27
  398. package/contracts/type/RiskId.sol +5 -0
  399. package/contracts/type/RoleId.sol +24 -4
  400. package/contracts/type/Timestamp.sol +0 -5
  401. package/contracts/type/Version.sol +15 -5
  402. package/contracts/upgradeability/ProxyManager.sol +1 -1
  403. package/package.json +1 -1
  404. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  405. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  406. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -2,6 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
5
6
  import {IAccess} from "../authorization/IAccess.sol";
6
7
  import {IRegistry} from "./IRegistry.sol";
7
8
  import {IService} from "../shared/IService.sol";
@@ -14,11 +15,12 @@ import {Staking} from "../staking/Staking.sol";
14
15
  import {StakingStore} from "../staking/StakingStore.sol";
15
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
17
  import {TokenRegistry} from "./TokenRegistry.sol";
17
- import {VersionPart} from "../type/Version.sol";
18
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
18
19
 
19
20
  /*
20
21
  1) GIF_MANAGER_ROLE
21
22
  - can have arbitrary number of members
23
+ - responsible for release preparation
22
24
  - responsible for services registrations
23
25
  - responsible for token registration and activation
24
26
 
@@ -26,29 +28,37 @@ import {VersionPart} from "../type/Version.sol";
26
28
  - admin of GIF_MANAGER_ROLE
27
29
  - MUST have 1 member at any time
28
30
  - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
29
- - responsible for creation and activation of releases
31
+ - responsible for creation, activation and locking/unlocking of releases
30
32
  */
33
+
34
+ /// @dev The RegistryAdmin contract implements the central authorization for the GIF core contracts.
35
+ /// These are the release independent registry and staking contracts and their respective helper contracts.
36
+ /// The RegistryAdmin also manages the access from service contracts to the GIF core contracts
31
37
  contract RegistryAdmin is
32
38
  AccessAdmin
33
39
  {
40
+ /// @dev gif core roles
34
41
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
35
42
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
36
- string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
37
43
  string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
44
+ string public constant STAKING_ROLE_NAME = "StakingRole";
45
+
46
+ /// @dev gif roles for external contracts
38
47
  string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
48
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
39
49
  string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
40
- string public constant STAKING_ROLE_NAME = "StakingRole";
41
50
 
51
+ /// @dev gif core targets
52
+ string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
42
53
  string public constant REGISTRY_TARGET_NAME = "Registry";
43
54
  string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
44
- string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
45
55
  string public constant STAKING_TARGET_NAME = "Staking";
46
56
  string public constant STAKING_TH_TARGET_NAME = "StakingTH";
47
57
  string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
58
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
59
+ string public constant TOKEN_HANDLER_TARGET_NAME = "TokenHandler";
48
60
 
49
61
  uint8 public constant MAX_NUM_RELEASES = 99;
50
- // TODO consider deleting this
51
- mapping(address service => VersionPart majorVersion) private _ServiceRelease;
52
62
 
53
63
  address internal _registry;
54
64
  address private _releaseRegistry;
@@ -56,17 +66,26 @@ contract RegistryAdmin is
56
66
  address private _staking;
57
67
  address private _stakingStore;
58
68
 
59
- constructor() AccessAdmin() { }
69
+ constructor() {
70
+ initialize(new AccessManagerCloneable());
71
+ }
60
72
 
61
73
  function completeSetup(
62
74
  IRegistry registry,
63
75
  address gifAdmin,
64
76
  address gifManager
65
77
  )
66
- external
67
- initializer()
78
+ public
79
+ virtual
80
+ reinitializer(type(uint8).max)
68
81
  onlyDeployer()
69
82
  {
83
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
84
+ accessManager.completeSetup(
85
+ address(registry),
86
+ VersionPartLib.toVersionPart(type(uint8).max),
87
+ false);
88
+
70
89
  _registry = address(registry);
71
90
  _releaseRegistry = registry.getReleaseRegistryAddress();
72
91
  _tokenRegistry = registry.getTokenRegistryAddress();
@@ -74,48 +93,22 @@ contract RegistryAdmin is
74
93
  _stakingStore = address(
75
94
  IStaking(_staking).getStakingStore());
76
95
 
77
- // at this moment all registry contracts are deployed and fully intialized
78
- _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
96
+ _createTargets();
79
97
 
80
98
  _setupGifAdminRole(gifAdmin);
81
99
  _setupGifManagerRole(gifManager);
82
100
 
83
- _setupReleaseRegistry();
84
- _setupRegistry();
85
- _setupStaking();
101
+ _setupRegistryRoles();
102
+ _setupStakingRoles();
86
103
  }
87
104
 
88
-
89
- /// @dev Sets up authorizaion for specified service.
90
- /// For all authorized services its authorized functions are enabled.
91
- /// Permissioned function: Access is restricted to release manager.
92
- function authorizeService(
93
- IServiceAuthorization serviceAuthorization,
94
- IService service,
95
- ObjectType serviceDomain,
96
- VersionPart releaseVersion
97
- )
98
- external
99
- restricted()
100
- {
101
- _createServiceTargetAndRole(service, serviceDomain, releaseVersion);
102
- _authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, releaseVersion);
103
- }
104
-
105
- function grantServiceRole(
106
- IService service,
107
- ObjectType domain,
108
- VersionPart version
109
- )
105
+ /*function transferAdmin(address to)
110
106
  external
111
- restricted()
107
+ restricted // only with GIF_ADMIN_ROLE or nft owner
112
108
  {
113
- _grantRoleToAccount(
114
- RoleIdLib.roleForTypeAndVersion(
115
- domain,
116
- version),
117
- address(service));
118
- }
109
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
110
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
111
+ }*/
119
112
 
120
113
  function grantServiceRoleForAllVersions(IService service, ObjectType domain)
121
114
  external
@@ -126,21 +119,6 @@ contract RegistryAdmin is
126
119
  address(service));
127
120
  }
128
121
 
129
- function setServiceLocked(IService service, bool locked)
130
- external
131
- restricted()
132
- {
133
- _setTargetClosed(address(service), locked);
134
- }
135
-
136
- /*function transferAdmin(address to)
137
- external
138
- restricted // only with GIF_ADMIN_ROLE or nft owner
139
- {
140
- _accessManager.revoke(GIF_ADMIN_ROLE, );
141
- _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
142
- }*/
143
-
144
122
  //--- view functions ----------------------------------------------------//
145
123
 
146
124
  function getGifAdminRole() external view returns (RoleId) {
@@ -151,96 +129,29 @@ contract RegistryAdmin is
151
129
  return GIF_MANAGER_ROLE();
152
130
  }
153
131
 
154
- //--- private functions -------------------------------------------------//
132
+ //--- private initialization functions -------------------------------------------//
155
133
 
156
- function _createServiceTargetAndRole(
157
- IService service,
158
- ObjectType serviceDomain,
159
- VersionPart releaseVersion
160
- )
161
- private
134
+ function _createTargets()
135
+ private
136
+ onlyInitializing()
162
137
  {
163
- string memory baseName = ObjectTypeLib.toName(serviceDomain);
164
- uint256 versionInt = releaseVersion.toInt();
165
-
166
- // create service target
167
- string memory serviceTargetName = ObjectTypeLib.toVersionedName(
168
- baseName, "Service", versionInt);
169
-
170
- _createTarget(
171
- address(service),
172
- serviceTargetName,
173
- true,
174
- false);
175
-
176
- _setTargetClosed(address(service), true);
177
-
178
- // create service role
179
- RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
180
- serviceDomain,
181
- releaseVersion);
182
-
183
- _createRole(
184
- serviceRoleId,
185
- toRole({
186
- adminRoleId: ADMIN_ROLE(),
187
- roleType: RoleType.Contract,
188
- maxMemberCount: 1,
189
- name: ObjectTypeLib.toVersionedName(
190
- baseName,
191
- "ServiceRole",
192
- versionInt)}));
193
-
194
- _grantRoleToAccount(
195
- serviceRoleId,
196
- address(service));
197
- }
198
-
138
+ IStaking staking = IStaking(_staking);
139
+ address tokenHandler = address(staking.getTokenHandler());
199
140
 
200
- function _authorizeServiceFunctions(
201
- IServiceAuthorization serviceAuthorization,
202
- IService service,
203
- ObjectType serviceDomain,
204
- VersionPart releaseVersion
205
- )
206
- private
207
- {
208
- ObjectType authorizedDomain;
209
- RoleId authorizedRoleId;
210
-
211
- ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
212
-
213
- for (uint256 i = 0; i < authorizedDomains.length; i++) {
214
- authorizedDomain = authorizedDomains[i];
215
-
216
- // derive authorized role from authorized domain
217
- if (authorizedDomain == ALL()) {
218
- authorizedRoleId = PUBLIC_ROLE();
219
- } else {
220
- authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
221
- authorizedDomain,
222
- releaseVersion);
223
- }
224
-
225
- // get authorized functions for authorized domain
226
- IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
227
- serviceDomain,
228
- authorizedDomain);
229
-
230
- _authorizeTargetFunctions(
231
- address(service),
232
- authorizedRoleId,
233
- authorizatedFunctions);
234
- }
141
+ _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, false, false);
142
+ _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
143
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
144
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
145
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
146
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
147
+ _createTarget(tokenHandler, TOKEN_HANDLER_TARGET_NAME, true, false);
235
148
  }
236
149
 
237
- //--- private initialization functions -------------------------------------------//
238
-
239
150
  function _setupGifAdminRole(address gifAdmin)
240
151
  private
241
152
  onlyInitializing()
242
153
  {
243
-
154
+ // create gif admin role
244
155
  _createRole(
245
156
  GIF_ADMIN_ROLE(),
246
157
  toRole({
@@ -249,18 +160,17 @@ contract RegistryAdmin is
249
160
  maxMemberCount: 2, // TODO decide on max member count
250
161
  name: GIF_ADMIN_ROLE_NAME}));
251
162
 
252
- // for Registry
163
+ // grant permissions to the gif admin role for registry contract
253
164
  FunctionInfo[] memory functions;
254
165
  functions = new FunctionInfo[](1);
255
166
  functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
256
167
  _authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
257
168
 
258
- // for ReleaseRegistry
259
- functions = new FunctionInfo[](4);
169
+ // grant permissions to the gif admin role for release registry contract
170
+ functions = new FunctionInfo[](3);
260
171
  functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
261
172
  functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
262
- functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
263
- functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
173
+ functions[2] = toFunction(ReleaseRegistry.setActive.selector, "setActive");
264
174
  _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
265
175
 
266
176
  _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
@@ -270,16 +180,16 @@ contract RegistryAdmin is
270
180
  private
271
181
  onlyInitializing()
272
182
  {
273
-
183
+ // create gif manager role
274
184
  _createRole(
275
185
  GIF_MANAGER_ROLE(),
276
186
  toRole({
277
187
  adminRoleId: ADMIN_ROLE(),
278
188
  roleType: RoleType.Gif,
279
- maxMemberCount: 1,
189
+ maxMemberCount: 1, // TODO decide on max member count
280
190
  name: GIF_MANAGER_ROLE_NAME}));
281
191
 
282
- // for TokenRegistry
192
+ // grant permissions to the gif manager role for token registry contract
283
193
  FunctionInfo[] memory functions;
284
194
  functions = new FunctionInfo[](5);
285
195
  functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
@@ -290,7 +200,7 @@ contract RegistryAdmin is
290
200
  functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
291
201
  _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
292
202
 
293
- // for ReleaseRegistry
203
+ // grant permissions to the gif manager role for release registry contract
294
204
  functions = new FunctionInfo[](2);
295
205
  functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
296
206
  functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
@@ -299,14 +209,12 @@ contract RegistryAdmin is
299
209
  _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
300
210
  }
301
211
 
302
-
303
- function _setupReleaseRegistry()
304
- private
212
+ function _setupRegistryRoles()
213
+ private
305
214
  onlyInitializing()
306
215
  {
307
-
308
- _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
309
-
216
+ // TODO use RELEASE_REGISTRY_ROLE instead
217
+ // create and grant release registry role
310
218
  RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
311
219
  _createRole(
312
220
  releaseRegistryRoleId,
@@ -315,27 +223,20 @@ contract RegistryAdmin is
315
223
  roleType: RoleType.Contract,
316
224
  maxMemberCount: 1,
317
225
  name: RELEASE_REGISTRY_ROLE_NAME}));
226
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
318
227
 
228
+ // grant permissions to the release registry role for release admin contract
319
229
  FunctionInfo[] memory functions;
320
- functions = new FunctionInfo[](4);
321
- functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
322
- functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
323
- functions[2] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
324
- functions[3] = toFunction(RegistryAdmin.setServiceLocked.selector, "setServiceLocked");
230
+ functions = new FunctionInfo[](1);
231
+ functions[0] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
325
232
  _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
326
233
 
327
- _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
328
- }
329
-
330
-
331
- function _setupRegistry()
332
- internal
333
- virtual
334
- onlyInitializing()
335
- {
336
- _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
234
+ // grant permissions to the release registry role for registry contract
235
+ functions = new FunctionInfo[](1);
236
+ functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
237
+ _authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
337
238
 
338
- // registry function authorization for registry service
239
+ // create registry service role
339
240
  RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
340
241
  _createRole(
341
242
  registryServiceRoleId,
@@ -345,36 +246,56 @@ contract RegistryAdmin is
345
246
  maxMemberCount: MAX_NUM_RELEASES,
346
247
  name: REGISTRY_SERVICE_ROLE_NAME}));
347
248
 
348
- // authorize registry service
349
- FunctionInfo[] memory functions;
249
+ // grant permissions to the registry service role for registry contract
350
250
  functions = new FunctionInfo[](2);
351
251
  functions[0] = toFunction(IRegistry.register.selector, "register");
352
252
  functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
353
253
  _authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
354
-
355
- // authorize release registry
356
- RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
357
- functions = new FunctionInfo[](1);
358
- functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
359
- _authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
360
254
  }
361
255
 
362
256
 
363
- function _setupStaking()
257
+ function _setupStakingRoles()
364
258
  private
365
259
  onlyInitializing()
366
260
  {
367
- _createTarget(_staking, STAKING_TARGET_NAME, true, false);
368
- _createTarget(address(IStaking(_staking).getTokenHandler()), STAKING_TH_TARGET_NAME, true, false);
369
- _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
261
+ // create and grant staking contract role
262
+ RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
263
+ _createRole(
264
+ stakingRoleId,
265
+ toRole({
266
+ adminRoleId: ADMIN_ROLE(),
267
+ roleType: RoleType.Contract,
268
+ maxMemberCount: 1,
269
+ name: STAKING_ROLE_NAME}));
270
+ _grantRoleToAccount(stakingRoleId, _staking);
370
271
 
371
- // staking function authorization for public role
272
+ // grant permissions to the staking role for staking store contract
372
273
  FunctionInfo[] memory functions;
373
- functions = new FunctionInfo[](1);
374
- functions[0] = toFunction(Staking.approveTokenHandler.selector, "approveTokenHandler");
375
- _authorizeTargetFunctions(_staking, PUBLIC_ROLE(), functions); // only owner protected
274
+ functions = new FunctionInfo[](14);
275
+ functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
276
+ functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
277
+ functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
278
+ functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
279
+ functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
280
+ functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
281
+ functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
282
+ functions[7] = toFunction(StakingStore.create.selector, "create");
283
+ functions[8] = toFunction(StakingStore.update.selector, "update");
284
+ functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
285
+ functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
286
+ functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
287
+ functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
288
+ functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
289
+ _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
290
+
291
+ // grant permissions to the staking role for token handler contract
292
+ IStaking staking = IStaking(_staking);
293
+ functions = new FunctionInfo[](2);
294
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
295
+ functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
296
+ _authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
376
297
 
377
- // staking function authorization for staking service
298
+ // create staking service role
378
299
  RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
379
300
  _createRole(
380
301
  stakingServiceRoleId,
@@ -384,7 +305,8 @@ contract RegistryAdmin is
384
305
  maxMemberCount: MAX_NUM_RELEASES,
385
306
  name: STAKING_SERVICE_ROLE_NAME}));
386
307
 
387
- functions = new FunctionInfo[](12);
308
+ // grant permissions to the staking service role for staking contract
309
+ functions = new FunctionInfo[](11);
388
310
  functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
389
311
  functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
390
312
  functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
@@ -397,19 +319,8 @@ contract RegistryAdmin is
397
319
  functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
398
320
  functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
399
321
  _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
400
-
401
- // grant token handler authorizations
402
- IStaking staking = IStaking(_staking);
403
- functions = new FunctionInfo[](2);
404
- functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
405
- functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
406
-
407
- _authorizeTargetFunctions(
408
- address(staking.getTokenHandler()),
409
- stakingServiceRoleId,
410
- functions);
411
322
 
412
- // staking function authorization for pool service
323
+ // create pool service role
413
324
  RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
414
325
  _createRole(
415
326
  poolServiceRoleId,
@@ -419,39 +330,15 @@ contract RegistryAdmin is
419
330
  maxMemberCount: MAX_NUM_RELEASES,
420
331
  name: POOL_SERVICE_ROLE_NAME}));
421
332
 
422
- // staking function authorizations
333
+ // grant permissions to the pool service role for staking contract
423
334
  functions = new FunctionInfo[](2);
424
335
  functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
425
336
  functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
426
337
  _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
427
338
 
428
- // staking store function authorizations
429
- RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
430
- _createRole(
431
- stakingRoleId,
432
- toRole({
433
- adminRoleId: ADMIN_ROLE(),
434
- roleType: RoleType.Contract,
435
- maxMemberCount: 1,
436
- name: STAKING_ROLE_NAME}));
437
-
438
- functions = new FunctionInfo[](14);
439
- functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
440
- functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
441
- functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
442
- functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
443
- functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
444
- functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
445
- functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
446
- functions[7] = toFunction(StakingStore.create.selector, "create");
447
- functions[8] = toFunction(StakingStore.update.selector, "update");
448
- functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
449
- functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
450
- functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
451
- functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
452
- functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
453
- _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
454
-
455
- _grantRoleToAccount(stakingRoleId, _staking);
339
+ // grant permissions to public role for staking contract
340
+ functions = new FunctionInfo[](1);
341
+ functions[0] = toFunction(Staking.approveTokenHandler.selector, "approveTokenHandler");
342
+ _authorizeTargetFunctions(_staking, PUBLIC_ROLE(), functions);
456
343
  }
457
344
  }
@@ -33,11 +33,11 @@ contract RegistryService is
33
33
  initializer()
34
34
  {
35
35
  (
36
- address registryAddress,
37
- address initialAuthority
36
+ address authority,
37
+ address registry
38
38
  ) = abi.decode(data, (address, address));
39
39
 
40
- _initializeService(registryAddress, initialAuthority, owner);
40
+ __Service_init(authority, registry, owner);
41
41
  _registerInterface(type(IRegistryService).interfaceId);
42
42
  }
43
43
 
@@ -31,7 +31,7 @@ contract RegistryServiceManager is
31
31
  }
32
32
 
33
33
  RegistryService srv = new RegistryService{ salt: salt }();
34
- bytes memory data = abi.encode(registry, authority);
34
+ bytes memory data = abi.encode(authority, registry);
35
35
  IVersionable versionable = initialize(
36
36
  registry,
37
37
  address(srv),