@etherisc/gif-next 0.0.2-eb98db7-932 → 0.0.2-ebc6253-419

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 (635) hide show
  1. package/README.md +57 -88
  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 +1500 -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 +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +269 -445
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1502 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +842 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +302 -285
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +461 -67
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +292 -2124
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +328 -69
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +399 -2883
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +676 -369
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +388 -263
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -74
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +338 -285
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1029 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +510 -426
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1466 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +818 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +413 -380
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1182 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1192 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1589 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +398 -390
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1331 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +144 -89
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +800 -0
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +205 -228
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +418 -265
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +90 -63
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1276 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/product/Product.sol/Product.json +1212 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +191 -18
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -138
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +453 -34
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +373 -87
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +205 -226
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +101 -103
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +219 -127
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +106 -18
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +951 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +114 -21
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  226. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  228. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
  230. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  231. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  232. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
  234. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  235. package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
  236. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  238. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  240. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  242. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  244. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  246. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  248. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  249. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  250. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  251. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  252. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  254. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  256. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  258. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  260. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  262. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  264. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  266. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  267. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  268. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  270. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  272. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  274. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  276. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  278. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  280. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  286. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  288. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  290. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  292. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  294. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  296. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  298. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  300. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  301. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  302. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  304. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  306. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  307. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  308. package/contracts/authorization/AccessAdmin.sol +591 -0
  309. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  310. package/contracts/authorization/Authorization.sol +217 -0
  311. package/contracts/authorization/IAccess.sol +48 -0
  312. package/contracts/authorization/IAccessAdmin.sol +136 -0
  313. package/contracts/authorization/IAuthorization.sol +54 -0
  314. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  315. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  316. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  317. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  318. package/contracts/distribution/BasicDistribution.sol +138 -0
  319. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  320. package/contracts/{components → distribution}/Distribution.sol +178 -170
  321. package/contracts/distribution/DistributionService.sol +322 -0
  322. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  323. package/contracts/distribution/IDistributionComponent.sol +52 -0
  324. package/contracts/distribution/IDistributionService.sol +95 -0
  325. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  326. package/contracts/instance/IInstance.sol +60 -66
  327. package/contracts/instance/IInstanceService.sol +57 -24
  328. package/contracts/instance/Instance.sol +176 -213
  329. package/contracts/instance/InstanceAdmin.sol +285 -0
  330. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  331. package/contracts/instance/InstanceReader.sol +180 -65
  332. package/contracts/instance/InstanceService.sol +333 -342
  333. package/contracts/instance/InstanceServiceManager.sol +12 -26
  334. package/contracts/instance/InstanceStore.sol +277 -0
  335. package/contracts/instance/base/BalanceStore.sol +123 -0
  336. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  337. package/contracts/instance/base/ObjectCounter.sol +21 -0
  338. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  339. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  340. package/contracts/instance/module/IAccess.sol +19 -20
  341. package/contracts/instance/module/IBundle.sol +8 -8
  342. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +21 -23
  343. package/contracts/instance/module/IDistribution.sol +6 -5
  344. package/contracts/instance/module/IPolicy.sol +53 -16
  345. package/contracts/instance/module/IRisk.sol +1 -1
  346. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  347. package/contracts/oracle/BasicOracle.sol +48 -0
  348. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  349. package/contracts/oracle/IOracle.sol +36 -0
  350. package/contracts/oracle/IOracleComponent.sol +33 -0
  351. package/contracts/oracle/IOracleService.sol +65 -0
  352. package/contracts/oracle/Oracle.sol +166 -0
  353. package/contracts/oracle/OracleService.sol +278 -0
  354. package/contracts/oracle/OracleServiceManager.sol +39 -0
  355. package/contracts/pool/BasicPool.sol +166 -0
  356. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  357. package/contracts/pool/BundleService.sol +436 -0
  358. package/contracts/pool/BundleServiceManager.sol +39 -0
  359. package/contracts/pool/IBundleService.sol +134 -0
  360. package/contracts/pool/IPoolComponent.sol +58 -0
  361. package/contracts/pool/IPoolService.sol +147 -0
  362. package/contracts/pool/Pool.sol +328 -0
  363. package/contracts/pool/PoolService.sol +518 -0
  364. package/contracts/pool/PoolServiceManager.sol +39 -0
  365. package/contracts/product/ApplicationService.sol +250 -0
  366. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  367. package/contracts/product/BasicProduct.sol +52 -0
  368. package/contracts/product/BasicProductAuthorization.sol +43 -0
  369. package/contracts/product/ClaimService.sol +416 -0
  370. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  371. package/contracts/{instance/service → product}/IApplicationService.sol +17 -36
  372. package/contracts/product/IClaimService.sol +100 -0
  373. package/contracts/product/IPolicyService.sol +84 -0
  374. package/contracts/product/IPricingService.sol +39 -0
  375. package/contracts/product/IProductComponent.sol +40 -0
  376. package/contracts/product/IProductService.sol +34 -0
  377. package/contracts/product/PolicyService.sol +586 -0
  378. package/contracts/product/PolicyServiceManager.sol +39 -0
  379. package/contracts/product/PricingService.sol +304 -0
  380. package/contracts/product/PricingServiceManager.sol +39 -0
  381. package/contracts/product/Product.sol +413 -0
  382. package/contracts/product/ProductService.sol +99 -0
  383. package/contracts/product/ProductServiceManager.sol +39 -0
  384. package/contracts/registry/ChainNft.sol +16 -1
  385. package/contracts/registry/IRegistry.sol +61 -26
  386. package/contracts/registry/IRegistryService.sol +44 -42
  387. package/contracts/registry/ITransferInterceptor.sol +1 -0
  388. package/contracts/registry/Registry.sol +251 -139
  389. package/contracts/registry/RegistryAdmin.sol +374 -0
  390. package/contracts/registry/RegistryService.sol +70 -101
  391. package/contracts/registry/RegistryServiceManager.sol +23 -32
  392. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  393. package/contracts/registry/ReleaseRegistry.sol +485 -0
  394. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  395. package/contracts/registry/TokenRegistry.sol +261 -62
  396. package/contracts/shared/Component.sol +268 -0
  397. package/contracts/shared/ComponentService.sol +641 -0
  398. package/contracts/shared/ComponentServiceManager.sol +35 -0
  399. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  400. package/contracts/shared/IComponent.sol +70 -0
  401. package/contracts/shared/IComponentService.sol +108 -0
  402. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  403. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  404. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  405. package/contracts/shared/INftOwnable.sol +2 -2
  406. package/contracts/shared/IPolicyHolder.sol +29 -10
  407. package/contracts/shared/IRegistryLinked.sol +0 -1
  408. package/contracts/shared/IService.sol +15 -6
  409. package/contracts/shared/InitializableCustom.sol +177 -0
  410. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  411. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  412. package/contracts/shared/KeyValueStore.sol +131 -0
  413. package/contracts/shared/Lifecycle.sol +77 -0
  414. package/contracts/shared/NftIdSet.sol +65 -0
  415. package/contracts/shared/NftOwnable.sol +5 -18
  416. package/contracts/shared/PolicyHolder.sol +41 -23
  417. package/contracts/shared/Registerable.sol +15 -14
  418. package/contracts/shared/RegistryLinked.sol +0 -5
  419. package/contracts/shared/Service.sol +47 -23
  420. package/contracts/shared/TokenHandler.sol +122 -10
  421. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  422. package/contracts/staking/IStaking.sol +167 -0
  423. package/contracts/staking/IStakingService.sol +160 -0
  424. package/contracts/staking/StakeManagerLib.sol +206 -0
  425. package/contracts/staking/Staking.sol +497 -0
  426. package/contracts/staking/StakingLifecycle.sol +23 -0
  427. package/contracts/staking/StakingManager.sol +50 -0
  428. package/contracts/staking/StakingReader.sol +183 -0
  429. package/contracts/staking/StakingService.sol +407 -0
  430. package/contracts/staking/StakingServiceManager.sol +44 -0
  431. package/contracts/staking/StakingStore.sol +605 -0
  432. package/contracts/staking/TargetManagerLib.sol +207 -0
  433. package/contracts/{types → type}/AddressSet.sol +1 -1
  434. package/contracts/type/Amount.sol +135 -0
  435. package/contracts/{types → type}/Blocknumber.sol +27 -3
  436. package/contracts/{types → type}/ClaimId.sol +25 -2
  437. package/contracts/{types → type}/Fee.sol +33 -23
  438. package/contracts/{types → type}/NftId.sol +21 -15
  439. package/contracts/{types → type}/NftIdSet.sol +2 -2
  440. package/contracts/type/ObjectType.sol +271 -0
  441. package/contracts/{types → type}/PayoutId.sol +33 -5
  442. package/contracts/{types → type}/Referral.sol +6 -1
  443. package/contracts/type/RequestId.sol +75 -0
  444. package/contracts/{types → type}/RiskId.sol +1 -1
  445. package/contracts/type/RoleId.sol +174 -0
  446. package/contracts/type/Seconds.sol +93 -0
  447. package/contracts/type/Selector.sol +102 -0
  448. package/contracts/{types → type}/StateId.sol +34 -4
  449. package/contracts/type/String.sol +53 -0
  450. package/contracts/{types → type}/Timestamp.sol +34 -15
  451. package/contracts/{types → type}/UFixed.sol +35 -9
  452. package/contracts/{types → type}/Version.sol +5 -2
  453. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  454. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  455. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  456. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  457. package/package.json +8 -5
  458. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  459. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  460. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  462. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  463. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  464. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  465. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  466. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  467. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  468. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  469. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  470. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  471. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  472. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  473. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  475. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  476. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  477. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  478. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  479. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  480. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  481. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  484. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  486. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  488. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  490. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  492. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  494. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1087
  496. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -729
  498. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  502. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  506. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  507. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  509. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  511. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  513. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  515. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  517. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  519. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  520. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  521. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  522. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  523. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  524. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  525. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  526. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  527. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  528. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  529. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  530. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  531. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  532. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  533. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  535. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  537. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  539. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  540. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  541. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  542. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  543. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  544. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  545. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  546. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  547. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  548. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  549. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  550. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  551. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  553. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  555. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  557. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  559. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  561. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  562. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  563. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  565. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  566. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  567. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  569. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  571. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  573. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  575. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  577. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  579. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  582. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  584. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  586. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  588. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  590. package/contracts/components/Component.sol +0 -241
  591. package/contracts/components/IComponent.sol +0 -54
  592. package/contracts/components/IDistributionComponent.sol +0 -92
  593. package/contracts/components/IPoolComponent.sol +0 -87
  594. package/contracts/components/IProductComponent.sol +0 -39
  595. package/contracts/components/Pool.sol +0 -254
  596. package/contracts/components/Product.sol +0 -285
  597. package/contracts/instance/InstanceAccessManager.sol +0 -297
  598. package/contracts/instance/base/ComponentService.sol +0 -134
  599. package/contracts/instance/base/KeyValueStore.sol +0 -172
  600. package/contracts/instance/base/Lifecycle.sol +0 -100
  601. package/contracts/instance/module/ITreasury.sol +0 -23
  602. package/contracts/instance/service/ApplicationService.sol +0 -268
  603. package/contracts/instance/service/BundleService.sol +0 -298
  604. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  605. package/contracts/instance/service/ClaimService.sol +0 -151
  606. package/contracts/instance/service/DistributionService.sol +0 -346
  607. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  608. package/contracts/instance/service/IBundleService.sol +0 -54
  609. package/contracts/instance/service/IClaimService.sol +0 -61
  610. package/contracts/instance/service/IDistributionService.sol +0 -73
  611. package/contracts/instance/service/IPolicyService.sol +0 -89
  612. package/contracts/instance/service/IPoolService.sol +0 -20
  613. package/contracts/instance/service/IProductService.sol +0 -40
  614. package/contracts/instance/service/PolicyService.sol +0 -476
  615. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  616. package/contracts/instance/service/PoolService.sol +0 -109
  617. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  618. package/contracts/instance/service/ProductService.sol +0 -233
  619. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  620. package/contracts/registry/RegistryAccessManager.sol +0 -216
  621. package/contracts/registry/ReleaseManager.sol +0 -322
  622. package/contracts/shared/ContractDeployerLib.sol +0 -72
  623. package/contracts/test/TestFee.sol +0 -25
  624. package/contracts/test/TestRegisterable.sol +0 -18
  625. package/contracts/test/TestRoleId.sol +0 -14
  626. package/contracts/test/TestService.sol +0 -25
  627. package/contracts/test/TestToken.sol +0 -26
  628. package/contracts/test/TestVersion.sol +0 -44
  629. package/contracts/test/TestVersionable.sol +0 -17
  630. package/contracts/types/ChainId.sol +0 -38
  631. package/contracts/types/NumberId.sol +0 -52
  632. package/contracts/types/ObjectType.sol +0 -156
  633. package/contracts/types/RoleId.sol +0 -90
  634. /package/contracts/{types → type}/DistributorType.sol +0 -0
  635. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,374 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
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, 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 {STAKING} from "../type/ObjectType.sol";
15
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
+ import {TokenRegistry} from "./TokenRegistry.sol";
17
+ import {VersionPart} from "../type/Version.sol";
18
+
19
+ /*
20
+ 1) GIF_MANAGER_ROLE
21
+ - can have arbitrary number of members
22
+ - responsible for services registrations
23
+ - responsible for token registration and activation
24
+
25
+ 2) GIF_ADMIN_ROLE
26
+ - admin of GIF_MANAGER_ROLE
27
+ - MUST have 1 member at any time
28
+ - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
29
+ - responsible for creation and activation of releases
30
+
31
+ createServiceTarget(type, release)
32
+ createServiceRole(type,release)
33
+ getServiceRole(type, release)
34
+ */
35
+ contract RegistryAdmin is
36
+ AccessAdmin
37
+ {
38
+ error ErrorRegistryAdminIsAlreadySetUp();
39
+
40
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
41
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
42
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
43
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
44
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
45
+ string public constant STAKING_ROLE_NAME = "StakingRole";
46
+
47
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
48
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
49
+ string public constant STAKING_TARGET_NAME = "Staking";
50
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
51
+
52
+ uint8 public constant MAX_NUM_RELEASES = 99;
53
+
54
+ mapping(address service => VersionPart majorVersion) private _ServiceRelease;
55
+
56
+ address private _releaseRegistry;
57
+ address private _tokenRegistry;
58
+ address private _staking;
59
+ address private _stakingStore;
60
+ bool private _setupCompleted;
61
+
62
+ constructor() AccessAdmin() { }
63
+
64
+ function completeSetup(
65
+ IRegistry registry,
66
+ address gifAdmin,
67
+ address gifManager
68
+ )
69
+ external
70
+ onlyDeployer()
71
+ {
72
+ if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
73
+ else { _setupCompleted = true; }
74
+
75
+ _releaseRegistry = registry.getReleaseRegistryAddress();
76
+ _tokenRegistry = registry.getTokenRegistryAddress();
77
+ _staking = registry.getStakingAddress();
78
+ _stakingStore = address(
79
+ IStaking(_staking).getStakingStore());
80
+
81
+ // at this moment all registry contracts are deployed and fully intialized
82
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
83
+
84
+ _setupGifAdminRole(gifAdmin);
85
+ _setupGifManagerRole(gifManager);
86
+
87
+ _setupReleaseRegistry();
88
+ _setupStaking();
89
+ }
90
+
91
+
92
+ /// @dev Sets up authorizaion for specified service.
93
+ /// For all authorized services its authorized functions are enabled.
94
+ /// Permissioned function: Access is restricted to release manager.
95
+ function authorizeService(
96
+ IServiceAuthorization serviceAuthorization,
97
+ IService service
98
+ )
99
+ external
100
+ restricted()
101
+ {
102
+ _createServiceTargetAndRole(service);
103
+ _authorizeServiceFunctions(serviceAuthorization, service);
104
+ }
105
+
106
+
107
+ function grantServiceRoleForAllVersions(IService service, ObjectType domain)
108
+ external
109
+ restricted()
110
+ {
111
+ _grantRoleToAccount(
112
+ RoleIdLib.roleForTypeAndAllVersions(domain),
113
+ address(service));
114
+ }
115
+
116
+
117
+ function _createServiceTargetAndRole(IService service)
118
+ private
119
+ {
120
+ ObjectType serviceDomain = service.getDomain();
121
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
122
+ VersionPart version = service.getVersion().toMajorPart();
123
+ uint256 versionInt = version.toInt();
124
+
125
+ // create service target
126
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
127
+ baseName, "Service", versionInt);
128
+
129
+ _createTarget(
130
+ address(service),
131
+ serviceTargetName,
132
+ true,
133
+ false);
134
+
135
+ // create service role
136
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
137
+ serviceDomain,
138
+ version);
139
+
140
+ _createRole(
141
+ serviceRoleId,
142
+ toRole({
143
+ adminRoleId: ADMIN_ROLE(),
144
+ roleType: RoleType.Contract,
145
+ maxMemberCount: 1,
146
+ name: ObjectTypeLib.toVersionedName(
147
+ baseName,
148
+ "ServiceRole",
149
+ versionInt)}));
150
+
151
+ _grantRoleToAccount(
152
+ serviceRoleId,
153
+ address(service));
154
+ }
155
+
156
+
157
+ function _authorizeServiceFunctions(
158
+ IServiceAuthorization serviceAuthorization,
159
+ IService service
160
+ )
161
+ private
162
+ {
163
+ ObjectType serviceDomain = service.getDomain();
164
+ ObjectType authorizedDomain;
165
+ RoleId authorizedRoleId;
166
+
167
+ VersionPart release = service.getVersion().toMajorPart();
168
+ ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
169
+
170
+ for (uint256 i = 0; i < authorizedDomains.length; i++) {
171
+ authorizedDomain = authorizedDomains[i];
172
+
173
+ // derive authorized role from authorized domain
174
+ if (authorizedDomain == ALL()) {
175
+ authorizedRoleId = PUBLIC_ROLE();
176
+ } else {
177
+ authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
178
+ authorizedDomain,
179
+ release);
180
+ }
181
+
182
+ // get authorized functions for authorized domain
183
+ IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
184
+ serviceDomain,
185
+ authorizedDomain);
186
+
187
+ _authorizeTargetFunctions(
188
+ address(service),
189
+ authorizedRoleId,
190
+ authorizatedFunctions);
191
+ }
192
+ }
193
+
194
+ /*function transferAdmin(address to)
195
+ external
196
+ restricted // only with GIF_ADMIN_ROLE or nft owner
197
+ {
198
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
199
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
200
+ }*/
201
+
202
+ //--- view functions ----------------------------------------------------//
203
+
204
+ function getGifAdminRole() external view returns (RoleId) {
205
+ return GIF_ADMIN_ROLE();
206
+ }
207
+
208
+ function getGifManagerRole() external view returns (RoleId) {
209
+ return GIF_MANAGER_ROLE();
210
+ }
211
+
212
+ //--- private functions -------------------------------------------------//
213
+
214
+ function _setupGifAdminRole(address gifAdmin) private {
215
+
216
+ _createRole(
217
+ GIF_ADMIN_ROLE(),
218
+ toRole({
219
+ adminRoleId: ADMIN_ROLE(),
220
+ roleType: RoleType.Gif,
221
+ maxMemberCount: 2, // TODO decide on max member count
222
+ name: GIF_ADMIN_ROLE_NAME}));
223
+
224
+ // for ReleaseRegistry
225
+ FunctionInfo[] memory functions;
226
+ functions = new FunctionInfo[](4);
227
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
228
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
229
+ functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
230
+ functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
231
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
232
+
233
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
234
+ }
235
+
236
+ function _setupGifManagerRole(address gifManager) private {
237
+
238
+ _createRole(
239
+ GIF_MANAGER_ROLE(),
240
+ toRole({
241
+ adminRoleId: ADMIN_ROLE(),
242
+ roleType: RoleType.Gif,
243
+ maxMemberCount: 1,
244
+ name: GIF_MANAGER_ROLE_NAME}));
245
+
246
+ // for TokenRegistry
247
+ FunctionInfo[] memory functions;
248
+ functions = new FunctionInfo[](5);
249
+ functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
250
+ functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
251
+ functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
252
+ functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
253
+ // TODO find a better way (only needed for testing)
254
+ functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
255
+ _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
256
+
257
+ // for ReleaseRegistry
258
+ functions = new FunctionInfo[](2);
259
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
260
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
261
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
262
+
263
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
264
+ }
265
+
266
+
267
+ function _setupReleaseRegistry() private {
268
+
269
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
270
+
271
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
272
+ _createRole(
273
+ releaseRegistryRoleId,
274
+ toRole({
275
+ adminRoleId: ADMIN_ROLE(),
276
+ roleType: RoleType.Contract,
277
+ maxMemberCount: 1,
278
+ name: RELEASE_REGISTRY_ROLE_NAME}));
279
+
280
+ FunctionInfo[] memory functions;
281
+ functions = new FunctionInfo[](2);
282
+ functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
283
+ functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
284
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
285
+
286
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
287
+ }
288
+
289
+
290
+ function _setupStaking() private {
291
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
292
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
293
+
294
+ // staking function authorization for staking service
295
+ RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
296
+ _createRole(
297
+ stakingServiceRoleId,
298
+ toRole({
299
+ adminRoleId: ADMIN_ROLE(),
300
+ roleType: RoleType.Contract,
301
+ maxMemberCount: MAX_NUM_RELEASES,
302
+ name: STAKING_SERVICE_ROLE_NAME}));
303
+
304
+ FunctionInfo[] memory functions;
305
+ functions = new FunctionInfo[](13);
306
+ functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
307
+ functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
308
+ functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
309
+ functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
310
+ functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
311
+ functions[5] = toFunction(IStaking.createStake.selector, "createStake");
312
+ functions[6] = toFunction(IStaking.stake.selector, "stake");
313
+ functions[7] = toFunction(IStaking.unstake.selector, "unstake");
314
+ functions[8] = toFunction(IStaking.restake.selector, "restake");
315
+ functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
316
+ functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
317
+ functions[11] = toFunction(IStaking.collectDipAmount.selector, "collectDipAmount");
318
+ functions[12] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
319
+ _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
320
+
321
+ // staking function authorization for pool service
322
+ RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
323
+ _createRole(
324
+ poolServiceRoleId,
325
+ toRole({
326
+ adminRoleId: ADMIN_ROLE(),
327
+ roleType: RoleType.Contract,
328
+ maxMemberCount: MAX_NUM_RELEASES,
329
+ name: POOL_SERVICE_ROLE_NAME}));
330
+
331
+ // staking function authorizations
332
+ functions = new FunctionInfo[](2);
333
+ functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
334
+ functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
335
+ _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
336
+
337
+ // staking store function authorizations
338
+ RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
339
+ _createRole(
340
+ stakingRoleId,
341
+ toRole({
342
+ adminRoleId: ADMIN_ROLE(),
343
+ roleType: RoleType.Contract,
344
+ maxMemberCount: 1,
345
+ name: STAKING_ROLE_NAME}));
346
+
347
+ functions = new FunctionInfo[](14);
348
+ functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
349
+ functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
350
+ functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
351
+ functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
352
+ functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
353
+ functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
354
+ functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
355
+ functions[7] = toFunction(StakingStore.create.selector, "create");
356
+ functions[8] = toFunction(StakingStore.update.selector, "update");
357
+ functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
358
+ functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
359
+ functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
360
+ functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
361
+ functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
362
+ _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
363
+
364
+ // grant token handler authorizations
365
+ IStaking staking = IStaking(_staking);
366
+ functions = new FunctionInfo[](2);
367
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
368
+ functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
369
+ // FIXME: replace this with a more specific role instead if public role - access to token handler must be restricted
370
+ _authorizeTargetFunctions(address(staking.getTokenHandler()), PUBLIC_ROLE(), functions);
371
+
372
+ _grantRoleToAccount(stakingRoleId, _staking);
373
+ }
374
+ }
@@ -1,37 +1,20 @@
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";
4
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
8
6
  import {IInstance} from "../instance/IInstance.sol";
