@etherisc/gif-next 0.0.2-7c8d286-020 → 0.0.2-7d488b3-675

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 (358) 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 +32 -48
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +26 -34
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +246 -361
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +39 -8
  12. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +23 -96
  14. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +184 -278
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +0 -32
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +109 -33
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -96
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +65 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +106 -142
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -61
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +65 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +20 -40
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +17 -33
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -96
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +59 -75
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -96
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +118 -42
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -96
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +23 -23
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +27 -43
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -96
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +29 -45
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -96
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +7 -85
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +11 -54
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +25 -95
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +405 -512
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +41 -96
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +63 -86
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +36 -26
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  84. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  91. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  93. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  98. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +14 -14
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +30 -93
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +42 -58
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +31 -39
  111. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -96
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +58 -74
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +39 -47
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  120. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  122. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  123. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +22 -38
  124. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +74 -106
  126. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +47 -63
  128. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +26 -71
  130. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +23 -35
  132. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  133. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  134. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -96
  135. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  136. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +80 -96
  137. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +50 -58
  139. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +0 -21
  141. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +0 -21
  145. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  146. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  147. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +0 -21
  148. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  149. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +86 -94
  150. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  151. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +18 -452
  152. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +53 -57
  154. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/PricingService.sol/PricingService.json +52 -89
  156. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +36 -44
  158. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  159. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  160. package/artifacts/contracts/product/RiskService.sol/RiskService.json +26 -55
  161. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +23 -27
  163. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  164. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  166. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  168. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  169. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  170. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +350 -440
  172. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  174. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +19 -19
  176. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +368 -473
  178. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  180. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +124 -128
  182. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  184. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  186. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +102 -63
  189. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -41
  191. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  193. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +4 -60
  194. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +24 -1
  200. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  202. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  211. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  214. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  227. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  228. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  229. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +9 -74
  231. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +3 -74
  233. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  235. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  236. package/artifacts/contracts/staking/Staking.sol/Staking.json +57 -141
  237. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  239. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +34 -50
  241. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +57 -30
  243. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +29 -124
  245. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +23 -35
  247. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -142
  249. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +14 -24
  251. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  252. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  261. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  262. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  266. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +31 -33
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  288. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -56
  290. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  291. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  292. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +4 -4
  293. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  294. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  295. package/contracts/accounting/AccountingService.sol +3 -2
  296. package/contracts/authorization/AccessAdmin.sol +186 -201
  297. package/contracts/authorization/AccessManagerCloneable.sol +31 -40
  298. package/contracts/authorization/Authorization.sol +33 -61
  299. package/contracts/authorization/IAccessAdmin.sol +36 -63
  300. package/contracts/authorization/IAuthorization.sol +0 -6
  301. package/contracts/distribution/BasicDistribution.sol +3 -5
  302. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  303. package/contracts/distribution/Distribution.sol +47 -4
  304. package/contracts/distribution/DistributionService.sol +6 -10
  305. package/contracts/distribution/IDistributionComponent.sol +9 -0
  306. package/contracts/distribution/IDistributionService.sol +5 -3
  307. package/contracts/instance/IInstance.sol +8 -43
  308. package/contracts/instance/IInstanceService.sol +2 -14
  309. package/contracts/instance/Instance.sol +13 -62
  310. package/contracts/instance/InstanceAdmin.sol +107 -120
  311. package/contracts/instance/InstanceAuthorizationV3.sol +21 -43
  312. package/contracts/instance/InstanceReader.sol +1 -1
  313. package/contracts/instance/InstanceService.sol +60 -118
  314. package/contracts/oracle/BasicOracleAuthorization.sol +1 -1
  315. package/contracts/oracle/OracleService.sol +4 -4
  316. package/contracts/pool/BasicPoolAuthorization.sol +1 -1
  317. package/contracts/pool/PoolLib.sol +1 -94
  318. package/contracts/pool/PoolService.sol +89 -91
  319. package/contracts/product/ApplicationService.sol +1 -10
  320. package/contracts/product/BasicProductAuthorization.sol +1 -1
  321. package/contracts/product/ClaimService.sol +0 -8
  322. package/contracts/product/IApplicationService.sol +0 -2
  323. package/contracts/product/IPricingService.sol +0 -1
  324. package/contracts/product/IRiskService.sol +0 -3
  325. package/contracts/product/PolicyService.sol +53 -35
  326. package/contracts/product/PolicyServiceLib.sol +1 -55
  327. package/contracts/product/PricingService.sol +0 -5
  328. package/contracts/product/RiskService.sol +0 -10
  329. package/contracts/registry/RegistryAdmin.sol +229 -133
  330. package/contracts/registry/ReleaseAdmin.sol +22 -30
  331. package/contracts/registry/ReleaseRegistry.sol +33 -39
  332. package/contracts/registry/ServiceAuthorizationV3.sol +3 -88
  333. package/contracts/shared/Component.sol +6 -6
  334. package/contracts/shared/ComponentService.sol +29 -33
  335. package/contracts/shared/ContractLib.sol +0 -28
  336. package/contracts/shared/IComponentService.sol +6 -4
  337. package/contracts/shared/InitializableERC165.sol +1 -9
  338. package/contracts/shared/NftOwnable.sol +1 -2
  339. package/contracts/shared/Registerable.sol +4 -1
  340. package/contracts/shared/TokenHandler.sol +4 -5
  341. package/contracts/staking/IStaking.sol +2 -12
  342. package/contracts/staking/IStakingService.sol +1 -11
  343. package/contracts/staking/{StakingLib.sol → StakeManagerLib.sol} +22 -79
  344. package/contracts/staking/Staking.sol +13 -33
  345. package/contracts/staking/StakingReader.sol +15 -5
  346. package/contracts/staking/StakingService.sol +2 -39
  347. package/contracts/staking/StakingStore.sol +1 -2
  348. package/contracts/type/ObjectType.sol +14 -5
  349. package/contracts/type/Version.sol +0 -39
  350. package/package.json +1 -1
  351. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +0 -4
  352. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +0 -673
  353. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +0 -4
  354. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +0 -878
  355. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +0 -4
  356. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +0 -469
  357. package/contracts/authorization/AccessAdminLib.sol +0 -183
  358. package/contracts/registry/RegistryAuthorization.sol +0 -267
