@etherisc/gif-next 0.0.2-e016345-525 → 0.0.2-e04dbfc-031

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