9
-
10
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
11
- import {IComponent} from "../../contracts/components/IComponent.sol";
12
- import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
13
- import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
14
- import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
15
-
16
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
17
- import {Versionable} from "../../contracts/shared/Versionable.sol";
7
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
18
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
19
- import {Registerable} from "../../contracts/shared/Registerable.sol";
20
-
21
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
22
- import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
23
- import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
24
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
25
- import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
26
- import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
27
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";
28
15
  import {Service} from "../shared/Service.sol";
29
- import {IService} from "../shared/IService.sol";
30
- import {IRegistryService} from "./IRegistryService.sol";
31
- import {Registry} from "./Registry.sol";
32
16
 
33
17
  contract RegistryService is
34
- AccessManagedUpgradeable,
35
18
  Service,
36
19
  IRegistryService
37
20
  {
@@ -40,11 +23,6 @@ contract RegistryService is
40
23
  // TODO update to real hash when registry is stable
41
24
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
42
25
 
43
- // From IService
44
- function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
45
- return REGISTRY();
46
- }
47
-
48
26
  // from Versionable
49
27
 
50
28
  /// @dev top level initializer
@@ -61,21 +39,34 @@ contract RegistryService is
61
39
  address initialAuthority
62
40
  ) = abi.decode(data, (address, address));
