@etherisc/gif-next 0.0.2-fe77319 → 0.0.2-fe8cf39-182

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 (627) hide show
  1. package/README.md +427 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → authorization/AccessAdmin.sol/IAccessManagedChecker.json} +4 -4
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1509 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +864 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1008 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -498
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +772 -0
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +522 -574
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2429 -0
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1046 -0
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +748 -0
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  110. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  111. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  116. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  118. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  120. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  122. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  124. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  126. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  128. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  130. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  132. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  134. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  136. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
  138. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  140. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  142. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  144. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  146. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  148. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  150. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  152. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  154. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  156. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  158. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  160. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  162. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +597 -0
  164. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  166. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  168. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  170. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  172. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +453 -0
  174. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  176. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  178. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  180. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  182. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  184. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  185. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  186. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  188. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  190. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +827 -0
  192. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1054 -115
  194. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1043 -0
  196. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  198. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +1567 -153
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1269 -0
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  219. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  245. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +147 -0
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +329 -0
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  253. package/artifacts/contracts/shared/IService.sol/IService.json +399 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +378 -0
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  273. package/artifacts/contracts/shared/Service.sol/Service.json +453 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1494 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  284. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +469 -0
  286. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  287. package/artifacts/contracts/staking/Staking.sol/Staking.json +1917 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +796 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  360. package/contracts/accounting/AccountingService.sol +262 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +45 -0
  363. package/contracts/authorization/AccessAdmin.sol +689 -0
  364. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  365. package/contracts/authorization/Authorization.sol +337 -0
  366. package/contracts/authorization/IAccess.sol +49 -0
  367. package/contracts/authorization/IAccessAdmin.sol +143 -0
  368. package/contracts/authorization/IAuthorization.sol +74 -0
  369. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  370. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  371. package/contracts/distribution/BasicDistribution.sol +141 -0
  372. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  373. package/contracts/distribution/Distribution.sol +289 -0
  374. package/contracts/distribution/DistributionService.sol +358 -0
  375. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  376. package/contracts/distribution/IDistributionComponent.sol +52 -0
  377. package/contracts/distribution/IDistributionService.sol +101 -0
  378. package/contracts/examples/fire/DamageLevel.sol +59 -0
  379. package/contracts/examples/fire/FirePool.sol +90 -0
  380. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  381. package/contracts/examples/fire/FireProduct.sol +438 -0
  382. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  383. package/contracts/examples/fire/FireUSD.sol +26 -0
  384. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  385. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  387. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  388. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  390. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  391. package/contracts/instance/BundleSet.sol +130 -0
  392. package/contracts/instance/IInstance.sol +65 -15
  393. package/contracts/instance/IInstanceService.sol +73 -0
  394. package/contracts/instance/Instance.sol +237 -46
  395. package/contracts/instance/InstanceAdmin.sol +437 -0
  396. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  397. package/contracts/instance/InstanceReader.sol +637 -0
  398. package/contracts/instance/InstanceService.sol +416 -0
  399. package/contracts/instance/InstanceServiceManager.sol +39 -0
  400. package/contracts/instance/InstanceStore.sol +298 -0
  401. package/contracts/instance/RiskSet.sol +118 -0
  402. package/contracts/instance/base/BalanceStore.sol +123 -0
  403. package/contracts/instance/base/Cloneable.sol +28 -0
  404. package/contracts/instance/base/ObjectCounter.sol +20 -0
  405. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  406. package/contracts/instance/base/ObjectSet.sol +77 -0
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +20 -0
  409. package/contracts/instance/module/IComponents.sol +51 -0
  410. package/contracts/instance/module/IDistribution.sol +42 -0
  411. package/contracts/instance/module/IPolicy.sol +85 -0
  412. package/contracts/instance/module/IRisk.sol +14 -0
  413. package/contracts/mock/Dip.sol +26 -0
  414. package/contracts/oracle/BasicOracle.sol +47 -0
  415. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  416. package/contracts/oracle/IOracle.sol +36 -0
  417. package/contracts/oracle/IOracleComponent.sol +33 -0
  418. package/contracts/oracle/IOracleService.sol +66 -0
  419. package/contracts/oracle/Oracle.sol +156 -0
  420. package/contracts/oracle/OracleService.sol +310 -0
  421. package/contracts/oracle/OracleServiceManager.sol +39 -0
  422. package/contracts/pool/BasicPool.sol +175 -0
  423. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  424. package/contracts/pool/BundleService.sol +395 -0
  425. package/contracts/pool/BundleServiceManager.sol +39 -0
  426. package/contracts/pool/IBundleService.sol +115 -0
  427. package/contracts/pool/IPoolComponent.sol +62 -0
  428. package/contracts/pool/IPoolService.sol +165 -0
  429. package/contracts/pool/Pool.sol +345 -0
  430. package/contracts/pool/PoolLib.sol +216 -0
  431. package/contracts/pool/PoolService.sol +757 -0
  432. package/contracts/pool/PoolServiceManager.sol +39 -0
  433. package/contracts/product/ApplicationService.sol +259 -0
  434. package/contracts/product/ApplicationServiceManager.sol +38 -0
  435. package/contracts/product/BasicProduct.sol +51 -0
  436. package/contracts/product/BasicProductAuthorization.sol +56 -0
  437. package/contracts/product/ClaimService.sol +632 -0
  438. package/contracts/product/ClaimServiceManager.sol +38 -0
  439. package/contracts/product/IApplicationService.sol +66 -0
  440. package/contracts/product/IClaimService.sol +135 -0
  441. package/contracts/product/IPolicyService.sol +95 -0
  442. package/contracts/product/IPricingService.sol +39 -0
  443. package/contracts/product/IProductComponent.sol +62 -0
  444. package/contracts/product/IRiskService.sol +33 -0
  445. package/contracts/product/PolicyService.sol +682 -0
  446. package/contracts/product/PolicyServiceLib.sol +65 -0
  447. package/contracts/product/PolicyServiceManager.sol +39 -0
  448. package/contracts/product/PricingService.sol +304 -0
  449. package/contracts/product/PricingServiceManager.sol +39 -0
  450. package/contracts/product/Product.sol +478 -0
  451. package/contracts/product/RiskService.sol +145 -0
  452. package/contracts/product/RiskServiceManager.sol +39 -0
  453. package/contracts/registry/ChainNft.sol +249 -0
  454. package/contracts/registry/IRegistry.sol +151 -51
  455. package/contracts/registry/IRegistryService.sol +62 -0
  456. package/contracts/registry/IRelease.sol +26 -0
  457. package/contracts/registry/ITransferInterceptor.sol +6 -0
  458. package/contracts/registry/Registry.sol +660 -127
  459. package/contracts/registry/RegistryAdmin.sol +354 -0
  460. package/contracts/registry/RegistryService.sol +241 -0
  461. package/contracts/registry/RegistryServiceManager.sol +53 -0
  462. package/contracts/registry/ReleaseAdmin.sol +245 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  464. package/contracts/registry/ReleaseRegistry.sol +511 -0
  465. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  466. package/contracts/registry/TokenRegistry.sol +313 -0
  467. package/contracts/shared/Component.sol +227 -0
  468. package/contracts/shared/ComponentService.sol +692 -0
  469. package/contracts/shared/ComponentServiceManager.sol +38 -0
  470. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  471. package/contracts/shared/ContractLib.sol +253 -0
  472. package/contracts/shared/IComponent.sol +61 -0
  473. package/contracts/shared/IComponentService.sol +112 -0
  474. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  475. package/contracts/shared/IKeyValueStore.sol +54 -0
  476. package/contracts/shared/ILifecycle.sol +31 -0
  477. package/contracts/shared/INftOwnable.sol +25 -0
  478. package/contracts/shared/IPolicyHolder.sol +35 -0
  479. package/contracts/shared/IRegisterable.sol +37 -0
  480. package/contracts/shared/IRegistryLinked.sol +11 -0
  481. package/contracts/shared/IService.sol +23 -0
  482. package/contracts/shared/InitializableERC165.sol +27 -0
  483. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  484. package/contracts/shared/KeyValueStore.sol +131 -0
  485. package/contracts/shared/Lifecycle.sol +88 -0
  486. package/contracts/shared/NftIdSet.sol +65 -0
  487. package/contracts/shared/NftOwnable.sol +127 -0
  488. package/contracts/shared/PolicyHolder.sol +62 -0
  489. package/contracts/shared/Registerable.sol +109 -0
  490. package/contracts/shared/RegistryLinked.sol +38 -0
  491. package/contracts/shared/Service.sol +65 -0
  492. package/contracts/shared/TokenHandler.sol +341 -0
  493. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  494. package/contracts/staking/IStaking.sol +171 -0
  495. package/contracts/staking/IStakingService.sol +172 -0
  496. package/contracts/staking/StakeManagerLib.sol +276 -0
  497. package/contracts/staking/Staking.sol +546 -0
  498. package/contracts/staking/StakingLifecycle.sol +23 -0
  499. package/contracts/staking/StakingManager.sol +52 -0
  500. package/contracts/staking/StakingReader.sol +180 -0
  501. package/contracts/staking/StakingService.sol +464 -0
  502. package/contracts/staking/StakingServiceManager.sol +45 -0
  503. package/contracts/staking/StakingStore.sol +606 -0
  504. package/contracts/staking/TargetManagerLib.sol +211 -0
  505. package/contracts/type/AddressSet.sol +58 -0
  506. package/contracts/type/Amount.sol +150 -0
  507. package/contracts/type/Blocknumber.sol +142 -0
  508. package/contracts/type/ClaimId.sol +80 -0
  509. package/contracts/type/DistributorType.sol +55 -0
  510. package/contracts/type/Fee.sol +66 -0
  511. package/contracts/type/Key32.sol +50 -0
  512. package/contracts/type/Key32Set.sol +62 -0
  513. package/contracts/type/NftId.sol +85 -0
  514. package/contracts/type/NftIdSet.sol +62 -0
  515. package/contracts/type/ObjectType.sol +303 -0
  516. package/contracts/type/PayoutId.sol +82 -0
  517. package/contracts/type/Referral.sol +90 -0
  518. package/contracts/type/RequestId.sol +75 -0
  519. package/contracts/type/RiskId.sol +74 -0
  520. package/contracts/type/RoleId.sol +182 -0
  521. package/contracts/type/Seconds.sol +101 -0
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/type/StateId.sol +149 -0
  524. package/contracts/type/String.sol +53 -0
  525. package/contracts/type/Timestamp.sol +141 -0
  526. package/contracts/type/UFixed.sol +245 -0
  527. package/contracts/type/Version.sol +120 -0
  528. package/contracts/upgradeability/IVersionable.sol +53 -0
  529. package/contracts/upgradeability/ProxyManager.sol +232 -0
  530. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  531. package/contracts/upgradeability/Versionable.sol +59 -0
  532. package/package.json +26 -7
  533. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  534. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  535. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  536. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  537. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  539. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  540. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  541. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  542. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -195
  543. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  544. package/artifacts/contracts/components/Product.sol/Product.json +0 -213
  545. package/artifacts/contracts/experiment/A.sol/A.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/A.sol/A.json +0 -128
  547. package/artifacts/contracts/experiment/A.sol/AShared.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/A.sol/AShared.json +0 -42
  549. package/artifacts/contracts/experiment/B.sol/B.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/B.sol/B.json +0 -76
  551. package/artifacts/contracts/experiment/C.sol/C.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/C.sol/C.json +0 -89
  553. package/artifacts/contracts/experiment/IA.sol/IA.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/IA.sol/IA.json +0 -128
  555. package/artifacts/contracts/experiment/IA.sol/ISharedA.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/IA.sol/ISharedA.json +0 -37
  557. package/artifacts/contracts/experiment/IB.sol/IB.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/IB.sol/IB.json +0 -50
  559. package/artifacts/contracts/experiment/IC.sol/IC.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/IC.sol/IC.json +0 -63
  561. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  562. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  563. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  564. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  565. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  566. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  567. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  568. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  569. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  570. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  571. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
  573. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  574. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  575. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  576. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  577. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  578. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  580. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  581. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  582. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  583. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  584. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  585. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  586. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  587. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  589. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  590. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  591. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  592. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  593. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  595. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  597. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
  599. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  600. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  601. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  602. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  603. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  604. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  605. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  606. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  607. package/contracts/components/Component.sol +0 -62
  608. package/contracts/components/IPool.sol +0 -9
  609. package/contracts/components/IProduct.sol +0 -11
  610. package/contracts/components/Pool.sol +0 -29
  611. package/contracts/components/Product.sol +0 -65
  612. package/contracts/experiment/A.sol +0 -56
  613. package/contracts/experiment/B.sol +0 -23
  614. package/contracts/experiment/C.sol +0 -28
  615. package/contracts/experiment/IA.sol +0 -18
  616. package/contracts/experiment/IB.sol +0 -9
  617. package/contracts/experiment/IC.sol +0 -11
  618. package/contracts/instance/access/Access.sol +0 -218
  619. package/contracts/instance/access/IAccess.sol +0 -83
  620. package/contracts/instance/component/ComponentModule.sol +0 -259
  621. package/contracts/instance/component/IComponent.sol +0 -94
  622. package/contracts/instance/policy/IPolicy.sol +0 -66
  623. package/contracts/instance/policy/PolicyModule.sol +0 -106
  624. package/contracts/instance/pool/IPoolModule.sol +0 -40
  625. package/contracts/instance/pool/PoolModule.sol +0 -83
  626. package/contracts/instance/product/IProductService.sol +0 -45
  627. package/contracts/instance/product/ProductService.sol +0 -105
