@etherisc/gif-next 0.0.2-da2c7dd-538 → 0.0.2-da87b00-860

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 (469) hide show
  1. package/README.md +57 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +573 -288
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +295 -47
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +452 -210
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -142
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +448 -148
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -77
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +296 -20
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -100
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -124
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +126 -166
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -180
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +274 -58
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +427 -28
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +335 -12
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -62
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +822 -402
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +299 -58
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +619 -402
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +367 -64
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +448 -374
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -35
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -21
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -21
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -69
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -31
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -31
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -48
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -42
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +40 -42
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +704 -472
  190. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  191. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +710 -407
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +184 -128
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +19 -21
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -71
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  218. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -21
  220. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
  222. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
  224. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
  226. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  227. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  229. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  232. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -21
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  241. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  252. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1450 -140
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
  264. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  265. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +1624 -272
  268. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +135 -68
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1600 -818
  280. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
  284. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  289. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  340. package/contracts/accounting/AccountingService.sol +15 -3
  341. package/contracts/accounting/IAccountingService.sol +4 -2
  342. package/contracts/authorization/AccessAdmin.sol +389 -298
  343. package/contracts/authorization/AccessAdminLib.sol +396 -0
  344. package/contracts/authorization/AccessManagerCloneable.sol +40 -31
  345. package/contracts/authorization/Authorization.sol +60 -228
  346. package/contracts/authorization/IAccess.sol +25 -7
  347. package/contracts/authorization/IAccessAdmin.sol +81 -80
  348. package/contracts/authorization/IAuthorization.sol +3 -51
  349. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  350. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  351. package/contracts/distribution/BasicDistribution.sol +6 -6
  352. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  353. package/contracts/distribution/Distribution.sol +10 -52
  354. package/contracts/distribution/DistributionService.sol +154 -64
  355. package/contracts/distribution/IDistributionComponent.sol +3 -10
  356. package/contracts/distribution/IDistributionService.sol +24 -10
  357. package/contracts/examples/fire/FirePool.sol +0 -4
  358. package/contracts/examples/fire/FireProduct.sol +6 -10
  359. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  360. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  361. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  362. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
  363. package/contracts/instance/IInstance.sol +87 -12
  364. package/contracts/instance/IInstanceService.sol +52 -7
  365. package/contracts/instance/Instance.sol +148 -48
  366. package/contracts/instance/InstanceAdmin.sol +227 -281
  367. package/contracts/instance/InstanceAuthorizationV3.sol +79 -26
  368. package/contracts/instance/InstanceReader.sol +375 -380
  369. package/contracts/instance/InstanceService.sol +230 -134
  370. package/contracts/instance/RiskSet.sol +10 -2
  371. package/contracts/instance/base/BalanceStore.sol +4 -6
  372. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  373. package/contracts/instance/module/IBundle.sol +6 -5
  374. package/contracts/instance/module/IComponents.sol +16 -5
  375. package/contracts/instance/module/IDistribution.sol +19 -7
  376. package/contracts/instance/module/IPolicy.sol +28 -8
  377. package/contracts/instance/module/IRisk.sol +2 -0
  378. package/contracts/oracle/BasicOracle.sol +2 -4
  379. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  380. package/contracts/oracle/IOracle.sol +9 -4
  381. package/contracts/oracle/Oracle.sol +2 -4
  382. package/contracts/oracle/OracleService.sol +8 -8
  383. package/contracts/pool/BasicPool.sol +3 -16
  384. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  385. package/contracts/pool/BundleService.sol +34 -43
  386. package/contracts/pool/IBundleService.sol +14 -13
  387. package/contracts/pool/IPoolService.sol +7 -2
  388. package/contracts/pool/Pool.sol +4 -16
  389. package/contracts/pool/PoolLib.sol +127 -2
  390. package/contracts/pool/PoolService.sol +41 -184
  391. package/contracts/product/ApplicationService.sol +83 -15
  392. package/contracts/product/BasicProduct.sol +1 -3
  393. package/contracts/product/BasicProductAuthorization.sol +11 -4
  394. package/contracts/product/ClaimService.sol +56 -58
  395. package/contracts/product/IApplicationService.sol +24 -2
  396. package/contracts/product/IClaimService.sol +5 -4
  397. package/contracts/product/IPolicyService.sol +9 -2
  398. package/contracts/product/IPricingService.sol +1 -0
  399. package/contracts/product/IRiskService.sol +21 -3
  400. package/contracts/product/PolicyService.sol +31 -68
  401. package/contracts/product/PolicyServiceLib.sol +79 -5
  402. package/contracts/product/PricingService.sol +33 -31
  403. package/contracts/product/Product.sol +38 -14
  404. package/contracts/product/RiskService.sol +55 -9
  405. package/contracts/registry/IRegistry.sol +15 -9
  406. package/contracts/registry/IRelease.sol +6 -3
  407. package/contracts/registry/Registry.sol +15 -9
  408. package/contracts/registry/RegistryAdmin.sol +100 -263
  409. package/contracts/registry/RegistryAuthorization.sol +336 -0
  410. package/contracts/registry/RegistryService.sol +1 -1
  411. package/contracts/registry/ReleaseAdmin.sol +62 -112
  412. package/contracts/registry/ReleaseRegistry.sol +57 -43
  413. package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
  414. package/contracts/registry/TokenRegistry.sol +56 -52
  415. package/contracts/shared/Component.sol +18 -31
  416. package/contracts/shared/ComponentService.sol +239 -244
  417. package/contracts/shared/ContractLib.sol +134 -75
  418. package/contracts/shared/IComponent.sol +1 -4
  419. package/contracts/shared/IComponentService.sol +21 -22
  420. package/contracts/shared/IKeyValueStore.sol +1 -1
  421. package/contracts/shared/INftOwnable.sol +2 -0
  422. package/contracts/shared/IRegisterable.sol +0 -1
  423. package/contracts/shared/InitializableERC165.sol +9 -1
  424. package/contracts/shared/InstanceLinkedComponent.sol +4 -7
  425. package/contracts/shared/KeyValueStore.sol +3 -3
  426. package/contracts/shared/NftOwnable.sol +4 -2
  427. package/contracts/shared/PolicyHolder.sol +3 -2
  428. package/contracts/shared/Registerable.sol +1 -4
  429. package/contracts/shared/Service.sol +6 -4
  430. package/contracts/shared/TokenHandler.sol +5 -4
  431. package/contracts/staking/IStaking.sol +266 -64
  432. package/contracts/staking/IStakingService.sol +44 -82
  433. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  434. package/contracts/staking/Staking.sol +473 -202
  435. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  436. package/contracts/staking/StakingManager.sol +4 -3
  437. package/contracts/staking/StakingReader.sol +58 -77
  438. package/contracts/staking/StakingService.sol +49 -158
  439. package/contracts/staking/StakingServiceManager.sol +1 -0
  440. package/contracts/staking/StakingStore.sol +1089 -330
  441. package/contracts/staking/TargetHandler.sol +132 -0
  442. package/contracts/staking/TargetManagerLib.sol +69 -46
  443. package/contracts/type/Amount.sol +4 -0
  444. package/contracts/type/Blocknumber.sol +15 -15
  445. package/contracts/type/ChainId.sol +101 -0
  446. package/contracts/type/Fee.sol +8 -8
  447. package/contracts/type/NftId.sol +3 -3
  448. package/contracts/type/ObjectType.sol +21 -17
  449. package/contracts/type/RoleId.sol +57 -59
  450. package/contracts/type/Seconds.sol +19 -0
  451. package/contracts/type/String.sol +12 -0
  452. package/contracts/type/Timestamp.sol +4 -2
  453. package/contracts/type/UFixed.sol +28 -10
  454. package/contracts/type/Version.sol +39 -0
  455. package/contracts/upgradeability/IVersionable.sol +3 -0
  456. package/contracts/upgradeability/ProxyManager.sol +25 -11
  457. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  458. package/contracts/upgradeability/Versionable.sol +6 -3
  459. package/package.json +2 -2
  460. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  461. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  462. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  463. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  464. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  465. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  466. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  467. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  468. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  469. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,131 +1,74 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccess} from "./IAccess.sol";
