@etherisc/gif-next 0.0.2-77c72ae-504 → 0.0.2-782e47c-610

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