@etherisc/gif-next 0.0.2-c6846dc-026 → 0.0.2-c778291-689

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 (626) hide show
  1. package/README.md +384 -20
  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/access → authorization}/IAccess.sol/IAccess.json +1 -1
  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/distribution/Distribution.sol/Distribution.json +1159 -0
  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/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
  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 +293 -1120
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +445 -1266
  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 +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1831 -0
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3712 -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/base/Cloneable.sol/Cloneable.json +137 -0
  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 +4 -0
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  69. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  70. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  72. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  75. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{treasury/ITreasury.sol/ITreasury.json → module/IRisk.sol/IRisk.json} +2 -2
  78. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  79. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  80. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
  82. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  84. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  86. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  88. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  90. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1018 -0
  92. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  94. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  96. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
  98. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  100. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1474 -0
  102. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  104. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  106. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  108. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1208 -0
  110. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/Pool.sol/Pool.json +1181 -0
  112. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1591 -0
  114. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +746 -0
  116. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  117. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
  118. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  120. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  121. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
  122. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  124. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  125. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1331 -0
  126. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  128. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +517 -0
  130. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  132. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +795 -0
  134. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  136. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  137. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +948 -0
  138. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  139. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +400 -0
  140. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1226 -0
  142. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  144. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PricingService.sol/PricingService.json +972 -0
  146. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +766 -0
  148. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  149. package/artifacts/contracts/product/Product.sol/Product.json +1201 -0
  150. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  151. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  152. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  154. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  155. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +748 -26
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +940 -0
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +1068 -66
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  179. package/artifacts/contracts/shared/Component.sol/Component.json +832 -0
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  186. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +605 -0
  188. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  190. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  192. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  194. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/ILifecycle.sol/ILifecycle.json} +37 -51
  196. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  197. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +42 -77
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  200. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  201. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +181 -0
  202. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  204. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IService.sol/IService.json +346 -0
  206. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  208. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/Lifecycle.sol/Lifecycle.json} +19 -68
  216. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  217. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  218. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  219. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  220. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  221. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  224. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  225. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  226. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +469 -0
  230. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  231. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  232. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
  234. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  235. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  236. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
  238. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
  240. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  242. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  244. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  246. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  248. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  250. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  252. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  254. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  255. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  256. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  258. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  260. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  262. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  264. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  266. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  268. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  270. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  272. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  276. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  278. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  280. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  282. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  284. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +92 -0
  292. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  294. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  296. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  298. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  300. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  302. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  304. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  306. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  307. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  308. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  310. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  312. package/contracts/authorization/AccessAdmin.sol +591 -0
  313. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  314. package/contracts/authorization/Authorization.sol +217 -0
  315. package/contracts/authorization/IAccess.sol +48 -0
  316. package/contracts/authorization/IAccessAdmin.sol +136 -0
  317. package/contracts/authorization/IAuthorization.sol +54 -0
  318. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  319. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  320. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  321. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  322. package/contracts/distribution/BasicDistribution.sol +138 -0
  323. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  324. package/contracts/distribution/Distribution.sol +295 -0
  325. package/contracts/distribution/DistributionService.sol +336 -0
  326. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  327. package/contracts/distribution/IDistributionComponent.sol +52 -0
  328. package/contracts/distribution/IDistributionService.sol +101 -0
  329. package/contracts/instance/BundleSet.sol +126 -0
  330. package/contracts/instance/IInstance.sol +60 -22
  331. package/contracts/instance/IInstanceService.sol +92 -0
  332. package/contracts/instance/Instance.sol +211 -54
  333. package/contracts/instance/InstanceAdmin.sol +285 -0
  334. package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
  335. package/contracts/instance/InstanceReader.sol +422 -0
  336. package/contracts/instance/InstanceService.sol +467 -0
  337. package/contracts/instance/InstanceServiceManager.sol +40 -0
  338. package/contracts/instance/InstanceStore.sol +291 -0
  339. package/contracts/instance/base/BalanceStore.sol +123 -0
  340. package/contracts/instance/base/Cloneable.sol +28 -0
  341. package/contracts/instance/base/ObjectCounter.sol +21 -0
  342. package/contracts/instance/base/ObjectLifecycle.sol +110 -0
  343. package/contracts/instance/base/ObjectSet.sol +79 -0
  344. package/contracts/instance/module/IAccess.sol +46 -0
  345. package/contracts/instance/module/IBundle.sol +20 -0
  346. package/contracts/instance/module/IComponents.sol +46 -0
  347. package/contracts/instance/module/IDistribution.sol +41 -0
  348. package/contracts/instance/module/IPolicy.sol +84 -0
  349. package/contracts/instance/module/IRisk.sol +11 -0
  350. package/contracts/mock/Dip.sol +26 -0
  351. package/contracts/oracle/BasicOracle.sol +48 -0
  352. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  353. package/contracts/oracle/IOracle.sol +36 -0
  354. package/contracts/oracle/IOracleComponent.sol +33 -0
  355. package/contracts/oracle/IOracleService.sol +65 -0
  356. package/contracts/oracle/Oracle.sol +167 -0
  357. package/contracts/oracle/OracleService.sol +279 -0
  358. package/contracts/oracle/OracleServiceManager.sol +39 -0
  359. package/contracts/pool/BasicPool.sol +166 -0
  360. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  361. package/contracts/pool/BundleService.sol +438 -0
  362. package/contracts/pool/BundleServiceManager.sol +39 -0
  363. package/contracts/pool/IBundleService.sol +134 -0
  364. package/contracts/pool/IPoolComponent.sol +58 -0
  365. package/contracts/pool/IPoolService.sol +160 -0
  366. package/contracts/pool/Pool.sol +326 -0
  367. package/contracts/pool/PoolService.sol +509 -0
  368. package/contracts/pool/PoolServiceManager.sol +39 -0
  369. package/contracts/product/ApplicationService.sol +249 -0
  370. package/contracts/product/ApplicationServiceManager.sol +38 -0
  371. package/contracts/product/BasicProduct.sol +53 -0
  372. package/contracts/product/BasicProductAuthorization.sol +43 -0
  373. package/contracts/product/ClaimService.sol +416 -0
  374. package/contracts/product/ClaimServiceManager.sol +38 -0
  375. package/contracts/product/IApplicationService.sol +63 -0
  376. package/contracts/product/IClaimService.sol +100 -0
  377. package/contracts/product/IPolicyService.sol +73 -0
  378. package/contracts/product/IPricingService.sol +39 -0
  379. package/contracts/product/IProductComponent.sol +39 -0
  380. package/contracts/product/IRiskService.sol +33 -0
  381. package/contracts/product/PolicyService.sol +574 -0
  382. package/contracts/product/PolicyServiceManager.sol +39 -0
  383. package/contracts/product/PricingService.sol +301 -0
  384. package/contracts/product/PricingServiceManager.sol +39 -0
  385. package/contracts/product/Product.sol +407 -0
  386. package/contracts/product/RiskService.sol +97 -0
  387. package/contracts/product/RiskServiceManager.sol +39 -0
  388. package/contracts/registry/ChainNft.sol +144 -62
  389. package/contracts/registry/IRegistry.sol +112 -45
  390. package/contracts/registry/IRegistryService.sol +69 -0
  391. package/contracts/registry/ITransferInterceptor.sol +7 -0
  392. package/contracts/registry/Registry.sol +521 -127
  393. package/contracts/registry/RegistryAdmin.sol +374 -0
  394. package/contracts/registry/RegistryService.sol +252 -0
  395. package/contracts/registry/RegistryServiceManager.sol +53 -0
  396. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  397. package/contracts/registry/ReleaseRegistry.sol +485 -0
  398. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  399. package/contracts/registry/TokenRegistry.sol +315 -0
  400. package/contracts/shared/Component.sol +268 -0
  401. package/contracts/shared/ComponentService.sol +641 -0
  402. package/contracts/shared/ComponentServiceManager.sol +35 -0
  403. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  404. package/contracts/shared/IComponent.sol +70 -0
  405. package/contracts/shared/IComponentService.sol +108 -0
  406. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  407. package/contracts/shared/IKeyValueStore.sol +54 -0
  408. package/contracts/shared/ILifecycle.sol +29 -0
  409. package/contracts/shared/INftOwnable.sol +23 -0
  410. package/contracts/shared/IPolicyHolder.sol +45 -0
  411. package/contracts/shared/IRegisterable.sol +15 -0
  412. package/contracts/shared/IRegistryLinked.sol +11 -0
  413. package/contracts/shared/IService.sol +25 -0
  414. package/contracts/shared/InitializableCustom.sol +177 -0
  415. package/contracts/shared/InitializableERC165.sol +27 -0
  416. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  417. package/contracts/shared/KeyValueStore.sol +131 -0
  418. package/contracts/shared/Lifecycle.sol +77 -0
  419. package/contracts/shared/NftIdSet.sol +65 -0
  420. package/contracts/shared/NftOwnable.sol +107 -0
  421. package/contracts/shared/PolicyHolder.sol +99 -0
  422. package/contracts/shared/Registerable.sol +75 -0
  423. package/contracts/shared/RegistryLinked.sol +43 -0
  424. package/contracts/shared/Service.sol +82 -0
  425. package/contracts/shared/TokenHandler.sol +139 -0
  426. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  427. package/contracts/staking/IStaking.sol +167 -0
  428. package/contracts/staking/IStakingService.sol +160 -0
  429. package/contracts/staking/StakeManagerLib.sol +206 -0
  430. package/contracts/staking/Staking.sol +497 -0
  431. package/contracts/staking/StakingLifecycle.sol +23 -0
  432. package/contracts/staking/StakingManager.sol +50 -0
  433. package/contracts/staking/StakingReader.sol +183 -0
  434. package/contracts/staking/StakingService.sol +407 -0
  435. package/contracts/staking/StakingServiceManager.sol +44 -0
  436. package/contracts/staking/StakingStore.sol +605 -0
  437. package/contracts/staking/TargetManagerLib.sol +207 -0
  438. package/contracts/type/AddressSet.sol +58 -0
  439. package/contracts/type/Amount.sol +135 -0
  440. package/contracts/{types → type}/Blocknumber.sol +27 -3
  441. package/contracts/type/ClaimId.sol +75 -0
  442. package/contracts/type/DistributorType.sol +55 -0
  443. package/contracts/type/Fee.sol +66 -0
  444. package/contracts/type/Key32.sol +50 -0
  445. package/contracts/type/NftId.sol +78 -0
  446. package/contracts/type/NftIdSet.sol +62 -0
  447. package/contracts/type/ObjectType.sol +275 -0
  448. package/contracts/type/PayoutId.sol +82 -0
  449. package/contracts/type/Referral.sol +90 -0
  450. package/contracts/type/RequestId.sol +75 -0
  451. package/contracts/type/RiskId.sol +43 -0
  452. package/contracts/type/RoleId.sol +174 -0
  453. package/contracts/type/Seconds.sol +93 -0
  454. package/contracts/type/Selector.sol +102 -0
  455. package/contracts/{types → type}/StateId.sol +50 -6
  456. package/contracts/type/String.sol +53 -0
  457. package/contracts/{types → type}/Timestamp.sol +52 -8
  458. package/contracts/type/UFixed.sol +351 -0
  459. package/contracts/type/Version.sol +110 -0
  460. package/contracts/upgradeability/IVersionable.sol +53 -0
  461. package/contracts/upgradeability/ProxyManager.sol +198 -0
  462. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  463. package/contracts/upgradeability/Versionable.sol +59 -0
  464. package/package.json +17 -7
  465. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  466. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  467. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  468. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  469. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  470. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  471. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  472. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  473. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  474. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  475. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  476. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  477. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  479. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  481. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  483. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  485. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  487. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  489. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  491. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  493. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  495. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  497. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  499. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  501. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  502. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  503. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  504. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  506. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  508. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  510. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  511. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  512. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  513. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  514. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  515. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  516. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  517. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  518. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  519. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  520. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  521. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  522. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  523. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  524. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  525. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  526. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  527. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  528. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  529. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  530. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  531. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  532. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  533. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  534. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  535. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  536. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  537. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  538. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  539. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  540. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  541. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  542. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  543. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  544. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  545. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  546. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  548. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  550. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  551. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  552. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  554. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  555. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  556. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  557. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  558. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  559. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  560. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  561. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  562. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  563. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  564. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  565. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  566. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  567. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  568. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  569. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  570. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  571. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  572. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  574. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  576. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  577. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  578. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  580. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  582. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  584. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  586. package/contracts/components/Component.sol +0 -77
  587. package/contracts/components/IPool.sol +0 -15
  588. package/contracts/components/IProduct.sol +0 -16
  589. package/contracts/components/Pool.sol +0 -52
  590. package/contracts/components/Product.sol +0 -89
  591. package/contracts/experiment/errors/Require.sol +0 -38
  592. package/contracts/experiment/errors/Revert.sol +0 -44
  593. package/contracts/experiment/inheritance/A.sol +0 -53
  594. package/contracts/experiment/inheritance/B.sol +0 -28
  595. package/contracts/experiment/inheritance/C.sol +0 -34
  596. package/contracts/experiment/inheritance/IA.sol +0 -13
  597. package/contracts/experiment/inheritance/IB.sol +0 -10
  598. package/contracts/experiment/inheritance/IC.sol +0 -12
  599. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  600. package/contracts/experiment/statemachine/ISM.sol +0 -25
  601. package/contracts/experiment/statemachine/README.md +0 -112
  602. package/contracts/experiment/statemachine/SM.sol +0 -57
  603. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  604. package/contracts/experiment/types/TypeA.sol +0 -47
  605. package/contracts/experiment/types/TypeB.sol +0 -29
  606. package/contracts/instance/access/Access.sol +0 -165
  607. package/contracts/instance/access/IAccess.sol +0 -63
  608. package/contracts/instance/component/ComponentModule.sol +0 -274
  609. package/contracts/instance/component/IComponent.sol +0 -74
  610. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  611. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  612. package/contracts/instance/policy/IPolicy.sol +0 -50
  613. package/contracts/instance/policy/PolicyModule.sol +0 -114
  614. package/contracts/instance/pool/IPoolModule.sol +0 -23
  615. package/contracts/instance/pool/PoolModule.sol +0 -81
  616. package/contracts/instance/product/IProductService.sol +0 -36
  617. package/contracts/instance/product/ProductService.sol +0 -136
  618. package/contracts/instance/treasury/ITreasury.sol +0 -91
  619. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  620. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  621. package/contracts/registry/IChainNft.sol +0 -21
  622. package/contracts/types/ChainId.sol +0 -38
  623. package/contracts/types/Fee.sol +0 -32
  624. package/contracts/types/NftId.sol +0 -51
  625. package/contracts/types/ObjectType.sol +0 -107
  626. package/contracts/types/UFixed.sol +0 -206
