@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-deb924b-641

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