@etherisc/gif-next 0.0.2-91b514c-961 → 0.0.2-9272c43-568

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 (351) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +34 -18
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +18 -10
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +267 -97
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +652 -36
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -47
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +175 -27
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +85 -12
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +23 -7
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +221 -60
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +203 -118
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +88 -44
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +20 -4
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +220 -59
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +34 -18
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +220 -59
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +27 -11
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +220 -59
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +2 -2
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +24 -8
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +220 -59
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +24 -8
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +220 -59
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +310 -32
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +182 -0
  67. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/Instance.sol/Instance.json +322 -72
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +608 -295
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +242 -56
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +477 -289
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +208 -26
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +14 -14
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +68 -12
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  85. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  94. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  99. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -2
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +234 -56
  104. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +54 -38
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +28 -20
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +220 -59
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +122 -90
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -30
  119. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  124. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +104 -22
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +98 -66
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +50 -34
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -58
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +26 -14
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  134. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +220 -59
  136. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +92 -76
  138. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +47 -39
  140. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  145. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  146. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +94 -86
  148. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  149. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +508 -18
  150. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -44
  152. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  153. package/artifacts/contracts/product/PricingService.sol/PricingService.json +64 -72
  154. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +33 -21
  156. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  157. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  158. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  159. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +2 -2
  161. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  162. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  164. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  166. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  168. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +378 -249
  170. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +243 -68
  172. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  174. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +10 -10
  176. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +384 -186
  178. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  180. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +128 -76
  182. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  184. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  186. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +54 -54
  189. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +28 -28
  191. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +16 -45
  193. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  196. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  200. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  211. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  216. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  219. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  220. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  223. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  224. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +3 -3
  229. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  230. package/artifacts/contracts/staking/Staking.sol/Staking.json +22 -6
  231. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +12 -4
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -15
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +15 -7
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  252. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  257. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  258. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  285. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  286. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  287. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  288. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  289. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  290. package/contracts/accounting/AccountingService.sol +2 -3
  291. package/contracts/authorization/AccessAdmin.sol +261 -185
  292. package/contracts/authorization/AccessAdminLib.sol +220 -7
  293. package/contracts/authorization/Authorization.sol +38 -229
  294. package/contracts/authorization/IAccess.sol +14 -4
  295. package/contracts/authorization/IAccessAdmin.sol +19 -45
  296. package/contracts/authorization/IAuthorization.sol +3 -56
  297. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  298. package/contracts/authorization/ServiceAuthorization.sol +247 -33
  299. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  300. package/contracts/distribution/Distribution.sol +2 -1
  301. package/contracts/distribution/DistributionService.sol +76 -28
  302. package/contracts/distribution/IDistributionComponent.sol +3 -1
  303. package/contracts/distribution/IDistributionService.sol +10 -4
  304. package/contracts/instance/IInstance.sol +43 -4
  305. package/contracts/instance/IInstanceService.sol +28 -3
  306. package/contracts/instance/Instance.sol +80 -39
  307. package/contracts/instance/InstanceAdmin.sol +162 -229
  308. package/contracts/instance/InstanceAuthorizationV3.sol +58 -28
  309. package/contracts/instance/InstanceReader.sol +371 -389
  310. package/contracts/instance/InstanceService.sol +105 -53
  311. package/contracts/instance/base/BalanceStore.sol +3 -5
  312. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  313. package/contracts/oracle/OracleService.sol +4 -4
  314. package/contracts/pool/BasicPoolAuthorization.sol +9 -3
  315. package/contracts/pool/BundleService.sol +9 -10
  316. package/contracts/pool/PoolLib.sol +138 -1
  317. package/contracts/pool/PoolService.sol +13 -186
  318. package/contracts/product/ApplicationService.sol +30 -5
  319. package/contracts/product/BasicProductAuthorization.sol +9 -4
  320. package/contracts/product/ClaimService.sol +19 -20
  321. package/contracts/product/IPolicyService.sol +0 -1
  322. package/contracts/product/PolicyService.sol +18 -45
  323. package/contracts/product/PolicyServiceLib.sol +75 -1
  324. package/contracts/product/PricingService.sol +22 -25
  325. package/contracts/registry/RegistryAdmin.sol +27 -97
  326. package/contracts/registry/RegistryAuthorization.sol +35 -25
  327. package/contracts/registry/ReleaseAdmin.sol +42 -100
  328. package/contracts/registry/ReleaseRegistry.sol +12 -9
  329. package/contracts/registry/ServiceAuthorizationV3.sol +33 -20
  330. package/contracts/registry/TokenRegistry.sol +2 -4
  331. package/contracts/shared/ComponentService.sol +29 -5
  332. package/contracts/shared/ContractLib.sol +9 -45
  333. package/contracts/shared/IRegisterable.sol +0 -1
  334. package/contracts/shared/NftOwnable.sol +1 -1
  335. package/contracts/shared/PolicyHolder.sol +3 -2
  336. package/contracts/shared/Service.sol +6 -4
  337. package/contracts/staking/IStakingService.sol +3 -0
  338. package/contracts/staking/Staking.sol +4 -5
  339. package/contracts/staking/StakingService.sol +3 -0
  340. package/contracts/staking/TargetManagerLib.sol +1 -1
  341. package/contracts/type/ObjectType.sol +16 -3
  342. package/contracts/type/RoleId.sol +57 -59
  343. package/contracts/type/String.sol +12 -0
  344. package/contracts/upgradeability/ProxyManager.sol +2 -2
  345. package/contracts/upgradeability/Versionable.sol +4 -1
  346. package/package.json +1 -1
  347. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  348. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  349. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  350. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  351. package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -14,6 +14,7 @@ import {RoleIdLib, ADMIN_ROLE, GIF_ADMIN_ROLE, GIF_MANAGER_ROLE} from "../type/R
