@etherisc/gif-next 0.0.2-f626d92-602 → 0.0.2-f634e5c-828

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 (687) 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 +1310 -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} +348 -313
  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 +903 -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 +1415 -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 +1965 -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/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1163 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2267 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +350 -1997
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +189 -113
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +406 -2791
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1328 -331
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +264 -425
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -151
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  76. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  77. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  78. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  80. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  81. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  82. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  84. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  86. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  88. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  90. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  95. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  96. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  106. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +282 -179
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  108. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +274 -253
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  114. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +321 -457
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +323 -60
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +346 -281
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  127. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  128. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +387 -436
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  138. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +409 -442
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  145. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +117 -166
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  150. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPolicyService.sol/IPolicyService.json} +485 -385
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +991 -0
  155. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  156. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  165. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  166. package/artifacts/contracts/product/Product.sol/Product.json +1092 -0
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -245
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  187. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  189. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  191. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  193. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  195. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  196. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +292 -204
  197. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1908 -0
  199. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +850 -0
  201. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  202. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +124 -125
  203. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  206. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  207. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  208. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  209. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  210. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +146 -131
  211. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  212. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1467 -0
  213. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  214. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  215. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  217. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  219. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  221. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  223. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  225. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  227. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IService.sol/IService.json +46 -6
  229. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  230. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  231. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  233. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  234. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  235. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  236. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  237. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  238. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  239. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  241. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  243. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  245. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  247. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  253. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  254. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  255. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  256. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +708 -602
  257. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  258. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  259. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  260. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  261. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  262. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  263. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  264. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  265. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  267. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  268. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  269. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  270. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  271. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  272. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  273. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  274. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  275. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  276. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  277. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  278. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  279. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  281. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  283. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  285. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  287. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  290. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  292. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  296. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  309. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  311. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  313. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  315. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  317. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  319. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  321. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  323. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  325. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  327. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  328. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  329. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  331. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  332. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  333. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  334. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  335. package/contracts/authorization/AccessAdmin.sol +615 -0
  336. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  337. package/contracts/authorization/Authorization.sol +289 -0
  338. package/contracts/authorization/IAccess.sol +49 -0
  339. package/contracts/authorization/IAccessAdmin.sol +137 -0
  340. package/contracts/authorization/IAuthorization.sol +60 -0
  341. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  342. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  343. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  344. package/contracts/distribution/BasicDistribution.sol +139 -0
  345. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  346. package/contracts/{components → distribution}/Distribution.sol +166 -162
  347. package/contracts/distribution/DistributionService.sol +354 -0
  348. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  349. package/contracts/distribution/IDistributionComponent.sol +52 -0
  350. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  351. package/contracts/examples/fire/DamageLevel.sol +59 -0
  352. package/contracts/examples/fire/FirePool.sol +86 -0
  353. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  354. package/contracts/examples/fire/FireProduct.sol +431 -0
  355. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  356. package/contracts/examples/fire/FireUSD.sol +26 -0
  357. package/contracts/examples/unpermissioned/SimpleDistribution.sol +65 -0
  358. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  359. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  360. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  361. package/contracts/instance/BundleSet.sol +130 -0
  362. package/contracts/instance/IInstance.sol +45 -72
  363. package/contracts/instance/IInstanceService.sol +37 -39
  364. package/contracts/instance/Instance.sol +162 -250
  365. package/contracts/instance/InstanceAdmin.sol +288 -0
  366. package/contracts/instance/InstanceAuthorizationV3.sol +218 -0
  367. package/contracts/instance/InstanceReader.sol +351 -61
  368. package/contracts/instance/InstanceService.sol +250 -353
  369. package/contracts/instance/InstanceServiceManager.sol +14 -29
  370. package/contracts/instance/InstanceStore.sol +287 -0
  371. package/contracts/instance/RiskSet.sol +119 -0
  372. package/contracts/instance/base/BalanceStore.sol +123 -0
  373. package/contracts/instance/base/Cloneable.sol +28 -0
  374. package/contracts/instance/base/ObjectCounter.sol +20 -0
  375. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  376. package/contracts/instance/base/ObjectSet.sol +78 -0
  377. package/contracts/instance/module/IAccess.sol +4 -12
  378. package/contracts/instance/module/IBundle.sol +6 -9
  379. package/contracts/instance/module/IComponents.sol +27 -18
  380. package/contracts/instance/module/IDistribution.sol +6 -6
  381. package/contracts/instance/module/IPolicy.sol +48 -35
  382. package/contracts/instance/module/IRisk.sol +2 -1
  383. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  384. package/contracts/oracle/BasicOracle.sol +47 -0
  385. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  386. package/contracts/oracle/IOracle.sol +36 -0
  387. package/contracts/oracle/IOracleComponent.sol +33 -0
  388. package/contracts/oracle/IOracleService.sol +66 -0
  389. package/contracts/oracle/Oracle.sol +156 -0
  390. package/contracts/oracle/OracleService.sol +309 -0
  391. package/contracts/oracle/OracleServiceManager.sol +39 -0
  392. package/contracts/pool/BasicPool.sol +175 -0
  393. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  394. package/contracts/pool/BundleService.sol +423 -0
  395. package/contracts/pool/BundleServiceManager.sol +39 -0
  396. package/contracts/pool/IBundleService.sol +122 -0
  397. package/contracts/pool/IPoolComponent.sol +62 -0
  398. package/contracts/pool/IPoolService.sol +153 -0
  399. package/contracts/pool/Pool.sol +345 -0
  400. package/contracts/pool/PoolService.sol +612 -0
  401. package/contracts/pool/PoolServiceManager.sol +39 -0
  402. package/contracts/product/ApplicationService.sol +259 -0
  403. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  404. package/contracts/product/BasicProduct.sol +49 -0
  405. package/contracts/product/BasicProductAuthorization.sol +42 -0
  406. package/contracts/product/ClaimService.sol +614 -0
  407. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  408. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  409. package/contracts/product/IClaimService.sol +123 -0
  410. package/contracts/product/IPolicyService.sol +90 -0
  411. package/contracts/product/IPricingService.sol +39 -0
  412. package/contracts/product/IProductComponent.sol +59 -0
  413. package/contracts/product/IRiskService.sol +33 -0
  414. package/contracts/product/PolicyService.sol +733 -0
  415. package/contracts/product/PolicyServiceManager.sol +39 -0
  416. package/contracts/product/PricingService.sol +300 -0
  417. package/contracts/product/PricingServiceManager.sol +39 -0
  418. package/contracts/product/Product.sol +427 -0
  419. package/contracts/product/RiskService.sol +107 -0
  420. package/contracts/product/RiskServiceManager.sol +39 -0
  421. package/contracts/registry/ChainNft.sol +79 -40
  422. package/contracts/registry/IRegistry.sol +98 -26
  423. package/contracts/registry/IRegistryService.sol +34 -40
  424. package/contracts/registry/ITransferInterceptor.sol +1 -2
  425. package/contracts/registry/Registry.sol +453 -195
  426. package/contracts/registry/RegistryAdmin.sol +451 -0
  427. package/contracts/registry/RegistryService.sol +87 -128
  428. package/contracts/registry/RegistryServiceManager.sol +23 -32
  429. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  430. package/contracts/registry/ReleaseRegistry.sol +486 -0
  431. package/contracts/registry/ServiceAuthorizationV3.sol +176 -0
  432. package/contracts/registry/TokenRegistry.sol +261 -62
  433. package/contracts/shared/Component.sol +222 -0
  434. package/contracts/shared/ComponentService.sol +869 -0
  435. package/contracts/shared/ComponentServiceManager.sol +38 -0
  436. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  437. package/contracts/shared/ContractLib.sol +224 -0
  438. package/contracts/shared/IComponent.sol +67 -0
  439. package/contracts/shared/IComponentService.sol +134 -0
  440. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  441. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  442. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  443. package/contracts/shared/INftOwnable.sol +4 -2
  444. package/contracts/shared/IPolicyHolder.sol +23 -14
  445. package/contracts/shared/IRegisterable.sol +11 -0
  446. package/contracts/shared/IRegistryLinked.sol +0 -1
  447. package/contracts/shared/IService.sol +12 -3
  448. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  449. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  450. package/contracts/shared/KeyValueStore.sol +131 -0
  451. package/contracts/shared/Lifecycle.sol +88 -0
  452. package/contracts/shared/NftIdSet.sol +65 -0
  453. package/contracts/shared/NftOwnable.sol +32 -25
  454. package/contracts/shared/PolicyHolder.sol +22 -41
  455. package/contracts/shared/Registerable.sol +32 -23
  456. package/contracts/shared/RegistryLinked.sol +9 -19
  457. package/contracts/shared/Service.sol +48 -36
  458. package/contracts/shared/TokenHandler.sol +368 -12
  459. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  460. package/contracts/staking/IStaking.sol +173 -0
  461. package/contracts/staking/IStakingService.sol +157 -0
  462. package/contracts/staking/StakeManagerLib.sol +224 -0
  463. package/contracts/staking/Staking.sol +505 -0
  464. package/contracts/staking/StakingLifecycle.sol +23 -0
  465. package/contracts/staking/StakingManager.sol +52 -0
  466. package/contracts/staking/StakingReader.sol +190 -0
  467. package/contracts/staking/StakingService.sol +440 -0
  468. package/contracts/staking/StakingServiceManager.sol +44 -0
  469. package/contracts/staking/StakingStore.sol +605 -0
  470. package/contracts/staking/TargetManagerLib.sol +211 -0
  471. package/contracts/{types → type}/AddressSet.sol +1 -1
  472. package/contracts/type/Amount.sol +150 -0
  473. package/contracts/{types → type}/Blocknumber.sol +26 -3
  474. package/contracts/{types → type}/ClaimId.sol +31 -3
  475. package/contracts/{types → type}/Fee.sol +24 -22
  476. package/contracts/{types → type}/Key32.sol +2 -2
  477. package/contracts/type/Key32Set.sol +62 -0
  478. package/contracts/{types → type}/NftId.sol +21 -16
  479. package/contracts/{types → type}/NftIdSet.sol +2 -2
  480. package/contracts/type/ObjectType.sol +278 -0
  481. package/contracts/type/PayoutId.sol +82 -0
  482. package/contracts/{types → type}/Referral.sol +2 -1
  483. package/contracts/type/RequestId.sol +75 -0
  484. package/contracts/{types → type}/RiskId.sol +31 -5
  485. package/contracts/type/RoleId.sol +162 -0
  486. package/contracts/type/Seconds.sol +101 -0
  487. package/contracts/type/Selector.sol +102 -0
  488. package/contracts/{types → type}/StateId.sol +47 -4
  489. package/contracts/type/String.sol +53 -0
  490. package/contracts/{types → type}/Timestamp.sol +21 -2
  491. package/contracts/{types → type}/UFixed.sol +40 -121
  492. package/contracts/{types → type}/Version.sol +4 -2
  493. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  494. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  495. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  496. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  497. package/package.json +11 -7
  498. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  499. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  500. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  501. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  502. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  503. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  504. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  505. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  506. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  507. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  508. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  509. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  510. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  511. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  513. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  514. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  515. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  516. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  518. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  519. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  520. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  521. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  522. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  523. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  524. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  525. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  527. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  529. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  531. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  533. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  535. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  537. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  539. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  541. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  550. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  552. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  554. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  556. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  558. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  560. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  561. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  562. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  563. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  564. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  565. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  566. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  567. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  568. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  569. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  570. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  571. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  572. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  573. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  574. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  576. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  578. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  580. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  582. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  584. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  585. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  586. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  587. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  588. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  589. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  590. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  591. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  592. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  594. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  596. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  598. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  600. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  602. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  604. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  605. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  606. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  608. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  609. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  610. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  612. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  614. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  616. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  618. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  620. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  622. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  624. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  626. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  628. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  630. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  632. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  634. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  636. package/contracts/components/Component.sol +0 -253
  637. package/contracts/components/IComponent.sol +0 -76
  638. package/contracts/components/IDistributionComponent.sol +0 -71
  639. package/contracts/components/IPoolComponent.sol +0 -113
  640. package/contracts/components/IProductComponent.sol +0 -40
  641. package/contracts/components/Pool.sol +0 -303
  642. package/contracts/components/Product.sol +0 -293
  643. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  644. package/contracts/instance/BundleManager.sol +0 -127
  645. package/contracts/instance/Cloneable.sol +0 -51
  646. package/contracts/instance/InstanceAccessManager.sol +0 -527
  647. package/contracts/instance/ObjectManager.sol +0 -82
  648. package/contracts/instance/base/ComponentService.sol +0 -121
  649. package/contracts/instance/base/KeyValueStore.sol +0 -180
  650. package/contracts/instance/base/Lifecycle.sol +0 -109
  651. package/contracts/instance/module/ISetup.sol +0 -33
  652. package/contracts/instance/module/ITreasury.sol +0 -23
  653. package/contracts/instance/service/ApplicationService.sol +0 -350
  654. package/contracts/instance/service/BundleService.sol +0 -431
  655. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  656. package/contracts/instance/service/ClaimService.sol +0 -151
  657. package/contracts/instance/service/DistributionService.sol +0 -435
  658. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  659. package/contracts/instance/service/IBundleService.sol +0 -93
  660. package/contracts/instance/service/IClaimService.sol +0 -61
  661. package/contracts/instance/service/IPolicyService.sol +0 -72
  662. package/contracts/instance/service/IPoolService.sol +0 -99
  663. package/contracts/instance/service/IProductService.sol +0 -40
  664. package/contracts/instance/service/PolicyService.sol +0 -362
  665. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  666. package/contracts/instance/service/PoolService.sol +0 -303
  667. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  668. package/contracts/instance/service/ProductService.sol +0 -210
  669. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  670. package/contracts/registry/RegistryAccessManager.sol +0 -216
  671. package/contracts/registry/ReleaseManager.sol +0 -324
  672. package/contracts/shared/ContractDeployerLib.sol +0 -72
  673. package/contracts/test/TestFee.sol +0 -25
  674. package/contracts/test/TestRegisterable.sol +0 -18
  675. package/contracts/test/TestRoleId.sol +0 -14
  676. package/contracts/test/TestService.sol +0 -25
  677. package/contracts/test/TestToken.sol +0 -26
  678. package/contracts/test/TestVersion.sol +0 -44
  679. package/contracts/test/TestVersionable.sol +0 -17
  680. package/contracts/types/Amount.sol +0 -60
  681. package/contracts/types/ChainId.sol +0 -38
  682. package/contracts/types/NumberId.sol +0 -52
  683. package/contracts/types/ObjectType.sol +0 -157
  684. package/contracts/types/PayoutId.sol +0 -54
  685. package/contracts/types/RoleId.sol +0 -97
  686. package/contracts/types/Seconds.sol +0 -54
  687. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,615 @@
