@etherisc/gif-next 0.0.2-f36fd21-685 → 0.0.2-f3b4c66-505

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