14
14
  import {StakingStore} from "../staking/StakingStore.sol";
15
15
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
16
  import {TokenRegistry} from "../registry/TokenRegistry.sol";
17
+ import {VersionPartLib} from "../type/Version.sol";
17
18
 
18
19
 
19
20
  contract RegistryAuthorization
@@ -39,39 +40,48 @@ contract RegistryAuthorization
39
40
  string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
40
41
 
41
42
  string public constant STAKING_TARGET_NAME = "Staking";
42
- string public constant STAKING_TH_TARGET_NAME = "StakingTH";
43
+ string public constant STAKING_TH_TARGET_NAME = "StakingTh";
43
44
  string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
44
45
 
45
- constructor()
46
- Authorization(REGISTRY_TARGET_NAME, REGISTRY(), false, false)
46
+ constructor(string memory commitHash)
47
+ Authorization(
48
+ REGISTRY_TARGET_NAME,
49
+ REGISTRY(),
50
+ 3,
51
+ commitHash,
52
+ false, // isComponent
53
+ false) // includeTokenHandler
47
54
  { }
48
55
 
49
56
  /// @dev Sets up the GIF admin and manager roles.
50
57
  function _setupRoles() internal override {
51
58
 
52
- // service roles (for all versions)
59
+ // max number of versioned contracts per generic service
60
+ uint32 maxReleases = uint32(VersionPartLib.releaseMax().toInt());
61
+
62
+ // service roles (for all releases)
53
63
  _addRole(
54
- RoleIdLib.roleForTypeAndAllVersions(REGISTRY()),
64
+ RoleIdLib.toGenericServiceRoleId(REGISTRY()),
55
65
  _toRoleInfo({
56
66
  adminRoleId: ADMIN_ROLE(),
57
- roleType: RoleType.Gif,
58
- maxMemberCount: 999, // max member count = max
67
+ roleType: RoleType.Core,
68
+ maxMemberCount: maxReleases,
59
69
  name: REGISTRY_SERVICE_ROLE_NAME}));
60
70
 
61
71
  _addRole(
62
- RoleIdLib.roleForTypeAndAllVersions(STAKING()),
72
+ RoleIdLib.toGenericServiceRoleId(STAKING()),
63
73
  _toRoleInfo({
64
74
  adminRoleId: ADMIN_ROLE(),
65
- roleType: RoleType.Gif,
66
- maxMemberCount: 999, // max member count = max
75
+ roleType: RoleType.Core,
76
+ maxMemberCount: maxReleases,
67
77
  name: STAKING_SERVICE_ROLE_NAME}));
68
78
 
69
79
  _addRole(
70
- RoleIdLib.roleForTypeAndAllVersions(POOL()),
80
+ RoleIdLib.toGenericServiceRoleId(POOL()),
71
81
  _toRoleInfo({
72
82
  adminRoleId: ADMIN_ROLE(),
73
- roleType: RoleType.Gif,
74
- maxMemberCount: 999, // max member count = max
83
+ roleType: RoleType.Core,
84
+ maxMemberCount: maxReleases,
75
85
  name: POOL_SERVICE_ROLE_NAME}));
76
86
 
77
87
  // gif admin role
@@ -79,7 +89,7 @@ contract RegistryAuthorization
79
89
  GIF_ADMIN_ROLE(),
80
90
  _toRoleInfo({
81
91
  adminRoleId: ADMIN_ROLE(),
82
- roleType: RoleType.Gif,
92
+ roleType: RoleType.Core,
83
93
  maxMemberCount: 2, // TODO decide on max member count
84
94
  name: GIF_ADMIN_ROLE_NAME}));
