@etherisc/gif-next 0.0.2-c5049d4-401 → 0.0.2-c52b5b7-438

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