1
+ // SPDX-License-Identifier: UNLICENSED
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 {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
7
+
8
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
9
+ import {ContractLib} from "../shared/ContractLib.sol";
10
+ import {IAccessAdmin} from "./IAccessAdmin.sol";
11
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
12
+ import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
13
+ import {Str, StrLib} from "../type/String.sol";
14
+ import {TimestampLib} from "../type/Timestamp.sol";
15
+
16
+ interface IAccessManagedChecker {
17
+ function authority() external view returns (address);
18
+ }
19
+
20
+ /**
21
+ * @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
22
+ * The contract provides read functions to query all available roles, targets and access rights.
23
+ * This contract works for both a constructor based deployment or a deployment based on cloning and initialization.
24
+ */
25
+ contract AccessAdmin is
26
+ AccessManagedUpgradeable,
27
+ ReentrancyGuardUpgradeable,
28
+ IAccessAdmin
29
+ {
30
+ using EnumerableSet for EnumerableSet.AddressSet;
31
+
32
+ string public constant ADMIN_ROLE_NAME = "AdminRole";
33
+ string public constant PUBLIC_ROLE_NAME = "PublicRole";
34
+
35
+ /// @dev the OpenZeppelin access manager driving the access admin contract
36
+ AccessManagerCloneable internal _authority;
37
+
38
+ /// @dev stores the deployer address and allows to create initializers
39
+ /// that are restricted to the deployer address.
40
+ address internal _deployer;
41
+
42
+ /// @dev store role info per role id
43
+ mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
44
+
45
+ /// @dev store role name info per role name
46
+ mapping(Str roleName => RoleNameInfo nameInfo) internal _roleForName;
47
+
48
+ /// @dev store array with all created roles
49
+ RoleId [] internal _roleIds;
50
+
51
+ /// @dev store set of current role members for given role
52
+ mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
53
+
54
+ /// @dev store target info per target address
55
+ mapping(address target => TargetInfo info) internal _targetInfo;
56
+
57
+ /// @dev store role name info per role name
58
+ mapping(Str targetName => address target) internal _targetForName;
59
+
60
+ /// @dev store array with all created targets
61
+ address [] internal _targets;
62
+
63
+ /// @dev store all managed functions per target
64
+ mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
65
+
66
+ /// @dev function infos array
67
+ mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
68
+
69
+ /// @dev temporary dynamic functions array
70
+ bytes4[] private _functions;
71
+
72
+ modifier onlyDeployer() {
73
+ // special case for cloned AccessAdmin contracts
74
+ // IMPORTANT cloning and _initializeAuthority needs to be done in a single transaction
75
+ if (_deployer == address(0)) {
76
+ _deployer = msg.sender;
77
+ }
78
+
79
+ if (msg.sender != _deployer) {
80
+ revert ErrorNotDeployer();
81
+ }
82
+ _;
83
+ }
84
+
85
+ modifier onlyRoleAdmin(RoleId roleId) {
86
+ _checkRoleExists(roleId, false);
87
+
88
+ if (!hasAdminRole(msg.sender, roleId)) {
89
+ revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
90
+ }
91
+ _;
92
+ }
93
+
94
+ modifier onlyRoleMember(RoleId roleId) {
95
+ if (!hasRole(msg.sender, roleId)) {
96
+ revert ErrorNotRoleOwner(roleId);
97
+ }
98
+ _;
99
+ }
100
+
101
+ modifier onlyExistingRole(RoleId roleId, bool onlyActiveRole) {
102
+ _checkRoleExists(roleId, onlyActiveRole);
103
+ _;
104
+ }
105
+
106
+ modifier onlyExistingTarget(address target) {
107
+ _checkTarget(target);
108
+ _;
109
+ }
110
+
111
+ constructor() {
112
+ _deployer = msg.sender;
113
+ _authority = new AccessManagerCloneable();
114
+ _authority.initialize(address(this));
115
+
116
+ _setAuthority(address(_authority)); // set authority for oz access managed
117
+ _createAdminAndPublicRoles();
118
+ }
119
+
120
+ //--- view functions for roles ------------------------------------------//
121
+
122
+ function roles() external view returns (uint256 numberOfRoles) {
123
+ return _roleIds.length;
124
+ }
125
+
126
+ function getRoleId(uint256 idx) external view returns (RoleId roleId) {
127
+ return _roleIds[idx];
128
+ }
129
+
130
+ function getAdminRole() public view returns (RoleId roleId) {
131
+ return RoleId.wrap(_authority.ADMIN_ROLE());
132
+ }
133
+
134
+ function getPublicRole() public view returns (RoleId roleId) {
135
+ return RoleId.wrap(_authority.PUBLIC_ROLE());
136
+ }
137
+
138
+ function roleExists(RoleId roleId) public view returns (bool exists) {
139
+ return _roleInfo[roleId].createdAt.gtz();
140
+ }
141
+
142
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
143
+ return _roleInfo[roleId];
144
+ }
145
+
146
+ function getRoleForName(Str name) external view returns (RoleNameInfo memory) {
147
+ return _roleForName[name];
148
+ }
149
+
150
+ function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
151
+ return _roleMembers[roleId].length();
152
+ }
153
+
154
+ function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
155
+ return _roleMembers[roleId].at(idx);
156
+ }
157
+
158
+ function hasRole(address account, RoleId roleId) public view returns (bool) {
159
+ (bool isMember, ) = _authority.hasRole(
160
+ RoleId.unwrap(roleId),
161
+ account);
162
+ return isMember;
163
+ }
164
+
165
+ function hasAdminRole(address account, RoleId roleId)
166
+ public
167
+ virtual
168
+ view
169
+ returns (bool)
170
+ {
171
+ return hasRole(account, _roleInfo[roleId].adminRoleId);
172
+ }
173
+
174
+ //--- view functions for targets ----------------------------------------//
175
+
176
+ function targetExists(address target) public view returns (bool exists) {
177
+ return _targetInfo[target].createdAt.gtz();
178
+ }
179
+
180
+ function targets() external view returns (uint256 numberOfTargets) {
181
+ return _targets.length;
182
+ }
183
+
184
+ function getTargetAddress(uint256 idx) external view returns (address target) {
185
+ return _targets[idx];
186
+ }
187
+
188
+ function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo) {
189
+ return _targetInfo[target];
190
+ }
191
+
192
+ function getTargetForName(Str name) public view returns (address target) {
193
+ return _targetForName[name];
194
+ }
195
+
196
+ function isTargetLocked(address target) public view returns (bool locked) {
197
+ return _authority.isTargetClosed(target);
198
+ }
199
+
200
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
201
+ return SelectorSetLib.size(_targetFunctions[target]);
202
+ }
203
+
204
+ function getAuthorizedFunction(
205
+ address target,
206
+ uint256 idx
207
+ )
208
+ external
209
+ view
210
+ returns (
211
+ FunctionInfo memory func,
212
+ RoleId roleId
213
+ )
214
+ {
215
+ Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
216
+ func = _functionInfo[target][selector];
217
+ roleId = RoleIdLib.toRoleId(
218
+ _authority.getTargetFunctionRole(
219
+ target,
220
+ selector.toBytes4()));
221
+ }
222
+
223
+ function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
224
+ (can, ) = _authority.canCall(caller, target, selector.toBytes4());
225
+ }
226
+
227
+ function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
228
+ return RoleInfo({
229
+ name: StrLib.toStr(name),
230
+ adminRoleId: adminRoleId,
231
+ roleType: roleType,
232
+ maxMemberCount: maxMemberCount,
233
+ createdAt: TimestampLib.blockTimestamp(),
234
+ pausedAt: TimestampLib.max()
235
+ });
236
+ }
237
+
238
+ function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
239
+ return FunctionInfo({
240
+ name: StrLib.toStr(name),
241
+ selector: SelectorLib.toSelector(selector),
242
+ createdAt: TimestampLib.blockTimestamp()});
243
+ }
244
+
245
+ function deployer() public view returns (address) {
246
+ return _deployer;
247
+ }
248
+
249
+ //--- internal/private functions -------------------------------------------------//
250
+
251
+ function _authorizeTargetFunctions(
252
+ address target,
253
+ RoleId roleId,
254
+ FunctionInfo[] memory functions
255
+ )
256
+ internal
257
+ {
258
+ if (roleId == getAdminRole()) {
259
+ revert ErrorAuthorizeForAdminRoleInvalid(target);
260
+ }
261
+
262
+ bool addFunctions = true;
263
+ bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
264
+
265
+ // apply authz via access manager
266
+ _grantRoleAccessToFunctions(target, roleId, functionSelectors);
267
+ }
268
+
269
+ function _unauthorizeTargetFunctions(
270
+ address target,
271
+ FunctionInfo[] memory functions
272
+ )
273
+ internal
274
+ {
275
+ bool addFunctions = false;
276
+ bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
277
+ _grantRoleAccessToFunctions(target, getAdminRole(), functionSelectors);
278
+ }
279
+
280
+ function _processFunctionSelectors(
281
+ address target,
282
+ FunctionInfo[] memory functions,
283
+ bool addFunctions
284
+ )
285
+ internal
286
+ returns (
287
+ bytes4[] memory functionSelectors
288
+ )
289
+ {
290
+ uint256 n = functions.length;
291
+ functionSelectors = new bytes4[](n);
292
+ FunctionInfo memory func;
293
+ Selector selector;
294
+
295
+ for (uint256 i = 0; i < n; i++) {
296
+ func = functions[i];
297
+ selector = func.selector;
298
+
299
+ // add function selector to target selector set if not in set
300
+ if (addFunctions) { SelectorSetLib.add(_targetFunctions[target], selector); }
301
+ else { SelectorSetLib.remove(_targetFunctions[target], selector); }
302
+
303
+ // set function name
304
+ _functionInfo[target][selector] = func;
305
+
306
+ // add bytes4 selector to function selector array
307
+ functionSelectors[i] = selector.toBytes4();
308
+ }
309
+ }
310
+
311
+ function _initializeAuthority(
312
+ address authorityAddress
313
+ )
314
+ internal
315
+ virtual
316
+ onlyInitializing()
317
+ onlyDeployer()
318
+ {
319
+ if (authority() != address(0)) {
320
+ revert ErrorAuthorityAlreadySet();
321
+ }
322
+
323
+ _authority = AccessManagerCloneable(authorityAddress);
324
+ __AccessManaged_init(address(_authority));
325
+ }
326
+
327
+
328
+ function _initializeAdminAndPublicRoles()
329
+ internal
330
+ virtual
331
+ onlyInitializing()
332
+ {
333
+ _createAdminAndPublicRoles();
334
+ }
335
+
336
+
337
+ /// @dev internal setup function that can be used in both constructor and initializer.
338
+ function _createAdminAndPublicRoles()
339
+ internal
340
+ {
341
+ RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
342
+
343
+ // setup admin role
344
+ _createRoleUnchecked(
345
+ ADMIN_ROLE(),
346
+ toRole({
347
+ adminRoleId: ADMIN_ROLE(),
348
+ roleType: RoleType.Contract,
349
+ maxMemberCount: 1,
350
+ name: ADMIN_ROLE_NAME}));
351
+
352
+ // add this contract as admin role member
353
+ _roleMembers[adminRoleId].add(address(this));
354
+
355
+ // setup public role
356
+ _createRoleUnchecked(
357
+ PUBLIC_ROLE(),
358
+ toRole({
359
+ adminRoleId: ADMIN_ROLE(),
360
+ roleType: RoleType.Gif,
361
+ maxMemberCount: type(uint32).max,
362
+ name: PUBLIC_ROLE_NAME}));
363
+ }
364
+
365
+
366
+ /// @dev grant the specified role access to all functions in the provided selector list
367
+ function _grantRoleAccessToFunctions(
368
+ address target,
369
+ RoleId roleId,
370
+ bytes4[] memory functionSelectors
371
+ )
372
+ internal
373
+ {
374
+ _authority.setTargetFunctionRole(
375
+ target,
376
+ functionSelectors,
377
+ RoleId.unwrap(roleId));
378
+
379
+ // implizit logging: rely on OpenZeppelin log TargetFunctionRoleUpdated
380
+ }
381
+
382
+
383
+ /// @dev grant the specified role to the provided account
384
+ function _grantRoleToAccount(RoleId roleId, address account)
385
+ internal
386
+ onlyExistingRole(roleId, true)
387
+ {
388
+ // check max role members will not be exceeded
389
+ if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
390
+ revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
391
+ }
392
+
393
+ // check account is contract for contract role
394
+ if (
395
+ _roleInfo[roleId].roleType == RoleType.Contract &&
396
+ !ContractLib.isContract(account) // will fail in account's constructor
397
+ ) {
398
+ revert ErrorRoleMemberNotContract(roleId, account);
399
+ }
400
+
401
+ // TODO check account already have roleId
402
+ _roleMembers[roleId].add(account);
403
+ _authority.grantRole(
404
+ RoleId.unwrap(roleId),
405
+ account,
406
+ 0);
407
+
408
+ // indirect logging: rely on OpenZeppelin log RoleGranted
409
+ }
410
+
411
+ /// @dev revoke the specified role from the provided account
412
+ function _revokeRoleFromAccount(RoleId roleId, address account)
413
+ internal
414
+ onlyExistingRole(roleId, false)
415
+ {
416
+
417
+ // check role removal is permitted
418
+ if (_roleInfo[roleId].roleType == RoleType.Contract) {
419
+ revert ErrorRoleMemberRemovalDisabled(roleId, account);
420
+ }
421
+
422
+ // TODO check account have roleId?
423
+ _roleMembers[roleId].remove(account);
424
+ _authority.revokeRole(
425
+ RoleId.unwrap(roleId),
426
+ account);
427
+
428
+ // indirect logging: rely on OpenZeppelin log RoleGranted
429
+ }
430
+
431
+
432
+ /// @dev Creates a role based on the provided parameters.
433
+ /// Checks that the provided role and role id and role name not already used.
434
+ function _createRole(
435
+ RoleId roleId,
436
+ RoleInfo memory info
437
+ )
438
+ internal
439
+ {
440
+ // check role does not yet exist
441
+ if(roleExists(roleId)) {
442
+ revert ErrorRoleAlreadyCreated(
443
+ roleId,
444
+ _roleInfo[roleId].name.toString());
445
+ }
446
+
447
+ // check admin role exists
448
+ if(!roleExists(info.adminRoleId)) {
449
+ revert ErrorRoleAdminNotExisting(info.adminRoleId);
450
+ }
451
+
452
+ // check role name is not empty
453
+ if(info.name.length() == 0) {
454
+ revert ErrorRoleNameEmpty(roleId);
455
+ }
456
+
457
+ // check role name is not used for another role
458
+ if(_roleForName[info.name].exists) {
459
+ revert ErrorRoleNameAlreadyExists(
460
+ roleId,
461
+ info.name.toString(),
462
+ _roleForName[info.name].roleId);
463
+ }
464
+
465
+ _createRoleUnchecked(roleId, info);
466
+ }
467
+
468
+
469
+ function _createRoleUnchecked(
470
+ RoleId roleId,
471
+ RoleInfo memory info
472
+ )
473
+ private
474
+ {
475
+ // create role info
476
+ info.createdAt = TimestampLib.blockTimestamp();
477
+ _roleInfo[roleId] = info;
478
+
479
+ // create role name info
480
+ _roleForName[info.name] = RoleNameInfo({
481
+ roleId: roleId,
482
+ exists: true});
483
+
484
+ // add role to list of roles
485
+ _roleIds.push(roleId);
486
+
487
+ emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
488
+ }
489
+
490
+
491
+ function _createTarget(
492
+ address target,
493
+ string memory targetName,
494
+ bool checkAuthority,
495
+ bool custom
496
+ )
497
+ internal
498
+ {
499
+ // check target does not yet exist
500
+ if(targetExists(target)) {
501
+ revert ErrorTargetAlreadyCreated(
502
+ target,
503
+ _targetInfo[target].name.toString());
504
+ }
505
+
506
+ // check target name is not empty
507
+ Str name = StrLib.toStr(targetName);
508
+ if(name.length() == 0) {
509
+ revert ErrorTargetNameEmpty(target);
510
+ }
511
+
512
+ // check target name is not used for another target
513
+ if( _targetForName[name] != address(0)) {
514
+ revert ErrorTargetNameAlreadyExists(
515
+ target,
516
+ targetName,
517
+ _targetForName[name]);
518
+ }
519
+
520
+ // check target is an access managed contract
521
+ if (!_isAccessManaged(target)) {
522
+ revert ErrorTargetNotAccessManaged(target);
523
+ }
524
+
525
+ // check target shares authority with this contract
526
+ if (checkAuthority) {
527
+ address targetAuthority = AccessManagedUpgradeable(target).authority();
528
+ if (targetAuthority != authority()) {
529
+ revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
530
+ }
531
+ }
532
+
533
+ // create target info
534
+ _targetInfo[target] = TargetInfo({
535
+ name: name,
536
+ isCustom: custom,
537
+ createdAt: TimestampLib.blockTimestamp()
538
+ });
539
+
540
+ // create name to target mapping
541
+ _targetForName[name] = target;
542
+
543
+ // add role to list of roles
544
+ _targets.push(target);
545
+
546
+ emit LogTargetCreated(target, targetName);
547
+ }
548
+
549
+
550
+ function _isAccessManaged(address target)
551
+ internal
552
+ view
553
+ returns (bool)
554
+ {
555
+ if (!ContractLib.isContract(target)) {
556
+ return false;
557
+ }
558
+
559
+ (bool success, ) = target.staticcall(
560
+ abi.encodeWithSelector(
561
+ IAccessManagedChecker.authority.selector));
562
+
563
+ return success;
564
+ }
565
+
566
+
567
+ function _setTargetClosed(address target, bool locked)
568
+ internal
569
+ {
570
+ _checkTarget(target);
571
+
572
+ // target locked/unlocked already
573
+ if(_authority.isTargetClosed(target) == locked) {
574
+ revert ErrorTargetAlreadyLocked(target, locked);
575
+ }
576
+
577
+ _authority.setTargetClosed(target, locked);
578
+ }
579
+
580
+
581
+ function _checkRoleExists(
582
+ RoleId roleId,
583
+ bool onlyActiveRole
584
+ )
585
+ internal
586
+ view
587
+ {
588
+ if (!roleExists(roleId)) {
589
+ revert ErrorRoleUnknown(roleId);
590
+ }
591
+
592
+ uint64 roleIdInt = RoleId.unwrap(roleId);
593
+ if (roleIdInt == _authority.ADMIN_ROLE()
594
+ || roleIdInt == _authority.PUBLIC_ROLE())
595
+ {
596
+ revert ErrorRoleIsLocked(roleId);
597
+ }
598
+
599
+ // check if role is disabled
600
+ if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
601
+ revert ErrorRoleIsPaused(roleId);
602
+ }
603
+ }
604
+
605
+
606
+ /// @dev check if target exists and reverts if it doesn't
607
+ function _checkTarget(address target)
608
+ internal
609
+ view
610
+ {
611
+ if (!targetExists(target)) {
612
+ revert ErrorTargetUnknown(target);
613
+ }
614
+ }
615
+ }
@@ -0,0 +1,16 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
5
+
6
+ contract AccessManagerCloneable is
7
+ AccessManagerUpgradeable
8
+ {
9
+
10
+ function initialize(address initialAdmin)
11
+ external
12
+ initializer()
13
+ {
14
+ __AccessManager_init(initialAdmin);
15
+ }
16
+ }