5
4
  import {IAuthorization} from "./IAuthorization.sol";
6
- import {ObjectType, ObjectTypeLib, PRODUCT, ORACLE, DISTRIBUTION, POOL} from "../type/ObjectType.sol";
7
- import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
8
- import {SelectorLib} from "../type/Selector.sol";
5
+
6
+ import {ObjectType} from "../type/ObjectType.sol";
7
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
8
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
9
9
  import {Str, StrLib} from "../type/String.sol";
10
- import {TimestampLib} from "../type/Timestamp.sol";
11
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
10
 
13
- contract Authorization
14
- is IAuthorization
15
- {
16
- uint256 public constant GIF_RELEASE = 3;
17
11
 
18
- string public constant ROLE_NAME_SUFFIX = "Role";
19
- string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
12
+ contract Authorization is
13
+ ServiceAuthorization,
14
+ IAuthorization
15
+ {
20
16
 
21
- ObjectType[] internal _serviceDomains;
22
- mapping(ObjectType domain => Str target) internal _serviceTarget;
17
+ // MUST match with AccessAdminLib.COMPONENT_ROLE_MIN
18
+ uint64 public constant COMPONENT_ROLE_MIN = 110000;
23
19
 
24
- string internal _mainTargetName = "Component";
25
- string internal _tokenHandlerName = "ComponentTH";
20
+ uint64 internal _nextGifContractRoleId;
26
21
 
27
- Str internal _mainTarget;
22
+ string internal _tokenHandlerName = "ComponentTh";
28
23
  Str internal _tokenHandlerTarget;
29
- Str[] internal _targets;
30
-
31
- mapping(Str target => RoleId roleid) internal _targetRole;
32
- mapping(Str target => bool exists) internal _targetExists;
33
-
34
- RoleId[] internal _roles;
35
- mapping(RoleId role => RoleInfo info) internal _roleInfo;
36
-
37
- mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
38
- mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
39
24
 
40
25
 
41
26
  constructor(
42
27
  string memory mainTargetName,
43
- ObjectType targetDomain
28
+ ObjectType domain,
29
+ uint8 release,
30
+ string memory commitHash,
31
+ bool isComponent,
32
+ bool includeTokenHandler
44
33
  )
34
+ ServiceAuthorization(mainTargetName, domain, release, commitHash)
45
35
  {
46
- // checks
47
- if (bytes(mainTargetName).length == 0) {
48
- revert ErrorAuthorizationMainTargetNameEmpty();
49
- }
50
-
51
- if (targetDomain.eqz()) {
52
- revert ErrorAuthorizationTargetDomainZero();
53
- }
36
+ _nextGifContractRoleId = 10;
54
37
 
55
- // effects
56
- // setup main target, main role id and main role info
57
- _mainTargetName = mainTargetName;
58
- _tokenHandlerName = string(abi.encodePacked(mainTargetName, "TH"));
38
+ // setup main target
39
+ if (isComponent) {
40
+ if (domain.eqz()) {
41
+ revert ErrorAuthorizationTargetDomainZero();
42
+ }
59
43
 
60
- RoleId mainRoleId = RoleIdLib.toComponentRoleId(targetDomain, 0);
61
- string memory mainRolName = _toTargetRoleName(mainTargetName);
44
+ RoleId mainRoleId = RoleIdLib.toRoleId(COMPONENT_ROLE_MIN);
45
+ string memory mainRolName = _toTargetRoleName(_mainTargetName);
62
46
 
63
- _addTargetWithRole(
64
- _mainTargetName,
65
- mainRoleId,
66
- mainRolName);
67
-
68
- _mainTarget = StrLib.toStr(mainTargetName);
69
- _targetRole[_mainTarget] = mainRoleId;
70
-
71
- // add token handler target for components
72
- if (targetDomain == PRODUCT()
73
- || targetDomain == DISTRIBUTION()
74
- || targetDomain == ORACLE()
75
- || targetDomain == POOL()
76
- ) {
77
- _addTarget(_tokenHandlerName);
47
+ _addTargetWithRole(
48
+ _mainTargetName,
49
+ mainRoleId,
50
+ mainRolName);
51
+ } else {
52
+ _addGifTarget(_mainTargetName);
78
53
  }
79
54
 
80
- // setup token handler target
81
- _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
82
-
83
55
  // setup use case specific parts
84
56
  _setupServiceTargets();
85
57
  _setupRoles(); // not including main target role
86
58
  _setupTargets(); // not including main target (and token handler target)
87
-
88
- _setupTokenHandlerAuthorizations();
89
59
  _setupTargetAuthorizations(); // not including token handler target
90
- }
91
-
92
- function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
93
- return _serviceDomains;
94
- }
95
-
96
- function getComponentRole(ObjectType componentDomain) public view returns(RoleId roleId) {
97
- return RoleIdLib.toComponentRoleId(componentDomain, 0);
98
- }
99
-
100
- function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
101
- return RoleIdLib.roleForTypeAndVersion(
102
- serviceDomain,
103
- getRelease());
104
- }
105
60
 
106
- function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
107
- return _serviceTarget[serviceDomain];
108
- }
109
-
110
- function getRoles() external view returns(RoleId[] memory roles) {
111
- return _roles;
112
- }
113
-
114
- function roleExists(RoleId roleId) public view returns(bool exists) {
115
- return _roleInfo[roleId].roleType != RoleType.Undefined;
116
- }
117
-
118
- function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
119
- return _roleInfo[roleId];
120
- }
61
+ // setup component token handler
62
+ if (includeTokenHandler) {
63
+ _tokenHandlerName = string(abi.encodePacked(mainTargetName, "Th"));
64
+ _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
65
+ _addTarget(_tokenHandlerName);
66
+ _setupTokenHandlerAuthorizations();
67
+ }
121
68
 
