@etherisc/gif-next 0.0.2-bafc958-412 → 0.0.2-bb3faee-097

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