63
41
 
64
- __AccessManaged_init(initialAuthority);
65
-
66
- initializeService(registryAddress, owner);
42
+ initializeService(registryAddress, initialAuthority, owner);
67
43
  registerInterface(type(IRegistryService).interfaceId);
68
44
  }
69
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
+
70
60
  function registerInstance(IRegisterable instance, address owner)
71
61
  external
62
+ virtual
72
63
  restricted
73
64
  returns(
74
65
  IRegistry.ObjectInfo memory info
75
66
  )
76
67
  {
77
68
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
78
- revert NotInstance();
69
+ revert ErrorRegistryServiceNotInstance(address(instance));
79
70
  }
80
71
 
81
72
  info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
@@ -93,13 +84,33 @@ contract RegistryService is
93
84
  {
94
85
  // CAN revert if no ERC165 support -> will revert with empty message
95
86
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
96
- revert NotProduct();
87
+ revert ErrorRegistryServiceNotProduct(address(product));
97
88
  }
98
89
 
99
90
  info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
100
91
  info.nftId = getRegistry().register(info);
101
92
  }
102
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
+
103
114
  function registerPool(IComponent pool, address owner)
104
115
  external
105
116
  restricted
@@ -108,7 +119,7 @@ contract RegistryService is
108
119
  )
