@etherisc/gif-next 0.0.2-e9c5694-914 → 0.0.2-ea09fbf-195

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