@etherisc/gif-next 0.0.2-edc084c-558 → 0.0.2-edc2c3a-751

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 (696) hide show
  1. package/README.md +77 -10
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  8. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  10. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  12. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  14. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  18. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1292 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +333 -316
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +885 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +221 -327
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1441 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2293 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +350 -1997
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +189 -113
  68. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/Instance.sol/Instance.json +406 -2791
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1328 -331
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +264 -425
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -151
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  86. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  87. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  94. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  102. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +929 -0
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  107. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +744 -0
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  112. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +282 -179
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  114. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +256 -253
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +325 -479
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +323 -60
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  130. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +333 -286
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  134. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +353 -420
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  144. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +391 -442
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  152. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +117 -166
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  156. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPolicyService.sol/IPolicyService.json} +485 -385
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +973 -0
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  171. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  172. package/artifacts/contracts/product/Product.sol/Product.json +1074 -0
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  185. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -245
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  193. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  194. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  195. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  196. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  197. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  198. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  199. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  201. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  202. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +274 -204
  203. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1908 -0
  205. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  206. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +850 -0
  207. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +124 -125
  209. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  211. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  215. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  216. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +128 -131
  217. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  218. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1467 -0
  219. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  220. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +679 -0
  221. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  222. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  223. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  224. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  225. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  227. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  231. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  233. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.json +46 -6
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +767 -0
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  240. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  241. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  253. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  262. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +695 -607
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  265. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  267. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  268. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  269. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  270. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  281. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  283. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  284. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  289. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  291. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  293. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  295. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  296. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  297. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  298. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  299. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  301. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  302. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  303. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  305. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  307. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  309. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  311. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  313. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  315. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  317. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  323. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  329. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  333. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  334. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  338. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  340. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  341. package/contracts/authorization/AccessAdmin.sol +615 -0
  342. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  343. package/contracts/authorization/Authorization.sol +289 -0
  344. package/contracts/authorization/IAccess.sol +49 -0
  345. package/contracts/authorization/IAccessAdmin.sol +137 -0
  346. package/contracts/authorization/IAuthorization.sol +60 -0
  347. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  348. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  349. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  350. package/contracts/distribution/BasicDistribution.sol +139 -0
  351. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  352. package/contracts/{components → distribution}/Distribution.sol +170 -163
  353. package/contracts/distribution/DistributionService.sol +354 -0
  354. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  355. package/contracts/distribution/IDistributionComponent.sol +52 -0
  356. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  357. package/contracts/examples/fire/DamageLevel.sol +59 -0
  358. package/contracts/examples/fire/FirePool.sol +90 -0
  359. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  360. package/contracts/examples/fire/FireProduct.sol +436 -0
  361. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  362. package/contracts/examples/fire/FireUSD.sol +26 -0
  363. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  364. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  365. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  366. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  367. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  368. package/contracts/examples/unpermissioned/SimpleProduct.sol +352 -0
  369. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  370. package/contracts/instance/BundleSet.sol +130 -0
  371. package/contracts/instance/IInstance.sol +45 -72
  372. package/contracts/instance/IInstanceService.sol +37 -39
  373. package/contracts/instance/Instance.sol +162 -250
  374. package/contracts/instance/InstanceAdmin.sol +288 -0
  375. package/contracts/instance/InstanceAuthorizationV3.sol +218 -0
  376. package/contracts/instance/InstanceReader.sol +351 -61
  377. package/contracts/instance/InstanceService.sol +250 -353
  378. package/contracts/instance/InstanceServiceManager.sol +14 -29
  379. package/contracts/instance/InstanceStore.sol +287 -0
  380. package/contracts/instance/RiskSet.sol +119 -0
  381. package/contracts/instance/base/BalanceStore.sol +123 -0
  382. package/contracts/instance/base/Cloneable.sol +28 -0
  383. package/contracts/instance/base/ObjectCounter.sol +20 -0
  384. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  385. package/contracts/instance/base/ObjectSet.sol +78 -0
  386. package/contracts/instance/module/IAccess.sol +4 -12
  387. package/contracts/instance/module/IBundle.sol +6 -9
  388. package/contracts/instance/module/IComponents.sol +27 -18
  389. package/contracts/instance/module/IDistribution.sol +6 -6
  390. package/contracts/instance/module/IPolicy.sol +48 -35
  391. package/contracts/instance/module/IRisk.sol +2 -1
  392. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  393. package/contracts/oracle/BasicOracle.sol +47 -0
  394. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  395. package/contracts/oracle/IOracle.sol +36 -0
  396. package/contracts/oracle/IOracleComponent.sol +33 -0
  397. package/contracts/oracle/IOracleService.sol +66 -0
  398. package/contracts/oracle/Oracle.sol +156 -0
  399. package/contracts/oracle/OracleService.sol +309 -0
  400. package/contracts/oracle/OracleServiceManager.sol +39 -0
  401. package/contracts/pool/BasicPool.sol +175 -0
  402. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  403. package/contracts/pool/BundleService.sol +423 -0
  404. package/contracts/pool/BundleServiceManager.sol +39 -0
  405. package/contracts/pool/IBundleService.sol +122 -0
  406. package/contracts/pool/IPoolComponent.sol +62 -0
  407. package/contracts/pool/IPoolService.sol +153 -0
  408. package/contracts/pool/Pool.sol +345 -0
  409. package/contracts/pool/PoolService.sol +612 -0
  410. package/contracts/pool/PoolServiceManager.sol +39 -0
  411. package/contracts/product/ApplicationService.sol +259 -0
  412. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  413. package/contracts/product/BasicProduct.sol +49 -0
  414. package/contracts/product/BasicProductAuthorization.sol +41 -0
  415. package/contracts/product/ClaimService.sol +614 -0
  416. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  417. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  418. package/contracts/product/IClaimService.sol +123 -0
  419. package/contracts/product/IPolicyService.sol +90 -0
  420. package/contracts/product/IPricingService.sol +39 -0
  421. package/contracts/product/IProductComponent.sol +59 -0
  422. package/contracts/product/IRiskService.sol +33 -0
  423. package/contracts/product/PolicyService.sol +733 -0
  424. package/contracts/product/PolicyServiceManager.sol +39 -0
  425. package/contracts/product/PricingService.sol +300 -0
  426. package/contracts/product/PricingServiceManager.sol +39 -0
  427. package/contracts/product/Product.sol +427 -0
  428. package/contracts/product/RiskService.sol +107 -0
  429. package/contracts/product/RiskServiceManager.sol +39 -0
  430. package/contracts/registry/ChainNft.sol +79 -40
  431. package/contracts/registry/IRegistry.sol +98 -26
  432. package/contracts/registry/IRegistryService.sol +34 -40
  433. package/contracts/registry/ITransferInterceptor.sol +1 -2
  434. package/contracts/registry/Registry.sol +453 -195
  435. package/contracts/registry/RegistryAdmin.sol +457 -0
  436. package/contracts/registry/RegistryService.sol +87 -128
  437. package/contracts/registry/RegistryServiceManager.sol +23 -32
  438. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  439. package/contracts/registry/ReleaseRegistry.sol +486 -0
  440. package/contracts/registry/ServiceAuthorizationV3.sol +176 -0
  441. package/contracts/registry/TokenRegistry.sol +261 -62
  442. package/contracts/shared/Component.sol +219 -0
  443. package/contracts/shared/ComponentService.sol +869 -0
  444. package/contracts/shared/ComponentServiceManager.sol +38 -0
  445. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  446. package/contracts/shared/ContractLib.sol +224 -0
  447. package/contracts/shared/IComponent.sol +62 -0
  448. package/contracts/shared/IComponentService.sol +134 -0
  449. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  450. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  451. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  452. package/contracts/shared/INftOwnable.sol +4 -2
  453. package/contracts/shared/IPolicyHolder.sol +23 -14
  454. package/contracts/shared/IRegisterable.sol +11 -0
  455. package/contracts/shared/IRegistryLinked.sol +0 -1
  456. package/contracts/shared/IService.sol +12 -3
  457. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  458. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  459. package/contracts/shared/KeyValueStore.sol +131 -0
  460. package/contracts/shared/Lifecycle.sol +88 -0
  461. package/contracts/shared/NftIdSet.sol +65 -0
  462. package/contracts/shared/NftOwnable.sol +32 -25
  463. package/contracts/shared/PolicyHolder.sol +22 -41
  464. package/contracts/shared/Registerable.sol +32 -23
  465. package/contracts/shared/RegistryLinked.sol +9 -19
  466. package/contracts/shared/Service.sol +48 -36
  467. package/contracts/shared/TokenHandler.sol +368 -12
  468. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  469. package/contracts/staking/IStaking.sol +173 -0
  470. package/contracts/staking/IStakingService.sol +157 -0
  471. package/contracts/staking/StakeManagerLib.sol +224 -0
  472. package/contracts/staking/Staking.sol +515 -0
  473. package/contracts/staking/StakingLifecycle.sol +23 -0
  474. package/contracts/staking/StakingManager.sol +52 -0
  475. package/contracts/staking/StakingReader.sol +190 -0
  476. package/contracts/staking/StakingService.sol +440 -0
  477. package/contracts/staking/StakingServiceManager.sol +44 -0
  478. package/contracts/staking/StakingStore.sol +605 -0
  479. package/contracts/staking/TargetManagerLib.sol +211 -0
  480. package/contracts/{types → type}/AddressSet.sol +1 -1
  481. package/contracts/type/Amount.sol +150 -0
  482. package/contracts/{types → type}/Blocknumber.sol +26 -3
  483. package/contracts/{types → type}/ClaimId.sol +31 -3
  484. package/contracts/{types → type}/Fee.sol +24 -22
  485. package/contracts/{types → type}/Key32.sol +2 -2
  486. package/contracts/type/Key32Set.sol +62 -0
  487. package/contracts/{types → type}/NftId.sol +21 -16
  488. package/contracts/{types → type}/NftIdSet.sol +2 -2
  489. package/contracts/type/ObjectType.sol +278 -0
  490. package/contracts/type/PayoutId.sol +82 -0
  491. package/contracts/{types → type}/Referral.sol +2 -1
  492. package/contracts/type/RequestId.sol +75 -0
  493. package/contracts/{types → type}/RiskId.sol +31 -5
  494. package/contracts/type/RoleId.sol +162 -0
  495. package/contracts/type/Seconds.sol +101 -0
  496. package/contracts/type/Selector.sol +102 -0
  497. package/contracts/{types → type}/StateId.sol +47 -4
  498. package/contracts/type/String.sol +53 -0
  499. package/contracts/{types → type}/Timestamp.sol +21 -2
  500. package/contracts/{types → type}/UFixed.sol +40 -121
  501. package/contracts/{types → type}/Version.sol +4 -2
  502. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  503. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  504. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  505. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  506. package/package.json +11 -7
  507. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  508. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  509. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  510. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  511. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  512. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  513. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  514. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  515. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  516. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  517. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  518. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  519. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  520. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  522. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  524. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  526. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  527. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  528. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  529. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  530. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  531. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  533. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  534. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  536. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  538. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  540. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  542. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  544. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  546. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  548. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  550. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  559. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  561. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  563. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  565. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  567. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  569. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  570. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  571. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  572. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  573. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  574. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  575. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  576. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  577. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  578. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  579. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  580. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  581. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  582. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  584. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  585. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  586. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  587. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  588. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  589. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  590. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  591. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  593. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  594. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  595. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  596. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  597. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  598. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  599. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  600. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  601. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  603. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  605. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  607. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  608. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  609. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  610. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  611. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  613. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  614. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  615. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  617. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  618. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  619. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  621. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  623. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  625. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  627. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  629. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  631. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  633. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  635. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  637. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  639. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  641. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  643. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  645. package/contracts/components/Component.sol +0 -253
  646. package/contracts/components/IComponent.sol +0 -76
  647. package/contracts/components/IDistributionComponent.sol +0 -71
  648. package/contracts/components/IPoolComponent.sol +0 -113
  649. package/contracts/components/IProductComponent.sol +0 -40
  650. package/contracts/components/Pool.sol +0 -303
  651. package/contracts/components/Product.sol +0 -293
  652. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  653. package/contracts/instance/BundleManager.sol +0 -127
  654. package/contracts/instance/Cloneable.sol +0 -51
  655. package/contracts/instance/InstanceAccessManager.sol +0 -527
  656. package/contracts/instance/ObjectManager.sol +0 -82
  657. package/contracts/instance/base/ComponentService.sol +0 -121
  658. package/contracts/instance/base/KeyValueStore.sol +0 -180
  659. package/contracts/instance/base/Lifecycle.sol +0 -109
  660. package/contracts/instance/module/ISetup.sol +0 -33
  661. package/contracts/instance/module/ITreasury.sol +0 -23
  662. package/contracts/instance/service/ApplicationService.sol +0 -350
  663. package/contracts/instance/service/BundleService.sol +0 -431
  664. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  665. package/contracts/instance/service/ClaimService.sol +0 -151
  666. package/contracts/instance/service/DistributionService.sol +0 -435
  667. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  668. package/contracts/instance/service/IBundleService.sol +0 -93
  669. package/contracts/instance/service/IClaimService.sol +0 -61
  670. package/contracts/instance/service/IPolicyService.sol +0 -72
  671. package/contracts/instance/service/IPoolService.sol +0 -99
  672. package/contracts/instance/service/IProductService.sol +0 -40
  673. package/contracts/instance/service/PolicyService.sol +0 -362
  674. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  675. package/contracts/instance/service/PoolService.sol +0 -303
  676. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  677. package/contracts/instance/service/ProductService.sol +0 -210
  678. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  679. package/contracts/registry/RegistryAccessManager.sol +0 -216
  680. package/contracts/registry/ReleaseManager.sol +0 -324
  681. package/contracts/shared/ContractDeployerLib.sol +0 -72
  682. package/contracts/test/TestFee.sol +0 -25
  683. package/contracts/test/TestRegisterable.sol +0 -18
  684. package/contracts/test/TestRoleId.sol +0 -14
  685. package/contracts/test/TestService.sol +0 -25
  686. package/contracts/test/TestToken.sol +0 -26
  687. package/contracts/test/TestVersion.sol +0 -44
  688. package/contracts/test/TestVersionable.sol +0 -17
  689. package/contracts/types/Amount.sol +0 -60
  690. package/contracts/types/ChainId.sol +0 -38
  691. package/contracts/types/NumberId.sol +0 -52
  692. package/contracts/types/ObjectType.sol +0 -157
  693. package/contracts/types/PayoutId.sol +0 -54
  694. package/contracts/types/RoleId.sol +0 -97
  695. package/contracts/types/Seconds.sol +0 -54
  696. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,127 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IInstance} from "./IInstance.sol";
