@etherisc/gif-next 0.0.2-c00cf5d-513 → 0.0.2-c04bff4-304

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 (517) hide show
  1. package/README.md +49 -4
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +160 -543
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +272 -455
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -143
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +169 -263
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +186 -94
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -85
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +190 -49
  50. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/Instance.sol/Instance.json +65 -227
  52. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1218 -284
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +592 -316
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +246 -196
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +65 -109
  62. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1112 -372
  64. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  66. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  67. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  68. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  70. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  72. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  76. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  80. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  81. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  82. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  84. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  86. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +414 -359
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +121 -117
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +204 -32
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +180 -366
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +340 -219
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +204 -596
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +394 -574
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -139
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +84 -289
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +54 -106
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +225 -305
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -123
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  131. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +25 -1
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +134 -1
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +217 -83
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +83 -44
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -183
  140. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  141. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +15 -57
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +239 -435
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +66 -162
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +184 -347
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -124
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  151. package/artifacts/contracts/product/Product.sol/Product.json +286 -449
  152. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  153. package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
  154. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +308 -39
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -73
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  164. package/artifacts/contracts/registry/Registry.sol/Registry.json +718 -74
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1682 -113
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +195 -137
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +45 -93
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
  179. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  180. package/artifacts/contracts/shared/Component.sol/Component.json +88 -295
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1125 -207
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +753 -0
  185. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +427 -0
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -107
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  190. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  192. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  194. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
  195. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  196. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  197. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  198. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -24
  201. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  203. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  206. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  208. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  216. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  217. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  218. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +32 -70
  220. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  221. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -118
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +16 -110
  224. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  225. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  226. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  227. package/artifacts/contracts/shared/Service.sol/Service.json +13 -125
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
  230. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  231. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  232. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  234. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  235. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
  236. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  238. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  240. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  242. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +714 -0
  244. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  246. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  247. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +636 -191
  248. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  249. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +65 -97
  250. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  252. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  254. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  255. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  256. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.json +97 -4
  258. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  260. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  262. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  264. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
  266. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  268. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  270. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  272. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  276. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  278. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  280. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  282. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  284. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
  286. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  292. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  294. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  296. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  298. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
  300. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  302. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  304. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  305. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  306. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  307. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
  308. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  310. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  311. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  312. package/contracts/authorization/AccessAdmin.sol +589 -0
  313. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  314. package/contracts/authorization/Authorization.sol +217 -0
  315. package/contracts/authorization/IAccess.sol +48 -0
  316. package/contracts/authorization/IAccessAdmin.sol +136 -0
  317. package/contracts/authorization/IAuthorization.sol +54 -0
  318. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  319. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  320. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  321. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  322. package/contracts/distribution/BasicDistribution.sol +138 -0
  323. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  324. package/contracts/distribution/Distribution.sol +163 -153
  325. package/contracts/distribution/DistributionService.sol +132 -147
  326. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  327. package/contracts/distribution/IDistributionComponent.sol +28 -47
  328. package/contracts/distribution/IDistributionService.sol +24 -10
  329. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  330. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  331. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  332. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  333. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  334. package/contracts/instance/IInstance.sol +24 -40
  335. package/contracts/instance/IInstanceService.sol +44 -24
  336. package/contracts/instance/Instance.sol +112 -117
  337. package/contracts/instance/InstanceAdmin.sol +221 -266
  338. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  339. package/contracts/instance/InstanceReader.sol +114 -52
  340. package/contracts/instance/InstanceService.sol +280 -112
  341. package/contracts/instance/InstanceServiceManager.sol +2 -6
  342. package/contracts/instance/InstanceStore.sol +142 -66
  343. package/contracts/instance/base/BalanceStore.sol +123 -0
  344. package/contracts/instance/base/Cloneable.sol +2 -25
  345. package/contracts/instance/base/ObjectCounter.sol +21 -0
  346. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  347. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  348. package/contracts/instance/module/IBundle.sol +1 -4
  349. package/contracts/instance/module/IComponents.sol +15 -10
  350. package/contracts/instance/module/IDistribution.sol +0 -1
  351. package/contracts/instance/module/IPolicy.sol +29 -23
  352. package/contracts/mock/Dip.sol +26 -0
  353. package/contracts/oracle/BasicOracle.sol +48 -0
  354. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  355. package/contracts/oracle/IOracle.sol +36 -0
  356. package/contracts/oracle/IOracleComponent.sol +33 -0
  357. package/contracts/oracle/IOracleService.sol +65 -0
  358. package/contracts/oracle/Oracle.sol +167 -0
  359. package/contracts/oracle/OracleService.sol +279 -0
  360. package/contracts/oracle/OracleServiceManager.sol +39 -0
  361. package/contracts/pool/BasicPool.sol +166 -0
  362. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  363. package/contracts/pool/BundleService.sol +256 -202
  364. package/contracts/pool/BundleServiceManager.sol +2 -5
  365. package/contracts/pool/IBundleService.sol +35 -19
  366. package/contracts/pool/IPoolComponent.sol +10 -66
  367. package/contracts/pool/IPoolService.sol +79 -33
  368. package/contracts/pool/Pool.sol +169 -145
  369. package/contracts/pool/PoolService.sol +319 -214
  370. package/contracts/pool/PoolServiceManager.sol +2 -5
  371. package/contracts/product/ApplicationService.sol +139 -78
  372. package/contracts/product/ApplicationServiceManager.sol +2 -2
  373. package/contracts/product/BasicProduct.sol +53 -0
  374. package/contracts/product/BasicProductAuthorization.sol +43 -0
  375. package/contracts/product/ClaimService.sol +136 -92
  376. package/contracts/product/ClaimServiceManager.sol +2 -2
  377. package/contracts/product/IApplicationService.sol +2 -1
  378. package/contracts/product/IClaimService.sol +32 -3
  379. package/contracts/product/IPolicyService.sol +31 -38
  380. package/contracts/product/IPricingService.sol +10 -8
  381. package/contracts/product/IProductComponent.sol +10 -12
  382. package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
  383. package/contracts/product/PolicyService.sol +389 -194
  384. package/contracts/product/PolicyServiceManager.sol +2 -5
  385. package/contracts/product/PricingService.sol +99 -74
  386. package/contracts/product/PricingServiceManager.sol +2 -5
  387. package/contracts/product/Product.sol +177 -131
  388. package/contracts/product/RiskService.sol +97 -0
  389. package/contracts/product/RiskServiceManager.sol +39 -0
  390. package/contracts/registry/ChainNft.sol +72 -32
  391. package/contracts/registry/IRegistry.sol +76 -21
  392. package/contracts/registry/IRegistryService.sol +15 -5
  393. package/contracts/registry/Registry.sol +412 -175
  394. package/contracts/registry/RegistryAdmin.sol +399 -76
  395. package/contracts/registry/RegistryService.sol +53 -33
  396. package/contracts/registry/RegistryServiceManager.sol +4 -11
  397. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  398. package/contracts/registry/ReleaseRegistry.sol +491 -0
  399. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  400. package/contracts/registry/TokenRegistry.sol +261 -64
  401. package/contracts/shared/Component.sol +145 -148
  402. package/contracts/shared/ComponentService.sol +590 -91
  403. package/contracts/shared/ComponentServiceManager.sol +35 -0
  404. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  405. package/contracts/shared/IComponent.sol +21 -41
  406. package/contracts/shared/IComponentService.sol +108 -0
  407. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  408. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  409. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  410. package/contracts/shared/INftOwnable.sol +1 -1
  411. package/contracts/shared/IPolicyHolder.sol +0 -4
  412. package/contracts/shared/IService.sol +9 -2
  413. package/contracts/shared/InitializableCustom.sol +177 -0
  414. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  415. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  416. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  417. package/contracts/shared/Lifecycle.sol +77 -0
  418. package/contracts/shared/NftIdSet.sol +65 -0
  419. package/contracts/shared/NftOwnable.sol +10 -20
  420. package/contracts/shared/PolicyHolder.sol +10 -48
  421. package/contracts/shared/Registerable.sol +6 -6
  422. package/contracts/shared/RegistryLinked.sol +3 -2
  423. package/contracts/shared/Service.sol +37 -27
  424. package/contracts/shared/TokenHandler.sol +112 -8
  425. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  426. package/contracts/staking/IStaking.sol +168 -0
  427. package/contracts/staking/IStakingService.sol +105 -47
  428. package/contracts/staking/StakeManagerLib.sol +224 -0
  429. package/contracts/staking/Staking.sol +498 -0
  430. package/contracts/staking/StakingLifecycle.sol +23 -0
  431. package/contracts/staking/StakingManager.sol +50 -0
  432. package/contracts/staking/StakingReader.sol +183 -0
  433. package/contracts/staking/StakingService.sol +285 -47
  434. package/contracts/staking/StakingServiceManager.sol +9 -5
  435. package/contracts/staking/StakingStore.sol +605 -0
  436. package/contracts/staking/TargetManagerLib.sol +211 -0
  437. package/contracts/type/AddressSet.sol +1 -1
  438. package/contracts/type/Amount.sol +29 -3
  439. package/contracts/type/Blocknumber.sol +26 -3
  440. package/contracts/type/Fee.sol +17 -16
  441. package/contracts/type/NftId.sol +14 -16
  442. package/contracts/type/NftIdSet.sol +1 -1
  443. package/contracts/type/ObjectType.sol +175 -62
  444. package/contracts/type/Referral.sol +2 -1
  445. package/contracts/type/RequestId.sol +75 -0
  446. package/contracts/type/RiskId.sol +1 -1
  447. package/contracts/type/RoleId.sol +104 -69
  448. package/contracts/type/Seconds.sol +48 -1
  449. package/contracts/type/Selector.sol +102 -0
  450. package/contracts/type/StateId.sol +28 -2
  451. package/contracts/type/String.sol +53 -0
  452. package/contracts/type/Timestamp.sol +17 -3
  453. package/contracts/type/UFixed.sol +34 -9
  454. package/contracts/type/Version.sol +4 -2
  455. package/contracts/{shared → upgradeability}/ProxyManager.sol +6 -8
  456. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  457. package/package.json +8 -5
  458. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  459. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  460. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  461. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -188
  462. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  463. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  464. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  466. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  468. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  470. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  471. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  473. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  474. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  475. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -891
  476. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  477. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -715
  478. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  479. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1058
  480. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  481. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  482. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  483. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  484. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  485. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  486. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  487. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  488. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  489. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  490. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  491. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  492. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  493. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  494. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  495. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  496. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  497. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  498. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -630
  499. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  500. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  501. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  502. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -320
  503. package/contracts/instance/base/Lifecycle.sol +0 -121
  504. package/contracts/instance/module/ISetup.sol +0 -33
  505. package/contracts/instance/module/ITreasury.sol +0 -23
  506. package/contracts/product/ProductService.sol +0 -212
  507. package/contracts/product/ProductServiceManager.sol +0 -42
  508. package/contracts/registry/ReleaseManager.sol +0 -462
  509. package/contracts/shared/AccessManagerCustom.sol +0 -736
  510. package/contracts/shared/AccessManagerExtended.sol +0 -469
  511. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  512. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  513. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  514. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  515. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  516. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  517. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,84 +1,153 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