@@ -10,67 +10,13 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
10
10
 
11
11
  library PolicyServiceLib {
12
12
 
13
- function activate(
14
- NftId policyNftId,
15
- IPolicy.PolicyInfo memory policyInfo,
16
- Timestamp activateAt
17
- )
18
- external
19
- pure
20
- returns (IPolicy.PolicyInfo memory)
21
- {
22
- // fail if policy has already been activated and activateAt is different
23
- if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
24
- revert IPolicyService.ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
25
- }
26
-
27
- // ignore if policy has already been activated and activateAt is the same
28
- if (policyInfo.activatedAt == activateAt) {
29
- return policyInfo;
30
- }
31
-
32
- policyInfo.activatedAt = activateAt;
33
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
34
-
35
- return policyInfo;
36
- }
37
-
38
- function expire(
39
- InstanceReader instanceReader,
40
- NftId policyNftId,
41
- IPolicy.PolicyInfo memory policyInfo,
42
- Timestamp expireAt
43
- )
44
- external
45
- view
46
- returns (IPolicy.PolicyInfo memory)
47
- {
48
- StateId policyState = instanceReader.getPolicyState(policyNftId);
49
-
50
- checkExpiration(
51
- expireAt,
52
- policyNftId,
53
- policyState,
54
- policyInfo);
55
-
56
- // effects
57
- // update policyInfo with new expiredAt timestamp
58
- if (expireAt.gtz()) {
59
- policyInfo.expiredAt = expireAt;
60
- } else {
61
- policyInfo.expiredAt = TimestampLib.blockTimestamp();
62
- }
63
-
64
- return policyInfo;
65
- }
66
-
67
13
  function checkExpiration(
68
14
  Timestamp newExpiredAt,
69
15
  NftId policyNftId,
70
16
  StateId policyState,
71
17
  IPolicy.PolicyInfo memory policyInfo
72
18
  )
73
- public
19
+ external
74
20
  view
