@etherisc/gif-next 0.0.2-d3d5a3c-236 → 0.0.2-d3e665c-401

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 (641) hide show
  1. package/README.md +57 -17
  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 +1489 -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 +215 -385
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1512 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +198 -261
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +178 -336
  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 +296 -2011
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +198 -74
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +422 -2807
  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 +898 -337
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -282
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -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 -54
  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 +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +255 -186
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1018 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +293 -274
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1474 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +295 -47
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +218 -373
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +476 -122
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1181 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1581 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +746 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +844 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +718 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +358 -282
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1437 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +136 -94
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +785 -0
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +117 -190
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +309 -191
  133. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +12 -62
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1216 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +972 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +766 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/product/Product.sol/Product.json +1201 -0
  145. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  146. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  147. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +183 -29
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -125
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +444 -44
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +135 -145
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  181. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +107 -107
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  190. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  192. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  194. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  196. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  198. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  200. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  201. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  202. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  211. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  216. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  218. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  219. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  220. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  221. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  223. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  224. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +1975 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +765 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +217 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +138 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  318. package/contracts/{components → distribution}/Distribution.sol +177 -162
  319. package/contracts/distribution/DistributionService.sol +336 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  321. package/contracts/distribution/IDistributionComponent.sol +52 -0
  322. package/contracts/{instance/service → distribution}/IDistributionService.sol +40 -38
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  324. package/contracts/instance/IInstance.sol +38 -73
  325. package/contracts/instance/IInstanceService.sol +50 -30
  326. package/contracts/instance/Instance.sol +147 -245
  327. package/contracts/instance/InstanceAdmin.sol +285 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  329. package/contracts/instance/InstanceReader.sol +202 -63
  330. package/contracts/instance/InstanceService.sol +306 -334
  331. package/contracts/instance/InstanceServiceManager.sol +12 -26
  332. package/contracts/instance/InstanceStore.sol +287 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/base/Cloneable.sol +28 -0
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  337. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  338. package/contracts/instance/module/IAccess.sol +4 -12
  339. package/contracts/instance/module/IBundle.sol +6 -9
  340. package/contracts/instance/module/IComponents.sol +20 -15
  341. package/contracts/instance/module/IDistribution.sol +6 -6
  342. package/contracts/instance/module/IPolicy.sol +47 -35
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +33 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +167 -0
  351. package/contracts/oracle/OracleService.sol +279 -0
  352. package/contracts/oracle/OracleServiceManager.sol +39 -0
  353. package/contracts/pool/BasicPool.sol +166 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  355. package/contracts/pool/BundleService.sol +438 -0
  356. package/contracts/pool/BundleServiceManager.sol +39 -0
  357. package/contracts/pool/IBundleService.sol +134 -0
  358. package/contracts/pool/IPoolComponent.sol +58 -0
  359. package/contracts/pool/IPoolService.sol +160 -0
  360. package/contracts/pool/Pool.sol +326 -0
  361. package/contracts/pool/PoolService.sol +509 -0
  362. package/contracts/pool/PoolServiceManager.sol +39 -0
  363. package/contracts/product/ApplicationService.sol +248 -0
  364. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  365. package/contracts/product/BasicProduct.sol +53 -0
  366. package/contracts/product/BasicProductAuthorization.sol +43 -0
  367. package/contracts/product/ClaimService.sol +487 -0
  368. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  369. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  370. package/contracts/product/IClaimService.sol +122 -0
  371. package/contracts/product/IPolicyService.sol +73 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +39 -0
  374. package/contracts/product/IRiskService.sol +33 -0
  375. package/contracts/product/PolicyService.sol +573 -0
  376. package/contracts/product/PolicyServiceManager.sol +39 -0
  377. package/contracts/product/PricingService.sol +301 -0
  378. package/contracts/product/PricingServiceManager.sol +39 -0
  379. package/contracts/product/Product.sol +425 -0
  380. package/contracts/product/RiskService.sol +97 -0
  381. package/contracts/product/RiskServiceManager.sol +39 -0
  382. package/contracts/registry/ChainNft.sol +8 -1
  383. package/contracts/registry/IRegistry.sol +60 -27
  384. package/contracts/registry/IRegistryService.sol +42 -41
  385. package/contracts/registry/Registry.sol +235 -126
  386. package/contracts/registry/RegistryAdmin.sol +374 -0
  387. package/contracts/registry/RegistryService.sol +69 -99
  388. package/contracts/registry/RegistryServiceManager.sol +23 -32
  389. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  390. package/contracts/registry/ReleaseRegistry.sol +485 -0
  391. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  392. package/contracts/registry/TokenRegistry.sol +261 -62
  393. package/contracts/shared/Component.sol +268 -0
  394. package/contracts/shared/ComponentService.sol +641 -0
  395. package/contracts/shared/ComponentServiceManager.sol +35 -0
  396. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  397. package/contracts/shared/IComponent.sol +70 -0
  398. package/contracts/shared/IComponentService.sol +108 -0
  399. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  400. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  401. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  402. package/contracts/shared/INftOwnable.sol +2 -2
  403. package/contracts/shared/IPolicyHolder.sol +29 -10
  404. package/contracts/shared/IRegistryLinked.sol +0 -1
  405. package/contracts/shared/IService.sol +12 -3
  406. package/contracts/shared/InitializableCustom.sol +177 -0
  407. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  408. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  409. package/contracts/shared/KeyValueStore.sol +131 -0
  410. package/contracts/shared/Lifecycle.sol +77 -0
  411. package/contracts/shared/NftIdSet.sol +65 -0
  412. package/contracts/shared/NftOwnable.sol +6 -19
  413. package/contracts/shared/PolicyHolder.sol +41 -23
  414. package/contracts/shared/Registerable.sol +13 -12
  415. package/contracts/shared/RegistryLinked.sol +0 -5
  416. package/contracts/shared/Service.sol +32 -22
  417. package/contracts/shared/TokenHandler.sol +115 -9
  418. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  419. package/contracts/staking/IStaking.sol +168 -0
  420. package/contracts/staking/IStakingService.sol +160 -0
  421. package/contracts/staking/StakeManagerLib.sol +224 -0
  422. package/contracts/staking/Staking.sol +498 -0
  423. package/contracts/staking/StakingLifecycle.sol +23 -0
  424. package/contracts/staking/StakingManager.sol +50 -0
  425. package/contracts/staking/StakingReader.sol +183 -0
  426. package/contracts/staking/StakingService.sol +407 -0
  427. package/contracts/staking/StakingServiceManager.sol +44 -0
  428. package/contracts/staking/StakingStore.sol +605 -0
  429. package/contracts/staking/TargetManagerLib.sol +211 -0
  430. package/contracts/{types → type}/AddressSet.sol +1 -1
  431. package/contracts/type/Amount.sol +135 -0
  432. package/contracts/{types → type}/Blocknumber.sol +26 -3
  433. package/contracts/{types → type}/ClaimId.sol +25 -2
  434. package/contracts/{types → type}/Fee.sol +24 -22
  435. package/contracts/{types → type}/NftId.sol +14 -16
  436. package/contracts/{types → type}/NftIdSet.sol +2 -2
  437. package/contracts/type/ObjectType.sol +275 -0
  438. package/contracts/{types → type}/PayoutId.sol +33 -5
  439. package/contracts/{types → type}/Referral.sol +2 -1
  440. package/contracts/type/RequestId.sol +75 -0
  441. package/contracts/{types → type}/RiskId.sol +1 -1
  442. package/contracts/type/RoleId.sol +174 -0
  443. package/contracts/type/Seconds.sol +101 -0
  444. package/contracts/type/Selector.sol +102 -0
  445. package/contracts/{types → type}/StateId.sol +34 -4
  446. package/contracts/type/String.sol +53 -0
  447. package/contracts/{types → type}/Timestamp.sol +21 -2
  448. package/contracts/{types → type}/UFixed.sol +34 -9
  449. package/contracts/{types → type}/Version.sol +4 -2
  450. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  451. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  452. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  453. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  454. package/package.json +8 -5
  455. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  456. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  457. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  460. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  462. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  463. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  464. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  465. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  466. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  467. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  468. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  469. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  470. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  471. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  472. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  475. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  476. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  477. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  478. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  479. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  480. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  481. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  482. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  484. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  486. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  488. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  490. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  492. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  494. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  496. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  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/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  507. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  509. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  511. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  513. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  515. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  517. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  518. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  519. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  520. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  521. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  522. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  523. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  524. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  525. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  526. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  527. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  528. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  529. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  530. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  531. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  533. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  535. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  537. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  539. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  540. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  541. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  542. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  543. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  544. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  545. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  546. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  547. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  548. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  549. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  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 -288
  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 -166
  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 -142
  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/Seconds.sol/SecondsLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  581. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  584. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  586. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  588. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  590. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  592. package/contracts/components/Component.sol +0 -253
  593. package/contracts/components/IComponent.sol +0 -76
  594. package/contracts/components/IDistributionComponent.sol +0 -71
  595. package/contracts/components/IPoolComponent.sol +0 -113
  596. package/contracts/components/IProductComponent.sol +0 -40
  597. package/contracts/components/Pool.sol +0 -303
  598. package/contracts/components/Product.sol +0 -293
  599. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  600. package/contracts/instance/Cloneable.sol +0 -51
  601. package/contracts/instance/InstanceAccessManager.sol +0 -527
  602. package/contracts/instance/base/ComponentService.sol +0 -121
  603. package/contracts/instance/base/KeyValueStore.sol +0 -180
  604. package/contracts/instance/base/Lifecycle.sol +0 -109
  605. package/contracts/instance/module/ISetup.sol +0 -33
  606. package/contracts/instance/module/ITreasury.sol +0 -23
  607. package/contracts/instance/service/ApplicationService.sol +0 -350
  608. package/contracts/instance/service/BundleService.sol +0 -431
  609. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  610. package/contracts/instance/service/ClaimService.sol +0 -151
  611. package/contracts/instance/service/DistributionService.sol +0 -435
  612. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  613. package/contracts/instance/service/IBundleService.sol +0 -93
  614. package/contracts/instance/service/IClaimService.sol +0 -61
  615. package/contracts/instance/service/IPolicyService.sol +0 -72
  616. package/contracts/instance/service/IPoolService.sol +0 -99
  617. package/contracts/instance/service/IProductService.sol +0 -40
  618. package/contracts/instance/service/PolicyService.sol +0 -362
  619. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  620. package/contracts/instance/service/PoolService.sol +0 -303
  621. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  622. package/contracts/instance/service/ProductService.sol +0 -210
  623. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  624. package/contracts/registry/RegistryAccessManager.sol +0 -216
  625. package/contracts/registry/ReleaseManager.sol +0 -324
  626. package/contracts/shared/ContractDeployerLib.sol +0 -72
  627. package/contracts/test/TestFee.sol +0 -25
  628. package/contracts/test/TestRegisterable.sol +0 -18
  629. package/contracts/test/TestRoleId.sol +0 -14
  630. package/contracts/test/TestService.sol +0 -25
  631. package/contracts/test/TestToken.sol +0 -26
  632. package/contracts/test/TestVersion.sol +0 -44
  633. package/contracts/test/TestVersionable.sol +0 -17
  634. package/contracts/types/Amount.sol +0 -60
  635. package/contracts/types/ChainId.sol +0 -38
  636. package/contracts/types/NumberId.sol +0 -52
  637. package/contracts/types/ObjectType.sol +0 -157
  638. package/contracts/types/RoleId.sol +0 -97
  639. package/contracts/types/Seconds.sol +0 -54
  640. /package/contracts/{types → type}/DistributorType.sol +0 -0
  641. /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
