@etherisc/gif-next 0.0.2-c04bff4-304 → 0.0.2-c0923b6-664

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