@etherisc/gif-next 0.0.2-8a352ce → 0.0.2-8bc5066-981

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 (609) hide show
  1. package/README.md +406 -9
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1304 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1325 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -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 +1055 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1455 -0
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  33. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  53. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +302 -520
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +702 -0
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +391 -621
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1710 -0
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2058 -0
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1003 -0
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +726 -0
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -0
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  74. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  76. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  78. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  80. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  83. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  84. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  86. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  87. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  92. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  93. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  94. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  95. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  96. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  98. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  100. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  104. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  120. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +960 -0
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
  126. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
  128. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  130. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
  132. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
  134. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
  136. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  138. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  140. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
  142. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
  144. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  145. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +546 -0
  146. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  148. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
  150. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  152. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1012 -0
  154. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  155. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +429 -0
  156. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
  158. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  160. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
  162. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
  164. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  165. package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
  166. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  168. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  170. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1001 -113
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1019 -0
  176. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  178. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.json +1491 -178
  180. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1799 -0
  182. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1246 -0
  184. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +713 -0
  186. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1696 -0
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1295 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  196. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Component.sol/Component.json +725 -0
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  202. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  206. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  208. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  209. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  210. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  212. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
  214. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  216. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  217. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +57 -76
  218. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  219. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  220. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  221. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +210 -0
  222. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  223. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  224. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/IService.sol/IService.json +375 -0
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  229. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  230. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  231. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  232. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  234. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  236. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  237. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  238. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  239. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +322 -0
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  245. package/artifacts/contracts/shared/Service.sol/Service.json +442 -0
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +469 -0
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  256. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  257. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  276. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  278. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  280. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  282. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  286. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  288. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  290. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  292. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  294. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  296. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  298. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  300. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  302. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  320. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  322. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  328. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  330. package/contracts/authorization/AccessAdmin.sol +601 -0
  331. package/contracts/authorization/AccessManagerCloneable.sol +80 -0
  332. package/contracts/authorization/Authorization.sol +289 -0
  333. package/contracts/authorization/IAccess.sol +49 -0
  334. package/contracts/authorization/IAccessAdmin.sol +136 -0
  335. package/contracts/authorization/IAuthorization.sol +60 -0
  336. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  337. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  338. package/contracts/distribution/BasicDistribution.sol +139 -0
  339. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  340. package/contracts/distribution/Distribution.sol +285 -0
  341. package/contracts/distribution/DistributionService.sol +355 -0
  342. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  343. package/contracts/distribution/IDistributionComponent.sol +52 -0
  344. package/contracts/distribution/IDistributionService.sol +101 -0
  345. package/contracts/examples/fire/DamageLevel.sol +59 -0
  346. package/contracts/examples/fire/FirePool.sol +73 -0
  347. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  348. package/contracts/examples/fire/FireProduct.sol +415 -0
  349. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  350. package/contracts/examples/fire/FireUSD.sol +26 -0
  351. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  352. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  353. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  354. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  355. package/contracts/instance/BundleSet.sol +126 -0
  356. package/contracts/instance/IInstance.sol +61 -15
  357. package/contracts/instance/IInstanceService.sol +72 -0
  358. package/contracts/instance/Instance.sol +214 -46
  359. package/contracts/instance/InstanceAdmin.sol +295 -0
  360. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  361. package/contracts/instance/InstanceReader.sol +495 -0
  362. package/contracts/instance/InstanceService.sol +412 -0
  363. package/contracts/instance/InstanceServiceManager.sol +39 -0
  364. package/contracts/instance/InstanceStore.sol +287 -0
  365. package/contracts/instance/base/BalanceStore.sol +123 -0
  366. package/contracts/instance/base/Cloneable.sol +28 -0
  367. package/contracts/instance/base/ObjectCounter.sol +21 -0
  368. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  369. package/contracts/instance/base/ObjectSet.sol +79 -0
  370. package/contracts/instance/module/IAccess.sol +46 -0
  371. package/contracts/instance/module/IBundle.sol +20 -0
  372. package/contracts/instance/module/IComponents.sol +51 -0
  373. package/contracts/instance/module/IDistribution.sol +41 -0
  374. package/contracts/instance/module/IPolicy.sol +84 -0
  375. package/contracts/instance/module/IRisk.sol +11 -0
  376. package/contracts/mock/Dip.sol +26 -0
  377. package/contracts/oracle/BasicOracle.sol +47 -0
  378. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  379. package/contracts/oracle/IOracle.sol +36 -0
  380. package/contracts/oracle/IOracleComponent.sol +33 -0
  381. package/contracts/oracle/IOracleService.sol +66 -0
  382. package/contracts/oracle/Oracle.sol +156 -0
  383. package/contracts/oracle/OracleService.sol +291 -0
  384. package/contracts/oracle/OracleServiceManager.sol +39 -0
  385. package/contracts/pool/BasicPool.sol +154 -0
  386. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  387. package/contracts/pool/BundleService.sol +493 -0
  388. package/contracts/pool/BundleServiceManager.sol +39 -0
  389. package/contracts/pool/IBundleService.sol +143 -0
  390. package/contracts/pool/IPoolComponent.sol +68 -0
  391. package/contracts/pool/IPoolService.sol +167 -0
  392. package/contracts/pool/Pool.sol +335 -0
  393. package/contracts/pool/PoolService.sol +544 -0
  394. package/contracts/pool/PoolServiceManager.sol +39 -0
  395. package/contracts/product/ApplicationService.sol +259 -0
  396. package/contracts/product/ApplicationServiceManager.sol +38 -0
  397. package/contracts/product/BasicProduct.sol +53 -0
  398. package/contracts/product/BasicProductAuthorization.sol +42 -0
  399. package/contracts/product/ClaimService.sol +612 -0
  400. package/contracts/product/ClaimServiceManager.sol +38 -0
  401. package/contracts/product/IApplicationService.sol +63 -0
  402. package/contracts/product/IClaimService.sol +123 -0
  403. package/contracts/product/IPolicyService.sol +80 -0
  404. package/contracts/product/IPricingService.sol +39 -0
  405. package/contracts/product/IProductComponent.sol +59 -0
  406. package/contracts/product/IRiskService.sol +33 -0
  407. package/contracts/product/PolicyService.sol +691 -0
  408. package/contracts/product/PolicyServiceManager.sol +39 -0
  409. package/contracts/product/PricingService.sol +300 -0
  410. package/contracts/product/PricingServiceManager.sol +39 -0
  411. package/contracts/product/Product.sol +455 -0
  412. package/contracts/product/RiskService.sol +96 -0
  413. package/contracts/product/RiskServiceManager.sol +39 -0
  414. package/contracts/registry/ChainNft.sol +174 -100
  415. package/contracts/registry/IRegistry.sol +155 -52
  416. package/contracts/registry/IRegistryService.sol +62 -0
  417. package/contracts/registry/ITransferInterceptor.sol +6 -0
  418. package/contracts/registry/Registry.sol +652 -117
  419. package/contracts/registry/RegistryAdmin.sol +333 -0
  420. package/contracts/registry/RegistryService.sol +241 -0
  421. package/contracts/registry/RegistryServiceManager.sol +53 -0
  422. package/contracts/registry/ReleaseAdmin.sol +248 -0
  423. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  424. package/contracts/registry/ReleaseRegistry.sol +507 -0
  425. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  426. package/contracts/registry/TokenRegistry.sol +315 -0
  427. package/contracts/shared/Component.sol +265 -0
  428. package/contracts/shared/ComponentService.sol +745 -0
  429. package/contracts/shared/ComponentServiceManager.sol +38 -0
  430. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  431. package/contracts/shared/ContractLib.sol +38 -0
  432. package/contracts/shared/IComponent.sol +74 -0
  433. package/contracts/shared/IComponentService.sol +120 -0
  434. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  435. package/contracts/shared/IKeyValueStore.sol +54 -0
  436. package/contracts/shared/ILifecycle.sol +31 -0
  437. package/contracts/shared/INftOwnable.sol +25 -0
  438. package/contracts/shared/IPolicyHolder.sol +35 -0
  439. package/contracts/shared/IRegisterable.sol +26 -0
  440. package/contracts/shared/IRegistryLinked.sol +11 -0
  441. package/contracts/shared/IService.sol +25 -0
  442. package/contracts/shared/InitializableERC165.sol +27 -0
  443. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  444. package/contracts/shared/KeyValueStore.sol +131 -0
  445. package/contracts/shared/Lifecycle.sol +88 -0
  446. package/contracts/shared/NftIdSet.sol +65 -0
  447. package/contracts/shared/NftOwnable.sol +127 -0
  448. package/contracts/shared/PolicyHolder.sol +62 -0
  449. package/contracts/shared/Registerable.sol +85 -0
  450. package/contracts/shared/RegistryLinked.sol +44 -0
  451. package/contracts/shared/Service.sol +84 -0
  452. package/contracts/shared/TokenHandler.sol +139 -0
  453. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  454. package/contracts/staking/IStaking.sol +168 -0
  455. package/contracts/staking/IStakingService.sol +157 -0
  456. package/contracts/staking/StakeManagerLib.sol +224 -0
  457. package/contracts/staking/Staking.sol +497 -0
  458. package/contracts/staking/StakingLifecycle.sol +23 -0
  459. package/contracts/staking/StakingManager.sol +52 -0
  460. package/contracts/staking/StakingReader.sol +190 -0
  461. package/contracts/staking/StakingService.sol +407 -0
  462. package/contracts/staking/StakingServiceManager.sol +44 -0
  463. package/contracts/staking/StakingStore.sol +605 -0
  464. package/contracts/staking/TargetManagerLib.sol +211 -0
  465. package/contracts/type/AddressSet.sol +58 -0
  466. package/contracts/type/Amount.sol +150 -0
  467. package/contracts/type/Blocknumber.sol +142 -0
  468. package/contracts/type/ClaimId.sol +80 -0
  469. package/contracts/type/DistributorType.sol +55 -0
  470. package/contracts/type/Fee.sol +66 -0
  471. package/contracts/type/Key32.sol +50 -0
  472. package/contracts/type/NftId.sol +79 -0
  473. package/contracts/type/NftIdSet.sol +62 -0
  474. package/contracts/type/ObjectType.sol +276 -0
  475. package/contracts/type/PayoutId.sol +82 -0
  476. package/contracts/type/Referral.sol +90 -0
  477. package/contracts/type/RequestId.sol +75 -0
  478. package/contracts/type/RiskId.sol +57 -0
  479. package/contracts/type/RoleId.sol +165 -0
  480. package/contracts/type/Seconds.sol +101 -0
  481. package/contracts/type/Selector.sol +102 -0
  482. package/contracts/type/StateId.sol +149 -0
  483. package/contracts/type/String.sol +53 -0
  484. package/contracts/type/Timestamp.sol +146 -0
  485. package/contracts/type/UFixed.sol +355 -0
  486. package/contracts/type/Version.sol +110 -0
  487. package/contracts/upgradeability/IVersionable.sol +53 -0
  488. package/contracts/upgradeability/ProxyManager.sol +232 -0
  489. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  490. package/contracts/upgradeability/Versionable.sol +59 -0
  491. package/package.json +26 -7
  492. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  493. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  494. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  495. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  496. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  497. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  498. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  499. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  500. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  501. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  502. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  503. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  504. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  506. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  508. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  510. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  512. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  514. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  516. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  518. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  520. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  522. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  524. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  525. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  526. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  527. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  528. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  529. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  530. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  531. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  532. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  533. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  534. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  535. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  536. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  537. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  538. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  540. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  541. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  542. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  543. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  544. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  545. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  547. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  548. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  549. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  550. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  551. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  552. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  553. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  554. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  555. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  556. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  557. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  558. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  559. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  560. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  561. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  563. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  564. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  565. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  567. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  568. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  569. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  570. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  571. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  572. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  573. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  574. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  575. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  576. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  577. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  578. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  580. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  582. package/contracts/components/Component.sol +0 -62
  583. package/contracts/components/IPool.sol +0 -9
  584. package/contracts/components/IProduct.sol +0 -12
  585. package/contracts/components/Pool.sol +0 -29
  586. package/contracts/components/Product.sol +0 -66
  587. package/contracts/experiment/errors/Require.sol +0 -33
  588. package/contracts/experiment/errors/Revert.sol +0 -39
  589. package/contracts/experiment/inheritance/A.sol +0 -56
  590. package/contracts/experiment/inheritance/B.sol +0 -23
  591. package/contracts/experiment/inheritance/C.sol +0 -28
  592. package/contracts/experiment/inheritance/IA.sol +0 -18
  593. package/contracts/experiment/inheritance/IB.sol +0 -9
  594. package/contracts/experiment/inheritance/IC.sol +0 -11
  595. package/contracts/experiment/types/TypeA.sol +0 -42
  596. package/contracts/experiment/types/TypeB.sol +0 -24
  597. package/contracts/instance/access/Access.sol +0 -218
  598. package/contracts/instance/access/IAccess.sol +0 -83
  599. package/contracts/instance/component/ComponentModule.sol +0 -248
  600. package/contracts/instance/component/IComponent.sol +0 -95
  601. package/contracts/instance/policy/IPolicy.sol +0 -66
  602. package/contracts/instance/policy/PolicyModule.sol +0 -107
  603. package/contracts/instance/pool/IPoolModule.sol +0 -41
  604. package/contracts/instance/pool/PoolModule.sol +0 -86
  605. package/contracts/instance/product/IProductService.sol +0 -46
  606. package/contracts/instance/product/ProductService.sol +0 -108
  607. package/contracts/registry/IChainNft.sol +0 -18
  608. package/contracts/types/ChainId.sol +0 -30
  609. package/contracts/types/NftId.sol +0 -35
