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

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 (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
+ }