85
95
 
@@ -88,7 +98,7 @@ contract RegistryAuthorization
88
98
  GIF_MANAGER_ROLE(),
89
99
  _toRoleInfo({
90
100
  adminRoleId: ADMIN_ROLE(),
91
- roleType: RoleType.Gif,
101
+ roleType: RoleType.Core,
92
102
  maxMemberCount: 1, // TODO decide on max member count
93
103
  name: GIF_MANAGER_ROLE_NAME}));
94
104
 
@@ -96,13 +106,13 @@ contract RegistryAuthorization
96
106
 
97
107
  /// @dev Sets up the relevant (non-service) targets for the registry.
98
108
  function _setupTargets() internal override {
99
- _addGifContractTarget(REGISTRY_ADMIN_TARGET_NAME);
100
- _addGifContractTarget(RELEASE_REGISTRY_TARGET_NAME);
101
- _addGifContractTarget(TOKEN_REGISTRY_TARGET_NAME);
109
+ _addGifTarget(REGISTRY_ADMIN_TARGET_NAME);
110
+ _addGifTarget(RELEASE_REGISTRY_TARGET_NAME);
111
+ _addGifTarget(TOKEN_REGISTRY_TARGET_NAME);
102
112
 
103
- _addGifContractTarget(STAKING_TARGET_NAME);
104
- _addGifContractTarget(STAKING_TH_TARGET_NAME);
105
- _addTarget(STAKING_STORE_TARGET_NAME);
113
+ _addGifTarget(STAKING_TARGET_NAME);
114
+ _addGifTarget(STAKING_TH_TARGET_NAME);
115
+ _addGifTarget(STAKING_STORE_TARGET_NAME);
106
116
  }
107
117
 
108
118
 
@@ -134,7 +144,7 @@ contract RegistryAuthorization
134
144
  // registry service role
135
145
  functions = _authorizeForTarget(
136
146
  REGISTRY_TARGET_NAME,
137
- RoleIdLib.roleForTypeAndAllVersions(REGISTRY()));
147
+ RoleIdLib.toGenericServiceRoleId(REGISTRY()));
138
148
 
139
149
  _authorize(functions, IRegistry.register.selector, "register");