75
21
  {
76
22
  if (policyState != COLLATERALIZED()) {
@@ -87,11 +87,6 @@ contract PricingService is
87
87
  // get instance reader from local instance variable
88
88
  reader = instance.getInstanceReader();
89
89
 
90
- NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
91
- if (productNftId != riskProductNftId) {
92
- revert ErrorPricingServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
93
- }
94
-
95
90
  // calculate net premium
96
91
  netPremiumAmount = IProductComponent(registryInfo.objectAddress).calculateNetPremium(
97
92
  sumInsuredAmount,
@@ -82,11 +82,6 @@ contract RiskService is
82
82
  // effects
83
83
  InstanceReader instanceReader = instance.getInstanceReader();
84
84
  IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
85
-
86
- if (riskInfo.productNftId != productNftId) {
87
- revert ErrorRiskServiceRiskProductMismatch(riskId, riskInfo.productNftId, productNftId);
88
- }
89
-
90
85
  riskInfo.data = data;
91
86
  instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
92
87
  }
@@ -102,11 +97,6 @@ contract RiskService is
102
97
  // checks
103
98
  (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
104
99
 
105
- NftId riskProductNftId = instance.getInstanceReader().getRiskInfo(riskId).productNftId;
106
- if (riskProductNftId != productNftId) {
107
- revert ErrorRiskServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
108
- }
109
-
110
100
  // effects
111
101
  instance.getInstanceStore().updateRiskState(riskId, state);
112
102
 
@@ -1,21 +1,18 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAuthorization} from "../authorization/IAuthorization.sol";
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
6
+ import {IAccess} from "../authorization/IAccess.sol";
5
7
  import {IComponent} from "../shared/IComponent.sol";
6
8
  import {IRegistry} from "./IRegistry.sol";
7
9
  import {IService} from "../shared/IService.sol";
10
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
8
11
  import {IStaking} from "../staking/IStaking.sol";
9
-
10
- import {AccessAdmin} from "../authorization/AccessAdmin.sol";
11
- import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
12
- import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
13
- import {ContractLib} from "../shared/ContractLib.sol";
14
- import {ObjectType, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
12
+ import {ObjectType, ObjectTypeLib, ALL, COMPONENT, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
15
13
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
16
14
  import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
17
15
  import {Staking} from "../staking/Staking.sol";
18
- import {Str, StrLib} from "../type/String.sol";
19
16
  import {StakingStore} from "../staking/StakingStore.sol";
20
17
  import {TokenHandler} from "../shared/TokenHandler.sol";
21
18
  import {TokenRegistry} from "./TokenRegistry.sol";
@@ -63,8 +60,7 @@ contract RegistryAdmin is
63
60
  string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
64
61
  string public constant TOKEN_HANDLER_TARGET_NAME = "TokenHandler";
65
62
 
66
- // completeSetup
67
- error ErrorRegistryAdminNotRegistry(address registry);
63
+ uint8 public constant MAX_NUM_RELEASES = 99;
68
64
 
69
65
  address internal _registry;
70
66
  address private _releaseRegistry;
@@ -73,15 +69,11 @@ contract RegistryAdmin is
73
69
  address private _stakingStore;
74
70
 
75
71
  constructor() {
76
- initialize(
77
- address(new AccessManagerCloneable()),
78
- "RegistryAdmin");
72
+ initialize(new AccessManagerCloneable());
79
73
  }
80
74
 
81
-
82
75
  function completeSetup(
83
- address registry,
84
- address authorization,
76
+ IRegistry registry,
85
77
  address gifAdmin,
86
78
  address gifManager
87
79
  )
@@ -90,47 +82,37 @@ contract RegistryAdmin is
90
82
  reinitializer(type(uint8).max)
91
83
  onlyDeployer()
92
84
  {
93
- // checks
94
- _checkRegistry(registry);
95
-
96
- VersionPart release = VersionPartLib.toVersionPart(3);
97
- AccessManagerCloneable(
98
- authority()).completeSetup(
99
- registry,
100
- release);
101
-
102
- _checkAuthorization(authorization, REGISTRY(), release, true);
103
-
104
- _registry = registry;
105
- _authorization = IAuthorization(authorization);
106
-
107
- IRegistry registryContract = IRegistry(registry);
108
- _releaseRegistry = registryContract.getReleaseRegistryAddress();
109
- _tokenRegistry = registryContract.getTokenRegistryAddress();
110
- _staking = registryContract.getStakingAddress();
85
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
86
+ accessManager.completeSetup(
87
+ address(registry),
88
+ VersionPartLib.toVersionPart(type(uint8).max),
89
+ false);
90
+
91
+ _registry = address(registry);
92
+ _releaseRegistry = registry.getReleaseRegistryAddress();
93
+ _tokenRegistry = registry.getTokenRegistryAddress();
94
+ _staking = registry.getStakingAddress();
111
95
  _stakingStore = address(
112
96
  IStaking(_staking).getStakingStore());
113
97
 
114
- // link nft ownability to registry
115
- _linkToNftOwnable(_registry);
98
+ _createTargets();
116
99
 
117
- _setupRegistry(_registry);
118
-
119
- // setup authorization for registry and supporting contracts
120
- _createRoles(_authorization);
121
- _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
122
- _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
100
+ _setupGifAdminRole(gifAdmin);
101
+ _setupGifManagerRole(gifManager);
123
102
 
124
- _createTargets(_authorization);
125
- _createTargetAuthorizations(_authorization);
103
+ _setupRegistryRoles();
104
+ _setupStakingRoles();
126
105
  }
127
106
 
107
+ /*function transferAdmin(address to)
108
+ external
109
+ restricted // only with GIF_ADMIN_ROLE or nft owner
110
+ {
111
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
112
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
113
+ }*/
128
114
 
129
-
130
- function grantServiceRoleForAllVersions(
131
- IService service,
132
- ObjectType domain
133
- )
115
+ function grantServiceRoleForAllVersions(IService service, ObjectType domain)
134
116
  external
135
117
  restricted()
136
118
  {
@@ -151,108 +133,222 @@ contract RegistryAdmin is
151
133
 
152
134
  //--- private initialization functions -------------------------------------------//
153
135
 
154
- // create registry role and target
155
- function _setupRegistry(address registry) internal {
156
-
157
- // create registry role
158
- RoleId roleId = _authorization.getTargetRole(
159
- _authorization.getMainTarget());
136
+ function _createTargets()
137
+ private
138
+ onlyInitializing()
139
+ {
140
+ IStaking staking = IStaking(_staking);
141
+ address tokenHandler = address(staking.getTokenHandler());
160
142
 
161
- _createRole(
162
- roleId,
163
- _authorization.getRoleInfo(roleId));
164
-
165
- // create registry target
166
- _createTarget(
167
- registry,
168
- _authorization.getMainTargetName(),
169
- true, // checkAuthority
170
- false); // custom
171
-
172
- // assign registry role to registry
173
- _grantRoleToAccount(
174
- roleId,
175
- registry);
143
+ _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, false, false);
144
+ _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
145
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
146
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
147
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
148
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
149
+ _createTarget(tokenHandler, TOKEN_HANDLER_TARGET_NAME, true, false);
176
150
  }
177
151
 
178
-
179
- function _createRoles(IAuthorization authorization)
180
- internal
152
+ function _setupGifAdminRole(address gifAdmin)
153
+ private
154
+ onlyInitializing()
181
155
  {
182
- RoleId[] memory roles = authorization.getRoles();
183
- RoleId mainTargetRoleId = authorization.getTargetRole(
184
- authorization.getMainTarget());
185
-
186
- RoleId roleId;
187
- RoleInfo memory roleInfo;
188
-
189
- for(uint256 i = 0; i < roles.length; i++) {
190
-
191
- roleId = roles[i];
156
+ // create gif admin role
157
+ _createRole(
158
+ GIF_ADMIN_ROLE(),
159
+ toRole({
160
+ adminRoleId: ADMIN_ROLE(),
161
+ roleType: RoleType.Gif,
162
+ maxMemberCount: 2, // TODO decide on max member count
163
+ name: GIF_ADMIN_ROLE_NAME}));
164
+
165
+ // grant permissions to the gif admin role for registry contract
166
+ FunctionInfo[] memory functions;
167
+ functions = new FunctionInfo[](1);
168
+ functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
169
+ _authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
170
+
171
+ // grant permissions to the gif admin role for release registry contract
172
+ functions = new FunctionInfo[](3);
173
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
174
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
175
+ functions[2] = toFunction(ReleaseRegistry.setActive.selector, "setActive");
176
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
192
177
 
193
- // skip main target role, create role if not exists
194
- if (roleId != mainTargetRoleId && !roleExists(roleId)) {
195
- _createRole(
196
- roleId,
197
- authorization.getRoleInfo(roleId));
198
- }
199
- }
178
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
200
179
  }
201
-
202
-
203
- function _createTargets(IAuthorization authorization)
204
- internal
180
+
181
+ function _setupGifManagerRole(address gifManager)
182
+ private
183
+ onlyInitializing()
205
184
  {
206
- // registry
207
- _createTargetWithRole(address(this), REGISTRY_ADMIN_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(REGISTRY_ADMIN_TARGET_NAME)));
208
- _createTargetWithRole(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(RELEASE_REGISTRY_TARGET_NAME)));
209
- _createTargetWithRole(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(TOKEN_REGISTRY_TARGET_NAME)));
185
+ // create gif manager role
186
+ _createRole(
187
+ GIF_MANAGER_ROLE(),
188
+ toRole({
189
+ adminRoleId: ADMIN_ROLE(),
190
+ roleType: RoleType.Gif,
191
+ maxMemberCount: 1, // TODO decide on max member count
192
+ name: GIF_MANAGER_ROLE_NAME}));
193
+
194
+ // grant permissions to the gif manager role for token registry contract
195
+ FunctionInfo[] memory functions;
196
+ functions = new FunctionInfo[](5);
197
+ functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
198
+ functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
199
+ functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
200
+ functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
201
+ // TODO find a better way (only needed for testing)
202
+ functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
203
+ _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
204
+
205
+ // grant permissions to the gif manager role for release registry contract
206
+ functions = new FunctionInfo[](2);
207
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
208
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
209
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
210
210
 
211
- // staking
212
- _createTargetWithRole(_staking, STAKING_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(STAKING_TARGET_NAME)));
213
- _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
214
- _createTarget(address(IComponent(_staking).getTokenHandler()), STAKING_TH_TARGET_NAME, true, false);
211
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
215
212
  }
216
213
 
217
-
218
- function _createTargetAuthorizations(IAuthorization authorization)
219
- internal
214
+ function _setupRegistryRoles()
215
+ private
216
+ onlyInitializing()
220
217
  {
221
- Str[] memory targets = authorization.getTargets();
222
- Str target;
223
-
224
- for(uint256 i = 0; i < targets.length; i++) {
225
- target = targets[i];
226
- RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
227
- RoleId authorizedRole;
228
-
229
- for(uint256 j = 0; j < authorizedRoles.length; j++) {
230
- authorizedRole = authorizedRoles[j];
231
-
232
- _authorizeTargetFunctions(
233
- getTargetForName(target),
234
- authorizedRole,
235
- authorization.getAuthorizedFunctions(
236
- target,
237
- authorizedRole));
238
- }
239
- }
218
+ // TODO use RELEASE_REGISTRY_ROLE instead
219
+ // create and grant release registry role
220
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
221
+ _createRole(
222
+ releaseRegistryRoleId,
223
+ toRole({
224
+ adminRoleId: ADMIN_ROLE(),
225
+ roleType: RoleType.Contract,
226
+ maxMemberCount: 1,
227
+ name: RELEASE_REGISTRY_ROLE_NAME}));
228
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
229
+
230
+ // grant permissions to the release registry role for release admin contract
231
+ FunctionInfo[] memory functions;
232
+ functions = new FunctionInfo[](1);
233
+ functions[0] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
234
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
235
+
236
+ // grant permissions to the release registry role for registry contract
237
+ functions = new FunctionInfo[](1);
238
+ functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
239
+ _authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
240
+
241
+ // create registry service role
242
+ RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
243
+ _createRole(
244
+ registryServiceRoleId,
245
+ toRole({
246
+ adminRoleId: ADMIN_ROLE(),
247
+ roleType: RoleType.Contract,
248
+ maxMemberCount: MAX_NUM_RELEASES,
249
+ name: REGISTRY_SERVICE_ROLE_NAME}));
250
+
251
+ // grant permissions to the registry service role for registry contract
252
+ functions = new FunctionInfo[](2);
253
+ functions[0] = toFunction(IRegistry.register.selector, "register");
254
+ functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
255
+ _authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
240
256
  }
241
257
 
242
258
 
243
- function _createTargets(address authorization)
259
+ function _setupStakingRoles()
244
260
  private
245
261
  onlyInitializing()
246
262
  {
263
+ // create and grant staking contract role
264
+ RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
265
+ _createRole(
266
+ stakingRoleId,
267
+ toRole({
268
+ adminRoleId: ADMIN_ROLE(),
269
+ roleType: RoleType.Contract,
270
+ maxMemberCount: 1,
271
+ name: STAKING_ROLE_NAME}));
272
+ _grantRoleToAccount(stakingRoleId, _staking);
273
+
274
+ // grant permissions to the staking role for staking store contract
275
+ FunctionInfo[] memory functions;
276
+ functions = new FunctionInfo[](14);
277
+ functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
278
+ functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
279
+ functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
280
+ functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
281
+ functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
282
+ functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
283
+ functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
284
+ functions[7] = toFunction(StakingStore.create.selector, "create");
285
+ functions[8] = toFunction(StakingStore.update.selector, "update");
286
+ functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
287
+ functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
288
+ functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
289
+ functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
290
+ functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
291
+ _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
292
+
293
+ // grant permissions to the staking role for token handler contract
247
294
  IStaking staking = IStaking(_staking);
248
- address tokenHandler = address(staking.getTokenHandler());
295
+ functions = new FunctionInfo[](2);
296
+ functions[0] = toFunction(TokenHandler.pullToken.selector, "pullToken");
297
+ functions[1] = toFunction(TokenHandler.pushToken.selector, "pushToken");
298
+ _authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
249
299
 
250
- _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, false, false);
251
- _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
252
- _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
253
- _createTarget(_staking, STAKING_TARGET_NAME, true, false);
254
- _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
255
- _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
256
- _createTarget(tokenHandler, TOKEN_HANDLER_TARGET_NAME, true, false);
300
+ // create staking service role
301
+ RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
302
+ _createRole(
303
+ stakingServiceRoleId,
304
+ toRole({
305
+ adminRoleId: ADMIN_ROLE(),
306
+ roleType: RoleType.Contract,
307
+ maxMemberCount: MAX_NUM_RELEASES,
308
+ name: STAKING_SERVICE_ROLE_NAME}));
309
+
310
+ // grant permissions to the staking service role for staking contract
311
+ functions = new FunctionInfo[](11);
312
+ functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
313
+ functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
314
+ functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
315
+ functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
316
+ functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
317
+ functions[5] = toFunction(IStaking.createStake.selector, "createStake");
318
+ functions[6] = toFunction(IStaking.stake.selector, "stake");
319
+ functions[7] = toFunction(IStaking.unstake.selector, "unstake");
320
+ functions[8] = toFunction(IStaking.restake.selector, "restake");
321
+ functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
322
+ functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
323
+ _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
324
+
325
+ // grant permissions to the staking service role for staking token handler
326
+ functions = new FunctionInfo[](3);
327
+ functions[0] = toFunction(TokenHandler.approve.selector, "approve");
328
+ functions[1] = toFunction(TokenHandler.pullToken.selector, "pullToken");
329
+ functions[2] = toFunction(TokenHandler.pushToken.selector, "pushToken");
330
+ _authorizeTargetFunctions(
331
+ address(IComponent(_staking).getTokenHandler()), stakingServiceRoleId, functions);
332
+
333
+ // create pool service role
334
+ RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
335
+ _createRole(
336
+ poolServiceRoleId,
337
+ toRole({
338
+ adminRoleId: ADMIN_ROLE(),
339
+ roleType: RoleType.Contract,
340
+ maxMemberCount: MAX_NUM_RELEASES,
341
+ name: POOL_SERVICE_ROLE_NAME}));
342
+
343
+ // grant permissions to the pool service role for staking contract
344
+ functions = new FunctionInfo[](2);
345
+ functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
346
+ functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
347
+ _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
348
+
349
+ // grant permissions to public role for staking contract
350
+ functions = new FunctionInfo[](1);
351
+ functions[0] = toFunction(Staking.approveTokenHandler.selector, "approveTokenHandler");
352
+ _authorizeTargetFunctions(_staking, PUBLIC_ROLE(), functions);
257
353
  }
258
354
  }