122
- function getMainTargetName() public virtual view returns (string memory name) {
123
- return _mainTargetName;
69
+ _registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
124
70
  }
125
71
 
126
- function getMainTarget() public view returns(Str) {
127
- return _mainTarget;
128
- }
129
72
 
130
73
  function getTokenHandlerName() public view returns(string memory) {
131
74
  return _tokenHandlerName;
@@ -135,7 +78,7 @@ contract Authorization
135
78
  return _tokenHandlerTarget;
136
79
  }
137
80
 
138
- function getTarget(string memory targetName) public view returns(Str target) {
81
+ function getTarget(string memory targetName) public pure returns(Str target) {
139
82
  return StrLib.toStr(targetName);
140
83
  }
141
84
 
@@ -147,97 +90,31 @@ contract Authorization
147
90
  return target == _mainTarget || _targetExists[target];
148
91
  }
149
92
 
150
- function getTargetRole(Str target) external view returns(RoleId roleId) {
151
- return _targetRole[target];
152
- }
153
-
154
- function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
155
- return _authorizedRoles[target];
156
- }
157
-
158
- function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
159
- return _authorizedFunctions[target][roleId];
160
- }
161
-
162
- function getRelease() public virtual pure returns(VersionPart release) {
163
- return VersionPartLib.toVersionPart(GIF_RELEASE);
164
- }
165
-
166
93
  /// @dev Sets up the relevant service targets for the component.