5
- import {INSTANCE} from "../types/ObjectType.sol";
6
- import {InstanceReader} from "./InstanceReader.sol";
7
- import {IPolicy} from "../instance/module/IPolicy.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
- import {LibNftIdSet} from "../types/NftIdSet.sol";
10
- import {NftId} from "../types/NftId.sol";
11
- import {TimestampLib} from "../types/Timestamp.sol";
12
-
13
- import {ObjectManager} from "./ObjectManager.sol";
14
-
15
- contract BundleManager is
16
- ObjectManager
17
- {
18
-
19
- event LogBundleManagerPolicyLinked(NftId bundleNftId, NftId policyNftId);
20
- event LogBundleManagerPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
21
-
22
- event LogBundleManagerBundleAdded(NftId poolNftId, NftId bundleNftId);
23
- event LogBundleManagerBundleUnlocked(NftId poolNftId, NftId bundleNftId);
24
- event LogBundleManagerBundleLocked(NftId poolNftId, NftId bundleNftId);
25
- event LogBundleManagerBundleClosed(NftId poolNftId, NftId bundleNftId);
26
-
27
- error ErrorBundleManagerPolicyAlreadyActivated(NftId policyNftId);
28
- error ErrorBundleManagerBundleLocked(NftId bundleNftId, NftId policyNftId);
29
- error ErrorBundleManagerPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
30
- error ErrorBundleManagerPolicyNotCloseable(NftId policyNftId);
31
- error ErrorBundleManagerBundleUnknown(NftId bundleNftId);
32
- error ErrorBundleManagerBundleNotRegistered(NftId bundleNftId);
33
-
34
- mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
35
-
36
- /// @dev links a policy to its bundle
37
- // to link a policy it MUST NOT yet have been activated
38
- // the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
39
- function linkPolicy(NftId policyNftId) external restricted() {
40
- NftId bundleNftId = _instance.getInstanceReader().getPolicyInfo(policyNftId).bundleNftId;
41
- // decision will likely depend on the decision what to check here and what in the service
42
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
43
-
44
- // ensure bundle is unlocked (in active set) and registered with this instance
45
- if (!_isActive(poolNftId, bundleNftId)) {
46
- revert ErrorBundleManagerBundleLocked(bundleNftId, policyNftId);
47
- }
48
-
49
- LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
50
- emit LogBundleManagerPolicyLinked(bundleNftId, policyNftId);
51
- }
52
-
53
-
54
- /// @dev unlinks a policy from its bundle
55
- // to unlink a policy it must closable, ie. meet one of the following criterias
56
- // - the policy MUST be past its expiry period and it MUST NOT have any open claims
57
- // - the policy's payoutAmount MUST be equal to its sumInsuredAmount and MUST NOT have any open claims
58
- function unlinkPolicy(NftId policyNftId) external restricted() {
59
- IPolicy.PolicyInfo memory policyInfo = _instance.getInstanceReader().getPolicyInfo(policyNftId);
60
-
61
- NftId bundleNftId = policyInfo.bundleNftId;
62
- // decision will likely depend on the decision what to check here and what in the service
63
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
64
-
65
- // ensure bundle is registered with this instance
66
- if (!_contains(poolNftId, bundleNftId)) {
67
- revert ErrorBundleManagerBundleUnknown(bundleNftId);
68
- }
69
-
70
- LibNftIdSet.remove(_activePolicies[bundleNftId], policyNftId);
71
- emit LogBundleManagerPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
72
- }
73
-
74
-
75
- /// @dev add a new bundle to a pool registerd with this instance
76
- // the corresponding pool is fetched via instance reader
77
- function add(NftId bundleNftId) external restricted() {
78
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
79
-
80
- // ensure pool is registered with instance
81
- if(poolNftId.eqz()) {
82
- revert ErrorBundleManagerBundleNotRegistered(bundleNftId);
83
- }
84
-
85
- _add(poolNftId, bundleNftId);
86
- emit LogBundleManagerBundleAdded(poolNftId, bundleNftId);
87
- }
88
-
89
-
90
- /// @dev unlocked (active) bundles are available to underwrite new policies
91
- function unlock(NftId bundleNftId) external restricted() {
92
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
93
- _activate(poolNftId, bundleNftId);
94
- emit LogBundleManagerBundleUnlocked(poolNftId, bundleNftId);
95
- }
96
-
97
- /// @dev locked (deactivated) bundles may not underwrite any new policies
98
- function lock(NftId bundleNftId) external restricted() {
99
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
100
- _deactivate(poolNftId, bundleNftId);
101
- emit LogBundleManagerBundleLocked(poolNftId, bundleNftId);
102
- }
103
-
104
- function bundles(NftId poolNftId) external view returns(uint256) {
105
- return _objects(poolNftId);
106
- }
107
-
108
- function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
109
- return _getObject(poolNftId, idx);
110
- }
111
-
112
- function activeBundles(NftId poolNftId) external view returns(uint256) {
113
- return _activeObjs(poolNftId);
114
- }
115
-
116
- function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
117
- return _getActiveObject(poolNftId, idx);
118
- }
119
-
120
- function activePolicies(NftId bundleNftId) external view returns(uint256) {
121
- return LibNftIdSet.size(_activePolicies[bundleNftId]);
122
- }
123
-
124
- function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
125
- return LibNftIdSet.getElementAt(_activePolicies[bundleNftId], idx);
126
- }
127
- }
@@ -1,51 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
6
-
7
- import {IRegistry} from "../registry/IRegistry.sol";
8
-
9
- abstract contract Cloneable is
10
- AccessManagedUpgradeable
11
- {
12
- event CloneableInitialized(address authority, address registry);
13
-
14
- error CloneableAuthorityZero();
15
- error CloneableRegistryInvalid(address registry);
16
-
17
- IRegistry internal _registry;
18
-
19
- constructor() {
20
- _registry = IRegistry(address(0));
21
- }
22
-
23
- /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
24
- function initialize(
25
- address authority,
26
- address registry
27
- )
28
- public
29
- onlyInitializing
30
- {
31
- // check/handle access managed
32
- if(authority == address(0)) {
33
- revert CloneableAuthorityZero();
34
- }
35
-
36
- __AccessManaged_init(authority);
37
-
38
- // check/handle registry
39
- if (registry.code.length == 0) {
40
- revert CloneableRegistryInvalid(registry);
41
- }
42
-
43
- _registry = IRegistry(registry);
44
-
45
- emit CloneableInitialized(authority, registry);
46
- }
47
-
48
- function getRegistry() external view returns (IRegistry) {
49
- return _registry;
50
- }
51
- }
@@ -1,527 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
6
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
7
-
8
- import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, INSTANCE_SERVICE_ROLE, INSTANCE_OWNER_ROLE, INSTANCE_ROLE} from "../types/RoleId.sol";
9
- import {TimestampLib} from "../types/Timestamp.sol";
10
- import {NftId} from "../types/NftId.sol";
11
-
12
- import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
13
-
14
- import {IRegistry} from "../registry/IRegistry.sol";
15
-
16
- import {IInstance} from "./IInstance.sol";
17
- import {IAccess} from "./module/IAccess.sol";
18
-
19
- contract InstanceAccessManager is
20
- AccessManagedUpgradeable
21
- {
22
- event LogRoleCreation(RoleId roleId, ShortString name, IAccess.Type rtype);
23
- event LogTargetCreation(address target, ShortString name, IAccess.Type ttype, bool isLocked);
24
-
25
- using RoleIdLib for RoleId;
26
-
27
- string public constant ADMIN_ROLE_NAME = "AdminRole";
28
- string public constant PUBLIC_ROLE_NAME = "PublicRole";
29
- string public constant INSTANCE_ROLE_NAME = "InstanceRole";
30
- string public constant INSTANCE_OWNER_ROLE_NAME = "InstanceOwnerRole";
31
-
32
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
33
- uint32 public constant EXECUTION_DELAY = 0;
34
-
35
- // role specific state
36
- mapping(RoleId roleId => IAccess.RoleInfo info) internal _roleInfo;
37
- mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
38
- mapping(ShortString name => RoleId roleId) internal _roleIdForName;
39
- RoleId [] internal _roleIds;
40
- uint64 _idNext;
41
-
42
- // target specific state
43
- mapping(address target => IAccess.TargetInfo info) internal _targetInfo;
44
- mapping(ShortString name => address target) internal _targetAddressForName;
45
- address [] internal _targets;
46
-
47
- AccessManagerUpgradeableInitializeable internal _accessManager;
48
- IRegistry internal _registry;
49
-
50
- modifier restrictedToRoleAdmin(RoleId roleId) {
51
- RoleId admin = getRoleAdmin(roleId);
52
- (bool inRole, uint32 executionDelay) = _accessManager.hasRole(admin.toInt(), _msgSender());
53
- assert(executionDelay == 0); // to be sure no delayed execution functionality is used
54
- if (!inRole) {
55
- revert IAccess.ErrorIAccessCallerIsNotRoleAdmin(_msgSender(), roleId);
56
- }
57
- _;
58
- }
59
-
60
- // instance owner is granted upon instance nft minting in callback function
61
- function initialize(address instanceAddress) external initializer
62
- {
63
- IInstance instance = IInstance(instanceAddress);
64
- IRegistry registry = instance.getRegistry();
65
- address authority = instance.authority();
66
-
67
- __AccessManaged_init(authority);
68
-
69
- _accessManager = AccessManagerUpgradeableInitializeable(authority);
70
- _registry = registry;
71
- _idNext = CUSTOM_ROLE_ID_MIN;
72
-
73
- _createRole(ADMIN_ROLE(), ADMIN_ROLE_NAME, IAccess.Type.Core);
74
- _createRole(PUBLIC_ROLE(), PUBLIC_ROLE_NAME, IAccess.Type.Core);
75
- _createRole(INSTANCE_ROLE(), INSTANCE_ROLE_NAME, IAccess.Type.Core);
76
- _createRole(INSTANCE_OWNER_ROLE(), INSTANCE_OWNER_ROLE_NAME, IAccess.Type.Gif);
77
-
78
- // assume `this` is already a member of ADMIN_ROLE
79
- EnumerableSet.add(_roleMembers[ADMIN_ROLE()], address(this));
80
-
81
- grantRole(INSTANCE_ROLE(), instanceAddress);
82
- setRoleAdmin(INSTANCE_OWNER_ROLE(), INSTANCE_ROLE());
83
- }
84
-
85
- //--- Role ------------------------------------------------------//
86
- // ADMIN_ROLE
87
- // assume all core roles are know at deployment time
88
- // assume core roles are set and granted only during instance cloning
89
- // assume core roles are never revoked -> core roles admin is never active after intialization
90
- function createCoreRole(RoleId roleId, string memory name)
91
- external
92
- restricted()
93
- {
94
- _createRole(roleId, name, IAccess.Type.Core);
95
- }
96
- // ADMIN_ROLE
97
- // assume gif roles can be revoked
98
- // assume admin is INSTANCE_OWNER_ROLE or INSTANCE_ROLE
99
- function createGifRole(RoleId roleId, string memory name, RoleId admin)
100
- external
101
- restricted()
102
- {
103
- _createRole(roleId, name, IAccess.Type.Gif);
104
- setRoleAdmin(roleId, admin);
105
- }
106
-
107
- // INSTANCE_OWNER_ROLE
108
- function createRole(string memory roleName, string memory adminName)
109
- external
110
- restricted()
111
- returns(RoleId roleId, RoleId admin)
112
- {
113
- (roleId, admin) = _getNextCustomRoleId();
114
-
115
- _createRole(roleId, roleName, IAccess.Type.Custom);
116
- _createRole(admin, adminName, IAccess.Type.Custom);
117
-
118
- // TODO works without this -> why?
119
- setRoleAdmin(roleId, admin);
120
- setRoleAdmin(admin, INSTANCE_OWNER_ROLE());
121
- }
122
-
123
- // ADMIN_ROLE
124
- // assume used by instance service only during instance cloning
125
- // assume used only by this.createRole(), this.createGifRole() afterwards
126
- function setRoleAdmin(RoleId roleId, RoleId admin)
127
- public
128
- restricted()
129
- {
130
- if (!roleExists(roleId)) {
131
- revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
132
- }
133
-
134
- if(_roleInfo[roleId].rtype == IAccess.Type.Core) {
135
- revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Core);
136
- }
137
-
138
- if (!roleExists(admin)) {
139
- revert IAccess.ErrorIAccessRoleIdDoesNotExist(admin);
140
- }
141
-
142
- _roleInfo[roleId].admin = admin;
143
- }
144
-
145
- function grantRole(RoleId roleId, address member)
146
- public
147
- restrictedToRoleAdmin(roleId)
148
- returns (bool granted)
149
- {
150
- if (!roleExists(roleId)) {
151
- revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
152
- }
153
-
154
- granted = EnumerableSet.add(_roleMembers[roleId], member);
155
- if(granted) {
156
- _accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
157
- }
158
- }
159
-
160
- function revokeRole(RoleId roleId, address member)
161
- external
162
- restrictedToRoleAdmin(roleId)
163
- returns (bool)
164
- {
165
- return _revokeRole(roleId, member);
166
- }
167
-
168
- // INSTANCE_OWNER_ROLE
169
- // IMPORTANT: unbounded function, revoke all or revert
170
- // Instance owner role decides what to do in case of custom role admin bening revoked, e.g.:
171
- // 1) revoke custom role from ALL members
172
- // 2) revoke custom role admin from ALL members
173
- // 3) 1) + 2)
174
- // 4) revoke only 1 member of custom role admin
175
- function revokeRoleAllMembers(RoleId roleId)
176
- external
177
- restrictedToRoleAdmin(roleId)
178
- returns (bool revoked)
179
- {
180
- if (!roleExists(roleId)) {
181
- revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
182
- }
183
-
184
- uint memberCount = EnumerableSet.length(_roleMembers[roleId]);
185
- for(uint memberIdx = 0; memberIdx < memberCount; memberIdx++)
186
- {
187
- address member = EnumerableSet.at(_roleMembers[roleId], memberIdx);
188
- EnumerableSet.remove(_roleMembers[roleId], member);
189
- _accessManager.revokeRole(roleId.toInt(), member);
190
- }
191
- }
192
-
193
- /// @dev not restricted function by intention
194
- /// the restriction to role members is already enforced by the call to the access manager
195
- function renounceRole(RoleId roleId)
196
- external
197
- returns (bool)
198
- {
199
- IAccess.Type rtype = _roleInfo[roleId].rtype;
200
- if(rtype == IAccess.Type.Core || rtype == IAccess.Type.Gif) {
201
- revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, rtype);
202
- }
203
-
204
- address member = msg.sender;
205
- // cannot use accessManger.renounce as it directly checks against msg.sender
206
- return _revokeRole(roleId, member);
207
- }
208
-
209
- function roleExists(RoleId roleId) public view returns (bool exists) {
210
- return _roleInfo[roleId].createdAt.gtz();
211
- }
212
- // TODO returns ADMIN_ROLE id for non existent roleId
213
- function getRoleAdmin(RoleId roleId) public view returns(RoleId admin) {
214
- return _roleInfo[roleId].admin;
215
- }
216
-
217
- function getRoleInfo(RoleId roleId) external view returns (IAccess.RoleInfo memory info) {
218
- return _roleInfo[roleId];
219
- }
220
-
221
- function roleMembers(RoleId roleId) public view returns (uint256 numberOfMembers) {
222
- return EnumerableSet.length(_roleMembers[roleId]);
223
- }
224
-
225
- function getRoleId(uint256 idx) external view returns (RoleId roleId) {
226
- return _roleIds[idx];
227
- }
228
-
229
- // TODO now: for non existent name returns ADMIN_ROLE id
230
- function getRoleIdForName(string memory name) external view returns (RoleId roleId) {
231
- return _roleIdForName[ShortStrings.toShortString(name)];
232
- }
233
-
234
- function roleMember(RoleId roleId, uint256 idx) external view returns (address member) {
235
- return EnumerableSet.at(_roleMembers[roleId], idx);
236
- }
237
-
238
- function hasRole(RoleId roleId, address account) external view returns (bool accountHasRole) {
239
- (accountHasRole, ) = _accessManager.hasRole(roleId.toInt(), account);
240
- }
241
-
242
- function roles() external view returns (uint256 numberOfRoles) {
243
- return _roleIds.length;
244
- }
245
-
246
- //--- Target ------------------------------------------------------//
247
- // ADMIN_ROLE
248
- // assume some core targets are registred (instance) while others are not (instance accesss manager, instance reader, bundle manager)
249
- function createCoreTarget(address target, string memory name) external restricted() {
250
- _createTarget(target, name, IAccess.Type.Core);
251
- }
252
- // INSTANCE_SERVICE_ROLE
253
- // assume gif target is registered and belongs to the same instance as instance access manager
254
- function createGifTarget(address target, string memory name) external restricted()
255
- {
256
- if(!_registry.isRegistered(target)) {
257
- revert IAccess.ErrorIAccessTargetNotRegistered(target);
258
- }
259
-
260
- _createTarget(target, name, IAccess.Type.Gif);
261
- }
262
- // INSTANCE_OWNER_ROLE
263
- // assume custom target.authority() is constant -> target MUST not be used with different instance access manager
264
- // assume custom target can not be registered as component -> each service which is doing component registration MUST register a gif target
265
- // assume custom target can not be registered as instance or service -> why?
266
- // TODO check target associated with instance owner or instance or instance components or components helpers
267
- function createTarget(address target, string memory name) external restricted()
268
- {
269
- _createTarget(target, name, IAccess.Type.Custom);
270
- }
271
-
272
- // INSTANCE_SERVICE_ROLE
273
- // IMPORTANT: instance access manager MUST be of Core type -> otherwise will be locked forever
274
- function setTargetLocked(address target, bool locked)
275
- external
276
- restricted()
277
- {
278
- IAccess.Type targetType = _targetInfo[target].ttype;
279
- if(target == address(0) || targetType == IAccess.Type.NotInitialized) {
280
- revert IAccess.ErrorIAccessTargetDoesNotExist(target);
281
- }
282
-
283
- if(targetType == IAccess.Type.Core) {
284
- revert IAccess.ErrorIAccessTargetTypeInvalid(target, targetType);
285
- }
286
-
287
- // TODO isLocked is redundant but makes getTargetInfo() faster
288
- _targetInfo[target].isLocked = locked;
289
- _accessManager.setTargetClosed(target, locked);
290
- }
291
-
292
- // allowed combinations of roles and targets:
293
- //1) set core role for core target
294
- //2) set gif role for gif target
295
- //3) set custom role for gif target
296
- //4) set custom role for custom target
297
-
298
- // ADMIN_ROLE if used only during initialization, works with:
299
- // any roles for any targets
300
- // INSTANCE_SERVICE_ROLE if used not only during initilization, works with:
301
- // core roles for core targets
302
- // gif roles for gif targets
303
- function setCoreTargetFunctionRole(
304
- string memory targetName,
305
- bytes4[] calldata selectors,
306
- RoleId roleId
307
- )
308
- public
309
- virtual
310
- restricted()
311
- {
312
- ShortString nameShort = ShortStrings.toShortString(targetName);
313
- address target = _targetAddressForName[nameShort];
314
-
315
- // not custom target
316
- if(_targetInfo[target].ttype == IAccess.Type.Custom) {
317
- revert IAccess.ErrorIAccessTargetTypeInvalid(target, IAccess.Type.Custom);
318
- }
319
-
320
- // not custom role
321
- if(_roleInfo[roleId].rtype == IAccess.Type.Custom) {
322
- revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Custom);
323
- }
324
-
325
- _setTargetFunctionRole(target, nameShort, selectors, roleId);
326
- }
327
-
328
- // INSTANCE_OWNER_ROLE
329
- // gif role for gif target
330
- // gif role for custom target
331
- // custom role for gif target
332
- // custom role for custom target
333
- // TODO instance owner can mess with gif target (component) -> e.g. set custom role for function intendent to work with gif role
334
- function setTargetFunctionRole(
335
- string memory targetName,
336
- bytes4[] calldata selectors,
337
- RoleId roleId
338
- )
339
- public
340
- virtual
341
- restricted()
342
- {
343
- ShortString nameShort = ShortStrings.toShortString(targetName);
344
- address target = _targetAddressForName[nameShort];
345
-
346
- // not core target
347
- if(_targetInfo[target].ttype == IAccess.Type.Core) {
348
- revert IAccess.ErrorIAccessTargetTypeInvalid(target, IAccess.Type.Core);
349
- }
350
-
351
- // not core role
352
- if(_roleInfo[roleId].rtype == IAccess.Type.Core) {
353
- revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Core);
354
- }
355
-
356
- _setTargetFunctionRole(target, nameShort, selectors, roleId);
357
- }
358
-
359
- function getTargetAddress(string memory targetName) public view returns(address targetAddress) {
360
- ShortString nameShort = ShortStrings.toShortString(targetName);
361
- return _targetAddressForName[nameShort];
362
- }
363
-
364
- function isTargetLocked(address target) public view returns (bool locked) {
365
- return _accessManager.isTargetClosed(target);
366
- }
367
-
368
- function targetExists(address target) public view returns (bool exists) {
369
- return _targetInfo[target].createdAt.gtz();
370
- }
371
-
372
- function getTargetInfo(address target) public view returns (IAccess.TargetInfo memory) {
373
- return _targetInfo[target];
374
- }
375
-
376
- //--- Role internal view/pure functions --------------------------------------//
377
- function _createRole(RoleId roleId, string memory roleName, IAccess.Type rtype)
378
- internal
379
- {
380
- ShortString name = ShortStrings.toShortString(roleName);
381
- _validateRole(roleId, name, rtype);
382
-
383
- if(roleExists(roleId)) {
384
- revert IAccess.ErrorIAccessRoleIdExists(roleId);
385
- }
386
-
387
- if (_roleIdForName[name].gtz()) {
388
- revert IAccess.ErrorIAccessRoleNameExists(roleId, _roleIdForName[name], name);
389
- }
390
-
391
- _roleInfo[roleId] = IAccess.RoleInfo(
392
- name,
393
- rtype,
394
- ADMIN_ROLE(),
395
- TimestampLib.blockTimestamp(),
396
- TimestampLib.blockTimestamp()
397
- );
398
- _roleIdForName[name] = roleId;
399
- _roleIds.push(roleId);
400
-
401
- emit LogRoleCreation(roleId, name, rtype);
402
- }
403
-
404
- function _validateRole(RoleId roleId, ShortString name, IAccess.Type rtype)
405
- internal
406
- view
407
- {
408
- uint roleIdInt = roleId.toInt();
409
- if(rtype == IAccess.Type.Custom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
410
- revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
411
- }
412
-
413
- if(
414
- rtype != IAccess.Type.Custom &&
415
- roleIdInt >= CUSTOM_ROLE_ID_MIN &&
416
- roleIdInt != PUBLIC_ROLE().toInt())
417
- {
418
- revert IAccess.ErrorIAccessRoleIdTooBig(roleId);
419
- }
420
-
421
- // role name checks
422
- if (ShortStrings.byteLength(name) == 0) {
423
- revert IAccess.ErrorIAccessRoleNameEmpty(roleId);
424
- }
425
- }
426
-
427
- function _revokeRole(RoleId roleId, address member)
428
- internal
429
- returns(bool revoked)
430
- {
431
- if (!roleExists(roleId)) {
432
- revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
433
- }
434
-
435
- revoked = EnumerableSet.remove(_roleMembers[roleId], member);
436
- if(revoked) {
437
- _accessManager.revokeRole(roleId.toInt(), member);
438
- }
439
- }
440
-
441
- function _getNextCustomRoleId()
442
- internal
443
- returns(RoleId roleId, RoleId admin)
444
- {
445
- uint64 roleIdInt = _idNext;
446
- uint64 adminInt = roleIdInt + 1;
447
-
448
- _idNext = roleIdInt + 2;
449
-
450
- roleId = RoleIdLib.toRoleId(roleIdInt);
451
- admin = RoleIdLib.toRoleId(adminInt);
452
- }
453
-
454
- //--- Target internal view/pure functions --------------------------------------//
455
- function _createTarget(address target, string memory targetName, IAccess.Type ttype)
456
- internal
457
- {
458
- ShortString name = ShortStrings.toShortString(targetName);
459
- _validateTarget(target, name, ttype);
460
-
461
- if (_targetInfo[target].createdAt.gtz()) {
462
- revert IAccess.ErrorIAccessTargetExists(target, _targetInfo[target].name);
463
- }
464
-
465
- if (_targetAddressForName[name] != address(0)) {
466
- revert IAccess.ErrorIAccessTargetNameExists(
467
- target,
468
- _targetAddressForName[name],
469
- name);
470
- }
471
-
472
- bool isLocked = _accessManager.isTargetClosed(target);// sync with state in access manager
473
- _targetInfo[target] = IAccess.TargetInfo(
474
- name,
475
- ttype,
476
- isLocked,
477
- TimestampLib.blockTimestamp(),
478
- TimestampLib.blockTimestamp()
479
- );
480
- _targetAddressForName[name] = target;
481
- _targets.push(target);
482
-
483
- emit LogTargetCreation(target, name, ttype, isLocked);
484
- }
485
-
486
- function _validateTarget(address target, ShortString name, IAccess.Type ttype)
487
- internal
488
- view
489
- {
490
- address targetAuthority = AccessManagedUpgradeable(target).authority();
491
- if(targetAuthority != authority()) {
492
- revert IAccess.ErrorIAccessTargetAuthorityInvalid(target, targetAuthority);
493
- }
494
-
495
- if (ShortStrings.byteLength(name) == 0) {
496
- revert IAccess.ErrorIAccessTargetNameEmpty(target);
497
- }
498
- }
499
-
500
- function _setTargetFunctionRole(
501
- address target,
502
- ShortString name,
503
- bytes4[] calldata selectors,
504
- RoleId roleId
505
- )
506
- internal
507
- {
508
- if (target == address(0)) {
509
- revert IAccess.ErrorIAccessTargetDoesNotExist(target);
510
- }
511
-
512
- if (!roleExists(roleId)) {
513
- revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
514
- }
515
-
516
- uint64 roleIdInt = RoleId.unwrap(roleId);
517
- _accessManager.setTargetFunctionRole(target, selectors, roleIdInt);
518
- }
519
-
520
- function canCall(
521
- address caller,
522
- address target,
523
- bytes4 selector
524
- ) public view virtual returns (bool immediate, uint32 delay) {
525
- return _accessManager.canCall(caller, target, selector);
526
- }
527
- }