@@ -0,0 +1,333 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
6
+ import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IRegistry} from "./IRegistry.sol";
8
+ import {IService} from "../shared/IService.sol";
9
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
10
+ import {IStaking} from "../staking/IStaking.sol";
11
+ import {ObjectType, ObjectTypeLib, ALL, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
12
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
13
+ import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
14
+ import {StakingStore} from "../staking/StakingStore.sol";
15
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
+ import {TokenRegistry} from "./TokenRegistry.sol";
17
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
18
+
19
+ /*
20
+ 1) GIF_MANAGER_ROLE
21
+ - can have arbitrary number of members
22
+ - responsible for release preparation
23
+ - responsible for services registrations
24
+ - responsible for token registration and activation
25
+
26
+ 2) GIF_ADMIN_ROLE
27
+ - admin of GIF_MANAGER_ROLE
28
+ - MUST have 1 member at any time
29
+ - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
30
+ - responsible for creation, activation and locking/unlocking of releases
31
+ */
32
+
33
+ /// @dev IMPORTANT: MUST not use authority().setLocked()
34
+ contract RegistryAdmin is
35
+ AccessAdmin
36
+ {
37
+ /// @dev gif core roles
38
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
39
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
40
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
41
+ string public constant STAKING_ROLE_NAME = "StakingRole";
42
+
43
+ /// @dev gif roles for external contracts
44
+ string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
45
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
46
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
47
+
48
+ /// @dev gif core targets
49
+ string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
50
+ string public constant REGISTRY_TARGET_NAME = "Registry";
51
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
52
+ string public constant STAKING_TARGET_NAME = "Staking";
53
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
54
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
55
+ string public constant TOKEN_HANDLER_TARGET_NAME = "TokenHandler";
56
+
57
+ uint8 public constant MAX_NUM_RELEASES = 99;
58
+
59
+ address internal _registry;
60
+ address private _releaseRegistry;
61
+ address private _tokenRegistry;
62
+ address private _staking;
63
+ address private _stakingStore;
64
+
65
+ constructor() {
66
+ initialize(new AccessManagerCloneable());
67
+ }
68
+
69
+ function completeSetup(
70
+ IRegistry registry,
71
+ address gifAdmin,
72
+ address gifManager
73
+ )
74
+ external
75
+ reinitializer(type(uint8).max)
76
+ onlyDeployer()
77
+ {
78
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
79
+ accessManager.completeSetup(address(registry), VersionPartLib.toVersionPart(type(uint8).max));
80
+
81
+ _registry = address(registry);
82
+ _releaseRegistry = registry.getReleaseRegistryAddress();
83
+ _tokenRegistry = registry.getTokenRegistryAddress();
84
+ _staking = registry.getStakingAddress();
85
+ _stakingStore = address(
86
+ IStaking(_staking).getStakingStore());
87
+
88
+ _createTargets();
89
+
90
+ _setupGifAdminRole(gifAdmin);
91
+ _setupGifManagerRole(gifManager);
92
+
93
+ _setupRegistryRoles();
94
+ _setupStakingRoles();
95
+ }
96
+
97
+ /*function transferAdmin(address to)
98
+ external
99
+ restricted // only with GIF_ADMIN_ROLE or nft owner
100
+ {
101
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
102
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
103
+ }*/
104
+
105
+ function grantServiceRoleForAllVersions(IService service, ObjectType domain)
106
+ external
107
+ restricted()
108
+ {
109
+ _grantRoleToAccount(
110
+ RoleIdLib.roleForTypeAndAllVersions(domain),
111
+ address(service));
112
+ }
113
+
114
+ //--- view functions ----------------------------------------------------//
115
+
116
+ function getGifAdminRole() external view returns (RoleId) {
117
+ return GIF_ADMIN_ROLE();
118
+ }
119
+
120
+ function getGifManagerRole() external view returns (RoleId) {
121
+ return GIF_MANAGER_ROLE();
122
+ }
123
+
124
+ //--- private initialization functions -------------------------------------------//
125
+
126
+ function _createTargets()
127
+ private
128
+ onlyInitializing()
129
+ {
130
+ IStaking staking = IStaking(_staking);
131
+ address tokenHandler = address(staking.getTokenHandler());
132
+
133
+ _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, false, false);
134
+ _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
135
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
136
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
137
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
138
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
139
+ _createTarget(tokenHandler, TOKEN_HANDLER_TARGET_NAME, true, false);
140
+ }
141
+
142
+ function _setupGifAdminRole(address gifAdmin)
143
+ private
144
+ onlyInitializing()
145
+ {
146
+ // create gif admin role
147
+ _createRole(
148
+ GIF_ADMIN_ROLE(),
149
+ toRole({
150
+ adminRoleId: ADMIN_ROLE(),
151
+ roleType: RoleType.Gif,
152
+ maxMemberCount: 2, // TODO decide on max member count
153
+ name: GIF_ADMIN_ROLE_NAME}));
154
+
155
+ // grant permissions to the gif admin role for registry contract
156
+ FunctionInfo[] memory functions;
157
+ functions = new FunctionInfo[](1);
158
+ functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
159
+ _authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
160
+
161
+ // grant permissions to the gif admin role for release registry contract
162
+ functions = new FunctionInfo[](3);
163
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
164
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
165
+ functions[2] = toFunction(ReleaseRegistry.setActive.selector, "setActive");
166
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
167
+
168
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
169
+ }
170
+
171
+ function _setupGifManagerRole(address gifManager)
172
+ private
173
+ onlyInitializing()
174
+ {
175
+ // create gif manager role
176
+ _createRole(
177
+ GIF_MANAGER_ROLE(),
178
+ toRole({
179
+ adminRoleId: ADMIN_ROLE(),
180
+ roleType: RoleType.Gif,
181
+ maxMemberCount: 1, // TODO decide on max member count
182
+ name: GIF_MANAGER_ROLE_NAME}));
183
+
184
+ // grant permissions to the gif manager role for token registry contract
185
+ FunctionInfo[] memory functions;
186
+ functions = new FunctionInfo[](5);
187
+ functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
188
+ functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
189
+ functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
190
+ functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
191
+ // TODO find a better way (only needed for testing)
192
+ functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
193
+ _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
194
+
195
+ // grant permissions to the gif manager role for release registry contract
196
+ functions = new FunctionInfo[](2);
197
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
198
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
199
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
200
+
201
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
202
+ }
203
+
204
+ function _setupRegistryRoles()
205
+ private
206
+ onlyInitializing()
207
+ {
208
+ // TODO use RELEASE_REGISTRY_ROLE instead
209
+ // create and grant release registry role
210
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
211
+ _createRole(
212
+ releaseRegistryRoleId,
213
+ toRole({
214
+ adminRoleId: ADMIN_ROLE(),
215
+ roleType: RoleType.Contract,
216
+ maxMemberCount: 1,
217
+ name: RELEASE_REGISTRY_ROLE_NAME}));
218
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
219
+
220
+ // grant permissions to the release registry role for release admin contract
221
+ FunctionInfo[] memory functions;
222
+ functions = new FunctionInfo[](1);
223
+ functions[0] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
224
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
225
+
226
+ // grant permissions to the release registry role for registry contract
227
+ functions = new FunctionInfo[](1);
228
+ functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
229
+ _authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
230
+
231
+ // create registry service role
232
+ RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
233
+ _createRole(
234
+ registryServiceRoleId,
235
+ toRole({
236
+ adminRoleId: ADMIN_ROLE(),
237
+ roleType: RoleType.Contract,
238
+ maxMemberCount: MAX_NUM_RELEASES,
239
+ name: REGISTRY_SERVICE_ROLE_NAME}));
240
+
241
+ // grant permissions to the registry service role for registry contract
242
+ functions = new FunctionInfo[](2);
243
+ functions[0] = toFunction(IRegistry.register.selector, "register");
244
+ functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
245
+ _authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
246
+ }
247
+
248
+
249
+ function _setupStakingRoles()
250
+ private
251
+ onlyInitializing()
252
+ {
253
+ // create and grant staking contract role
254
+ RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
255
+ _createRole(
256
+ stakingRoleId,
257
+ toRole({
258
+ adminRoleId: ADMIN_ROLE(),
259
+ roleType: RoleType.Contract,
260
+ maxMemberCount: 1,
261
+ name: STAKING_ROLE_NAME}));
262
+ _grantRoleToAccount(stakingRoleId, _staking);
263
+
264
+ // grant permissions to the staking role for staking store contract
265
+ FunctionInfo[] memory functions;
266
+ functions = new FunctionInfo[](14);
267
+ functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
268
+ functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
269
+ functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
270
+ functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
271
+ functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
272
+ functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
273
+ functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
274
+ functions[7] = toFunction(StakingStore.create.selector, "create");
275
+ functions[8] = toFunction(StakingStore.update.selector, "update");
276
+ functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
277
+ functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
278
+ functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
279
+ functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
280
+ functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
281
+ _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
282
+
283
+ // grant permissions to the staking role for token handler contract
284
+ IStaking staking = IStaking(_staking);
285
+ functions = new FunctionInfo[](2);
286
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
287
+ functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
288
+ _authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
289
+
290
+ // create staking service role
291
+ RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
292
+ _createRole(
293
+ stakingServiceRoleId,
294
+ toRole({
295
+ adminRoleId: ADMIN_ROLE(),
296
+ roleType: RoleType.Contract,
297
+ maxMemberCount: MAX_NUM_RELEASES,
298
+ name: STAKING_SERVICE_ROLE_NAME}));
299
+
300
+ // grant permissions to the staking service role for staking contract
301
+ functions = new FunctionInfo[](13);
302
+ functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
303
+ functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
304
+ functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
305
+ functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
306
+ functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
307
+ functions[5] = toFunction(IStaking.createStake.selector, "createStake");
308
+ functions[6] = toFunction(IStaking.stake.selector, "stake");
309
+ functions[7] = toFunction(IStaking.unstake.selector, "unstake");
310
+ functions[8] = toFunction(IStaking.restake.selector, "restake");
311
+ functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
312
+ functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
313
+ functions[11] = toFunction(IStaking.collectDipAmount.selector, "collectDipAmount");
314
+ functions[12] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
315
+ _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
316
+
317
+ // create pool service role
318
+ RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
319
+ _createRole(
320
+ poolServiceRoleId,
321
+ toRole({
322
+ adminRoleId: ADMIN_ROLE(),
323
+ roleType: RoleType.Contract,
324
+ maxMemberCount: MAX_NUM_RELEASES,
325
+ name: POOL_SERVICE_ROLE_NAME}));
326
+
327
+ // grant permissions to the pool service role for staking contract
328
+ functions = new FunctionInfo[](2);
329
+ functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
330
+ functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
331
+ _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
332
+ }
333
+ }
@@ -0,0 +1,241 @@
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
+ // TODO update to real hash when registry is stable
22
+ bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
23
+
24
+ // from Versionable
25
+
26
+ /// @dev top level initializer
27
+ function _initialize(
28
+ address owner,
29
+ bytes memory data
30
+ )
31
+ internal
32
+ virtual override
33
+ initializer()
34
+ {
35
+ (
36
+ address registryAddress,
37
+ address initialAuthority
38
+ ) = abi.decode(data, (address, address));
39
+
40
+ _initializeService(registryAddress, initialAuthority, owner);
41
+ _registerInterface(type(IRegistryService).interfaceId);
42
+ }
43
+
44
+
45
+ function registerStaking(IRegisterable staking, address owner)
46
+ external
47
+ virtual
48
+ restricted()
49
+ returns(
50
+ IRegistry.ObjectInfo memory info
51
+ )
52
+ {
53
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
54
+ info.nftId = getRegistry().register(info);
55
+ }
56
+
57
+
58
+ function registerInstance(IRegisterable instance, address owner)
59
+ external
60
+ virtual
61
+ restricted()
62
+ returns(
63
+ IRegistry.ObjectInfo memory info
64
+ )
65
+ {
66
+ if(!instance.supportsInterface(type(IInstance).interfaceId)) {
67
+ revert ErrorRegistryServiceNotInstance(address(instance));
68
+ }
69
+
70
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
71
+ info.nftId = getRegistry().register(info);
72
+
73
+ instance.linkToRegisteredNftId(); // asume safe
74
+ }
75
+
76
+ function registerProduct(
77
+ IComponent product,
78
+ address initialOwner
79
+ )
80
+ external
81
+ virtual
82
+ restricted()
83
+ returns(
84
+ IRegistry.ObjectInfo memory info
85
+ )
86
+ {
87
+ if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
88
+ revert ErrorRegistryServiceNotProduct(address(product));
89
+ }
90
+
91
+ info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
92
+ info.nftId = getRegistry().register(info);
93
+ }
94
+
95
+ function registerProductLinkedComponent(
96
+ IComponent component,
97
+ ObjectType objectType,
98
+ address initialOwner
99
+ )
100
+ external
101
+ virtual
102
+ restricted()
103
+ returns(
104
+ IRegistry.ObjectInfo memory info
105
+ )
106
+ {
107
+ // CAN revert if no ERC165 support -> will revert with empty message
108
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
109
+ revert ErrorRegistryServiceNotComponent(address(component));
110
+ }
111
+
112
+ if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
113
+ revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
114
+ }
115
+
116
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
117
+ info.nftId = getRegistry().register(info);
118
+ }
119
+
120
+ function registerDistributor(IRegistry.ObjectInfo memory info)
121
+ external
122
+ virtual
123
+ restricted()
124
+ returns(NftId nftId)
125
+ {
126
+ _verifyObjectInfo(info, DISTRIBUTOR());
127
+ nftId = getRegistry().register(info);
128
+ }
129
+
130
+ function registerPolicy(IRegistry.ObjectInfo memory info)
131
+ external
132
+ virtual
133
+ restricted()
134
+ returns(NftId nftId)
135
+ {
136
+ _verifyObjectInfo(info, POLICY());
137
+ nftId = getRegistry().register(info);
138
+ }
139
+
140
+ function registerBundle(IRegistry.ObjectInfo memory info)
141
+ external
142
+ virtual
143
+ restricted()
144
+ returns(NftId nftId)
145
+ {
146
+ _verifyObjectInfo(info, BUNDLE());
147
+ nftId = getRegistry().register(info);
148
+ }
149
+
150
+ function registerStake(IRegistry.ObjectInfo memory info)
151
+ external
152
+ virtual
153
+ restricted()
154
+ returns(NftId nftId)
155
+ {
156
+ _verifyObjectInfo(info, STAKE());
157
+ nftId = getRegistry().register(info);
158
+ }
159
+
160
+ // Internal
161
+
162
+ function _getAndVerifyContractInfo(
163
+ IRegisterable registerable,
164
+ ObjectType expectedType, // assume can be valid only
165
+ address expectedOwner // assume can be 0 when given by other service
166
+ )
167
+ internal
168
+ virtual
169
+ view
170
+ returns(
171
+ IRegistry.ObjectInfo memory info
172
+ )
173
+ {
174
+ info = registerable.getInitialInfo();
175
+
176
+ if(info.objectAddress != address(registerable)) {
177
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
178
+ }
179
+
180
+ if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
181
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
182
+ }
183
+
184
+ address owner = info.initialOwner;
185
+
186
+ if(owner != expectedOwner) { // registerable owner protection
187
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
188
+ }
189
+
190
+ if(owner == address(registerable)) {
191
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
192
+ }
193
+
194
+ if(owner == address(0)) {
195
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
196
+ }
197
+
198
+ if(getRegistry().isRegistered(owner)) {
199
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
200
+ }
201
+ }
202
+
203
+ function _verifyObjectInfo(
204
+ IRegistry.ObjectInfo memory info,
205
+ ObjectType expectedType
206
+ )
207
+ internal
208
+ virtual
209
+ view
210
+ {
211
+ if(info.objectAddress > address(0)) {
212
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
213
+ }
214
+
215
+ if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
216
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
217
+ }
218
+
219
+ address owner = info.initialOwner;
220
+
221
+ if(owner == address(0)) {
222
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
223
+ }
224
+
225
+ if(owner == msg.sender) {
226
+ revert ErrorRegistryServiceInvalidInitialOwner(owner);
227
+ }
228
+
229
+ if(getRegistry().isRegistered(owner)) {
230
+ ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
231
+ if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
232
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
233
+ }
234
+ }
235
+ }
236
+
237
+ // From IService
238
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
239
+ return REGISTRY();
240
+ }
241
+ }
@@ -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
+ {
25
+ if(authority == address(0)) {
26
+ revert ErrorRegistryAccessManagerAuthorityZero();
27
+ }
28
+
29
+ if(registry == address(0)) {
30
+ revert ErrorRegistryAccessManagerRegistryZero();
31
+ }
32
+
33
+ RegistryService srv = new RegistryService{ salt: salt }();
34
+ bytes memory data = abi.encode(registry, authority);
35
+ IVersionable versionable = initialize(
36
+ registry,
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
+ }