@etherisc/gif-next 0.0.2-8459327 → 0.0.2-8469187-381

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 (663) hide show
  1. package/README.md +222 -77
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +817 -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 +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +939 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +838 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -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 +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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 +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +734 -451
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1102 -0
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +810 -530
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2526 -0
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1348 -0
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +792 -0
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  108. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  109. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  110. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  111. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  112. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  113. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  114. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  115. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  116. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  117. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  118. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  120. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  122. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  124. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  126. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  128. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  130. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  131. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  132. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  134. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  136. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  138. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  140. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  142. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  144. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  145. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  146. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  148. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  149. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  150. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  152. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  153. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  154. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  156. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  157. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  158. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  160. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  161. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  162. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  163. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  164. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  166. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  168. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  170. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  171. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  172. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  174. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  175. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  176. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  177. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  178. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
  180. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  182. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  183. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  184. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  186. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  187. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  188. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  190. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  191. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  192. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  193. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  194. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  195. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  196. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  198. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1055 -113
  200. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  201. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  202. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  204. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  206. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/Registry.sol/Registry.json +1543 -176
  208. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  210. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  211. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  212. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  213. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  214. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  215. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +793 -0
  216. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  218. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  220. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  221. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  222. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  223. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  224. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  225. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  226. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  228. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  230. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  235. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  236. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  238. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  240. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +620 -0
  242. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  244. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  245. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  246. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  248. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  249. package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +72 -72
  250. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  251. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  252. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +179 -158
  254. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  255. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  256. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  257. package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
  258. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  259. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  260. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  261. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  262. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  274. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  275. package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  280. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  286. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  288. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  289. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  306. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  307. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  308. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  310. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  336. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  338. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  340. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  342. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  344. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  346. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  348. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  354. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  356. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  358. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  360. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  362. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  364. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  365. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  366. package/contracts/accounting/AccountingService.sol +274 -0
  367. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  368. package/contracts/accounting/IAccountingService.sol +47 -0
  369. package/contracts/authorization/AccessAdmin.sol +679 -0
  370. package/contracts/authorization/AccessAdminLib.sol +678 -0
  371. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  372. package/contracts/authorization/Authorization.sol +190 -0
  373. package/contracts/authorization/IAccess.sol +66 -0
  374. package/contracts/authorization/IAccessAdmin.sol +142 -0
  375. package/contracts/authorization/IAuthorization.sol +26 -0
  376. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  377. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  378. package/contracts/distribution/BasicDistribution.sol +140 -0
  379. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  380. package/contracts/distribution/Distribution.sol +245 -0
  381. package/contracts/distribution/DistributionService.sol +448 -0
  382. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  383. package/contracts/distribution/IDistributionComponent.sol +45 -0
  384. package/contracts/distribution/IDistributionService.sol +115 -0
  385. package/contracts/examples/fire/DamageLevel.sol +59 -0
  386. package/contracts/examples/fire/FirePool.sol +86 -0
  387. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  388. package/contracts/examples/fire/FireProduct.sol +433 -0
  389. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  390. package/contracts/examples/fire/FireUSD.sol +26 -0
  391. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  392. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  393. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  394. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  395. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  396. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  397. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  398. package/contracts/instance/BaseStore.sol +93 -0
  399. package/contracts/instance/BundleSet.sol +130 -0
  400. package/contracts/instance/IBaseStore.sol +37 -0
  401. package/contracts/instance/IInstance.sol +155 -17
  402. package/contracts/instance/IInstanceService.sol +119 -0
  403. package/contracts/instance/Instance.sol +335 -48
  404. package/contracts/instance/InstanceAdmin.sol +307 -0
  405. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  406. package/contracts/instance/InstanceReader.sol +606 -0
  407. package/contracts/instance/InstanceService.sol +514 -0
  408. package/contracts/instance/InstanceServiceManager.sol +39 -0
  409. package/contracts/instance/InstanceStore.sol +323 -0
  410. package/contracts/instance/ProductStore.sol +290 -0
  411. package/contracts/instance/RiskSet.sol +126 -0
  412. package/contracts/instance/TargetNames.sol +10 -0
  413. package/contracts/instance/base/BalanceStore.sol +121 -0
  414. package/contracts/instance/base/Cloneable.sol +28 -0
  415. package/contracts/instance/base/ObjectCounter.sol +20 -0
  416. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  417. package/contracts/instance/base/ObjectSet.sol +77 -0
  418. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  419. package/contracts/instance/module/IBundle.sol +21 -0
  420. package/contracts/instance/module/IComponents.sol +60 -0
  421. package/contracts/instance/module/IDistribution.sol +54 -0
  422. package/contracts/instance/module/IPolicy.sol +105 -0
  423. package/contracts/instance/module/IRisk.sol +16 -0
  424. package/contracts/mock/Dip.sol +26 -0
  425. package/contracts/oracle/BasicOracle.sol +44 -0
  426. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  427. package/contracts/oracle/IOracle.sol +41 -0
  428. package/contracts/oracle/IOracleComponent.sol +33 -0
  429. package/contracts/oracle/IOracleService.sol +66 -0
  430. package/contracts/oracle/Oracle.sol +152 -0
  431. package/contracts/oracle/OracleService.sol +310 -0
  432. package/contracts/oracle/OracleServiceManager.sol +39 -0
  433. package/contracts/pool/BasicPool.sol +161 -0
  434. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  435. package/contracts/pool/BundleService.sol +386 -0
  436. package/contracts/pool/BundleServiceManager.sol +39 -0
  437. package/contracts/pool/IBundleService.sol +116 -0
  438. package/contracts/pool/IPoolComponent.sol +62 -0
  439. package/contracts/pool/IPoolService.sol +170 -0
  440. package/contracts/pool/Pool.sol +331 -0
  441. package/contracts/pool/PoolLib.sol +341 -0
  442. package/contracts/pool/PoolService.sol +614 -0
  443. package/contracts/pool/PoolServiceManager.sol +39 -0
  444. package/contracts/product/ApplicationService.sol +327 -0
  445. package/contracts/product/ApplicationServiceManager.sol +38 -0
  446. package/contracts/product/BasicProduct.sol +48 -0
  447. package/contracts/product/BasicProductAuthorization.sol +63 -0
  448. package/contracts/product/ClaimService.sol +626 -0
  449. package/contracts/product/ClaimServiceManager.sol +38 -0
  450. package/contracts/product/IApplicationService.sol +88 -0
  451. package/contracts/product/IClaimService.sol +136 -0
  452. package/contracts/product/IPolicyService.sol +102 -0
  453. package/contracts/product/IPricingService.sol +40 -0
  454. package/contracts/product/IProductComponent.sol +62 -0
  455. package/contracts/product/IRiskService.sol +48 -0
  456. package/contracts/product/PolicyService.sol +645 -0
  457. package/contracts/product/PolicyServiceLib.sol +139 -0
  458. package/contracts/product/PolicyServiceManager.sol +39 -0
  459. package/contracts/product/PricingService.sol +306 -0
  460. package/contracts/product/PricingServiceManager.sol +39 -0
  461. package/contracts/product/Product.sol +491 -0
  462. package/contracts/product/RiskService.sol +189 -0
  463. package/contracts/product/RiskServiceManager.sol +39 -0
  464. package/contracts/registry/ChainNft.sol +175 -61
  465. package/contracts/registry/IRegistry.sol +143 -51
  466. package/contracts/registry/IRegistryService.sol +62 -0
  467. package/contracts/registry/IRelease.sol +29 -0
  468. package/contracts/registry/ITransferInterceptor.sol +6 -0
  469. package/contracts/registry/Registry.sol +667 -140
  470. package/contracts/registry/RegistryAdmin.sol +173 -0
  471. package/contracts/registry/RegistryAuthorization.sol +337 -0
  472. package/contracts/registry/RegistryService.sol +241 -0
  473. package/contracts/registry/RegistryServiceManager.sol +53 -0
  474. package/contracts/registry/ReleaseAdmin.sol +199 -0
  475. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  476. package/contracts/registry/ReleaseRegistry.sol +525 -0
  477. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  478. package/contracts/registry/TokenRegistry.sol +317 -0
  479. package/contracts/shared/Component.sol +210 -0
  480. package/contracts/shared/ComponentService.sol +691 -0
  481. package/contracts/shared/ComponentServiceManager.sol +38 -0
  482. package/contracts/shared/ContractLib.sol +312 -0
  483. package/contracts/shared/IComponent.sol +58 -0
  484. package/contracts/shared/IComponentService.sol +111 -0
  485. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  486. package/contracts/shared/ILifecycle.sol +31 -0
  487. package/contracts/shared/INftOwnable.sol +27 -0
  488. package/contracts/shared/IPolicyHolder.sol +35 -0
  489. package/contracts/shared/IRegisterable.sol +36 -0
  490. package/contracts/shared/IRegistryLinked.sol +11 -0
  491. package/contracts/shared/IService.sol +23 -0
  492. package/contracts/shared/InitializableERC165.sol +35 -0
  493. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  494. package/contracts/shared/Lifecycle.sol +88 -0
  495. package/contracts/shared/NftIdSet.sol +65 -0
  496. package/contracts/shared/NftOwnable.sol +129 -0
  497. package/contracts/shared/PolicyHolder.sol +63 -0
  498. package/contracts/shared/Registerable.sol +106 -0
  499. package/contracts/shared/RegistryLinked.sol +38 -0
  500. package/contracts/shared/Service.sol +67 -0
  501. package/contracts/shared/TokenHandler.sol +342 -0
  502. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  503. package/contracts/staking/IStaking.sol +366 -0
  504. package/contracts/staking/IStakingService.sol +127 -0
  505. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  506. package/contracts/staking/Staking.sol +797 -0
  507. package/contracts/staking/StakingLib.sol +195 -0
  508. package/contracts/staking/StakingManager.sol +53 -0
  509. package/contracts/staking/StakingReader.sol +171 -0
  510. package/contracts/staking/StakingService.sol +321 -0
  511. package/contracts/staking/StakingServiceManager.sol +46 -0
  512. package/contracts/staking/StakingStore.sol +1368 -0
  513. package/contracts/staking/TargetHandler.sol +132 -0
  514. package/contracts/staking/TargetManagerLib.sol +234 -0
  515. package/contracts/type/AddressSet.sol +58 -0
  516. package/contracts/type/Amount.sol +154 -0
  517. package/contracts/{types → type}/Blocknumber.sol +38 -19
  518. package/contracts/type/ChainId.sol +101 -0
  519. package/contracts/type/ClaimId.sol +80 -0
  520. package/contracts/type/DistributorType.sol +55 -0
  521. package/contracts/type/Fee.sol +66 -0
  522. package/contracts/type/Key32.sol +50 -0
  523. package/contracts/type/Key32Set.sol +62 -0
  524. package/contracts/type/NftId.sol +85 -0
  525. package/contracts/type/NftIdSet.sol +62 -0
  526. package/contracts/type/ObjectType.sol +307 -0
  527. package/contracts/type/PayoutId.sol +82 -0
  528. package/contracts/type/Referral.sol +90 -0
  529. package/contracts/type/RequestId.sol +75 -0
  530. package/contracts/type/RiskId.sol +75 -0
  531. package/contracts/type/RoleId.sol +180 -0
  532. package/contracts/type/Seconds.sol +120 -0
  533. package/contracts/type/Selector.sol +107 -0
  534. package/contracts/type/StateId.sol +149 -0
  535. package/contracts/type/String.sol +65 -0
  536. package/contracts/{types → type}/Timestamp.sol +53 -12
  537. package/contracts/{types → type}/UFixed.sol +97 -39
  538. package/contracts/type/Version.sol +159 -0
  539. package/contracts/upgradeability/IVersionable.sol +56 -0
  540. package/contracts/upgradeability/ProxyManager.sol +246 -0
  541. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  542. package/contracts/upgradeability/Versionable.sol +62 -0
  543. package/package.json +22 -8
  544. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  545. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  546. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  547. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  548. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  549. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  550. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  551. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  552. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  553. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  554. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  555. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  556. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  558. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  560. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  562. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  564. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  566. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  568. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  570. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  572. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  574. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  576. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  578. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  580. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  581. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  582. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  583. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  584. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  585. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  586. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  587. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  588. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  589. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  591. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  592. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  593. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  594. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  595. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  596. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  597. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  598. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  599. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  600. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  602. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  604. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  605. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  606. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  607. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  608. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  609. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  610. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  611. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  613. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  614. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  615. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  617. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  618. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  619. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  620. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  621. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  622. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  623. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  624. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  625. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  626. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  628. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  630. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  632. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  634. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  636. package/contracts/components/Component.sol +0 -60
  637. package/contracts/components/IPool.sol +0 -9
  638. package/contracts/components/IProduct.sol +0 -9
  639. package/contracts/components/Pool.sol +0 -22
  640. package/contracts/components/Product.sol +0 -55
  641. package/contracts/experiment/errors/Require.sol +0 -38
  642. package/contracts/experiment/errors/Revert.sol +0 -44
  643. package/contracts/experiment/inheritance/A.sol +0 -53
  644. package/contracts/experiment/inheritance/B.sol +0 -28
  645. package/contracts/experiment/inheritance/C.sol +0 -34
  646. package/contracts/experiment/inheritance/IA.sol +0 -13
  647. package/contracts/experiment/inheritance/IB.sol +0 -10
  648. package/contracts/experiment/inheritance/IC.sol +0 -12
  649. package/contracts/experiment/types/TypeA.sol +0 -47
  650. package/contracts/experiment/types/TypeB.sol +0 -29
  651. package/contracts/instance/access/Access.sol +0 -165
  652. package/contracts/instance/access/IAccess.sol +0 -63
  653. package/contracts/instance/component/ComponentModule.sol +0 -213
  654. package/contracts/instance/component/IComponent.sol +0 -73
  655. package/contracts/instance/policy/IPolicy.sol +0 -51
  656. package/contracts/instance/policy/PolicyModule.sol +0 -91
  657. package/contracts/instance/pool/IPoolModule.sol +0 -29
  658. package/contracts/instance/pool/PoolModule.sol +0 -73
  659. package/contracts/instance/product/IProductService.sol +0 -36
  660. package/contracts/instance/product/ProductService.sol +0 -112
  661. package/contracts/registry/IChainNft.sol +0 -21
  662. package/contracts/types/ChainId.sol +0 -38
  663. package/contracts/types/NftId.sol +0 -51