109
120
  {
110
121
  if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
111
- revert NotPool();
122
+ revert ErrorRegistryServiceNotPool(address(pool));
112
123
  }
113
124
 
114
125
  info = _getAndVerifyContractInfo(pool, POOL(), owner);
@@ -123,7 +134,7 @@ contract RegistryService is
123
134
  )
124
135
  {
125
136
  if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
126
- revert NotDistribution();
137
+ revert ErrorRegistryServiceNotDistribution(address(distribution));
127
138
  }
128
139
 
129
140
  info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
@@ -145,7 +156,6 @@ contract RegistryService is
145
156
  returns(NftId nftId)
146
157
  {
147
158
  _verifyObjectInfo(info, POLICY());
148
-
149
159
  nftId = getRegistry().register(info);
150
160
  }
151
161
 
@@ -155,7 +165,6 @@ contract RegistryService is
155
165
  returns(NftId nftId)
156
166
  {
157
167
  _verifyObjectInfo(info, BUNDLE());
158
-
159
168
  nftId = getRegistry().register(info);
160
169
  }
161
170
 
@@ -165,58 +174,9 @@ contract RegistryService is
165
174
  returns(NftId nftId)
166
175
  {
167
176
  _verifyObjectInfo(info, STAKE());
168
-
169
177
  nftId = getRegistry().register(info);
170
178
  }