+ _grantRoleToAccount(stakingRoleId, _staking);
365
+
366
+ // grant token handler authorizations
367
+ IStaking staking = IStaking(_staking);
368
+ functions = new FunctionInfo[](2);
369
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
370
+ functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
371
+
372
+ _authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
373
+ }
374
+ }
@@ -1,34 +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";
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
18
  Service,
@@ -39,11 +23,6 @@ contract RegistryService is
39
23
  // TODO update to real hash when registry is stable
40
24
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
41
25
 
42
- // From IService
43
- function getDomain() public pure override returns(ObjectType serviceDomain) {
44
- return REGISTRY();
45
- }
46
-
47
26
  // from Versionable
48
27
 
49
28
  /// @dev top level initializer
@@ -61,19 +40,33 @@ contract RegistryService is
61
40
  ) = abi.decode(data, (address, address));
62
41
 
63
42
  initializeService(registryAddress, initialAuthority, owner);
64
-
65
43
  registerInterface(type(IRegistryService).interfaceId);
66
44
  }
67
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
+
68
60
  function registerInstance(IRegisterable instance, address owner)
69
61
  external
62
+ virtual
70
63
  restricted
71
64
  returns(
72
65
  IRegistry.ObjectInfo memory info
73
66
  )
74
67
  {
75
68
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
76
- revert NotInstance();
69
+ revert ErrorRegistryServiceNotInstance(address(instance));
77
70
  }