140
150
  _authorize(functions, IRegistry.registerWithCustomType.selector, "registerWithCustomType");
@@ -201,7 +211,7 @@ contract RegistryAuthorization
201
211
  // staking service role
202
212
  functions = _authorizeForTarget(
203
213
  STAKING_TARGET_NAME,
204
- RoleIdLib.roleForTypeAndAllVersions(STAKING()));
214
+ RoleIdLib.toGenericServiceRoleId(STAKING()));
205
215
 
206
216
  _authorize(functions, IStaking.registerTarget.selector, "registerTarget");
207
217
  _authorize(functions, IStaking.setLockingPeriod.selector, "setLockingPeriod");
@@ -219,7 +229,7 @@ contract RegistryAuthorization
219
229
  // pool service role
220
230
  functions = _authorizeForTarget(
221
231
  STAKING_TARGET_NAME,
222
- RoleIdLib.roleForTypeAndAllVersions(POOL()));
232
+ RoleIdLib.toGenericServiceRoleId(POOL()));
223
233
 
224
234
  _authorize(functions, IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
225
235
  _authorize(functions, IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
@@ -232,7 +242,7 @@ contract RegistryAuthorization
232
242
  // staking service role
233
243
  functions = _authorizeForTarget(
234
244
  STAKING_TH_TARGET_NAME,
235
- RoleIdLib.roleForTypeAndAllVersions(STAKING()));
245
+ RoleIdLib.toGenericServiceRoleId(STAKING()));
236
246
 
237
247
  _authorize(functions, TokenHandler.approve.selector, "approve");
238
248
  _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
@@ -1,16 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
- import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
6
- import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
7
4
  import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
6
  import {IService} from "../shared/IService.sol";
9
7
  import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
10
- import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
11
- import {RoleId, RoleIdLib, ADMIN_ROLE, RELEASE_REGISTRY_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
8
+
9
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
10
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
+ import {ObjectType, ObjectTypeLib, RELEASE} from "../type/ObjectType.sol";
13
+ import {RoleId, ADMIN_ROLE, RELEASE_REGISTRY_ROLE} from "../type/RoleId.sol";
14
+ import {Str} from "../type/String.sol";
12
15
  import {VersionPart} from "../type/Version.sol";
13
16
 
17
+
14
18
  /// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
15
19
  /// There is one ReleaseAdmin contract per major GIF release.
16
20
  /// Locking/unlocking of all services of a release is implemented in function setReleaseLocked.
@@ -25,11 +29,13 @@ contract ReleaseAdmin is
25
29
  error ErrorReleaseAdminReleaseLockAlreadySetTo(bool locked);
26
30
 
27
31
  /// @dev release core roles
28
- string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
32
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistry_Role";
29
33
 
30
34
  /// @dev release core targets
31
35
  string public constant RELEASE_ADMIN_TARGET_NAME = "ReleaseAdmin";
32
36
 
37
+ IServiceAuthorization internal _serviceAuthorization;
38
+
33
39
 
34
40
  modifier onlyReleaseRegistry() {
35
41
  (bool isMember, ) = _authority.hasRole(RELEASE_REGISTRY_ROLE().toInt(), msg.sender);
@@ -39,6 +45,7 @@ contract ReleaseAdmin is
39
45
  _;
40
46
  }
41
47
 
48
+
42
49
  // @dev Only used for master release admin
43
50
  constructor(address accessManager) {
44
51
  initialize(
@@ -49,32 +56,40 @@ contract ReleaseAdmin is
49
56
 
50
57
  function completeSetup(
51
58
  address registry,
52
- address releaseRegistry,
53
- VersionPart release
59
+ address authorization,
60
+ VersionPart release,
61
+ address releaseRegistry
54
62
  )
55
63
  external
56
64
  reinitializer(uint64(release.toInt()))
57
65
  {
58
66
 
59
67
  // checks
60
- _checkRegistry(registry);
68
+ AccessAdminLib.checkRegistry(registry);
61
69
 
62
70
  AccessManagerCloneable(
63
71
  authority()).completeSetup(
64
72
  registry,
65
- release);
73
+ release);
74
+
75
+ IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
76
+ _checkAuthorization(address(serviceAuthorization), RELEASE(), release, true, true);
77
+ _serviceAuthorization = serviceAuthorization;
66
78
 
67
79
  // link nft ownability to registry
68
80
  _linkToNftOwnable(registry);
69
81
 
82
+ // setup release contract
70
83
  _setupReleaseRegistry(releaseRegistry);
84
+
85
+ // relase services will be authorized one by one via authorizeService()
71
86
  }
72
87
 
88
+
73
89
  /// @dev Sets up authorizaion for specified service.
74
90
  /// For all authorized services its authorized functions are enabled.
75
91
  /// Permissioned function: Access is restricted to release registry.
76
92
  function authorizeService(
77
- IServiceAuthorization serviceAuthorization,
78
93
  IService service,
79
94
  ObjectType serviceDomain,
80
95
  VersionPart release
@@ -83,9 +98,20 @@ contract ReleaseAdmin is
83
98
  restricted()
84
99
  {
85
100
  _createServiceTargetAndRole(service, serviceDomain, release);
86
- _authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, release);
101
+
102
+ // authorize functions of service
103
+ Str serviceTarget = _serviceAuthorization.getServiceTarget(serviceDomain);
104
+ RoleId[] memory authorizedRoles = _serviceAuthorization.getAuthorizedRoles(serviceTarget);
105
+
106
+ for (uint256 i = 0; i < authorizedRoles.length; i++) {
107
+ _authorizeFunctions(
108
+ IAuthorization(address(_serviceAuthorization)),
109
+ serviceTarget,
110
+ authorizedRoles[i]);
111
+ }
87
112
  }
88
113
 
114
+
89
115
  /// @dev Locks/unlocks all release targets.
90
116
  /// For all authorized services of release its authorized functions are disabled/enabled.
91
117
  /// Permissioned function: Access is restricted to release registry.
@@ -106,6 +132,7 @@ contract ReleaseAdmin is
106
132
  emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
107
133
  }
108
134
 
135
+
109
136
  /// @dev Lock/unlock specific service of release.
110
137
  /// Permissioned function: Access is restricted to release registry.
111
138
  function setServiceLocked(IService service, bool locked)
@@ -123,13 +150,6 @@ contract ReleaseAdmin is
123
150
  emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
124
151
  }
125
152
 
126
- //--- view functions ----------------------------------------------------//
127
-
128
- /*
129
- function getReleaseAdminRole() external view returns (RoleId) {
130
- return GIF_ADMIN_ROLE();
131
- }
132
- */
133
153
  //--- private functions -------------------------------------------------//
134
154
 
135
155
  function _createServiceTargetAndRole(
@@ -145,85 +165,7 @@ contract ReleaseAdmin is
145
165
  string memory serviceTargetName = ObjectTypeLib.toVersionedName(
146
166
  baseName, "Service", release);
147
167
 
148
- _createTarget(
149
- address(service),
150
- serviceTargetName,
151
- true,
152
- false);
153
-
154
- // create service role
155
- RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
156
- serviceDomain,
157
- release);
158
-
159
- if(!roleExists(serviceRoleId)) {
160
- _createRole(
161
- serviceRoleId,
162
- AccessAdminLib.toRole({
163
- adminRoleId: ADMIN_ROLE(),
164
- roleType: RoleType.Contract,
165
- maxMemberCount: 1,
166
- name: ObjectTypeLib.toVersionedName(
167
- baseName,
168
- "ServiceRole",
169
- release)}));
170
- }
171
-
172
- _grantRoleToAccount(
173
- serviceRoleId,
174
- address(service));
175
- }
176
-
177
-
178
- function _authorizeServiceFunctions(
179
- IServiceAuthorization serviceAuthorization,
180
- IService service,
181
- ObjectType serviceDomain,
182
- VersionPart release
183
- )
184
- private
185
- {
186
- ObjectType authorizedDomain;
187
- RoleId authorizedRoleId;
188
-
189
- ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
190
-
191
- for (uint256 i = 0; i < authorizedDomains.length; i++) {
192
- authorizedDomain = authorizedDomains[i];
193
-
194
- // derive authorized role from authorized domain
195
- if (authorizedDomain == ALL()) {
196
- authorizedRoleId = PUBLIC_ROLE();
197
- } else {
198
- authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
199
- authorizedDomain,
200
- release);
201
- }
202
-
203
- if(!roleExists(authorizedRoleId)) {
204
- // create role for authorized domain
205
- _createRole(
206
- authorizedRoleId,
207
- AccessAdminLib.toRole({
208
- adminRoleId: ADMIN_ROLE(),
209
- roleType: RoleType.Contract,
210
- maxMemberCount: 1,
211
- name: ObjectTypeLib.toVersionedName(
212
- ObjectTypeLib.toName(authorizedDomain),
213
- "Role",
214
- release)}));
215
- }
216
-
217
- // get authorized functions for authorized domain
218
- IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
219
- serviceDomain,
220
- authorizedDomain);
221
-
222
- _authorizeTargetFunctions(
223
- address(service),
224
- authorizedRoleId,
225
- authorizatedFunctions);
226
- }
168
+ _createUncheckedTarget(address(service), serviceTargetName, TargetType.Service);
227
169
  }