171
179
 
172
- // from IRegisterable
173
-
174
- function getFunctionConfigs()
175
- external
176
- pure
177
- returns(
178
- FunctionConfig[] memory config
179
- )
180
- {
181
- config = new FunctionConfig[](8);
182
-
183
- // order of service registrations MUST be reverse to this array
184
- /*config[-1].serviceDomain = STAKE();
185
- config[-1].selector = RegistryService.registerStake.selector;*/
186
-
187
- config[0].serviceDomain = APPLICATION();
188
- config[0].selectors = new bytes4[](1);
189
- config[0].selectors[0] = RegistryService.registerPolicy.selector;
190
-
191
- config[1].serviceDomain = POLICY();
192
- config[1].selectors = new bytes4[](0);
193
-
194
- config[2].serviceDomain = CLAIM();
195
- config[2].selectors = new bytes4[](0);
196
-
197
- config[3].serviceDomain = BUNDLE();
198
- config[3].selectors = new bytes4[](1);
199
- config[3].selectors[0] = RegistryService.registerBundle.selector;
200
-
201
- config[4].serviceDomain = PRODUCT();
202
- config[4].selectors = new bytes4[](1);
203
- config[4].selectors[0] = RegistryService.registerProduct.selector;
204
-
205
- config[5].serviceDomain = POOL();
206
- config[5].selectors = new bytes4[](1);
207
- config[5].selectors[0] = RegistryService.registerPool.selector;
208
-
209
- config[6].serviceDomain = DISTRIBUTION();
210
- config[6].selectors = new bytes4[](2);
211
- config[6].selectors[0] = RegistryService.registerDistribution.selector;
212
- config[6].selectors[1] = RegistryService.registerDistributor.selector;
213
-
214
- // registerInstance() have no restriction
215
- config[7].serviceDomain = INSTANCE();
216
- config[7].selectors = new bytes4[](1);
217
- config[7].selectors[0] = RegistryService.registerInstance.selector;
218
- }
219
-
220
180
  // Internal