167
94
  /// Overwrite this function for use case specific authorizations.
95
+ // solhint-disable-next-line no-empty-blocks
168
96
  function _setupServiceTargets() internal virtual { }
169
97
 
170
98
  /// @dev Sets up the relevant (non-service) targets for the component.
171
99
  /// Overwrite this function for use case specific authorizations.
100
+ // solhint-disable-next-line no-empty-blocks
172
101
  function _setupTargets() internal virtual { }
173
102
 
174
103
  /// @dev Sets up the relevant roles for the component.
175
104
  /// Overwrite this function for use case specific authorizations.
105
+ // solhint-disable-next-line no-empty-blocks
176
106
  function _setupRoles() internal virtual {}
177
107
 
178
108
  /// @dev Sets up the relevant component's token handler authorizations.
179
109
  /// Overwrite this function for use case specific authorizations.
110
+ // solhint-disable-next-line no-empty-blocks
180
111
  function _setupTokenHandlerAuthorizations() internal virtual {}
181
112
 
182
113
  /// @dev Sets up the relevant target authorizations for the component.
183
114
  /// Overwrite this function for use case specific authorizations.
115
+ // solhint-disable-next-line no-empty-blocks
184
116
  function _setupTargetAuthorizations() internal virtual {}
185
117
 
186
- /// @dev Add the service target role for the specified service domain
187
- function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
188
- // add service domain
189
- _serviceDomains.push(serviceDomain);
190
-
191
- // get versioned target name
192
- string memory serviceTargetName = ObjectTypeLib.toVersionedName(
193
- ObjectTypeLib.toName(serviceDomain),
194
- "Service",
195
- getRelease().toInt());
196
-
197
- _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
198
-
199
- RoleId serviceRoleId = getServiceRole(serviceDomain);
200
- string memory serviceRoleName = ObjectTypeLib.toVersionedName(
201
- ObjectTypeLib.toName(serviceDomain),
202
- "ServiceRole",
203
- getRelease().toInt());
204
-
205
- _addTargetWithRole(
206
- serviceTargetName,
207
- serviceRoleId,
208
- serviceRoleName);
209
- }
210
-
211
-
212
- /// @dev Use this method to to add an authorized role.
213
- function _addRole(RoleId roleId, RoleInfo memory info) internal {
214
- _roles.push(roleId);
215
- _roleInfo[roleId] = info;
216
- }
217
-
218
-
219
- /// @dev Add a contract role for the provided role id and name.
220
- function _addContractRole(RoleId roleId, string memory name) internal {
221
- _addRole(
222
- roleId,
223
- _toRoleInfo(
224
- ADMIN_ROLE(),
225
- RoleType.Contract,
226
- 1,
227
- name));
228
- }
229
-
230
-
231
- /// @dev Add the versioned service role for the specified service domain
232
- function _addServiceRole(ObjectType serviceDomain) internal {
233
- _addContractRole(
234
- getServiceRole(serviceDomain),
235
- ObjectTypeLib.toVersionedName(
236
- ObjectTypeLib.toName(serviceDomain),
237
- SERVICE_ROLE_NAME_SUFFIX,
238
- getRelease().toInt()));
239
- }
240
-
241
118
 