228
170
 
229
171
  //--- private initialization functions -------------------------------------------//
@@ -232,7 +174,7 @@ contract ReleaseAdmin is
232
174
  private
233
175
  onlyInitializing()
234
176
  {
235
- _createTarget(address(this), RELEASE_ADMIN_TARGET_NAME, false, false);
177
+ _createManagedTarget(address(this), RELEASE_ADMIN_TARGET_NAME, IAccess.TargetType.Core);
236
178
 
237
179
  _createRole(
238
180
  RELEASE_REGISTRY_ROLE(),
@@ -246,7 +188,7 @@ contract ReleaseAdmin is
246
188
  functions = new FunctionInfo[](2);
247
189
  functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
248
190
  functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
249
- _authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions);
191
+ _authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions, true);
250
192
 
251
193
  _grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
252
194
  }
@@ -150,7 +150,7 @@ contract ReleaseRegistry is
150
150
  uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
151
151
 
152
152
  // create and initialize release admin
153
- releaseAdmin = _cloneNewReleaseAdmin(releaseVersion);
153
+ releaseAdmin = _cloneNewReleaseAdmin(serviceAuthorization, releaseVersion);
154
154
  releaseSalt = salt;
155
155
 
156
156
  // ensures unique salt
@@ -182,8 +182,8 @@ contract ReleaseRegistry is
182
182
  checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