@@ -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
+ onlyInitializing
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
+ }
@@ -0,0 +1,199 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+ import {IService} from "../shared/IService.sol";
7
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
8
+
9
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
10
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
+ import {ObjectType, ObjectTypeLib, RELEASE} from "../type/ObjectType.sol";
13
+ import {RoleId, ADMIN_ROLE, RELEASE_REGISTRY_ROLE} from "../type/RoleId.sol";
14
+ import {Str} from "../type/String.sol";
15
+ import {VersionPart} from "../type/Version.sol";
16
+
17
+
18
+ /// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
19
+ /// There is one ReleaseAdmin contract per major GIF release.
20
+ /// Locking/unlocking of all services of a release is implemented in function setReleaseLocked.
21
+ contract ReleaseAdmin is
22
+ AccessAdmin
23
+ {
24
+ event LogReleaseAdminReleaseLockChanged(VersionPart release, bool locked);
25
+ event LogReleaseAdminServiceLockChanged(VersionPart release, address service, bool locked);
26
+
27
+ error ErrorReleaseAdminCallerNotReleaseRegistry(address caller);
28
+ error ErrorReleaseAdminNotService(address notService);
29
+ error ErrorReleaseAdminReleaseLockAlreadySetTo(bool locked);
30
+
31
+ /// @dev release core roles
32
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistry_Role";
33
+
34
+ /// @dev release core targets
35
+ string public constant RELEASE_ADMIN_TARGET_NAME = "ReleaseAdmin";
36
+
37
+ IServiceAuthorization internal _serviceAuthorization;
38
+
39
+
40
+ modifier onlyReleaseRegistry() {
41
+ (bool isMember, ) = _authority.hasRole(RELEASE_REGISTRY_ROLE().toInt(), msg.sender);
42
+ if(!isMember) {
43
+ revert ErrorReleaseAdminCallerNotReleaseRegistry(msg.sender);
44
+ }
45
+ _;
46
+ }
47
+
48
+
49
+ // @dev Only used for master release admin
50
+ constructor(address accessManager) {
51
+ initialize(
52
+ accessManager,
53
+ "MasterReleaseAdmin");
54
+ }
55
+
56
+
57
+ function completeSetup(
58
+ address registry,
59
+ address authorization,
60
+ VersionPart release,
61
+ address releaseRegistry
62
+ )
63
+ external
64
+ reinitializer(uint64(release.toInt()))
65
+ {
66
+ // checks
67
+ AccessAdminLib.checkRegistry(registry);
68
+
69
+ AccessManagerCloneable(
70
+ authority()).completeSetup(
71
+ registry,
72
+ release);
73
+
74
+ IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
75
+ _checkAuthorization(address(serviceAuthorization), RELEASE(), release, true, true);
76
+ _serviceAuthorization = serviceAuthorization;
77
+
78
+ // link nft ownability to registry
79
+ _linkToNftOwnable(registry);
80
+
81
+ _createRoles(_serviceAuthorization);
82
+
83
+ // setup release contract
84
+ _setupReleaseRegistry(releaseRegistry);
85
+
86
+ // relase services will be authorized one by one via authorizeService()
87
+ }
88
+
89
+
90
+ /// @dev Sets up authorizaion for specified service.
91
+ /// For all authorized services its authorized functions are enabled.
92
+ /// Permissioned function: Access is restricted to release registry.
93
+ function authorizeService(
94
+ IService service,
95
+ ObjectType serviceDomain,
96
+ VersionPart release
97
+ )
98
+ external
99
+ restricted()
100
+ {
101
+ _createServiceTargetAndRole(service, serviceDomain, release);
102
+
103
+ // authorize functions of service
104
+ Str serviceTarget = _serviceAuthorization.getServiceTarget(serviceDomain);
105
+ RoleId[] memory authorizedRoles = _serviceAuthorization.getAuthorizedRoles(serviceTarget);
106
+
107
+ for (uint256 i = 0; i < authorizedRoles.length; i++) {
108
+ _authorizeFunctions(
109
+ IAuthorization(address(_serviceAuthorization)),
110
+ serviceTarget,
111
+ authorizedRoles[i]);
112
+ }
113
+ }
114
+
115
+
116
+ /// @dev Locks/unlocks all release targets.
117
+ /// For all authorized services of release its authorized functions are disabled/enabled.
118
+ /// Permissioned function: Access is restricted to release registry.
119
+ /// Note: onlyReleaseRegistry() modifier is used to prevent dead lock.
120
+ function setReleaseLocked(bool locked)
121
+ external
122
+ onlyReleaseRegistry()
123
+ {
124
+ // checks
125
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
126
+ if(accessManager.isLocked() == locked) {
127
+ revert ErrorReleaseAdminReleaseLockAlreadySetTo(locked);
128
+ }
129
+
130
+ // effects
131
+ accessManager.setLocked(locked);
132
+
133
+ emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
134
+ }
135
+
136
+
137
+ /// @dev Lock/unlock specific service of release.
138
+ /// Permissioned function: Access is restricted to release registry.
139
+ function setServiceLocked(IService service, bool locked)
140
+ external
141
+ restricted()
142
+ {
143
+ // assume all targets except release admin are services
144
+ // ensure release admin can not be locked
145
+ if(address(service) == address(this)) {
146
+ revert ErrorReleaseAdminNotService(address(service));
147
+ }
148
+
149
+ _setTargetLocked(address(service), locked);
150
+
151
+ emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
152
+ }
153
+
154
+ //--- private functions -------------------------------------------------//
155
+
156
+ function _createServiceTargetAndRole(
157
+ IService service,
158
+ ObjectType serviceDomain,
159
+ VersionPart release
160
+ )
161
+ private
162
+ {
163
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
164
+
165
+ // create service target
166
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
167
+ baseName, "Service", release);
168
+
169
+ // create unchecked target
170
+ _createTarget(address(service), serviceTargetName, TargetType.Service, false);
171
+ }
172
+
173
+ //--- private initialization functions -------------------------------------------//
174
+
175
+ function _setupReleaseRegistry(address releaseRegistry)
176
+ private
177
+ onlyInitializing()
178
+ {
179
+
180
+ _createRole(
181
+ RELEASE_REGISTRY_ROLE(),
182
+ AccessAdminLib.coreRoleInfo(RELEASE_REGISTRY_ROLE_NAME),
183
+ true); // revets on existing role
184
+
185
+ _createTarget(
186
+ address(this),
187
+ RELEASE_ADMIN_TARGET_NAME,
188
+ IAccess.TargetType.Core,
189
+ true); // check authority maches
190
+
191
+ FunctionInfo[] memory functions;
192
+ functions = new FunctionInfo[](2);
193
+ functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
194
+ functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
195
+ _authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions, false, true);
196
+
197
+ _grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
198
+ }
199
+ }
@@ -0,0 +1,32 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {RELEASE} from "../type/ObjectType.sol";
5
+ import {SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ /// @dev Release lifeycle state machine.
9
+ /// Helper contract for ReleaseRegistry.
10
+ contract ReleaseLifecycle is
11
+ Lifecycle
12
+ {
13
+ constructor() {
14
+ _setupLifecycle();
15
+ }
16
+
17
+ function _setupLifecycle()
18
+ internal
19
+ override
20
+ {
21
+ setInitialState(RELEASE(), SCHEDULED());
22
+
23
+ setStateTransition(RELEASE(), SCHEDULED(), SKIPPED());
24
+ setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
25
+ setStateTransition(RELEASE(), DEPLOYING(), SKIPPED());
26
+ setStateTransition(RELEASE(), DEPLOYING(), DEPLOYED());
27
+ setStateTransition(RELEASE(), DEPLOYED(), SKIPPED());
28
+ setStateTransition(RELEASE(), DEPLOYED(), ACTIVE());
29
+ setStateTransition(RELEASE(), ACTIVE(), PAUSED());
30
+ setStateTransition(RELEASE(), PAUSED(), ACTIVE());
31
+ }
32
+ }