- import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
6
-
7
- import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
8
-
9
- import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
10
-
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {IAccess} from "../authorization/IAccess.sol";
6
+ import {IRegistry} from "./IRegistry.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
+ 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";
11
15
  import {TokenRegistry} from "./TokenRegistry.sol";
12
- import {ReleaseManager} from "./ReleaseManager.sol";
16
+ import {VersionPart} from "../type/Version.sol";
13
17
 
14
18
  /*
15
19
  1) GIF_MANAGER_ROLE
16
20
  - can have arbitrary number of members
17
21
  - responsible for services registrations
18
22
  - responsible for token registration and activation
23
+
19
24
  2) GIF_ADMIN_ROLE
20
25
  - admin of GIF_MANAGER_ROLE
21
26
  - MUST have 1 member at any time
22
27
  - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
23
28
  - responsible for creation and activation of releases
24
-
25
29
  */
26
-
27
- contract RegistryAdmin is AccessManaged, Initializable
30
+ contract RegistryAdmin is
31
+ AccessAdmin
28
32
  {
29
- error ErrorRegistryAdminReleaseManagerAuthorityMismatch();
30
- error ErrorRegistryAdminTokenRegistryZero();
31
-
32
33
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
33
34
  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";
34
40
 
35
- string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
36
- //string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
37
-
38
- address private _releaseManager;
41
+ string public constant REGISTRY_TARGET_NAME = "Registry";
42
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
43
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
44
+ string public constant STAKING_TARGET_NAME = "Staking";
45
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
46
+
47
+ uint8 public constant MAX_NUM_RELEASES = 99;
48
+ // TODO consider deleting this
49
+ mapping(address service => VersionPart majorVersion) private _ServiceRelease;
50
+
51
+ address internal _registry;
52
+ address private _releaseRegistry;
39
53
  address private _tokenRegistry;
54
+ address private _staking;
55
+ address private _stakingStore;
40
56
 
41
- // IMPORTNAT: this.authority() must be valid before initialize() function
42
- // -> have both, constructor and initializer
43
- constructor()
44
- AccessManaged(msg.sender)
45
- {
46
- AccessManagerExtendedInitializeable accessManager = new AccessManagerExtendedInitializeable();
47
- accessManager.initialize(address(this));
48
- setAuthority(address(accessManager));
49
- }
57
+ constructor() AccessAdmin() { }
50
58
 
51
- /// @dev any body can call this function
52
- function initialize(address admin, address manager, address releaseManager, address tokenRegistry)
59
+ function completeSetup(
60
+ IRegistry registry,
61
+ address gifAdmin,
62
+ address gifManager
63
+ )
53
64
  external
54
65
  initializer
66
+ onlyDeployer()
55
67
  {
56
- // validate input
57
- if(AccessManaged(releaseManager).authority() != authority()) {
58
- revert ErrorRegistryAdminReleaseManagerAuthorityMismatch();
59
- }
60
- if(tokenRegistry == address(0)) {
61
- revert ErrorRegistryAdminTokenRegistryZero();
62
- }
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);
63
77
 
64
- _releaseManager = releaseManager;
65
- _tokenRegistry = tokenRegistry;
78
+ _setupGifAdminRole(gifAdmin);
79
+ _setupGifManagerRole(gifManager);
66
80
 
67
- _createRole(GIF_ADMIN_ROLE(), GIF_ADMIN_ROLE_NAME);
68
- _createRole(GIF_MANAGER_ROLE(), GIF_MANAGER_ROLE_NAME);
81
+ _setupReleaseRegistry();
82
+ _setupRegistry();
83
+ _setupStaking();
84
+ }
85
+
86
+
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
+ }
69
102
 
