@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
@@ -0,0 +1,267 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IStaking} from "../staking/IStaking.sol";
7
+
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {POOL, REGISTRY, STAKING} from "../../contracts/type/ObjectType.sol";
10
+ import {PUBLIC_ROLE} from "../type/RoleId.sol";
11
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
12
+ import {RegistryAdmin} from "./RegistryAdmin.sol";
13
+ import {RoleIdLib, ADMIN_ROLE, GIF_ADMIN_ROLE, GIF_MANAGER_ROLE} from "../type/RoleId.sol";
14
+ import {StakingStore} from "../staking/StakingStore.sol";
15
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
+ import {TokenRegistry} from "../registry/TokenRegistry.sol";
17
+
18
+
19
+ contract RegistryAuthorization
20
+ is Authorization
21
+ {
22
+
23
+ /// @dev gif core roles
24
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
25
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
26
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
27
+ string public constant STAKING_ROLE_NAME = "StakingRole";
28
+
29
+ /// @dev gif roles for external contracts
30
+ string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
31
+ string public constant COMPONENT_SERVICE_ROLE_NAME = "ComponentServiceRole";
32
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
33
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
34
+
35
+ /// @dev gif core targets
36
+ string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
37
+ string public constant REGISTRY_TARGET_NAME = "Registry";
38
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
39
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
40
+
41
+ string public constant STAKING_TARGET_NAME = "Staking";
42
+ string public constant STAKING_TH_TARGET_NAME = "StakingTH";
43
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
44
+
45
+ constructor()
46
+ Authorization(REGISTRY_TARGET_NAME, REGISTRY(), false, false)
47
+ { }
48
+
49
+ /// @dev Sets up the GIF admin and manager roles.
50
+ function _setupRoles() internal override {
51
+
52
+ // service roles (for all versions)
53
+ _addRole(
54
+ RoleIdLib.roleForTypeAndAllVersions(REGISTRY()),
55
+ _toRoleInfo({
56
+ adminRoleId: ADMIN_ROLE(),
57
+ roleType: RoleType.Gif,
58
+ maxMemberCount: 999, // max member count = max
59
+ name: REGISTRY_SERVICE_ROLE_NAME}));
60
+
61
+ _addRole(
62
+ RoleIdLib.roleForTypeAndAllVersions(STAKING()),
63
+ _toRoleInfo({
64
+ adminRoleId: ADMIN_ROLE(),
65
+ roleType: RoleType.Gif,
66
+ maxMemberCount: 999, // max member count = max
67
+ name: STAKING_SERVICE_ROLE_NAME}));
68
+
69
+ _addRole(
70
+ RoleIdLib.roleForTypeAndAllVersions(POOL()),
71
+ _toRoleInfo({
72
+ adminRoleId: ADMIN_ROLE(),
73
+ roleType: RoleType.Gif,
74
+ maxMemberCount: 999, // max member count = max
75
+ name: POOL_SERVICE_ROLE_NAME}));
76
+
77
+ // gif admin role
78
+ _addRole(
79
+ GIF_ADMIN_ROLE(),
80
+ _toRoleInfo({
81
+ adminRoleId: ADMIN_ROLE(),
82
+ roleType: RoleType.Gif,
83
+ maxMemberCount: 2, // TODO decide on max member count
84
+ name: GIF_ADMIN_ROLE_NAME}));
85
+
86
+ // gif manager role
87
+ _addRole(
88
+ GIF_MANAGER_ROLE(),
89
+ _toRoleInfo({
90
+ adminRoleId: ADMIN_ROLE(),
91
+ roleType: RoleType.Gif,
92
+ maxMemberCount: 1, // TODO decide on max member count
93
+ name: GIF_MANAGER_ROLE_NAME}));
94
+
95
+ }
96
+
97
+ /// @dev Sets up the relevant (non-service) targets for the registry.
98
+ function _setupTargets() internal override {
99
+ _addGifContractTarget(REGISTRY_ADMIN_TARGET_NAME);
100
+ _addGifContractTarget(RELEASE_REGISTRY_TARGET_NAME);
101
+ _addGifContractTarget(TOKEN_REGISTRY_TARGET_NAME);
102
+
103
+ _addGifContractTarget(STAKING_TARGET_NAME);
104
+ _addGifContractTarget(STAKING_TH_TARGET_NAME);
105
+ _addTarget(STAKING_STORE_TARGET_NAME);
106
+ }
107
+
108
+
109
+ function _setupTargetAuthorizations()
110
+ internal
111
+ override
112
+ {
113
+ // registry
114
+ _setupRegistryAuthorization();
115
+ _setupRegistryAdminAuthorization();
116
+ _setupReleaseRegistryAuthorization();
117
+ _setupTokenRegistryAuthorization();
118
+
119
+ // staking
120
+ _setupStakingAuthorization();
121
+ _setupStakingThAuthorization();
122
+ _setupStakingStoreAuthorization();
123
+ }
124
+
125
+ event LogAccessAdminDebug(string message, string custom, uint256 value);
126
+
127
+ function _setupRegistryAuthorization() internal {
128
+ IAccess.FunctionInfo[] storage functions;
129
+
130
+ // gif admin role
131
+ functions = _authorizeForTarget(REGISTRY_TARGET_NAME, GIF_ADMIN_ROLE());
132
+ _authorize(functions, IRegistry.registerRegistry.selector, "registerRegistry");
133
+
134
+ // registry service role
135
+ functions = _authorizeForTarget(
136
+ REGISTRY_TARGET_NAME,
137
+ RoleIdLib.roleForTypeAndAllVersions(REGISTRY()));
138
+
139
+ _authorize(functions, IRegistry.register.selector, "register");
140
+ _authorize(functions, IRegistry.registerWithCustomType.selector, "registerWithCustomType");
141
+
142
+ // release registry role
143
+ functions = _authorizeForTarget(
144
+ REGISTRY_TARGET_NAME,
145
+ getTargetRole(getTarget(RELEASE_REGISTRY_TARGET_NAME)));
146
+
147
+ _authorize(functions, IRegistry.registerService.selector, "registerService");
148
+ }
149
+
150
+
151
+ function _setupRegistryAdminAuthorization() internal {
152
+ IAccess.FunctionInfo[] storage functions;
153
+
154
+ // release registry role
155
+ functions = _authorizeForTarget(
156
+ REGISTRY_ADMIN_TARGET_NAME,
157
+ getTargetRole(getTarget(RELEASE_REGISTRY_TARGET_NAME)));
158
+
159
+ _authorize(functions, RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
160
+ }
161
+
162
+
163
+ function _setupReleaseRegistryAuthorization() internal {
164
+ IAccess.FunctionInfo[] storage functions;
165
+
166
+ functions = _authorizeForTarget(RELEASE_REGISTRY_TARGET_NAME, GIF_ADMIN_ROLE());
167
+ _authorize(functions, ReleaseRegistry.createNextRelease.selector, "createNextRelease");
168
+ _authorize(functions, ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
169
+ _authorize(functions, ReleaseRegistry.setActive.selector, "setActive");
170
+
171
+ functions = _authorizeForTarget(RELEASE_REGISTRY_TARGET_NAME, GIF_MANAGER_ROLE());
172
+ _authorize(functions, ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
173
+ _authorize(functions, ReleaseRegistry.registerService.selector, "registerService");
174
+ }
175
+
176
+
177
+ function _setupTokenRegistryAuthorization() internal {
178
+ IAccess.FunctionInfo[] storage functions;
179
+
180
+ // gif manager role
181
+ functions = _authorizeForTarget(TOKEN_REGISTRY_TARGET_NAME, GIF_MANAGER_ROLE());
182
+ _authorize(functions, TokenRegistry.registerToken.selector, "registerToken");
183
+ _authorize(functions, TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
184
+ _authorize(functions, TokenRegistry.setActive.selector, "setActive");
185
+ _authorize(functions, TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
186
+ // TODO find a better way (only needed for testing)
187
+ _authorize(functions, TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
188
+ }
189
+
190
+
191
+ function _setupStakingAuthorization() internal {
192
+ IAccess.FunctionInfo[] storage functions;
193
+
194
+ // staking public role
195
+ functions = _authorizeForTarget(
196
+ STAKING_TARGET_NAME,
197
+ PUBLIC_ROLE());
198
+
199
+ _authorize(functions, IStaking.approveTokenHandler.selector, "approveTokenHandler");
200
+
201
+ // staking service role
202
+ functions = _authorizeForTarget(
203
+ STAKING_TARGET_NAME,
204
+ RoleIdLib.roleForTypeAndAllVersions(STAKING()));
205
+
206
+ _authorize(functions, IStaking.registerTarget.selector, "registerTarget");
207
+ _authorize(functions, IStaking.setLockingPeriod.selector, "setLockingPeriod");
208
+ _authorize(functions, IStaking.setRewardRate.selector, "setRewardRate");
209
+ _authorize(functions, IStaking.setMaxStakedAmount.selector, "setMaxStakedAmount");
210
+ _authorize(functions, IStaking.refillRewardReserves.selector, "refillRewardReserves");
211
+ _authorize(functions, IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
212
+ _authorize(functions, IStaking.createStake.selector, "createStake");
213
+ _authorize(functions, IStaking.stake.selector, "stake");
214
+ _authorize(functions, IStaking.unstake.selector, "unstake");
215
+ _authorize(functions, IStaking.restake.selector, "restake");
216
+ _authorize(functions, IStaking.updateRewards.selector, "updateRewards");
217
+ _authorize(functions, IStaking.claimRewards.selector, "claimRewards");
218
+
219
+ // pool service role
220
+ functions = _authorizeForTarget(
221
+ STAKING_TARGET_NAME,
222
+ RoleIdLib.roleForTypeAndAllVersions(POOL()));
223
+
224
+ _authorize(functions, IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
225
+ _authorize(functions, IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
226
+ }
227
+
228
+
229
+ function _setupStakingThAuthorization() internal {
230
+ IAccess.FunctionInfo[] storage functions;
231
+
232
+ // staking service role
233
+ functions = _authorizeForTarget(
234
+ STAKING_TH_TARGET_NAME,
235
+ RoleIdLib.roleForTypeAndAllVersions(STAKING()));
236
+
237
+ _authorize(functions, TokenHandler.approve.selector, "approve");
238
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
239
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
240
+ }
241
+
242
+
243
+ function _setupStakingStoreAuthorization() internal {
244
+ IAccess.FunctionInfo[] storage functions;
245
+
246
+ // release registry role
247
+ functions = _authorizeForTarget(
248
+ STAKING_STORE_TARGET_NAME,
249
+ getTargetRole(getTarget(STAKING_TARGET_NAME)));
250
+
251
+ _authorize(functions, StakingStore.setStakingRate.selector, "setStakingRate");
252
+ _authorize(functions, StakingStore.createTarget.selector, "createTarget");
253
+ _authorize(functions, StakingStore.updateTarget.selector, "updateTarget");
254
+ _authorize(functions, StakingStore.increaseReserves.selector, "increaseReserves");
255
+ _authorize(functions, StakingStore.decreaseReserves.selector, "decreaseReserves");
256
+ _authorize(functions, StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
257
+ _authorize(functions, StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
258
+ _authorize(functions, StakingStore.create.selector, "create");
259
+ _authorize(functions, StakingStore.update.selector, "update");
260
+ _authorize(functions, StakingStore.increaseStake.selector, "increaseStake");
261
+ _authorize(functions, StakingStore.restakeRewards.selector, "restakeRewards");
262
+ _authorize(functions, StakingStore.updateRewards.selector, "updateRewards");
263
+ _authorize(functions, StakingStore.claimUpTo.selector, "claimUpTo");
264
+ _authorize(functions, StakingStore.unstakeUpTo.selector, "unstakeUpTo");
265
+ }
266
+ }
267
+
@@ -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),
@@ -0,0 +1,253 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
6
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IService} from "../shared/IService.sol";
9
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
10
+ import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
11
+ import {RoleId, RoleIdLib, ADMIN_ROLE, RELEASE_REGISTRY_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
12
+ import {VersionPart} from "../type/Version.sol";
13
+
14
+ /// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
15
+ /// There is one ReleaseAdmin contract per major GIF release.
16
+ /// Locking/unlocking of all services of a release is implemented in function setReleaseLocked.
17
+ contract ReleaseAdmin is
18
+ AccessAdmin
19
+ {
20
+ event LogReleaseAdminReleaseLockChanged(VersionPart release, bool locked);
21
+ event LogReleaseAdminServiceLockChanged(VersionPart release, address service, bool locked);
22
+
23
+ error ErrorReleaseAdminCallerNotReleaseRegistry(address caller);
24
+ error ErrorReleaseAdminNotService(address notService);
25
+ error ErrorReleaseAdminReleaseLockAlreadySetTo(bool locked);
26
+
27
+ /// @dev release core roles
28
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
29
+
30
+ /// @dev release core targets
31
+ string public constant RELEASE_ADMIN_TARGET_NAME = "ReleaseAdmin";
32
+
33
+
34
+ modifier onlyReleaseRegistry() {
35
+ (bool isMember, ) = _authority.hasRole(RELEASE_REGISTRY_ROLE().toInt(), msg.sender);
36
+ if(!isMember) {
37
+ revert ErrorReleaseAdminCallerNotReleaseRegistry(msg.sender);
38
+ }
39
+ _;
40
+ }
41
+
42
+ // @dev Only used for master release admin
43
+ constructor(address accessManager) {
44
+ initialize(
45
+ accessManager,
46
+ "MasterReleaseAdmin");
47
+ }
48
+
49
+
50
+ function completeSetup(
51
+ address registry,
52
+ address releaseRegistry,
53
+ VersionPart release
54
+ )
55
+ external
56
+ reinitializer(uint64(release.toInt()))
57
+ {
58
+
59
+ // checks
60
+ _checkRegistry(registry);
61
+
62
+ AccessManagerCloneable(
63
+ authority()).completeSetup(
64
+ registry,
65
+ release);
66
+
67
+ // link nft ownability to registry
68
+ _linkToNftOwnable(registry);
69
+
70
+ _setupReleaseRegistry(releaseRegistry);
71
+ }
72
+
73
+ /// @dev Sets up authorizaion for specified service.
74
+ /// For all authorized services its authorized functions are enabled.
75
+ /// Permissioned function: Access is restricted to release registry.
76
+ function authorizeService(
77
+ IServiceAuthorization serviceAuthorization,
78
+ IService service,
79
+ ObjectType serviceDomain,
80
+ VersionPart release
81
+ )
82
+ external
83
+ restricted()
84
+ {
85
+ _createServiceTargetAndRole(service, serviceDomain, release);
86
+ _authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, release);
87
+ }
88
+
89
+ /// @dev Locks/unlocks all release targets.
90
+ /// For all authorized services of release its authorized functions are disabled/enabled.
91
+ /// Permissioned function: Access is restricted to release registry.
92
+ /// Note: onlyReleaseRegistry() modifier is used to prevent dead lock.
93
+ function setReleaseLocked(bool locked)
94
+ external
95
+ onlyReleaseRegistry()
96
+ {
97
+ // checks
98
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
99
+ if(accessManager.isLocked() == locked) {
100
+ revert ErrorReleaseAdminReleaseLockAlreadySetTo(locked);
101
+ }
102
+
103
+ // effects
104
+ accessManager.setLocked(locked);
105
+
106
+ emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
107
+ }
108
+
109
+ /// @dev Lock/unlock specific service of release.
110
+ /// Permissioned function: Access is restricted to release registry.
111
+ function setServiceLocked(IService service, bool locked)
112
+ external
113
+ restricted()
114
+ {
115
+ // assume all targets except release admin are services
116
+ // ensure release admin can not be locked
117
+ if(address(service) == address(this)) {
118
+ revert ErrorReleaseAdminNotService(address(service));
119
+ }
120
+
121
+ _setTargetLocked(address(service), locked);
122
+
123
+ emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
124
+ }
125
+
126
+ //--- view functions ----------------------------------------------------//
127
+
128
+ /*
129
+ function getReleaseAdminRole() external view returns (RoleId) {
130
+ return GIF_ADMIN_ROLE();
131
+ }
132
+ */
133
+ //--- private functions -------------------------------------------------//
134
+
135
+ function _createServiceTargetAndRole(
136
+ IService service,
137
+ ObjectType serviceDomain,
138
+ VersionPart release
139
+ )
140
+ private
141
+ {
142
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
143
+
144
+ // create service target
145
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
146
+ baseName, "Service", release);
147
+
148
+ _createTarget(
149
+ address(service),
150
+ serviceTargetName,
151
+ true,
152
+ false);
153
+
154
+ // create service role
155
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
156
+ serviceDomain,
157
+ release);
158
+
159
+ if(!roleExists(serviceRoleId)) {
160
+ _createRole(
161
+ serviceRoleId,
162
+ AccessAdminLib.toRole({
163
+ adminRoleId: ADMIN_ROLE(),
164
+ roleType: RoleType.Contract,
165
+ maxMemberCount: 1,
166
+ name: ObjectTypeLib.toVersionedName(
167
+ baseName,
168
+ "ServiceRole",
169
+ release)}));
170
+ }
171
+
172
+ _grantRoleToAccount(
173
+ serviceRoleId,
174
+ address(service));
175
+ }
176
+
177
+
178
+ function _authorizeServiceFunctions(
179
+ IServiceAuthorization serviceAuthorization,
180
+ IService service,
181
+ ObjectType serviceDomain,
182
+ VersionPart release
183
+ )
184
+ private
185
+ {
186
+ ObjectType authorizedDomain;
187
+ RoleId authorizedRoleId;
188
+
189
+ ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
190
+
191
+ for (uint256 i = 0; i < authorizedDomains.length; i++) {
192
+ authorizedDomain = authorizedDomains[i];
193
+
194
+ // derive authorized role from authorized domain
195
+ if (authorizedDomain == ALL()) {
196
+ authorizedRoleId = PUBLIC_ROLE();
197
+ } else {
198
+ authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
199
+ authorizedDomain,
200
+ release);
201
+ }
202
+
203
+ if(!roleExists(authorizedRoleId)) {
204
+ // create role for authorized domain
205
+ _createRole(
206
+ authorizedRoleId,
207
+ AccessAdminLib.toRole({
208
+ adminRoleId: ADMIN_ROLE(),
209
+ roleType: RoleType.Contract,
210
+ maxMemberCount: 1,
211
+ name: ObjectTypeLib.toVersionedName(
212
+ ObjectTypeLib.toName(authorizedDomain),
213
+ "Role",
214
+ release)}));
215
+ }
216
+
217
+ // get authorized functions for authorized domain
218
+ IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
219
+ serviceDomain,
220
+ authorizedDomain);
221
+
222
+ _authorizeTargetFunctions(
223
+ address(service),
224
+ authorizedRoleId,
225
+ authorizatedFunctions);
226
+ }
227
+ }
228
+
229
+ //--- private initialization functions -------------------------------------------//
230
+
231
+ function _setupReleaseRegistry(address releaseRegistry)
232
+ private
233
+ onlyInitializing()
234
+ {
235
+ _createTarget(address(this), RELEASE_ADMIN_TARGET_NAME, false, false);
236
+
237
+ _createRole(
238
+ RELEASE_REGISTRY_ROLE(),
239
+ AccessAdminLib.toRole({
240
+ adminRoleId: ADMIN_ROLE(),
241
+ roleType: RoleType.Contract,
242
+ maxMemberCount: 1,
243
+ name: RELEASE_REGISTRY_ROLE_NAME}));
244
+
245
+ FunctionInfo[] memory functions;
246
+ functions = new FunctionInfo[](2);
247
+ functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
248
+ functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
249
+ _authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions);
250
+
251
+ _grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
252
+ }
253
+ }
@@ -5,6 +5,8 @@ import {RELEASE} from "../type/ObjectType.sol";
5
5
  import {SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
6
6
  import {Lifecycle} from "../shared/Lifecycle.sol";
7
7
 
8
+ /// @dev Release lifeycle state machine.
9
+ /// Helper contract for ReleaseRegistry.
8
10
  contract ReleaseLifecycle is
9
11
  Lifecycle
10
12
  {