183
183
 
184
184
  address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
185
- IServiceAuthorization releaseAuth = _releaseInfo[releaseVersion].auth;
186
- ObjectType expectedDomain = releaseAuth.getServiceDomain(_registeredServices);
185
+ IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
186
+ ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
187
187
 
188
188
  // service can work with release registry and release version
189
189
  (
@@ -216,7 +216,6 @@ contract ReleaseRegistry is
216
216
  ReleaseAdmin releaseAdmin = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin);
217
217
  releaseAdmin.setReleaseLocked(false);
218
218
  releaseAdmin.authorizeService(
219
- releaseAuth,
220
219
  service,
221
220
  serviceDomain,
222
221
  releaseVersion);
@@ -367,7 +366,10 @@ contract ReleaseRegistry is
367
366
  _releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
368
367
  }
369
368
 
370
- function _cloneNewReleaseAdmin(VersionPart release)
369
+ function _cloneNewReleaseAdmin(
370
+ IServiceAuthorization serviceAuthorization,
371
+ VersionPart release
372
+ )
371
373
  private
372
374
  returns (ReleaseAdmin clonedAdmin)
373
375
  {
@@ -377,7 +379,7 @@ contract ReleaseRegistry is
377
379
 
378
380
  string memory releaseAdminName = string(
379
381
  abi.encodePacked(
380
- "ReleaseAdmin_v",
382
+ "ReleaseAdminV",
381
383
  release.toString()));
382
384
 
383
385
  clonedAdmin.initialize(
@@ -386,8 +388,9 @@ contract ReleaseRegistry is
386
388
 
387
389
  clonedAdmin.completeSetup(
388
390
  address(_registry),
389
- address(this), // release registry (this contract)
390
- release);
391
+ address(serviceAuthorization),
392
+ release,
393
+ address(this)); // release registry (this contract)
391
394
 
392
395
  // lock release (remains locked until activation)
393
396
  clonedAdmin.setReleaseLocked(true);
@@ -412,7 +415,7 @@ contract ReleaseRegistry is
412
415
  returns (uint256 serviceDomainsCount)
413
416
  {
414
417
  // authorization contract supports IServiceAuthorization interface
415
- if(!serviceAuthorization.supportsInterface(type(IServiceAuthorization).interfaceId)) {
418
+ if(!ContractLib.supportsInterface(address(serviceAuthorization), type(IServiceAuthorization).interfaceId)) {
416
419
  revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
417
420
  }
418
421
 
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- ALL, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
5
+ ALL, RELEASE, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
8
  import {IAccess} from "../authorization/IAccess.sol";
@@ -19,6 +19,7 @@ import {IPoolService} from "../pool/IPoolService.sol";
19
19
  import {IStakingService} from "../staking/IStakingService.sol";
20
20
  import {IRegistryService} from "./IRegistryService.sol";
21
21
  import {IRiskService} from "../product/IRiskService.sol";
22
+
22
23
  import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
23
24
 
24
25
 
@@ -27,27 +28,31 @@ contract ServiceAuthorizationV3
27
28
  {
28
29
 
29
30
  constructor(string memory commitHash)
30
- ServiceAuthorization(commitHash, 3)
31
+ ServiceAuthorization(
32
+ "ReleaseAdmin",
33
+ RELEASE(),
34
+ 3,
35
+ commitHash)
31
36
  {}
32
37
 
33
38
  function _setupDomains()
34
39
  internal
35
40
  override
36
41
  {
37
- _authorizeDomain(REGISTRY(), address(1));
38
- _authorizeDomain(STAKING(), address(2));
39
- _authorizeDomain(INSTANCE(), address(3));
40
- _authorizeDomain(ACCOUNTING(), address(4));
41
- _authorizeDomain(COMPONENT(), address(5));
42
- _authorizeDomain(DISTRIBUTION(), address(6));
43
- _authorizeDomain(PRICE(), address(7));
44
- _authorizeDomain(BUNDLE(), address(8));
45
- _authorizeDomain(POOL(), address(9));
46
- _authorizeDomain(ORACLE(), address(10));
47
- _authorizeDomain(RISK(), address(11));
48
- _authorizeDomain(POLICY(), address(12));
49
- _authorizeDomain(CLAIM(), address(13));
50
- _authorizeDomain(APPLICATION(), address(14));
42
+ _authorizeServiceDomain(REGISTRY(), address(1));
43
+ _authorizeServiceDomain(STAKING(), address(2));
44
+ _authorizeServiceDomain(INSTANCE(), address(3));
45
+ _authorizeServiceDomain(ACCOUNTING(), address(4));
46
+ _authorizeServiceDomain(COMPONENT(), address(5));
47
+ _authorizeServiceDomain(DISTRIBUTION(), address(6));
48
+ _authorizeServiceDomain(PRICE(), address(7));
49
+ _authorizeServiceDomain(BUNDLE(), address(8));
50
+ _authorizeServiceDomain(POOL(), address(9));
51
+ _authorizeServiceDomain(ORACLE(), address(10));
52
+ _authorizeServiceDomain(RISK(), address(11));
53
+ _authorizeServiceDomain(POLICY(), address(12));
54
+ _authorizeServiceDomain(CLAIM(), address(13));
55
+ _authorizeServiceDomain(APPLICATION(), address(14));
51
56
  }
52
57
 
53
58
 
@@ -55,10 +60,9 @@ contract ServiceAuthorizationV3
55
60
  internal
56
61
  override
57
62
  {
58
- _setupIRegistryServiceAuthorization();
63
+ _setupRegistryServiceAuthorization();
59
64
  _setupStakingServiceAuthorization();
60
65
  _setupInstanceServiceAuthorization();
61
- _setupInstanceServiceAuthorization();
62
66
  _setupAccountingServiceAuthorization();
63
67
  _setupComponentServiceAuthorization();
64
68
  _setupClaimServiceAuthorization();
@@ -74,7 +78,7 @@ contract ServiceAuthorizationV3
74
78
 
75
79
  /// @dev registry service authorization.
76
80
  /// authorized functions MUST be implemented with a restricted modifier
77
- function _setupIRegistryServiceAuthorization()
81
+ function _setupRegistryServiceAuthorization()
78
82
  internal
79
83
  {
80
84
  IAccess.FunctionInfo[] storage functions;
@@ -131,8 +135,16 @@ contract ServiceAuthorizationV3
131
135
  {
132
136
  IAccess.FunctionInfo[] storage functions;
133
137
  functions = _authorizeForService(INSTANCE(), ALL());
134
- _authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
138
+ _authorize(functions, IInstanceService.createRole.selector, "createRole");
139
+ _authorize(functions, IInstanceService.setRoleActive.selector, "setRoleActive");
140
+ _authorize(functions, IInstanceService.grantRole.selector, "grantRole");
141
+ _authorize(functions, IInstanceService.revokeRole.selector, "revokeRole");
142
+
143
+ _authorize(functions, IInstanceService.createTarget.selector, "createTarget");
144
+ _authorize(functions, IInstanceService.authorizeFunctions.selector, "authorizeFunctions");
145
+ _authorize(functions, IInstanceService.unauthorizeFunctions.selector, "unauthorizeFunctions");
135
146
  _authorize(functions, IInstanceService.setTargetLocked.selector, "setTargetLocked");
147
+ _authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
136
148
 
137
149
  _authorize(functions, IInstanceService.createInstance.selector, "createInstance");
138
150
  _authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
@@ -322,6 +334,7 @@ contract ServiceAuthorizationV3
322
334
  _authorize(functions, IPolicyService.createPolicy.selector, "createPolicy");
323
335
  _authorize(functions, IPolicyService.collectPremium.selector, "collectPremium");
324
336
  _authorize(functions, IPolicyService.activate.selector, "activate");
337
+ _authorize(functions, IPolicyService.adjustActivation.selector, "adjustActivation");
325
338
  _authorize(functions, IPolicyService.expire.selector, "expire");
326
339
  _authorize(functions, IPolicyService.expirePolicy.selector, "expirePolicy");
327
340
  _authorize(functions, IPolicyService.close.selector, "close");
@@ -3,15 +3,13 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
7
-
8
- import {REGISTRY} from "../type/ObjectType.sol";
9
- import {VersionPart} from "../type/Version.sol";
10
6
 
11
7
  import {IRegistry} from "./IRegistry.sol";
12
8
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
9
+
13
10
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
14
11
  import {RegistryAdmin} from "./RegistryAdmin.sol";
12
+ import {VersionPart} from "../type/Version.sol";
15
13
 
16
14
  /// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
17
15
  /// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.