@etherisc/gif-next 0.0.2-ebf1a6b-485 → 0.0.2-ec4918f-024

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