242
119
  /// @dev Add a contract role for the provided role id and name.
243
120
  function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
@@ -250,31 +127,18 @@ contract Authorization
250
127
  name));
251
128
  }
252
129
 
130
+ /// @dev Add a gif target with its corresponding contract role
131
+ function _addGifTarget(string memory contractName) internal {
132
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
133
+ string memory contractRoleName = string(
134
+ abi.encodePacked(
135
+ contractName,
136
+ ROLE_NAME_SUFFIX));
253
137
 
254
- /// @dev Use this method to to add an authorized target together with its target role.
255
- function _addTargetWithRole(
256
- string memory targetName,
257
- RoleId roleId,
258
- string memory roleName
259
- )
260
- internal
261
- {
262
- // add target
263
- Str target = StrLib.toStr(targetName);
264
- _targets.push(target);
265
-
266
- _targetExists[target] = true;
267
-
268
- // link role to target if defined
269
- if (roleId != RoleIdLib.zero()) {
270
- // add role if new
271
- if (!roleExists(roleId)) {
272
- _addContractRole(roleId, roleName);
273
- }
274
-
275
- // link target to role
276
- _targetRole[target] = roleId;
277
- }
138
+ _addTargetWithRole(
139
+ contractName,
140
+ contractRoleId,
141
+ contractRoleName);
278
142
  }
279
143
 
280
144
 
@@ -284,54 +148,22 @@ contract Authorization
284
148
  }
285
149
 
286
150
 
287
- /// @dev Use this method to authorize the specified role to access the target.
288
- function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
289
- internal
290
- returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
291
- {
292
- Str targetStr = StrLib.toStr(target);
293
- _authorizedRoles[targetStr].push(authorizedRoleId);
294
- return _authorizedFunctions[targetStr][authorizedRoleId];
295
- }
296
-
297
-
298
- /// @dev Use this method to authorize a specific function authorization
299
- function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
300
- functions.push(
301
- IAccess.FunctionInfo({
302
- selector: SelectorLib.toSelector(selector),
303
- name: StrLib.toStr(name),
304
- createdAt: TimestampLib.blockTimestamp()}));
305
- }
306
-
307
-
308
- /// @dev role id for targets registry, staking and instance
151
+ /// @dev Role id for targets registry, staking and instance
309
152
  function _toTargetRoleId(ObjectType targetDomain)
310
153
  internal
311
154
  pure
312
155
  returns (RoleId targetRoleId)
313
156
  {
314
- return RoleIdLib.roleForType(targetDomain);
157
+ return RoleIdLib.toRoleId(100 * targetDomain.toInt());
315
158
  }
316
159
 
317
160
 
161
+ /// @dev Returns the role name for the specified target name
318
162
  function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
319
163
  return string(
320
164
  abi.encodePacked(
321
165
  targetName,
322
166
  ROLE_NAME_SUFFIX));
323
167
  }
324
-
325
-
326
- /// @dev creates a role info object from the provided parameters
327
- function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
328
- return RoleInfo({
329
- name: StrLib.toStr(name),
330
- adminRoleId: adminRoleId,
331
- roleType: roleType,
332
- maxMemberCount: maxMemberCount,
333
- createdAt: TimestampLib.blockTimestamp(),
334
- pausedAt: TimestampLib.max()});
335
- }
336
168
  }
337
169
 