221
181
 
222
182
  function _getAndVerifyContractInfo(
@@ -225,34 +185,37 @@ contract RegistryService is
225
185
  address expectedOwner // assume can be 0 when given by other service
226
186
  )
227
187
  internal
228
- // view
188
+ view
229
189
  returns(
230
190
  IRegistry.ObjectInfo memory info
231
191
  )
232
192
  {
233
193
  info = registerable.getInitialInfo();
234
- info.objectAddress = address(registerable);
194
+
195
+ if(info.objectAddress != address(registerable)) {
196
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
197
+ }
235
198
 
236
199
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
237
- revert UnexpectedRegisterableType(expectedType, info.objectType);
200
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
238
201
  }
239
202
 
240
203
  address owner = info.initialOwner;
241
204
 
242
205
  if(owner != expectedOwner) { // registerable owner protection
243
- revert NotRegisterableOwner(expectedOwner);
206
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
244
207
  }
245
208
 
246
209
  if(owner == address(registerable)) {
247
- revert SelfRegistration();
210
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
248
211
  }
249
212
 
250
213
  if(owner == address(0)) {
251
- revert RegisterableOwnerIsZero();
214
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
252
215
  }
253
216
 
254
217
  if(getRegistry().isRegistered(owner)) {
255
- revert RegisterableOwnerIsRegistered();
218
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
256
219
  }
257
220
  }
258
221
 
@@ -263,21 +226,27 @@ contract RegistryService is
263
226
  internal
264
227
  view
265
228
  {
266
- // enforce instead of check
267
- info.objectAddress = address(0);
229
+ if(info.objectAddress > address(0)) {
230
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
231
+ }
268
232
 
269
233
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
270
- revert UnexpectedRegisterableType(expectedType, info.objectType);
234
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
271
235
  }
272
236
 
273
237
  address owner = info.initialOwner;
274
238
 
275
239
  if(owner == address(0)) {
276
- revert RegisterableOwnerIsZero();
240
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
277
241
  }
278
242
 
279
243
  if(getRegistry().isRegistered(owner)) {
280
- revert RegisterableOwnerIsRegistered();
244
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
281
245
  }
282
246
  }
283
- }
247
+
248
+ // From IService
249
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
250
+ return REGISTRY();
251
+ }
252
+ }