@@ -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
+ }
@@ -0,0 +1,252 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
9
+ import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
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";
15
+ import {Service} from "../shared/Service.sol";
16
+
17
+ contract RegistryService is
18
+ Service,
19
+ IRegistryService
20
+ {
21
+ using NftIdLib for NftId;
22
+
23
+ // TODO update to real hash when registry is stable
24
+ bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
25
+
26
+ // from Versionable
27
+
28
+ /// @dev top level initializer
29
+ function _initialize(
30
+ address owner,
31
+ bytes memory data
32
+ )
33
+ internal
34
+ virtual override
35
+ initializer()
36
+ {
37
+ (
38
+ address registryAddress,
39
+ address initialAuthority
40
+ ) = abi.decode(data, (address, address));
41
+
42
+ initializeService(registryAddress, initialAuthority, owner);
43
+ registerInterface(type(IRegistryService).interfaceId);
44
+ }
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
+
60
+ function registerInstance(IRegisterable instance, address owner)
61
+ external
62
+ virtual
63
+ restricted
64
+ returns(
65
+ IRegistry.ObjectInfo memory info
66
+ )
67
+ {
68
+ if(!instance.supportsInterface(type(IInstance).interfaceId)) {
69
+ revert ErrorRegistryServiceNotInstance(address(instance));
70
+ }
71
+
72
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
73
+ info.nftId = getRegistry().register(info);
74
+
75
+ instance.linkToRegisteredNftId(); // asume safe
76
+ }
77
+
78
+ function registerProduct(IComponent product, address owner)
79
+ external
80
+ restricted
81
+ returns(
82
+ IRegistry.ObjectInfo memory info
83
+ )
84
+ {
85
+ // CAN revert if no ERC165 support -> will revert with empty message
86
+ if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
87
+ revert ErrorRegistryServiceNotProduct(address(product));
88
+ }
89
+
90
+ info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
91
+ info.nftId = getRegistry().register(info);
92
+ }
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
+
114
+ function registerPool(IComponent pool, address owner)
115
+ external
116
+ restricted
117
+ returns(
118
+ IRegistry.ObjectInfo memory info
119
+ )
120
+ {
121
+ if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
122
+ revert ErrorRegistryServiceNotPool(address(pool));
123
+ }
124
+
125
+ info = _getAndVerifyContractInfo(pool, POOL(), owner);
126
+ info.nftId = getRegistry().register(info);
127
+ }
128
+
129
+ function registerDistribution(IComponent distribution, address owner)
130
+ external
131
+ restricted
132
+ returns(
133
+ IRegistry.ObjectInfo memory info
134
+ )
135
+ {
136
+ if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
137
+ revert ErrorRegistryServiceNotDistribution(address(distribution));
138
+ }
139
+
140
+ info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
141
+ info.nftId = getRegistry().register(info);
142
+ }
143
+
144
+ function registerDistributor(IRegistry.ObjectInfo memory info)
145
+ external
146
+ restricted
147
+ returns(NftId nftId)
148
+ {
149
+ _verifyObjectInfo(info, DISTRIBUTOR());
150
+ nftId = getRegistry().register(info);
151
+ }
152
+
153
+ function registerPolicy(IRegistry.ObjectInfo memory info)
154
+ external
155
+ restricted
156
+ returns(NftId nftId)
157
+ {
158
+ _verifyObjectInfo(info, POLICY());
159
+ nftId = getRegistry().register(info);
160
+ }
161
+
162
+ function registerBundle(IRegistry.ObjectInfo memory info)
163
+ external
164
+ restricted
165
+ returns(NftId nftId)
166
+ {
167
+ _verifyObjectInfo(info, BUNDLE());
168
+ nftId = getRegistry().register(info);
169
+ }
170
+
171
+ function registerStake(IRegistry.ObjectInfo memory info)
172
+ external
173
+ restricted
174
+ returns(NftId nftId)
175
+ {
176
+ _verifyObjectInfo(info, STAKE());
177
+ nftId = getRegistry().register(info);
178
+ }
179
+
180
+ // Internal
181
+
182
+ function _getAndVerifyContractInfo(
183
+ IRegisterable registerable,
184
+ ObjectType expectedType, // assume can be valid only
185
+ address expectedOwner // assume can be 0 when given by other service
186
+ )
187
+ internal
188
+ view
189
+ returns(
190
+ IRegistry.ObjectInfo memory info
191
+ )
192
+ {
193
+ info = registerable.getInitialInfo();
194
+
195
+ if(info.objectAddress != address(registerable)) {
196
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
197
+ }
198
+
199
+ if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
200
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
201
+ }
202
+
203
+ address owner = info.initialOwner;
204
+
205
+ if(owner != expectedOwner) { // registerable owner protection
206
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
207
+ }
208
+
209
+ if(owner == address(registerable)) {
210
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
211
+ }
212
+
213
+ if(owner == address(0)) {
214
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
215
+ }
216
+
217
+ if(getRegistry().isRegistered(owner)) {
218
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
219
+ }
220
+ }
221
+
222
+ function _verifyObjectInfo(
223
+ IRegistry.ObjectInfo memory info,
224
+ ObjectType expectedType
225
+ )
226
+ internal
227
+ view
228
+ {
229
+ if(info.objectAddress > address(0)) {
230
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
231
+ }
232
+
233
+ if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
234
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
235
+ }
236
+
237
+ address owner = info.initialOwner;
238
+
239
+ if(owner == address(0)) {
240
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
241
+ }
242
+
243
+ if(getRegistry().isRegistered(owner)) {
244
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
245
+ }
246
+ }
247
+
248
+ // From IService
249
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
250
+ return REGISTRY();
251
+ }
252
+ }
@@ -0,0 +1,53 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {RegistryService} from "./RegistryService.sol";
7
+
8
+ contract RegistryServiceManager is
9
+ ProxyManager
10
+ {
11
+ error ErrorRegistryAccessManagerAuthorityZero();
12
+ error ErrorRegistryAccessManagerRegistryZero();
13
+
14
+ bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
15
+
16
+ RegistryService private immutable _registryService;
17
+
18
+ /// @dev initializes proxy manager with registry service implementation and deploys registry
19
+ constructor(
20
+ address authority, // used by implementation
21
+ address registry, // used by implementation
22
+ bytes32 salt
23
+ )
24
+ ProxyManager(registry)
25
+ {
26
+ if(authority == address(0)) {
27
+ revert ErrorRegistryAccessManagerAuthorityZero();
28
+ }
29
+
30
+ if(registry == address(0)) {
31
+ revert ErrorRegistryAccessManagerRegistryZero();
32
+ }
33
+
34
+ RegistryService srv = new RegistryService{ salt: salt }();
35
+ bytes memory data = abi.encode(registry, authority);
36
+ IVersionable versionable = deployDetermenistic(
37
+ address(srv),
38
+ data,
39
+ salt);
40
+
41
+ _registryService = RegistryService(address(versionable));
42
+ }
43
+
44
+ //--- view functions ----------------------------------------------------//
45
+
46
+ function getRegistryService()
47
+ external
48
+ view
49
+ returns (RegistryService registryService)
50
+ {
51
+ return _registryService;
52
+ }
53
+ }