78
71
 
79
72
  info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
@@ -91,13 +84,33 @@ contract RegistryService is
91
84
  {
92
85
  // CAN revert if no ERC165 support -> will revert with empty message
93
86
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
94
- revert NotProduct();
87
+ revert ErrorRegistryServiceNotProduct(address(product));
95
88
  }
96
89
 
97
90
  info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
98
91
  info.nftId = getRegistry().register(info);
99
92
  }
100
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
+
101
114
  function registerPool(IComponent pool, address owner)
102
115
  external
103
116
  restricted
@@ -106,7 +119,7 @@ contract RegistryService is
106
119
  )
107
120
  {
108
121
  if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
109
- revert NotPool();
122
+ revert ErrorRegistryServiceNotPool(address(pool));
110
123
  }
111
124
 
112
125
  info = _getAndVerifyContractInfo(pool, POOL(), owner);
@@ -121,7 +134,7 @@ contract RegistryService is
121
134
  )
122
135
  {
123
136
  if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
124
- revert NotDistribution();
137
+ revert ErrorRegistryServiceNotDistribution(address(distribution));
125
138
  }
126
139
 
127
140
  info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
@@ -143,7 +156,6 @@ contract RegistryService is
143
156
  returns(NftId nftId)
144
157
  {
145
158
  _verifyObjectInfo(info, POLICY());
146
-
147
159
  nftId = getRegistry().register(info);
148
160
  }
