@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-e9c25ee-730

Sign up to get free protection for your applications and to get access to all the features.
Files changed (728) hide show
  1. package/README.md +136 -22
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1672 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1255 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1322 -0
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +285 -324
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1633 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +896 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +274 -275
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +339 -329
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +596 -94
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +367 -106
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +585 -207
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2366 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1985 -576
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +378 -425
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -174
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1927 -876
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +302 -175
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -241
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +320 -465
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +289 -68
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +609 -223
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +368 -426
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  152. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +455 -482
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  160. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +180 -163
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +623 -0
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +95 -65
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +349 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +911 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  182. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2195 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +361 -250
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +174 -109
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2160 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1393 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +265 -186
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1556 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  224. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +142 -132
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +616 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  234. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +137 -131
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  240. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  251. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  257. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  271. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  280. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +749 -587
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  287. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  341. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  347. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  351. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  357. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  358. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  359. package/contracts/accounting/AccountingService.sol +262 -0
  360. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  361. package/contracts/accounting/IAccountingService.sol +45 -0
  362. package/contracts/authorization/AccessAdmin.sol +875 -0
  363. package/contracts/authorization/AccessAdminLib.sol +379 -0
  364. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  365. package/contracts/authorization/Authorization.sol +261 -0
  366. package/contracts/authorization/IAccess.sol +67 -0
  367. package/contracts/authorization/IAccessAdmin.sol +136 -0
  368. package/contracts/authorization/IAuthorization.sol +27 -0
  369. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  370. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  371. package/contracts/distribution/BasicDistribution.sol +141 -0
  372. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  373. package/contracts/distribution/Distribution.sol +245 -0
  374. package/contracts/distribution/DistributionService.sol +440 -0
  375. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  376. package/contracts/distribution/IDistributionComponent.sol +50 -0
  377. package/contracts/distribution/IDistributionService.sol +109 -0
  378. package/contracts/examples/fire/DamageLevel.sol +59 -0
  379. package/contracts/examples/fire/FirePool.sol +86 -0
  380. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  381. package/contracts/examples/fire/FireProduct.sol +433 -0
  382. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  383. package/contracts/examples/fire/FireUSD.sol +26 -0
  384. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  385. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  387. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  388. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  390. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  391. package/contracts/instance/BundleSet.sol +130 -0
  392. package/contracts/instance/IInstance.sol +117 -38
  393. package/contracts/instance/IInstanceService.sol +71 -50
  394. package/contracts/instance/Instance.sol +252 -110
  395. package/contracts/instance/InstanceAdmin.sol +569 -0
  396. package/contracts/instance/InstanceAuthorizationV3.sol +262 -0
  397. package/contracts/instance/InstanceReader.sol +528 -82
  398. package/contracts/instance/InstanceService.sol +385 -391
  399. package/contracts/instance/InstanceServiceManager.sol +14 -29
  400. package/contracts/instance/InstanceStore.sol +174 -95
  401. package/contracts/instance/RiskSet.sol +118 -0
  402. package/contracts/instance/base/BalanceStore.sol +123 -0
  403. package/contracts/instance/base/Cloneable.sol +28 -0
  404. package/contracts/instance/base/ObjectCounter.sol +20 -0
  405. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  406. package/contracts/instance/base/ObjectSet.sol +77 -0
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +9 -11
  409. package/contracts/instance/module/IComponents.sol +44 -23
  410. package/contracts/instance/module/IDistribution.sol +25 -12
  411. package/contracts/instance/module/IPolicy.sol +71 -38
  412. package/contracts/instance/module/IRisk.sol +6 -1
  413. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  414. package/contracts/oracle/BasicOracle.sol +45 -0
  415. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  416. package/contracts/oracle/IOracle.sol +41 -0
  417. package/contracts/oracle/IOracleComponent.sol +33 -0
  418. package/contracts/oracle/IOracleService.sol +66 -0
  419. package/contracts/oracle/Oracle.sol +154 -0
  420. package/contracts/oracle/OracleService.sol +310 -0
  421. package/contracts/oracle/OracleServiceManager.sol +39 -0
  422. package/contracts/pool/BasicPool.sol +173 -0
  423. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  424. package/contracts/pool/BundleService.sol +395 -0
  425. package/contracts/pool/BundleServiceManager.sol +39 -0
  426. package/contracts/{instance/service → pool}/IBundleService.sol +52 -30
  427. package/contracts/pool/IPoolComponent.sol +62 -0
  428. package/contracts/pool/IPoolService.sol +165 -0
  429. package/contracts/pool/Pool.sol +343 -0
  430. package/contracts/pool/PoolLib.sol +260 -0
  431. package/contracts/pool/PoolService.sol +733 -0
  432. package/contracts/pool/PoolServiceManager.sol +39 -0
  433. package/contracts/product/ApplicationService.sol +274 -0
  434. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  435. package/contracts/product/BasicProduct.sol +49 -0
  436. package/contracts/product/BasicProductAuthorization.sol +61 -0
  437. package/contracts/product/ClaimService.sol +630 -0
  438. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  439. package/contracts/{instance/service → product}/IApplicationService.sol +22 -35
  440. package/contracts/product/IClaimService.sol +135 -0
  441. package/contracts/product/IPolicyService.sol +95 -0
  442. package/contracts/product/IPricingService.sol +40 -0
  443. package/contracts/product/IProductComponent.sol +62 -0
  444. package/contracts/product/IRiskService.sol +33 -0
  445. package/contracts/product/PolicyService.sol +664 -0
  446. package/contracts/product/PolicyServiceLib.sol +86 -0
  447. package/contracts/product/PolicyServiceManager.sol +39 -0
  448. package/contracts/product/PricingService.sol +309 -0
  449. package/contracts/product/PricingServiceManager.sol +39 -0
  450. package/contracts/product/Product.sol +467 -0
  451. package/contracts/product/RiskService.sol +154 -0
  452. package/contracts/product/RiskServiceManager.sol +39 -0
  453. package/contracts/registry/ChainNft.sol +79 -40
  454. package/contracts/registry/IRegistry.sol +99 -30
  455. package/contracts/registry/IRegistryService.sol +34 -40
  456. package/contracts/registry/IRelease.sol +29 -0
  457. package/contracts/registry/ITransferInterceptor.sol +1 -2
  458. package/contracts/registry/Registry.sol +460 -197
  459. package/contracts/registry/RegistryAdmin.sol +291 -0
  460. package/contracts/registry/RegistryAuthorization.sol +277 -0
  461. package/contracts/registry/RegistryService.sol +89 -130
  462. package/contracts/registry/RegistryServiceManager.sol +23 -32
  463. package/contracts/registry/ReleaseAdmin.sol +268 -0
  464. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  465. package/contracts/registry/ReleaseRegistry.sol +517 -0
  466. package/contracts/registry/ServiceAuthorizationV3.sol +341 -0
  467. package/contracts/registry/TokenRegistry.sol +264 -64
  468. package/contracts/shared/Component.sol +210 -0
  469. package/contracts/shared/ComponentService.sol +708 -0
  470. package/contracts/shared/ComponentServiceManager.sol +38 -0
  471. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  472. package/contracts/shared/ContractLib.sol +292 -0
  473. package/contracts/shared/IComponent.sol +58 -0
  474. package/contracts/shared/IComponentService.sol +112 -0
  475. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  476. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  477. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  478. package/contracts/shared/INftOwnable.sol +4 -2
  479. package/contracts/shared/IPolicyHolder.sol +23 -14
  480. package/contracts/shared/IRegisterable.sol +23 -1
  481. package/contracts/shared/IRegistryLinked.sol +0 -1
  482. package/contracts/shared/IService.sol +13 -5
  483. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  484. package/contracts/shared/InstanceLinkedComponent.sol +195 -0
  485. package/contracts/shared/KeyValueStore.sol +131 -0
  486. package/contracts/shared/Lifecycle.sol +88 -0
  487. package/contracts/shared/NftIdSet.sol +65 -0
  488. package/contracts/shared/NftOwnable.sol +34 -27
  489. package/contracts/shared/PolicyHolder.sol +22 -41
  490. package/contracts/shared/Registerable.sol +52 -20
  491. package/contracts/shared/RegistryLinked.sol +9 -19
  492. package/contracts/shared/Service.sol +34 -40
  493. package/contracts/shared/TokenHandler.sol +322 -13
  494. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  495. package/contracts/staking/IStaking.sol +179 -0
  496. package/contracts/staking/IStakingService.sol +172 -0
  497. package/contracts/staking/Staking.sol +546 -0
  498. package/contracts/staking/StakingLib.sol +281 -0
  499. package/contracts/staking/StakingLifecycle.sol +23 -0
  500. package/contracts/staking/StakingManager.sol +52 -0
  501. package/contracts/staking/StakingReader.sol +180 -0
  502. package/contracts/staking/StakingService.sol +464 -0
  503. package/contracts/staking/StakingServiceManager.sol +45 -0
  504. package/contracts/staking/StakingStore.sol +606 -0
  505. package/contracts/staking/TargetManagerLib.sol +211 -0
  506. package/contracts/{types → type}/AddressSet.sol +1 -1
  507. package/contracts/type/Amount.sol +150 -0
  508. package/contracts/{types → type}/Blocknumber.sol +26 -3
  509. package/contracts/{types → type}/ClaimId.sol +31 -3
  510. package/contracts/{types → type}/Fee.sol +28 -26
  511. package/contracts/{types → type}/Key32.sol +2 -2
  512. package/contracts/type/Key32Set.sol +62 -0
  513. package/contracts/{types → type}/NftId.sol +21 -16
  514. package/contracts/{types → type}/NftIdSet.sol +2 -2
  515. package/contracts/type/ObjectType.sol +307 -0
  516. package/contracts/type/PayoutId.sol +82 -0
  517. package/contracts/{types → type}/Referral.sol +2 -1
  518. package/contracts/type/RequestId.sol +75 -0
  519. package/contracts/type/RiskId.sol +75 -0
  520. package/contracts/type/RoleId.sol +180 -0
  521. package/contracts/type/Seconds.sol +101 -0
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/{types → type}/StateId.sol +47 -4
  524. package/contracts/type/String.sol +53 -0
  525. package/contracts/{types → type}/Timestamp.sol +20 -6
  526. package/contracts/type/UFixed.sol +262 -0
  527. package/contracts/{types → type}/Version.sol +58 -7
  528. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  529. package/contracts/{shared → upgradeability}/ProxyManager.sol +104 -39
  530. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  531. package/contracts/{shared → upgradeability}/Versionable.sol +7 -4
  532. package/package.json +12 -8
  533. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  534. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  535. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  540. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  541. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  542. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  543. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  545. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  546. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  548. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  550. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  555. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  557. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  559. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  562. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  564. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  566. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  568. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  570. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  572. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  574. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  576. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  578. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  587. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  589. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  591. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  593. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  595. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  597. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  599. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  601. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  603. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  604. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  605. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  608. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  609. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  610. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  613. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  615. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  617. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  619. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  621. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  623. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  625. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  626. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  627. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  628. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  629. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  631. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  633. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  635. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  637. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  639. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  641. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  643. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  645. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  646. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  647. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  649. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  651. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  653. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  655. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  657. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  659. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  661. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  663. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  665. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  667. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  669. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  671. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  673. package/contracts/components/Component.sol +0 -253
  674. package/contracts/components/Distribution.sol +0 -280
  675. package/contracts/components/IComponent.sol +0 -76
  676. package/contracts/components/IDistributionComponent.sol +0 -71
  677. package/contracts/components/IPoolComponent.sol +0 -113
  678. package/contracts/components/IProductComponent.sol +0 -40
  679. package/contracts/components/Pool.sol +0 -303
  680. package/contracts/components/Product.sol +0 -293
  681. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  682. package/contracts/instance/BundleManager.sol +0 -127
  683. package/contracts/instance/Cloneable.sol +0 -51
  684. package/contracts/instance/InstanceAccessManager.sol +0 -540
  685. package/contracts/instance/ObjectManager.sol +0 -82
  686. package/contracts/instance/base/ComponentService.sol +0 -121
  687. package/contracts/instance/base/KeyValueStore.sol +0 -180
  688. package/contracts/instance/base/Lifecycle.sol +0 -109
  689. package/contracts/instance/module/IAccess.sol +0 -54
  690. package/contracts/instance/module/ISetup.sol +0 -33
  691. package/contracts/instance/module/ITreasury.sol +0 -23
  692. package/contracts/instance/service/ApplicationService.sol +0 -351
  693. package/contracts/instance/service/BundleService.sol +0 -431
  694. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  695. package/contracts/instance/service/ClaimService.sol +0 -151
  696. package/contracts/instance/service/DistributionService.sol +0 -437
  697. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  698. package/contracts/instance/service/IClaimService.sol +0 -61
  699. package/contracts/instance/service/IDistributionService.sol +0 -99
  700. package/contracts/instance/service/IPolicyService.sol +0 -72
  701. package/contracts/instance/service/IPoolService.sol +0 -99
  702. package/contracts/instance/service/IProductService.sol +0 -40
  703. package/contracts/instance/service/PolicyService.sol +0 -362
  704. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  705. package/contracts/instance/service/PoolService.sol +0 -303
  706. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  707. package/contracts/instance/service/ProductService.sol +0 -209
  708. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  709. package/contracts/registry/RegistryAccessManager.sol +0 -216
  710. package/contracts/registry/ReleaseManager.sol +0 -324
  711. package/contracts/shared/ContractDeployerLib.sol +0 -72
  712. package/contracts/test/TestFee.sol +0 -25
  713. package/contracts/test/TestRegisterable.sol +0 -18
  714. package/contracts/test/TestRoleId.sol +0 -14
  715. package/contracts/test/TestService.sol +0 -25
  716. package/contracts/test/TestToken.sol +0 -26
  717. package/contracts/test/TestVersion.sol +0 -44
  718. package/contracts/test/TestVersionable.sol +0 -17
  719. package/contracts/types/Amount.sol +0 -60
  720. package/contracts/types/ChainId.sol +0 -38
  721. package/contracts/types/NumberId.sol +0 -52
  722. package/contracts/types/ObjectType.sol +0 -157
  723. package/contracts/types/PayoutId.sol +0 -54
  724. package/contracts/types/RiskId.sol +0 -43
  725. package/contracts/types/RoleId.sol +0 -97
  726. package/contracts/types/Seconds.sol +0 -54
  727. package/contracts/types/UFixed.sol +0 -326
  728. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,875 @@
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 {IAccess} from "./IAccess.sol";
9
+ import {IAccessAdmin} from "./IAccessAdmin.sol";
10
+ import {IAuthorization} from "./IAuthorization.sol";
11
+ import {IRegistry} from "../registry/IRegistry.sol";
12
+ import {IService} from "../shared/IService.sol";
13
+
14
+ import {ADMIN_ROLE_NAME, PUBLIC_ROLE_NAME} from "./AccessAdmin.sol";
15
+ import {AccessAdminLib} from "./AccessAdminLib.sol";
16
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
17
+ import {ContractLib} from "../shared/ContractLib.sol";
18
+ import {NftId, NftIdLib} from "../type/NftId.sol";
19
+ import {ObjectType} from "../type/ObjectType.sol";
20
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
21
+ import {Selector, SelectorSetLib} from "../type/Selector.sol";
22
+ import {Str, StrLib} from "../type/String.sol";
23
+ import {TimestampLib} from "../type/Timestamp.sol";
24
+ import {VersionPart} from "../type/Version.sol";
25
+
26
+ interface IAccessManagedChecker {
27
+ function authority() external view returns (address);
28
+ }
29
+
30
+ function ADMIN_ROLE_NAME() pure returns (string memory) { return "AdminRole"; }
31
+ function PUBLIC_ROLE_NAME() pure returns (string memory) { return "PublicRole"; }
32
+
33
+
34
+ /**
35
+ * @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
36
+ * The contract provides read functions to query all available roles, targets and access rights.
37
+ * This contract works for both a constructor based deployment or a deployment based on cloning and initialization.
38
+ */
39
+ contract AccessAdmin is
40
+ AccessManagedUpgradeable,
41
+ ReentrancyGuardUpgradeable,
42
+ IAccessAdmin
43
+ {
44
+ using EnumerableSet for EnumerableSet.AddressSet;
45
+
46
+ /// @dev admin name used for logging only
47
+ string internal _adminName;
48
+
49
+ /// @dev the access manager driving the access admin contract
50
+ /// hold link to registry and release version
51
+ AccessManagerCloneable internal _authority;
52
+
53
+ /// @dev the authorization contract used for initial access control
54
+ IAuthorization internal _authorization;
55
+
56
+ /// @dev stores the deployer address and allows to create initializers
57
+ /// that are restricted to the deployer address.
58
+ address internal _deployer;
59
+
60
+ /// @dev the linked NFT ID
61
+ NftId internal _linkedNftId;
62
+
63
+ /// @dev store role info per role id
64
+ mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
65
+
66
+ /// @dev store role name info per role name
67
+ mapping(Str roleName => RoleNameInfo nameInfo) internal _roleForName;
68
+
69
+ /// @dev store array with all created roles
70
+ RoleId [] internal _roleIds;
71
+
72
+ /// @dev store set of current role members for given role
73
+ mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
74
+
75
+ /// @dev store target info per target address
76
+ mapping(address target => TargetInfo info) internal _targetInfo;
77
+
78
+ /// @dev store role name info per role name
79
+ mapping(Str targetName => address target) internal _targetForName;
80
+
81
+ /// @dev store array with all created targets
82
+ address [] internal _targets;
83
+
84
+ /// @dev store all managed functions per target
85
+ mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
86
+
87
+ /// @dev function infos array
88
+ mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
89
+
90
+ /// @dev temporary dynamic functions array
91
+ bytes4[] private _functions;
92
+
93
+ // @dev target type specific role id counters
94
+ mapping(TargetType => uint64) internal _nextRoleId;
95
+
96
+ modifier onlyDeployer() {
97
+ // special case for cloned AccessAdmin contracts
98
+ // IMPORTANT cloning and initialize authority needs to be done in a single transaction
99
+ if (_deployer == address(0)) {
100
+ _deployer = msg.sender;
101
+ }
102
+
103
+ if (msg.sender != _deployer) {
104
+ revert ErrorAccessAdminNotDeployer();
105
+ }
106
+ _;
107
+ }
108
+
109
+
110
+ modifier onlyExistingRole(
111
+ RoleId roleId,
112
+ bool onlyActiveRole,
113
+ bool allowLockedRoles
114
+ )
115
+ {
116
+ if (!allowLockedRoles) {
117
+ _checkRoleExists(roleId, onlyActiveRole);
118
+ }
119
+ _;
120
+ }
121
+
122
+
123
+ modifier onlyExistingTarget(address target) {
124
+ _checkTargetExists(target);
125
+ _;
126
+ }
127
+
128
+ //-------------- initialization functions ------------------------------//
129
+
130
+ // event LogAccessAdminDebug(string message);
131
+
132
+ /// @dev Initializes this admin with the provided accessManager (and authorization specification).
133
+ /// Internally initializes access manager with this admin and creates basic role setup.
134
+ function initialize(
135
+ address authority,
136
+ string memory adminName
137
+ )
138
+ public
139
+ initializer()
140
+ {
141
+ __AccessAdmin_init(authority, adminName);
142
+ }
143
+
144
+
145
+ function __AccessAdmin_init(
146
+ address authority,
147
+ string memory adminName
148
+ )
149
+ internal
150
+ onlyInitializing()
151
+ onlyDeployer()
152
+ {
153
+ // checks
154
+ // check authority is contract
155
+ if (!ContractLib.isContract(authority)) {
156
+ revert ErrorAccessAdminAuthorityNotContract(authority);
157
+ }
158
+
159
+ // check name not empty
160
+ if (bytes(adminName).length == 0) {
161
+ revert ErrorAccessAdminAccessManagerEmptyName();
162
+ }
163
+
164
+ _authority = AccessManagerCloneable(authority);
165
+ _authority.initialize(address(this));
166
+
167
+ // delayed additional check for authority after its initialization
168
+ if (!ContractLib.isAuthority(authority)) {
169
+ revert ErrorAccessAdminAccessManagerNotAccessManager(authority);
170
+ }
171
+
172
+ // effects
173
+ // set and initialize this access manager contract as
174
+ // the admin (ADMIN_ROLE) of the provided authority
175
+ __AccessManaged_init(authority);
176
+
177
+ // set name for logging
178
+ _adminName = adminName;
179
+
180
+ // set initial linked NFT ID to zero
181
+ _linkedNftId = NftIdLib.zero();
182
+
183
+ // create admin and public roles
184
+ _initializeAdminAndPublicRoles();
185
+ }
186
+
187
+
188
+ function getRelease() public view virtual returns (VersionPart release) {
189
+ return _authority.getRelease();
190
+ }
191
+
192
+
193
+ function getRegistry() public view returns (IRegistry registry) {
194
+ return _authority.getRegistry();
195
+ }
196
+
197
+
198
+ function getLinkedNftId() external view returns (NftId linkedNftId) {
199
+ return _linkedNftId;
200
+ }
201
+
202
+
203
+ function getLinkedOwner() external view returns (address linkedOwner) {
204
+ return getRegistry().ownerOf(_linkedNftId);
205
+ }
206
+
207
+
208
+ function getAuthorization() public view returns (IAuthorization authorization) {
209
+ return _authorization;
210
+ }
211
+
212
+
213
+ function isLocked() public view returns (bool locked) {
214
+ return _authority.isLocked();
215
+ }
216
+
217
+ //--- view functions for roles ------------------------------------------//
218
+
219
+ function roles() external view returns (uint256 numberOfRoles) {
220
+ return _roleIds.length;
221
+ }
222
+
223
+ function getRoleId(uint256 idx) external view returns (RoleId roleId) {
224
+ return _roleIds[idx];
225
+ }
226
+
227
+ function getAdminRole() public view returns (RoleId roleId) {
228
+ return RoleId.wrap(_authority.ADMIN_ROLE());
229
+ }
230
+
231
+ function getPublicRole() public view returns (RoleId roleId) {
232
+ return RoleId.wrap(_authority.PUBLIC_ROLE());
233
+ }
234
+
235
+ function roleExists(Str roleName) public view returns (bool exists) {
236
+ // special case admin adn public roles always exist
237
+ if (roleName == StrLib.toStr(ADMIN_ROLE_NAME()) || roleName == StrLib.toStr(PUBLIC_ROLE_NAME())) {
238
+ return true;
239
+ }
240
+
241
+ // check if a role id for the name exists
242
+ RoleId roleId = _roleForName[roleName].roleId;
243
+ if (roleId.eqz()) {
244
+ return false;
245
+ }
246
+
247
+ return _roleInfo[roleId].createdAt.gtz();
248
+ }
249
+
250
+ function roleExists(RoleId roleId) public view returns (bool exists) {
251
+ return _roleInfo[roleId].createdAt.gtz();
252
+ }
253
+
254
+ function getRoleForName(string memory name) public view returns (RoleId roleId) {
255
+ return _roleForName[StrLib.toStr(name)].roleId;
256
+ }
257
+
258
+ function getRoleInfo(RoleId roleId) public view returns (RoleInfo memory) {
259
+ return _roleInfo[roleId];
260
+ }
261
+
262
+ function isRoleActive(RoleId roleId) external view returns (bool isActive) {
263
+ return _roleInfo[roleId].pausedAt > TimestampLib.blockTimestamp();
264
+ }
265
+
266
+ function isRoleCustom(RoleId roleId) external view returns (bool isActive) {
267
+ return _roleInfo[roleId].roleType == RoleType.Custom;
268
+ }
269
+
270
+ function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
271
+ return _roleMembers[roleId].length();
272
+ }
273
+
274
+ function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
275
+ return _roleMembers[roleId].at(idx);
276
+ }
277
+
278
+ function isRoleMember(RoleId roleId, address account) public view returns (bool) {
279
+ (bool isMember, ) = _authority.hasRole(
280
+ RoleId.unwrap(roleId),
281
+ account);
282
+ return isMember;
283
+ }
284
+
285
+ function isRoleAdmin(RoleId roleId, address account)
286
+ public
287
+ virtual
288
+ view
289
+ returns (bool)
290
+ {
291
+ return isRoleMember(_roleInfo[roleId].adminRoleId, account);
292
+ }
293
+
294
+ //--- view functions for targets ----------------------------------------//
295
+
296
+ function targetExists(address target) public view returns (bool exists) {
297
+ return _targetInfo[target].createdAt.gtz();
298
+ }
299
+
300
+ function targets() external view returns (uint256 numberOfTargets) {
301
+ return _targets.length;
302
+ }
303
+
304
+ function getTargetAddress(uint256 idx) external view returns (address target) {
305
+ return _targets[idx];
306
+ }
307
+
308
+ function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo) {
309
+ return _targetInfo[target];
310
+ }
311
+
312
+ function getTargetForName(Str name) public view returns (address target) {
313
+ return _targetForName[name];
314
+ }
315
+
316
+ function isTargetLocked(address target) public view returns (bool locked) {
317
+ return _authority.isTargetClosed(target);
318
+ }
319
+
320
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
321
+ return SelectorSetLib.size(_targetFunctions[target]);
322
+ }
323
+
324
+ function getAuthorizedFunction(
325
+ address target,
326
+ uint256 idx
327
+ )
328
+ external
329
+ view
330
+ returns (
331
+ FunctionInfo memory func,
332
+ RoleId roleId
333
+ )
334
+ {
335
+ Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
336
+ func = _functionInfo[target][selector];
337
+ roleId = RoleIdLib.toRoleId(
338
+ _authority.getTargetFunctionRole(
339
+ target,
340
+ selector.toBytes4()));
341
+ }
342
+
343
+ function deployer() public view returns (address) {
344
+ return _deployer;
345
+ }
346
+
347
+ //--- internal/private functions -------------------------------------------------//
348
+
349
+ function _linkToNftOwnable(address registerable) internal {
350
+ if (!getRegistry().isRegistered(registerable)) {
351
+ revert ErrorAccessAdminNotRegistered(registerable);
352
+ }
353
+
354
+ _linkedNftId = getRegistry().getNftIdForAddress(registerable);
355
+ }
356
+
357
+ function _initializeAdminAndPublicRoles()
358
+ internal
359
+ virtual
360
+ onlyInitializing()
361
+ {
362
+ // setup admin role
363
+ _createRoleUnchecked(
364
+ ADMIN_ROLE(),
365
+ AccessAdminLib.toRole({
366
+ adminRoleId: ADMIN_ROLE(),
367
+ roleType: RoleType.Contract,
368
+ maxMemberCount: 1,
369
+ name: ADMIN_ROLE_NAME()}));
370
+
371
+ // add this contract as admin role member
372
+ _roleMembers[
373
+ RoleIdLib.toRoleId(_authority.ADMIN_ROLE())].add(address(this));
374
+
375
+ // setup public role
376
+ _createRoleUnchecked(
377
+ PUBLIC_ROLE(),
378
+ AccessAdminLib.toRole({
379
+ adminRoleId: ADMIN_ROLE(),
380
+ roleType: RoleType.Core,
381
+ maxMemberCount: type(uint32).max,
382
+ name: PUBLIC_ROLE_NAME()}));
383
+ }
384
+
385
+ // TODO cleanup
386
+ // function _createTargetWithRole(
387
+ // address target,
388
+ // string memory targetName,
389
+ // RoleId targetRoleId
390
+ // )
391
+ // internal
392
+ // {
393
+ // _createTarget(target, targetName, true, false);
394
+ // _grantRoleToAccount(targetRoleId, target);
395
+ // }
396
+
397
+ // TODO refactor / cleanup
398
+ event LogAccessAdminDebugTarget(string name, address target, RoleId roleId, RoleId authorizedRoleId);
399
+
400
+ function _authorizeFunctions(IAuthorization authorization, Str target, RoleId roleId)
401
+ internal
402
+ {
403
+ RoleId authorizedRoleId = _toAuthorizedRoleId(authorization, roleId);
404
+ address getTargetAddress = getTargetForName(target);
405
+ emit LogAccessAdminDebugTarget(target.toString(), getTargetAddress, roleId, authorizedRoleId);
406
+
407
+ _authorizeTargetFunctions(
408
+ getTargetForName(target),
409
+ authorizedRoleId,
410
+ authorization.getAuthorizedFunctions(
411
+ target,
412
+ roleId),
413
+ true);
414
+ }
415
+
416
+ function _toAuthorizedRoleId(IAuthorization authorization, RoleId roleId)
417
+ internal
418
+ returns (RoleId authorizedRoleId)
419
+ {
420
+ // special case for service roles (service roles have predefined role ids)
421
+ if (roleId.isServiceRole()) {
422
+
423
+ // create service role if missing
424
+ if (!roleExists(roleId)) {
425
+ _createRole(
426
+ roleId,
427
+ AccessAdminLib.toRole(
428
+ ADMIN_ROLE(),
429
+ RoleType.Contract,
430
+ 1,
431
+ authorization.getRoleName(roleId)));
432
+ }
433
+
434
+ return roleId;
435
+ }
436
+
437
+ string memory roleName = authorization.getRoleInfo(roleId).name.toString();
438
+ return authorizedRoleId = getRoleForName(roleName);
439
+ }
440
+
441
+ function _authorizeTargetFunctions(
442
+ address target,
443
+ RoleId roleId,
444
+ FunctionInfo[] memory functions,
445
+ bool addFunctions
446
+ )
447
+ internal
448
+ {
449
+ if (addFunctions && roleId == getAdminRole()) {
450
+ revert ErrorAccessAdminAuthorizeForAdminRoleInvalid(target);
451
+ }
452
+
453
+ // apply authz via access manager
454
+ _grantRoleAccessToFunctions(
455
+ target,
456
+ roleId,
457
+ functions,
458
+ addFunctions); // add functions
459
+ }
460
+
461
+ // function _unauthorizeTargetFunctions(
462
+ // address target,
463
+ // FunctionInfo[] memory functions
464
+ // )
465
+ // internal
466
+ // {
467
+ // _grantRoleAccessToFunctions(
468
+ // target,
469
+ // getAdminRole(),
470
+ // functions,
471
+ // false); // addFunctions
472
+ // }
473
+
474
+ // function _processFunctionSelectors(
475
+ // address target,
476
+ // FunctionInfo[] memory functions,
477
+ // bool addFunctions
478
+ // )
479
+ // internal
480
+ // onlyExistingTarget(target)
481
+ // returns (
482
+ // bytes4[] memory functionSelectors,
483
+ // string[] memory functionNames
484
+ // )
485
+ // {
486
+ // uint256 n = functions.length;
487
+ // functionSelectors = new bytes4[](n);
488
+ // functionNames = new string[](n);
489
+ // FunctionInfo memory func;
490
+ // Selector selector;
491
+
492
+ // for (uint256 i = 0; i < n; i++) {
493
+ // func = functions[i];
494
+ // selector = func.selector;
495
+
496
+ // // add function selector to target selector set if not in set
497
+ // if (addFunctions) { SelectorSetLib.add(_targetFunctions[target], selector); }
498
+ // else { SelectorSetLib.remove(_targetFunctions[target], selector); }
499
+
500
+ // // set function name
501
+ // _functionInfo[target][selector] = func;
502
+
503
+ // // add bytes4 selector to function selector array
504
+ // functionSelectors[i] = selector.toBytes4();
505
+ // functionNames[i] = func.name.toString();
506
+ // }
507
+ // }
508
+
509
+ /// @dev grant the specified role access to all functions in the provided selector list
510
+ function _grantRoleAccessToFunctions(
511
+ address target,
512
+ RoleId roleId,
513
+ FunctionInfo[] memory functions,
514
+ bool addFunctions
515
+ )
516
+ internal
517
+ onlyExistingTarget(target)
518
+ onlyExistingRole(roleId, true, !addFunctions)
519
+ {
520
+ _authority.setTargetFunctionRole(
521
+ target,
522
+ AccessAdminLib.getSelectors(functions),
523
+ RoleId.unwrap(roleId));
524
+
525
+ // update function set and log function grantings
526
+ for (uint256 i = 0; i < functions.length; i++) {
527
+ _updateFunctionAccess(
528
+ target,
529
+ roleId,
530
+ functions[i],
531
+ addFunctions);
532
+ }
533
+ }
534
+
535
+
536
+ function _updateFunctionAccess(
537
+ address target,
538
+ RoleId roleId,
539
+ FunctionInfo memory func,
540
+ bool addFunction
541
+ )
542
+ internal
543
+ {
544
+ // update functions info
545
+ Selector selector = func.selector;
546
+ _functionInfo[target][selector] = func;
547
+
548
+ // update function sets
549
+ if (addFunction) { SelectorSetLib.add(_targetFunctions[target], selector); }
550
+ else { SelectorSetLib.remove(_targetFunctions[target], selector); }
551
+
552
+ // logging
553
+ emit LogAccessAdminFunctionGranted(
554
+ _adminName,
555
+ target,
556
+ string(abi.encodePacked(
557
+ func.name.toString(),
558
+ "(): ",
559
+ _getRoleName(roleId))));
560
+ }
561
+
562
+
563
+ /// @dev grant the specified role to the provided account
564
+ function _grantRoleToAccount(RoleId roleId, address account)
565
+ internal
566
+ onlyExistingRole(roleId, true, false)
567
+ {
568
+ // check max role members will not be exceeded
569
+ if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
570
+ revert ErrorAccessAdminRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
571
+ }
572
+
573
+ // check account is contract for contract role
574
+ if (
575
+ _roleInfo[roleId].roleType == RoleType.Contract &&
576
+ !ContractLib.isContract(account) // will fail in account's constructor
577
+ ) {
578
+ revert ErrorAccessAdminRoleMemberNotContract(roleId, account);
579
+ }
580
+
581
+ // effects
582
+ _roleMembers[roleId].add(account);
583
+ _authority.grantRole(
584
+ RoleId.unwrap(roleId),
585
+ account,
586
+ 0);
587
+
588
+ emit LogAccessAdminRoleGranted(_adminName, account, _getRoleName(roleId));
589
+ }
590
+
591
+ /// @dev revoke the specified role from the provided account
592
+ function _revokeRoleFromAccount(RoleId roleId, address account)
593
+ internal
594
+ onlyExistingRole(roleId, false, false)
595
+ {
596
+
597
+ // check role removal is permitted
598
+ if (_roleInfo[roleId].roleType == RoleType.Contract) {
599
+ revert ErrorAccessAdminRoleMemberRemovalDisabled(roleId, account);
600
+ }
601
+
602
+ // effects
603
+ _roleMembers[roleId].remove(account);
604
+ _authority.revokeRole(
605
+ RoleId.unwrap(roleId),
606
+ account);
607
+
608
+ emit LogAccessAdminRoleRevoked(_adminName, account, _roleInfo[roleId].name.toString());
609
+ }
610
+
611
+
612
+ /// @dev Creates a role based on the provided parameters.
613
+ /// Checks that the provided role and role id and role name not already used.
614
+ function _createRole(
615
+ RoleId roleId,
616
+ RoleInfo memory info
617
+ )
618
+ internal
619
+ {
620
+ AccessAdminLib.checkRoleCreation(this, roleId, info);
621
+ _createRoleUnchecked(roleId, info);
622
+ }
623
+
624
+
625
+ /// @dev Activates or deactivates role.
626
+ /// The role activ property is indirectly controlled over the pausedAt timestamp.
627
+ function _setRoleActive(RoleId roleId, bool active)
628
+ internal
629
+ {
630
+ if (active) {
631
+ _roleInfo[roleId].pausedAt = TimestampLib.max();
632
+ } else {
633
+ _roleInfo[roleId].pausedAt = TimestampLib.blockTimestamp();
634
+ }
635
+ }
636
+
637
+
638
+ function _createManagedTarget(
639
+ address target,
640
+ string memory targetName,
641
+ TargetType targetType
642
+ )
643
+ internal
644
+ returns (RoleId contractRoleId)
645
+ {
646
+ return _createTarget(target, targetName, targetType, true);
647
+ }
648
+
649
+
650
+ function _createUncheckedTarget(
651
+ address target,
652
+ string memory targetName,
653
+ TargetType targetType
654
+ )
655
+ internal
656
+ {
657
+ _createTarget(target, targetName, targetType, false);
658
+ }
659
+
660
+
661
+ function _createTarget(
662
+ address target,
663
+ string memory targetName,
664
+ TargetType targetType,
665
+ bool checkAuthority
666
+ )
667
+ private
668
+ returns (RoleId contractRoleId)
669
+ {
670
+ // checks
671
+ AccessAdminLib.checkTargetCreation(this, target, targetName, checkAuthority);
672
+
673
+ // effects
674
+ contractRoleId = _createTargetUnchecked(
675
+ target,
676
+ targetName,
677
+ targetType,
678
+ checkAuthority);
679
+
680
+ // deal with token handler, if applicable
681
+ (
682
+ address tokenHandler,
683
+ string memory tokenHandlerName
684
+ ) = AccessAdminLib.getTokenHandler(target, targetName, targetType);
685
+
686
+ if (tokenHandler != address(0)) {
687
+ _createTargetUnchecked(
688
+ tokenHandler,
689
+ tokenHandlerName,
690
+ targetType,
691
+ checkAuthority);
692
+ }
693
+ }
694
+
695
+
696
+ function _createRoleUnchecked(
697
+ RoleId roleId,
698
+ RoleInfo memory info
699
+ )
700
+ private
701
+ {
702
+ // create role info
703
+ info.createdAt = TimestampLib.blockTimestamp();
704
+ info.pausedAt = TimestampLib.max();
705
+ _roleInfo[roleId] = info;
706
+
707
+ // create role name info
708
+ _roleForName[info.name] = RoleNameInfo({
709
+ roleId: roleId,
710
+ exists: true});
711
+
712
+ // add role to list of roles
713
+ _roleIds.push(roleId);
714
+
715
+ emit LogAccessAdminRoleCreated(_adminName, roleId, info.roleType, info.adminRoleId, info.name.toString());
716
+ }
717
+
718
+ /// @dev Creates a new target and a corresponding contract role.
719
+ /// The function assigns the role to the target and logs the creation.
720
+ function _createTargetUnchecked(
721
+ address target,
722
+ string memory targetName,
723
+ TargetType targetType,
724
+ bool managed
725
+ )
726
+ internal
727
+ returns (RoleId targetRoleId)
728
+ {
729
+ // create target role (if not existing)
730
+ string memory roleName;
731
+ (targetRoleId, roleName) = _getOrCreateTargetRoleIdAndName(target, targetName, targetType);
732
+
733
+ if (!roleExists(targetRoleId)) {
734
+ _createRole(
735
+ targetRoleId,
736
+ AccessAdminLib.toRole(ADMIN_ROLE(), IAccess.RoleType.Contract, 1, roleName));
737
+ }
738
+
739
+ // create target info
740
+ Str name = StrLib.toStr(targetName);
741
+ _targetInfo[target] = TargetInfo({
742
+ name: name,
743
+ targetType: targetType,
744
+ roleId: targetRoleId,
745
+ createdAt: TimestampLib.blockTimestamp()
746
+ });
747
+
748
+ // create name to target mapping
749
+ _targetForName[name] = target;
750
+
751
+ // add target to list of targets
752
+ _targets.push(target);
753
+
754
+ // grant contract role to target
755
+ _grantRoleToAccount(targetRoleId, target);
756
+
757
+ emit LogAccessAdminTargetCreated(_adminName, targetName, managed, target, targetRoleId);
758
+ }
759
+
760
+
761
+ function _getOrCreateTargetRoleIdAndName(
762
+ address target,
763
+ string memory targetName,
764
+ TargetType targetType
765
+ )
766
+ internal
767
+ returns (
768
+ RoleId roleId,
769
+ string memory roleName
770
+ )
771
+ {
772
+ // get roleId
773
+ if (targetType == TargetType.Service || targetType == TargetType.GenericService) {
774
+ roleId = AccessAdminLib.getServiceRoleId(target, targetType);
775
+ } else {
776
+ roleId = AccessAdminLib.getTargetRoleId(target, targetType, _nextRoleId[targetType]);
777
+
778
+ // increment target type specific role id counter
779
+ _nextRoleId[targetType]++;
780
+ }
781
+
782
+ // create role name
783
+ roleName = AccessAdminLib.toRoleName(targetName);
784
+ }
785
+
786
+
787
+ function _setTargetLocked(address target, bool locked)
788
+ internal
789
+ onlyExistingTarget(target)
790
+ {
791
+ _authority.setTargetClosed(target, locked);
792
+ }
793
+
794
+
795
+ function _getRoleName(RoleId roleId) internal view returns (string memory) {
796
+ if (roleExists(roleId)) {
797
+ return _roleInfo[roleId].name.toString();
798
+ }
799
+ return "<unknown-role>";
800
+ }
801
+
802
+
803
+ function _checkAuthorization(
804
+ address authorization,
805
+ ObjectType expectedDomain,
806
+ VersionPart expectedRelease,
807
+ bool checkAlreadyInitialized
808
+ )
809
+ internal
810
+ view
811
+ {
812
+ AccessAdminLib.checkAuthorization(
813
+ address(_authorization),
814
+ authorization,
815
+ expectedDomain,
816
+ expectedRelease,
817
+ checkAlreadyInitialized);
818
+ }
819
+
820
+
821
+ function _checkRoleExists(
822
+ RoleId roleId,
823
+ bool onlyActiveRole
824
+ )
825
+ internal
826
+ view
827
+ {
828
+ if (!roleExists(roleId)) {
829
+ revert ErrorAccessAdminRoleUnknown(roleId);
830
+ }
831
+
832
+ uint64 roleIdInt = RoleId.unwrap(roleId);
833
+ if (roleIdInt == _authority.ADMIN_ROLE()) {
834
+ revert ErrorAccessAdminRoleIsLocked(roleId);
835
+ }
836
+
837
+ // check if role is disabled
838
+ if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
839
+ revert ErrorAccessAdminRoleIsPaused(roleId);
840
+ }
841
+ }
842
+
843
+
844
+
845
+ /// @dev check if target exists and reverts if it doesn't
846
+ function _checkTargetExists(
847
+ address target
848
+ )
849
+ internal
850
+ view
851
+ {
852
+ // check not yet created
853
+ if (!targetExists(target)) {
854
+ revert ErrorAccessAdminTargetNotCreated(target);
855
+ }
856
+ }
857
+
858
+ // TODO cleanup
859
+ // function _checkIsRegistered(
860
+ // address registry,
861
+ // address target,
862
+ // ObjectType expectedType
863
+ // )
864
+ // internal
865
+ // view
866
+ // {
867
+ // AccessAdminLib.checkIsRegistered(registry, target, expectedType);
868
+ // }
869
+
870
+ // function _checkRegistry(address registry) internal view {
871
+ // if (!ContractLib.isRegistry(registry)) {
872
+ // revert ErrorAccessAdminNotRegistry(registry);
873
+ // }
874
+ // }
875
+ }