@@ -10,38 +10,56 @@ interface IAccess {
10
10
 
11
11
  enum RoleType {
12
12
  Undefined, // no role must have this type
13
+ Core, // GIF core roles
13
14
  Contract, // roles assigned to contracts, cannot be revoked
14
- Gif, // framework roles that may be freely assigned and revoked
15
+ Custom // use case specific rules for components
16
+ }
17
+
18
+ enum TargetType {
19
+ Undefined, // no target must have this type
20
+ Core, // GIF core contracts
21
+ GenericService, // release independent service contracts
22
+ Service, // service contracts
23
+ Instance, // instance contracts
24
+ Component, // instance contracts
15
25
  Custom // use case specific rules for components
16
26
  }
17
27
 
18
28
  struct RoleInfo {
19
- RoleId adminRoleId;
20
- RoleType roleType;
21
- uint32 maxMemberCount;
29
+ // slot 0
30
+ RoleId adminRoleId;
31
+ RoleType roleType;
32
+ uint32 maxMemberCount;
33
+ Timestamp createdAt;
34
+ Timestamp pausedAt;
35
+ // slot 1
22
36
  Str name;
23
- Timestamp createdAt;
24
- Timestamp pausedAt;
25
37
  }
26
38
 
39
+ // TODO recalc slot allocation
27
40
  struct TargetInfo {
28
41
  Str name;
29
- bool isCustom;
42
+ TargetType targetType;
43
+ RoleId roleId;
30
44
  Timestamp createdAt;
31
45
  }
32
46
 
33
47
  struct FunctionInfo {
48
+ // slot 0
34
49
  Str name; // function name
50
+ // slot 1
35
51
  Selector selector; // function selector
36
52
  Timestamp createdAt;
37
53
  }
38
54
 
39
55
  struct RoleNameInfo {
56
+ // slot 0
40
57
  RoleId roleId;
41
58
  bool exists;
42
59
  }
43
60
 
44
61
  struct TargeNameInfo {
62
+ // slot 0
45
63
  address target;
46
64
  bool exists;
47
65
  }
@@ -4,113 +4,114 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
6
  import {IAccess} from "./IAccess.sol";
7
+ import {IAuthorization} from "./IAuthorization.sol";
7
8
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
9
+ import {IRelease} from "../registry/IRelease.sol";
10
+
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {ObjectType} from "../type/ObjectType.sol";
8
13
  import {RoleId} from "../type/RoleId.sol";
9
- import {Selector} from "../type/Selector.sol";
10
14
  import {Str} from "../type/String.sol";
11
15
  import {VersionPart} from "../type/Version.sol";
12
16
 
17
+ /// @dev Base interface for registry admin, release admin, and instance admin
13
18
  interface IAccessAdmin is
14
19
  IAccessManaged,
15
20
  IAccess,
16
- IRegistryLinked
21
+ IRegistryLinked,
22
+ IRelease
17
23
  {
18
24
 
19
25
  // roles, targets and functions
20
- event LogAccessAdminRoleCreated(RoleId roleId, RoleType roleType, RoleId roleAdminId, string name);
21
- event LogAccessAdminTargetCreated(address target, string name);
26
+ event LogAccessAdminRoleCreated(string admin, RoleId roleId, RoleType roleType, RoleId roleAdminId, string name);
27
+ event LogAccessAdminTargetCreated(string admin, string name, bool managed, address target, RoleId roleId);
22
28
 
23
- event LogAccessAdminRoleGranted(address account, string roleName);
24
- event LogAccessAdminRoleRevoked(address account, string roleName);
25
- event LogAccessAdminFunctionGranted(address target, string functionName, string roleName);
29
+ event LogAccessAdminRoleGranted(string admin, address account, string roleName);
30
+ event LogAccessAdminRoleRevoked(string admin, address account, string roleName);
31
+ event LogAccessAdminFunctionGranted(string admin, address target, string func);
26
32
 
27
33
  // only deployer modifier
28
- error ErrorNotDeployer();
34
+ error ErrorAccessAdminNotDeployer();
29
35
 
30
36
  // only role admin modifier
31
- error ErrorNotAdminOfRole(RoleId adminRoleId);
37
+ error ErrorAccessAdminNotAdminOfRole(RoleId adminRoleId, address account);
32
38
 
33
39
  // only role owner modifier
34
- error ErrorNotRoleOwner(RoleId roleId);
40
+ error ErrorAccessAdminNotRoleOwner(RoleId roleId, address account);
41
+
42
+ // role management
43
+ error ErrorAccessAdminInvalidUserOfAdminRole();
44
+ error ErrorAccessAdminInvalidUserOfPublicRole();
45
+ error ErrorAccessAdminRoleNotCustom(RoleId roleId);
46
+
47
+ // initialization
48
+ error ErrorAccessAdminNotRegistry(address registry);
49
+ error ErrorAccessAdminAuthorityNotContract(address authority);
50
+ error ErrorAccessAdminAccessManagerNotAccessManager(address authority);
51
+ error ErrorAccessAdminAccessManagerEmptyName();
52
+
53
+ // check target
54
+ error ErrorAccessAdminInvalidTargetType(address target, TargetType targetType);
55
+ error ErrorAccessAdminInvalidServiceType(address target, TargetType serviceTargetType);
56
+ error ErrorAccessAdminTargetNotCreated(address target);
57
+ error ErrorAccessAdminTargetNotRegistered(address target);
58
+ error ErrorAccessAdminTargetTypeMismatch(address target, ObjectType expectedType, ObjectType actualType);
59
+
60
+ // check authorization
61
+ error ErrorAccessAdminAlreadyInitialized(address authorization);
62
+ error ErrorAccessAdminNotAuthorization(address authorization);
63
+ error ErrorAccessAdminNotServiceAuthorization(address serviceAuthorization);
64
+ error ErrorAccessAdminDomainMismatch(address authorization, ObjectType expectedDomain, ObjectType actualDomain);
65
+ error ErrorAccessAdminReleaseMismatch(address authorization, VersionPart expectedRelease, VersionPart actualRelease);
66
+
67
+ // link to nft
68
+ error ErrorAccessAdminNotRegistered(address registerable);
35
69
 
36
70
  // initialize authority
37
- error ErrorAdminRoleMissing();
71
+ error ErrorAccessAdminAdminRoleMissing();
38
72
 
39
73
  // create role
40
- error ErrorRoleAlreadyCreated(RoleId roleId, string name);
41
- error ErrorRoleAdminNotExisting(RoleId adminRoleId);
42
- error ErrorRoleNameEmpty(RoleId roleId);
43
- error ErrorRoleNameAlreadyExists(RoleId roleId, string name, RoleId existingRoleId);
74
+ error ErrorAccessAdminRoleAlreadyCreated(RoleId roleId, string name);
75
+ error ErrorAccessAdminRoleAdminNotExisting(RoleId adminRoleId);
76
+ error ErrorAccessAdminRoleNameEmpty(RoleId roleId);
77
+ error ErrorAccessAdminRoleNameAlreadyExists(RoleId roleId, string name, RoleId existingRoleId);
44
78
 
45
79
  // grant/revoke/renounce role
46
- error ErrorRoleUnknown(RoleId roleId);
47
- error ErrorRoleIsLocked(RoleId roleId);
48
- error ErrorRoleIsPaused(RoleId roleId);
49
- error ErrorRoleMembersLimitReached(RoleId roleId, uint256 memberCountLimit);
50
- error ErrorRoleMemberNotContract(RoleId roleId, address notContract);
51
- error ErrorRoleMemberRemovalDisabled(RoleId roleId, address expectedMember);
80
+ error ErrorAccessAdminRoleUnknown(RoleId roleId);
81
+ error ErrorAccessAdminRoleIsLocked(RoleId roleId);
82
+ error ErrorAccessAdminRoleIsPaused(RoleId roleId);
83
+ error ErrorAccessAdminRoleMembersLimitReached(RoleId roleId, uint256 memberCountLimit);
84
+ error ErrorAccessAdminRoleMemberNotContract(RoleId roleId, address notContract);
85
+ error ErrorAccessAdminRoleMemberRemovalDisabled(RoleId roleId, address expectedMember);
52
86
 
53
87
  // create target
54
- error ErrorTargetAlreadyCreated(address target, string name);
55
- error ErrorTargetNameEmpty(address target);
56
- error ErrorTargetNameAlreadyExists(address target, string name, address existingTarget);
57
- error ErrorTargetNotAccessManaged(address target);
58
- error ErrorTargetAuthorityMismatch(address expectedAuthority, address actualAuthority);
88
+ error ErrorAccessAdminTargetAlreadyCreated(address target, string name);
89
+ error ErrorAccessAdminTargetNameEmpty(address target);
90
+ error ErrorAccessAdminTargetNameAlreadyExists(address target, string name, address existingTarget);
91
+ error ErrorAccessAdminTargetNotAccessManaged(address target);
92
+ error ErrorAccessAdminTargetAuthorityMismatch(address expectedAuthority, address actualAuthority);
59
93
 
60
94
  // lock target
61
- error ErrorTagetNotLockable();
62
- error ErrorTargetAlreadyLocked(address target, bool isLocked);
95
+ error ErrorAccessAdminTagetNotLockable();
96
+ error ErrorAccessAdminTargetAlreadyLocked(address target, bool isLocked);
63
97
 
64
98
  // authorize target functions
65
- error ErrorAuthorizeForAdminRoleInvalid(address target);
99
+ error ErrorAccessAdminAuthorizeForAdminRoleInvalid(address target);
100
+
101
+ // toFunction
102
+ error ErrorAccessAdminSelectorZero();
103
+ error ErrorAccessAdminFunctionNameEmpty();
66
104
 
67
105
  // check target
68
- error ErrorTargetUnknown(address target);
69
-
70
- /// @dev Set the disabled status of the speicified role.
71
- /// Role disabling only prevents the role from being granted to new accounts.
72
- /// Existing role members may still execute functions that are authorized for that role.
73
- /// Permissioned: the caller must have the manager role (getManagerRole).
74
- // TODO move to instance admin
75
- // function setRoleDisabled(RoleId roleId, bool disabled) external;
76
-
77
- /// @dev Grant the specified account the provided role.
78
- /// Permissioned: the caller must have the roles admin role.
79
- // TODO move to instance admin
80
- // function grantRole(address account, RoleId roleId) external;
81
-
82
- /// @dev Revoke the provided role from the specified account.
83
- /// Permissioned: the caller must have the roles admin role.
84
- // TODO move to instance admin
85
- // function revokeRole(address account, RoleId roleId) external;
86
-
87
- /// @dev Removes the provided role from the caller
88
- // TODO move to instance admin
89
- // function renounceRole(RoleId roleId) external;
90
-
91
- /// @dev Set the locked status of the speicified contract.
92
- /// IMPORTANT: using this function the AccessManager might itself be put into locked state from which it cannot be unlocked again.
93
- /// Overwrite this function if a different use case specific behaviour is required.
94
- /// Alternatively, add specific function to just unlock this contract without a restricted() modifier.
95
- /// Permissioned: the caller must have the manager role (getManagerRole).
96
- // TODO move to instance admin
97
- // function setTargetLocked(address target, bool locked) external;
98
-
99
- /// @dev Specifies which functions of the target can be accessed by the provided role.
100
- /// Previously existing authorizations will be overwritten.
101
- /// Authorizing the admin role is not allowed, use function unauthorizedFunctions for this.
102
- /// Permissioned: the caller must have the manager role (getManagerRole).
103
- // TODO move to instance admin
104
- // function authorizeFunctions(address target, RoleId roleId, FunctionInfo[] memory functions) external;
105
-
106
- /// @dev Specifies for which functionss to remove any previous authorization
107
- /// Permissioned: the caller must have the manager role (getManagerRole).
108
- // TODO move to instance admin
109
- // function unauthorizeFunctions(address target, FunctionInfo[] memory functions) external;
106
+ error ErrorAccessAdminTargetUnknown(address target);
110
107
 
111
108
  //--- view functions ----------------------------------------------------//
112
109
 
113
- function getRelease() external view returns (VersionPart release);
110
+ function getAuthorization() external view returns (IAuthorization authorization);
111
+ function getLinkedNftId() external view returns (NftId linkedNftId);
112
+ function getLinkedOwner() external view returns (address linkedOwner);
113
+
114
+ function isLocked() external view returns (bool locked);
114
115
 
115
116
  function roles() external view returns (uint256 numberOfRoles);
116
117
  function getRoleId(uint256 idx) external view returns (RoleId roleId);
@@ -118,26 +119,26 @@ interface IAccessAdmin is
118
119
  function getPublicRole() external view returns (RoleId roleId);
119
120
 
120
121
  function roleExists(RoleId roleId) external view returns (bool exists);
122
+ function roleExists(string memory roleName) external view returns (bool exists);
123
+ function getRoleForName(string memory name) external view returns (RoleId roleId);
121
124
  function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
122
- function getRoleForName(Str name) external view returns (RoleNameInfo memory);
125
+ function isRoleActive(RoleId roleId) external view returns (bool isActive);
126
+ function isRoleCustom(RoleId roleId) external view returns (bool isCustom);
123
127
 
124
- function hasRole(address account, RoleId roleId) external view returns (bool);
125
- function hasAdminRole(address account, RoleId roleId) external view returns (bool);
128
+ function isRoleMember(RoleId roleId, address account) external view returns (bool);
129
+ function isRoleAdmin(RoleId roleId, address account) external view returns (bool);
126
130
  function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers);
127
131
  function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account);
128
132
 
129
133
  function targetExists(address target) external view returns (bool exists);
130
- function isTargetLocked(address target) external view returns (bool locked);
134
+ function getTargetForName(Str name) external view returns (address target);
131
135
  function targets() external view returns (uint256 numberOfTargets);
132
136
  function getTargetAddress(uint256 idx) external view returns (address target);
133
137
  function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo);
134
- function getTargetForName(Str name) external view returns (address target);
138
+ function isTargetLocked(address target) external view returns (bool locked);
135
139
 
136
140
  function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions);
137
141
  function getAuthorizedFunction(address target, uint256 idx) external view returns (FunctionInfo memory func, RoleId roleId);
138
- function canCall(address caller, address target, Selector selector) external view returns (bool can);
139
142
 
140
- function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) external view returns (RoleInfo memory);
141
- function toFunction(bytes4 selector, string memory name) external view returns (FunctionInfo memory);
142
143
  function deployer() external view returns (address);
143
144
  }