149
161
 
@@ -153,7 +165,6 @@ contract RegistryService is
153
165
  returns(NftId nftId)
154
166
  {
155
167
  _verifyObjectInfo(info, BUNDLE());
156
-
157
168
  nftId = getRegistry().register(info);
158
169
  }
159
170
 
@@ -163,59 +174,9 @@ contract RegistryService is
163
174
  returns(NftId nftId)
164
175
  {
165
176
  _verifyObjectInfo(info, STAKE());
166
-
167
177
  nftId = getRegistry().register(info);
168
178
  }
169
179
 
170
- // from IRegisterable
171
-
172
- function getFunctionConfigs()
173
- external
174
- pure
175
- returns(
176
- FunctionConfig[] memory config
177
- )
178
- {
179
- config = new FunctionConfig[](8);
180
-
181
- // order of service registrations MUST be reverse to this array
182
- /*config[-1].serviceDomain = STAKE();
183
- config[-1].selector = RegistryService.registerStake.selector;*/
184
-
185
- config[0].serviceDomain = POLICY();
186
- config[0].selectors = new bytes4[](0);
187
-
188
- config[1].serviceDomain = APPLICATION();
189
- config[1].selectors = new bytes4[](1);
190
- config[1].selectors[0] = RegistryService.registerPolicy.selector;
191
-
192
- config[2].serviceDomain = CLAIM();
193
- config[2].selectors = new bytes4[](0);
194
-
195
- config[3].serviceDomain = PRODUCT();
196
- config[3].selectors = new bytes4[](1);
197
- config[3].selectors[0] = RegistryService.registerProduct.selector;
198
-
199
- config[4].serviceDomain = POOL();
200
- config[4].selectors = new bytes4[](1);
201
- config[4].selectors[0] = RegistryService.registerPool.selector;
202
-
203
- // registration of bundle service must preceed registration of pool service
204
- config[5].serviceDomain = BUNDLE();
205
- config[5].selectors = new bytes4[](1);
206
- config[5].selectors[0] = RegistryService.registerBundle.selector;
207
-
208
- config[6].serviceDomain = DISTRIBUTION();
209
- config[6].selectors = new bytes4[](2);
210
- config[6].selectors[0] = RegistryService.registerDistribution.selector;
211
- config[6].selectors[1] = RegistryService.registerDistributor.selector;
212
-
213
- // registerInstance() have no restriction
214
- config[7].serviceDomain = INSTANCE();
215
- config[7].selectors = new bytes4[](1);
216
- config[7].selectors[0] = RegistryService.registerInstance.selector;
217
- }
218
-
219
180
  // Internal