@@ -0,0 +1,354 @@
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 {IComponent} from "../shared/IComponent.sol";
8
+ import {IRegistry} from "./IRegistry.sol";
9
+ import {IService} from "../shared/IService.sol";
10
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
11
+ import {IStaking} from "../staking/IStaking.sol";
12
+ import {ObjectType, ObjectTypeLib, ALL, COMPONENT, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
13
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
14
+ import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
15
+ import {Staking} from "../staking/Staking.sol";
16
+ import {StakingStore} from "../staking/StakingStore.sol";
17
+ import {TokenHandler} from "../shared/TokenHandler.sol";
18
+ import {TokenRegistry} from "./TokenRegistry.sol";
19
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
20
+
21
+ /*
22
+ 1) GIF_MANAGER_ROLE
23
+ - can have arbitrary number of members
24
+ - responsible for release preparation
25
+ - responsible for services registrations
26
+ - responsible for token registration and activation
27
+
28
+ 2) GIF_ADMIN_ROLE
29
+ - admin of GIF_MANAGER_ROLE
30
+ - MUST have 1 member at any time
31
+ - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
32
+ - responsible for creation, activation and locking/unlocking of releases
33
+ */
34
+
35
+ /// @dev The RegistryAdmin contract implements the central authorization for the GIF core contracts.
36
+ /// These are the release independent registry and staking contracts and their respective helper contracts.
37
+ /// The RegistryAdmin also manages the access from service contracts to the GIF core contracts
38
+ contract RegistryAdmin is
39
+ AccessAdmin
40
+ {
41
+ /// @dev gif core roles
42
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
43
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
44
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
45
+ string public constant STAKING_ROLE_NAME = "StakingRole";
46
+
47
+ /// @dev gif roles for external contracts
48
+ string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
49
+ string public constant COMPONENT_SERVICE_ROLE_NAME = "ComponentServiceRole";
50
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
51
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
52
+
53
+ /// @dev gif core targets
54
+ string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
55
+ string public constant REGISTRY_TARGET_NAME = "Registry";
56
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
57
+ string public constant STAKING_TARGET_NAME = "Staking";
58
+ string public constant STAKING_TH_TARGET_NAME = "StakingTH";
59
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
60
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
61
+ string public constant TOKEN_HANDLER_TARGET_NAME = "TokenHandler";
62
+
63
+ uint8 public constant MAX_NUM_RELEASES = 99;
64
+
65
+ address internal _registry;
66
+ address private _releaseRegistry;
67
+ address private _tokenRegistry;
68
+ address private _staking;
69
+ address private _stakingStore;
70
+
71
+ constructor() {
72
+ initialize(new AccessManagerCloneable());
73
+ }
74
+
75
+ function completeSetup(
76
+ IRegistry registry,
77
+ address gifAdmin,
78
+ address gifManager
79
+ )
80
+ public
81
+ virtual
82
+ reinitializer(type(uint8).max)
83
+ onlyDeployer()
84
+ {
85
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
86
+ accessManager.completeSetup(
87
+ address(registry),
88
+ VersionPartLib.toVersionPart(type(uint8).max),
89
+ false);
90
+
91
+ _registry = address(registry);
92
+ _releaseRegistry = registry.getReleaseRegistryAddress();
93
+ _tokenRegistry = registry.getTokenRegistryAddress();
94
+ _staking = registry.getStakingAddress();
95
+ _stakingStore = address(
96
+ IStaking(_staking).getStakingStore());
97
+
98
+ _createTargets();
99
+
100
+ _setupGifAdminRole(gifAdmin);
101
+ _setupGifManagerRole(gifManager);
102
+
103
+ _setupRegistryRoles();
104
+ _setupStakingRoles();
105
+ }
106
+
107
+ /*function transferAdmin(address to)
108
+ external
109
+ restricted // only with GIF_ADMIN_ROLE or nft owner
110
+ {
111
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
112
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
113
+ }*/
114
+
115
+ function grantServiceRoleForAllVersions(IService service, ObjectType domain)
116
+ external
117
+ restricted()
118
+ {
119
+ _grantRoleToAccount(
120
+ RoleIdLib.roleForTypeAndAllVersions(domain),
121
+ address(service));
122
+ }
123
+
124
+ //--- view functions ----------------------------------------------------//
125
+
126
+ function getGifAdminRole() external view returns (RoleId) {
127
+ return GIF_ADMIN_ROLE();
128
+ }
129
+
130
+ function getGifManagerRole() external view returns (RoleId) {
131
+ return GIF_MANAGER_ROLE();
132
+ }
133
+
134
+ //--- private initialization functions -------------------------------------------//
135
+
136
+ function _createTargets()
137
+ private
138
+ onlyInitializing()
139
+ {
140
+ IStaking staking = IStaking(_staking);
141
+ address tokenHandler = address(staking.getTokenHandler());
142
+
143
+ _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, false, false);
144
+ _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
145
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
146
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
147
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
148
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
149
+ _createTarget(tokenHandler, TOKEN_HANDLER_TARGET_NAME, true, false);
150
+ }
151
+
152
+ function _setupGifAdminRole(address gifAdmin)
153
+ private
154
+ onlyInitializing()
155
+ {
156
+ // create gif admin role
157
+ _createRole(
158
+ GIF_ADMIN_ROLE(),
159
+ toRole({
160
+ adminRoleId: ADMIN_ROLE(),
161
+ roleType: RoleType.Gif,
162
+ maxMemberCount: 2, // TODO decide on max member count
163
+ name: GIF_ADMIN_ROLE_NAME}));
164
+
165
+ // grant permissions to the gif admin role for registry contract
166
+ FunctionInfo[] memory functions;
167
+ functions = new FunctionInfo[](1);
168
+ functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
169
+ _authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
170
+
171
+ // grant permissions to the gif admin role for release registry contract
172
+ functions = new FunctionInfo[](3);
173
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
174
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
175
+ functions[2] = toFunction(ReleaseRegistry.setActive.selector, "setActive");
176
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
177
+
178
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
179
+ }
180
+
181
+ function _setupGifManagerRole(address gifManager)
182
+ private
183
+ onlyInitializing()
184
+ {
185
+ // create gif manager role
186
+ _createRole(
187
+ GIF_MANAGER_ROLE(),
188
+ toRole({
189
+ adminRoleId: ADMIN_ROLE(),
190
+ roleType: RoleType.Gif,
191
+ maxMemberCount: 1, // TODO decide on max member count
192
+ name: GIF_MANAGER_ROLE_NAME}));
193
+
194
+ // grant permissions to the gif manager role for token registry contract
195
+ FunctionInfo[] memory functions;
196
+ functions = new FunctionInfo[](5);
197
+ functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
198
+ functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
199
+ functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
200
+ functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
201
+ // TODO find a better way (only needed for testing)
202
+ functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
203
+ _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
204
+
205
+ // grant permissions to the gif manager role for release registry contract
206
+ functions = new FunctionInfo[](2);
207
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
208
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
209
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
210
+
211
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
212
+ }
213
+
214
+ function _setupRegistryRoles()
215
+ private
216
+ onlyInitializing()
217
+ {
218
+ // TODO use RELEASE_REGISTRY_ROLE instead
219
+ // create and grant release registry role
220
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
221
+ _createRole(
222
+ releaseRegistryRoleId,
223
+ toRole({
224
+ adminRoleId: ADMIN_ROLE(),
225
+ roleType: RoleType.Contract,
226
+ maxMemberCount: 1,
227
+ name: RELEASE_REGISTRY_ROLE_NAME}));
228
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
229
+
230
+ // grant permissions to the release registry role for release admin contract
231
+ FunctionInfo[] memory functions;
232
+ functions = new FunctionInfo[](1);
233
+ functions[0] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
234
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
235
+
236
+ // grant permissions to the release registry role for registry contract
237
+ functions = new FunctionInfo[](1);
238
+ functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
239
+ _authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
240
+
241
+ // create registry service role
242
+ RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
243
+ _createRole(
244
+ registryServiceRoleId,
245
+ toRole({
246
+ adminRoleId: ADMIN_ROLE(),
247
+ roleType: RoleType.Contract,
248
+ maxMemberCount: MAX_NUM_RELEASES,
249
+ name: REGISTRY_SERVICE_ROLE_NAME}));
250
+
251
+ // grant permissions to the registry service role for registry contract
252
+ functions = new FunctionInfo[](2);
253
+ functions[0] = toFunction(IRegistry.register.selector, "register");
254
+ functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
255
+ _authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
256
+ }
257
+
258
+
259
+ function _setupStakingRoles()
260
+ private
261
+ onlyInitializing()
262
+ {
263
+ // create and grant staking contract role
264
+ RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
265
+ _createRole(
266
+ stakingRoleId,
267
+ toRole({
268
+ adminRoleId: ADMIN_ROLE(),
269
+ roleType: RoleType.Contract,
270
+ maxMemberCount: 1,
271
+ name: STAKING_ROLE_NAME}));
272
+ _grantRoleToAccount(stakingRoleId, _staking);
273
+
274
+ // grant permissions to the staking role for staking store contract
275
+ FunctionInfo[] memory functions;
276
+ functions = new FunctionInfo[](14);
277
+ functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
278
+ functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
279
+ functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
280
+ functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
281
+ functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
282
+ functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
283
+ functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
284
+ functions[7] = toFunction(StakingStore.create.selector, "create");
285
+ functions[8] = toFunction(StakingStore.update.selector, "update");
286
+ functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
287
+ functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
288
+ functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
289
+ functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
290
+ functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
291
+ _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
292
+
293
+ // grant permissions to the staking role for token handler contract
294
+ IStaking staking = IStaking(_staking);
295
+ functions = new FunctionInfo[](2);
296
+ functions[0] = toFunction(TokenHandler.pullToken.selector, "pullToken");
297
+ functions[1] = toFunction(TokenHandler.pushToken.selector, "pushToken");
298
+ _authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
299
+
300
+ // create staking service role
301
+ RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
302
+ _createRole(
303
+ stakingServiceRoleId,
304
+ toRole({
305
+ adminRoleId: ADMIN_ROLE(),
306
+ roleType: RoleType.Contract,
307
+ maxMemberCount: MAX_NUM_RELEASES,
308
+ name: STAKING_SERVICE_ROLE_NAME}));
309
+
310
+ // grant permissions to the staking service role for staking contract
311
+ functions = new FunctionInfo[](11);
312
+ functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
313
+ functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
314
+ functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
315
+ functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
316
+ functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
317
+ functions[5] = toFunction(IStaking.createStake.selector, "createStake");
318
+ functions[6] = toFunction(IStaking.stake.selector, "stake");
319
+ functions[7] = toFunction(IStaking.unstake.selector, "unstake");
320
+ functions[8] = toFunction(IStaking.restake.selector, "restake");
321
+ functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
322
+ functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
323
+ _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
324
+
325
+ // grant permissions to the staking service role for staking token handler
326
+ functions = new FunctionInfo[](3);
327
+ functions[0] = toFunction(TokenHandler.approve.selector, "approve");
328
+ functions[1] = toFunction(TokenHandler.pullToken.selector, "pullToken");
329
+ functions[2] = toFunction(TokenHandler.pushToken.selector, "pushToken");
330
+ _authorizeTargetFunctions(
331
+ address(IComponent(_staking).getTokenHandler()), stakingServiceRoleId, functions);
332
+
333
+ // create pool service role
334
+ RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
335
+ _createRole(
336
+ poolServiceRoleId,
337
+ toRole({
338
+ adminRoleId: ADMIN_ROLE(),
339
+ roleType: RoleType.Contract,
340
+ maxMemberCount: MAX_NUM_RELEASES,
341
+ name: POOL_SERVICE_ROLE_NAME}));
342
+
343
+ // grant permissions to the pool service role for staking contract
344
+ functions = new FunctionInfo[](2);
345
+ functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
346
+ functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
347
+ _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
348
+
349
+ // grant permissions to public role for staking contract
350
+ functions = new FunctionInfo[](1);
351
+ functions[0] = toFunction(Staking.approveTokenHandler.selector, "approveTokenHandler");
352
+ _authorizeTargetFunctions(_staking, PUBLIC_ROLE(), functions);
353
+ }
354
+ }
@@ -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 authority,
37
+ address registry
38
+ ) = abi.decode(data, (address, address));
39
+
40
+ __Service_init(authority, registry, 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(authority, registry);
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
+ }