70
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
71
- //_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
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
+ }
72
117
 
73
- _setGifAdminRole();
74
- _setGifManagerRole();
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
+ }
75
132
 
76
- _grantRole(GIF_ADMIN_ROLE(), admin, 0);
77
- _grantRole(GIF_MANAGER_ROLE(), manager, 0);
133
+ function grantServiceRoleForAllVersions(IService service, ObjectType domain)
134
+ external
135
+ restricted()
136
+ {
137
+ _grantRoleToAccount(
138
+ RoleIdLib.roleForTypeAndAllVersions(domain),
139
+ address(service));
140
+ }
78
141
 
79
- _setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
142
+ function revokeServiceRoleForAllVersions(IService service, ObjectType domain)
143
+ external
144
+ restricted()
145
+ {
146
+ _revokeRoleFromAccount(
147
+ RoleIdLib.roleForTypeAndAllVersions(domain),
148
+ address(service));
80
149
  }
81
-
150
+
82
151
  /*function transferAdmin(address to)
83
152
  external
84
153
  restricted // only with GIF_ADMIN_ROLE or nft owner
@@ -89,53 +158,307 @@ contract RegistryAdmin is AccessManaged, Initializable
89
158
 
90
159
  //--- view functions ----------------------------------------------------//
91
160
 
161
+ function getGifAdminRole() external view returns (RoleId) {
162
+ return GIF_ADMIN_ROLE();
163
+ }
164
+
165
+ function getGifManagerRole() external view returns (RoleId) {
166
+ return GIF_MANAGER_ROLE();
167
+ }
168
+
92
169
  //--- private functions -------------------------------------------------//
93
170
 
94
- function _setGifAdminRole() private
171
+ function _createServiceTargetAndRole(
172
+ IService service,
173
+ ObjectType serviceDomain,
174
+ VersionPart releaseVersion
175
+ )
176
+ private
95
177
  {
96
- bytes4[] memory functionSelector = new bytes4[](1);
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);
97
190
 
98
- // for ReleaseManager
99
- functionSelector[0] = ReleaseManager.createNextRelease.selector;
100
- _setTargetFunctionRole(_releaseManager, functionSelector, GIF_ADMIN_ROLE());
191
+ // create service role
192
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
193
+ serviceDomain,
194
+ releaseVersion);
101
195
 
102
- functionSelector[0] = ReleaseManager.activateNextRelease.selector;
103
- _setTargetFunctionRole(_releaseManager, functionSelector, GIF_ADMIN_ROLE());
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
+ _grantRoleToAccount(
208
+ serviceRoleId,
209
+ address(service));
104
210
  }
105
-
106
- function _setGifManagerRole() private
211
+
212
+
213
+ function _authorizeServiceFunctions(
214
+ IServiceAuthorization serviceAuthorization,
215
+ IService service,
216
+ ObjectType serviceDomain,
217
+ VersionPart releaseVersion
218
+ )
219
+ private
107
220
  {
108
- bytes4[] memory functionSelector = new bytes4[](1);
221
+ ObjectType authorizedDomain;
222
+ RoleId authorizedRoleId;
109
223
 
110
- // for TokenRegistry
111
- //functionSelector[0] = TokenRegistry.setActive.selector;
112
- //_setTargetFunctionRole(_tokenRegistry, functionSelector, GIF_MANAGER_ROLE());
224
+ ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
113
225
 
114
- // for ReleaseManager
115
- functionSelector[0] = ReleaseManager.registerService.selector;
116
- _setTargetFunctionRole(_releaseManager, functionSelector, GIF_MANAGER_ROLE());
226
+ for (uint256 i = 0; i < authorizedDomains.length; i++) {
227
+ authorizedDomain = authorizedDomains[i];
117
228
 
118
- functionSelector[0] = ReleaseManager.prepareNextRelease.selector;
119
- _setTargetFunctionRole(_releaseManager, functionSelector, GIF_MANAGER_ROLE());
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
+ }
120
248
  }
121
249
 
122
- function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) private {
123
- AccessManagerExtendedInitializeable(authority()).setTargetFunctionRole(target, selectors, roleId.toInt());
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);
124
280
  }
281
+
282
+ function _setupGifManagerRole(address gifManager)
283
+ private
284
+ onlyInitializing()
285
+ {
125
286
 
126
- function _setRoleAdmin(RoleId roleId, RoleId adminRoleId) private {
127
- AccessManagerExtendedInitializeable(authority()).setRoleAdmin(roleId.toInt(), adminRoleId.toInt());
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);
128
313
  }
129
314
 
130
- function _grantRole(RoleId roleId, address account, uint32 executionDelay) private {
131
- AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, executionDelay);
315
+
316
+ function _setupReleaseRegistry()
317
+ private
318
+ onlyInitializing()
319
+ {
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);
132
342
  }
133
343
 
134
- function _createRole(RoleId roleId, string memory roleName) private {
135
- AccessManagerExtendedInitializeable(authority()).createRole(roleId.toInt(), roleName);
344
+
345
+ function _setupRegistry()
346
+ internal
347
+ virtual
348
+ onlyInitializing()
349
+ {
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);
136
374
  }
137
375
 
138
- function _createTarget(address target, string memory targetName) private {
139
- AccessManagerExtendedInitializeable(authority()).createTarget(target, targetName);
376
+
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);
140
463
  }
141
464
  }
@@ -1,33 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
5
- // import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
-
7
- import {IRegistry} from "./IRegistry.sol";
8
- import {IInstance} from "../instance/IInstance.sol";
9
-
10
4
  import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
11
7
  import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
12
8
  import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
13
- import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
14
-
15
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
16
- import {Versionable} from "../../contracts/shared/Versionable.sol";
17
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
18
- import {Registerable} from "../../contracts/shared/Registerable.sol";
19
-
20
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
21
- import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, PRICE} from "../../contracts/type/ObjectType.sol";
22
- import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
23
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/type/NftId.sol";
24
- import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
25
- import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
26
12
 
13
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
14
+ import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
27
15
  import {Service} from "../shared/Service.sol";
28
- import {IService} from "../shared/IService.sol";
29
- import {IRegistryService} from "./IRegistryService.sol";
30
- import {Registry} from "./Registry.sol";
31
16
 
32
17
  contract RegistryService is
33
18
  Service,
@@ -38,11 +23,6 @@ contract RegistryService is
38
23
  // TODO update to real hash when registry is stable
39
24
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
40
25
 
41
- // From IService
42
- function getDomain() public pure override returns(ObjectType serviceDomain) {
43
- return REGISTRY();
44
- }
45
-
46
26
  // from Versionable
47
27
 
48
28
  /// @dev top level initializer
@@ -54,17 +34,32 @@ contract RegistryService is
54
34
  virtual override
55
35
  initializer()
56
36
  {
57
- address initialOwner;
58
- address registryAddress;
59
- address authority;
60
- (registryAddress, initialOwner, authority) = abi.decode(data, (address, address, address));
37
+ (
38
+ address registryAddress,
39
+ address initialAuthority
40
+ ) = abi.decode(data, (address, address));
61
41
 
62
- initializeService(registryAddress, authority, owner);
63
- registerInterface(type(IRegistryService).interfaceId);
42
+ _initializeService(registryAddress, initialAuthority, owner);
43
+ _registerInterface(type(IRegistryService).interfaceId);
64
44
  }
65
45
 
46
+
47
+ function registerStaking(IRegisterable staking, address owner)
48
+ external
49
+ virtual
50
+ restricted()
51
+ returns(
52
+ IRegistry.ObjectInfo memory info
53
+ )
54
+ {
55
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
56
+ info.nftId = getRegistry().register(info);
57
+ }
58
+
59
+
66
60
  function registerInstance(IRegisterable instance, address owner)
67
61
  external
62
+ virtual
68
63
  restricted
69
64
  returns(
70
65
  IRegistry.ObjectInfo memory info
@@ -96,6 +91,26 @@ contract RegistryService is
96
91
  info.nftId = getRegistry().register(info);
97
92
  }
98
93
 
94
+ function registerComponent(
95
+ IComponent component,
96
+ ObjectType objectType,
97
+ address initialOwner
98
+ )
99
+ external
100
+ restricted
101
+ returns(
102
+ IRegistry.ObjectInfo memory info
103
+ )
104
+ {
105
+ // CAN revert if no ERC165 support -> will revert with empty message
106
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
107
+ revert ErrorRegistryServiceNotComponent(address(component));
108
+ }
109
+
110
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
111
+ info.nftId = getRegistry().register(info);
112
+ }
113
+
99
114
  function registerPool(IComponent pool, address owner)
100
115
  external
101
116
  restricted
@@ -229,4 +244,9 @@ contract RegistryService is
229
244
  revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
230
245
  }
231
246
  }
232
- }
247
+
248
+ // From IService
249
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
250
+ return REGISTRY();
251
+ }
252
+ }