220
181
 
221
182
  function _getAndVerifyContractInfo(
@@ -224,34 +185,37 @@ contract RegistryService is
224
185
  address expectedOwner // assume can be 0 when given by other service
225
186
  )
226
187
  internal
227
- // view
188
+ view
228
189
  returns(
229
190
  IRegistry.ObjectInfo memory info
230
191
  )
231
192
  {
232
193
  info = registerable.getInitialInfo();
233
- info.objectAddress = address(registerable);
194
+
195
+ if(info.objectAddress != address(registerable)) {
196
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
197
+ }
234
198
 
235
199
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
236
- revert UnexpectedRegisterableType(expectedType, info.objectType);
200
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
237
201
  }
238
202
 
239
203
  address owner = info.initialOwner;
240
204
 
241
205
  if(owner != expectedOwner) { // registerable owner protection
242
- revert NotRegisterableOwner(expectedOwner);
206
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
243
207
  }
244
208
 
245
209
  if(owner == address(registerable)) {
246
- revert SelfRegistration();
210
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
247
211
  }
248
212
 
249
213
  if(owner == address(0)) {
250
- revert RegisterableOwnerIsZero();
214
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
251
215
  }
252
216
 
253
217
  if(getRegistry().isRegistered(owner)) {
254
- revert RegisterableOwnerIsRegistered();
218
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
255
219
  }
256
220
  }
257
221
 
@@ -262,21 +226,27 @@ contract RegistryService is
262
226
  internal
263
227
  view
264
228
  {
265
- // enforce instead of check
266
- info.objectAddress = address(0);
229
+ if(info.objectAddress > address(0)) {
230
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
231
+ }
267
232
 
268
233
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
269
- revert UnexpectedRegisterableType(expectedType, info.objectType);
234
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
270
235
  }
271
236
 
272
237
  address owner = info.initialOwner;
273
238
 
274
239
  if(owner == address(0)) {
275
- revert RegisterableOwnerIsZero();
240
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
276
241
  }
277
242
 
278
243
  if(getRegistry().isRegistered(owner)) {
279
- revert RegisterableOwnerIsRegistered();
244
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
280
245
  }
281
246
  }
282
- }
247
+
248
+ // From IService
249
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
250
+ return REGISTRY();
251
+ }
252
+ }