@etherisc/gif-next 0.0.2-8d9d4d6-542 → 0.0.2-8daf0fe-431

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 (333) hide show
  1. package/README.md +18 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +107 -361
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +71 -207
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +185 -5
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +5 -5
  17. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +271 -15
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +7 -7
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +90 -74
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +30 -30
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
  35. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
  37. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +0 -13
  39. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +27 -39
  41. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  42. package/artifacts/contracts/instance/Instance.sol/Instance.json +29 -90
  43. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1203 -290
  45. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +337 -25
  47. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
  49. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +61 -121
  51. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +18 -42
  53. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
  55. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  57. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  58. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  60. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
  62. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  68. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  69. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  70. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  71. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  72. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  73. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  75. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  76. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  77. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  80. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +4 -4
  82. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +3 -3
  84. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  85. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  86. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  87. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  88. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  89. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
  90. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  91. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
  92. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  94. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  95. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  97. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  98. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
  100. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  101. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
  102. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  103. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +4 -4
  104. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +3 -3
  106. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  107. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  108. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  109. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  110. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  112. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
  114. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  115. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  116. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  117. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  119. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  120. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  121. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  122. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +10 -10
  123. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +6 -6
  125. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  126. package/artifacts/contracts/product/PricingService.sol/PricingService.json +40 -40
  127. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +21 -21
  129. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  130. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  131. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  132. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  133. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  135. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  136. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  137. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
  138. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  139. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  140. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  141. package/artifacts/contracts/registry/Registry.sol/Registry.json +18 -62
  142. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  143. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +196 -387
  144. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  145. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  146. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  148. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +29 -126
  150. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +11 -11
  152. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  154. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  155. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +56 -80
  157. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +29 -41
  159. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  160. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  161. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  162. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  164. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  165. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  167. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  168. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  174. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  175. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  176. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  177. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +2 -2
  178. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +2 -2
  180. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  181. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +2 -2
  182. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  184. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  185. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  186. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  188. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  189. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  190. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  191. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  192. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  193. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  194. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  195. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  196. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  197. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  198. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  199. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  200. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  201. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  202. package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
  203. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  204. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
  205. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  206. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  207. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  208. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  209. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
  211. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  212. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  213. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  214. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  215. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  216. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  217. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
  218. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  219. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  220. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  221. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  222. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  223. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  224. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  225. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  226. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  227. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  228. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  229. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  230. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  231. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +26 -2
  233. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  235. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  237. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  239. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  241. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  243. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  251. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  253. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  255. package/contracts/authorization/AccessAdmin.sol +115 -276
  256. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  257. package/contracts/authorization/Authorization.sol +218 -0
  258. package/contracts/authorization/IAccess.sol +20 -15
  259. package/contracts/authorization/IAccessAdmin.sol +17 -11
  260. package/contracts/authorization/IAuthorization.sol +54 -0
  261. package/contracts/authorization/IModuleAuthorization.sol +11 -17
  262. package/contracts/authorization/ModuleAuthorization.sol +41 -79
  263. package/contracts/distribution/BasicDistribution.sol +149 -0
  264. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  265. package/contracts/distribution/Distribution.sol +126 -104
  266. package/contracts/distribution/DistributionService.sol +10 -5
  267. package/contracts/distribution/IDistributionComponent.sol +17 -35
  268. package/contracts/distribution/IDistributionService.sol +5 -1
  269. package/contracts/instance/IInstance.sol +1 -2
  270. package/contracts/instance/IInstanceService.sol +7 -12
  271. package/contracts/instance/Instance.sol +52 -57
  272. package/contracts/instance/InstanceAdmin.sol +202 -267
  273. package/contracts/instance/InstanceAuthorizationV3.sol +69 -43
  274. package/contracts/instance/InstanceReader.sol +22 -9
  275. package/contracts/instance/InstanceService.sol +66 -62
  276. package/contracts/instance/InstanceStore.sol +5 -1
  277. package/contracts/instance/base/ObjectManager.sol +7 -8
  278. package/contracts/oracle/BasicOracle.sol +48 -0
  279. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  280. package/contracts/oracle/IOracle.sol +16 -0
  281. package/contracts/oracle/Oracle.sol +61 -49
  282. package/contracts/pool/BasicPool.sol +164 -0
  283. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  284. package/contracts/pool/IPoolComponent.sol +0 -60
  285. package/contracts/pool/Pool.sol +143 -131
  286. package/contracts/pool/PoolService.sol +1 -1
  287. package/contracts/product/BasicProduct.sol +82 -0
  288. package/contracts/product/BasicProductAuthorization.sol +40 -0
  289. package/contracts/product/IProductComponent.sol +6 -9
  290. package/contracts/product/Product.sol +103 -88
  291. package/contracts/registry/IRegistry.sol +5 -8
  292. package/contracts/registry/Registry.sol +1 -5
  293. package/contracts/registry/RegistryAdmin.sol +81 -43
  294. package/contracts/registry/ReleaseManager.sol +8 -19
  295. package/contracts/registry/ServiceAuthorizationV3.sol +1 -1
  296. package/contracts/shared/ComponentService.sol +18 -56
  297. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  298. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  299. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  300. package/contracts/type/ObjectType.sol +11 -0
  301. package/contracts/type/RoleId.sol +55 -82
  302. package/contracts/type/UFixed.sol +6 -0
  303. package/package.json +4 -1
  304. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
  305. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +0 -1639
  306. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +0 -4
  307. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +0 -1676
  308. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  309. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  310. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  311. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  312. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  313. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  314. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  315. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  316. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  317. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  318. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  319. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  320. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  321. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  322. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  323. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  324. package/contracts/authorization/InstanceAdmin.sol +0 -108
  325. package/contracts/instance/InstanceAdminNew.sol +0 -74
  326. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  327. package/contracts/shared/AccessManagerCustom.sol +0 -741
  328. package/contracts/shared/AccessManagerExtended.sol +0 -481
  329. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  330. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  331. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  332. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  333. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -1,12 +1,12 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
5
  import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
7
6
 
7
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
8
8
  import {IAccessAdmin} from "./IAccessAdmin.sol";
9
- import {RoleId, RoleIdLib} from "../type/RoleId.sol";
9
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
10
10
  import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
11
11
  import {Str, StrLib} from "../type/String.sol";
12
12
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
@@ -26,19 +26,13 @@ contract AccessAdmin is
26
26
  string public constant ADMIN_ROLE_NAME = "AdminRole";
27
27
  string public constant PUBLIC_ROLE_NAME = "PublicRole";
28
28
 
29
- uint64 public constant MANAGER_ROLE = type(uint64).min + 1;
30
- string public constant MANAGER_ROLE_NAME = "ManagerRole";
31
-
32
29
  /// @dev the OpenZeppelin access manager driving the access admin contract
33
- AccessManager internal _authority;
30
+ AccessManagerCloneable internal _authority;
34
31
 
35
32
  /// @dev stores the deployer address and allows to create initializers
36
33
  /// that are restricted to the deployer address.
37
34
  address internal _deployer;
38
35
 
39
- /// @dev required role for state changes to this contract
40
- RoleId internal _managerRoleId;
41
-
42
36
  /// @dev store role info per role id
43
37
  mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
44
38
 
@@ -87,7 +81,7 @@ contract AccessAdmin is
87
81
  revert ErrorRoleUnknown(roleId);
88
82
  }
89
83
 
90
- if (!hasRole(msg.sender, _roleInfo[roleId].adminRoleId)) {
84
+ if (!hasAdminRole(msg.sender, roleId)) {
91
85
  revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
92
86
  }
93
87
  _;
@@ -112,128 +106,15 @@ contract AccessAdmin is
112
106
 
113
107
  constructor() {
114
108
  _deployer = msg.sender;
115
- _authority = new AccessManager(address(this));
116
-
117
- _setAuthority(address(_authority));
118
- _createInitialRoleSetup();
109
+ _authority = new AccessManagerCloneable();
110
+ _authority.initialize(address(this));
119
111
 
112
+ _setAuthority(address(_authority)); // set authority for oz access managed
113
+ _createAdminAndPublicRoles();
120
114
  _disableInitializers();
121
115
  }
122
116
 
123
- //--- role management functions -----------------------------------------//
124
-
125
- function setRoleDisabled(
126
- RoleId roleId,
127
- bool disabled
128
- )
129
- external
130
- virtual
131
- restricted()
132
- {
133
- _setRoleDisabled(roleId, disabled);
134
- }
135
-
136
- function grantRole(
137
- address account,
138
- RoleId roleId
139
- )
140
- external
141
- virtual
142
- onlyRoleAdmin(roleId)
143
- restricted()
144
- {
145
- _grantRoleToAccount(roleId, account);
146
- }
147
-
148
- function revokeRole(
149
- address account,
150
- RoleId roleId
151
- )
152
- external
153
- virtual
154
- onlyRoleAdmin(roleId)
155
- restricted()
156
- {
157
- _revokeRoleFromAccount(roleId, account);
158
- }
159
-
160
- function renounceRole(
161
- RoleId roleId
162
- )
163
- external
164
- virtual
165
- onlyRoleMember(roleId)
166
- restricted()
167
- {
168
- _revokeRoleFromAccount(roleId, msg.sender);
169
- }
170
-
171
- //--- target management functions ---------------------------------------//
172
-
173
- function setTargetLocked(
174
- address target,
175
- bool locked
176
- )
177
- external
178
- virtual
179
- onlyExistingTarget(target)
180
- restricted()
181
- {
182
- _authority.setTargetClosed(target, locked);
183
-
184
- // implizit logging: rely on OpenZeppelin log TargetClosed
185
- }
186
-
187
- function authorizeFunctions(
188
- address target,
189
- RoleId roleId,
190
- FunctionInfo[] memory functions
191
- )
192
- external
193
- virtual
194
- onlyExistingTarget(target)
195
- onlyExistingRole(roleId)
196
- restricted()
197
- {
198
- _authorizeTargetFunctions(target, roleId, functions);
199
- }
200
-
201
- function unauthorizeFunctions(
202
- address target,
203
- FunctionInfo[] memory functions
204
- )
205
- external
206
- virtual
207
- restricted()
208
- {
209
- _unauthorizeTargetFunctions(target, functions);
210
- }
211
-
212
-
213
- function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
214
- return SelectorSetLib.size(_targetFunctions[target]);
215
- }
216
-
217
- function getAuthorizedFunction(
218
- address target,
219
- uint256 idx
220
- )
221
- external
222
- view
223
- returns (
224
- FunctionInfo memory func,
225
- RoleId roleId
226
- )
227
- {
228
- Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
229
- func = _functionInfo[target][selector];
230
- roleId = RoleIdLib.toRoleId(
231
- _authority.getTargetFunctionRole(
232
- target,
233
- selector.toBytes4()));
234
- }
235
-
236
- //--- view functions ----------------------------------------------------//
117
+ //--- view functions for roles ------------------------------------------//
237
118
 
238
119
  function roles() external view returns (uint256 numberOfRoles) {
239
120
  return _roleIds.length;
@@ -251,18 +132,10 @@ contract AccessAdmin is
251
132
  return RoleId.wrap(_authority.PUBLIC_ROLE());
252
133
  }
253
134
 
254
- function getManagerRole() public view returns (RoleId roleId) {
255
- return _managerRoleId;
256
- }
257
-
258
135
  function roleExists(RoleId roleId) public view returns (bool exists) {
259
136
  return _roleInfo[roleId].createdAt.gtz();
260
137
  }
261
138
 
262
- function isRoleDisabled(RoleId roleId) public view returns (bool isActive) {
263
- return _roleInfo[roleId].disabledAt <= TimestampLib.blockTimestamp();
264
- }
265
-
266
139
  function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
267
140
  return _roleInfo[roleId];
268
141
  }
@@ -271,6 +144,14 @@ contract AccessAdmin is
271
144
  return _roleForName[name];
272
145
  }
273
146
 
147
+ function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
148
+ return _roleMembers[roleId].length();
149
+ }
150
+
151
+ function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
152
+ return _roleMembers[roleId].at(idx);
153
+ }
154
+
274
155
  function hasRole(address account, RoleId roleId) public view returns (bool) {
275
156
  (bool isMember, ) = _authority.hasRole(
276
157
  RoleId.unwrap(roleId),
@@ -278,22 +159,21 @@ contract AccessAdmin is
278
159
  return isMember;
279
160
  }
280
161
 
281
- function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
282
- return _roleMembers[roleId].length();
162
+ function hasAdminRole(address account, RoleId roleId)
163
+ public
164
+ virtual
165
+ view
166
+ returns (bool)
167
+ {
168
+ return hasRole(account, _roleInfo[roleId].adminRoleId);
283
169
  }
284
170
 
285
- function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
286
- return _roleMembers[roleId].at(idx);
287
- }
171
+ //--- view functions for targets ----------------------------------------//
288
172
 
289
173
  function targetExists(address target) public view returns (bool exists) {
290
174
  return _targetInfo[target].createdAt.gtz();
291
175
  }
292
176
 
293
- function isTargetLocked(address target) public view returns (bool locked) {
294
- return _authority.isTargetClosed(target);
295
- }
296
-
297
177
  function targets() external view returns (uint256 numberOfTargets) {
298
178
  return _targets.length;
299
179
  }
@@ -306,10 +186,37 @@ contract AccessAdmin is
306
186
  return _targetInfo[target];
307
187
  }
308
188
 
309
- function getTargetForName(Str name) external view returns (address target) {
189
+ function getTargetForName(Str name) public view returns (address target) {
310
190
  return _targetForName[name];
311
191
  }
312
192
 
193
+ function isTargetLocked(address target) public view returns (bool locked) {
194
+ return _authority.isTargetClosed(target);
195
+ }
196
+
197
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
198
+ return SelectorSetLib.size(_targetFunctions[target]);
199
+ }
200
+
201
+ function getAuthorizedFunction(
202
+ address target,
203
+ uint256 idx
204
+ )
205
+ external
206
+ view
207
+ returns (
208
+ FunctionInfo memory func,
209
+ RoleId roleId
210
+ )
211
+ {
212
+ Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
213
+ func = _functionInfo[target][selector];
214
+ roleId = RoleIdLib.toRoleId(
215
+ _authority.getTargetFunctionRole(
216
+ target,
217
+ selector.toBytes4()));
218
+ }
219
+
313
220
  function isAccessManaged(address target) public view returns (bool) {
314
221
  if (!_isContract(target)) {
315
222
  return false;
@@ -326,17 +233,27 @@ contract AccessAdmin is
326
233
  (can, ) = _authority.canCall(caller, target, selector.toBytes4());
327
234
  }
328
235
 
329
- function deployer() public view returns (address) {
330
- return _deployer;
236
+ function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
237
+ return RoleInfo({
238
+ name: StrLib.toStr(name),
239
+ adminRoleId: adminRoleId,
240
+ roleType: roleType,
241
+ maxMemberCount: maxMemberCount,
242
+ createdAt: TimestampLib.blockTimestamp()
243
+ });
331
244
  }
332
245
 
333
246
  function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
334
247
  return FunctionInfo({
335
- selector: SelectorLib.toSelector(selector),
336
248
  name: StrLib.toStr(name),
249
+ selector: SelectorLib.toSelector(selector),
337
250
  createdAt: TimestampLib.blockTimestamp()});
338
251
  }
339
252
 
253
+ function deployer() public view returns (address) {
254
+ return _deployer;
255
+ }
256
+
340
257
  //--- internal/private functions -------------------------------------------------//
341
258
 
342
259
  function _authorizeTargetFunctions(
@@ -411,81 +328,47 @@ contract AccessAdmin is
411
328
  revert ErrorAuthorityAlreadySet();
412
329
  }
413
330
 
414
- _authority = AccessManager(authorityAddress);
415
-
416
- if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
417
- revert ErrorAdminRoleMissing();
418
- }
419
-
331
+ _authority = AccessManagerCloneable(authorityAddress);
420
332
  __AccessManaged_init(address(_authority));
421
333
  }
422
334
 
423
335
 
424
- function _initializeRoleSetup()
336
+ function _initializeAdminAndPublicRoles()
425
337
  internal
426
338
  virtual
427
339
  onlyInitializing()
428
340
  {
429
- _createInitialRoleSetup();
341
+ _createAdminAndPublicRoles();
430
342
  }
431
343
 
432
344
 
433
345
  /// @dev internal setup function that can be used in both constructor and initializer.
434
- function _createInitialRoleSetup()
346
+ function _createAdminAndPublicRoles()
435
347
  internal
436
348
  {
437
- bool isCustom = false;
438
349
  RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
439
350
  FunctionInfo[] memory functions;
440
351
 
441
352
  // setup admin role
442
353
  _createRoleUnchecked(
443
- adminRoleId,
444
- adminRoleId,
445
- StrLib.toStr(ADMIN_ROLE_NAME),
446
- isCustom,
447
- 1,
448
- true);
354
+ ADMIN_ROLE(),
355
+ toRole({
356
+ adminRoleId: ADMIN_ROLE(),
357
+ roleType: RoleType.Contract,
358
+ maxMemberCount: 1,
359
+ name: ADMIN_ROLE_NAME}));
449
360
 
450
361
  // add this contract as admin role member
451
362
  _roleMembers[adminRoleId].add(address(this));
452
363
 
453
364
  // setup public role
454
365
  _createRoleUnchecked(
455
- RoleIdLib.toRoleId(_authority.PUBLIC_ROLE()),
456
- adminRoleId,
457
- StrLib.toStr(PUBLIC_ROLE_NAME),
458
- isCustom,
459
- type(uint256).max,
460
- true);
461
-
462
- // setup manager role
463
- _managerRoleId = RoleIdLib.toRoleId(MANAGER_ROLE);
464
- _createRole(
465
- _managerRoleId,
466
- adminRoleId,
467
- MANAGER_ROLE_NAME,
468
- isCustom,
469
- 3, // TODO think about max member count
470
- false);
471
-
472
- // grant public role access to grant and revoke, renounce
473
- functions = new FunctionInfo[](3);
474
- functions[0] = toFunction(IAccessAdmin.grantRole.selector, "grantRole");
475
- functions[1] = toFunction(IAccessAdmin.revokeRole.selector, "revokeRole");
476
- functions[2] = toFunction(IAccessAdmin.renounceRole.selector, "renounceRole");
477
- _authorizeTargetFunctions(address(this), getPublicRole(), functions);
478
-
479
- // grant manager role access to the specified functions
480
- functions = new FunctionInfo[](4);
481
- // TODO cleanup
482
- // functions[0] = toFunction(IAccessAdmin.createRole.selector, "createRole");
483
- functions[0] = toFunction(IAccessAdmin.setRoleDisabled.selector, "setRoleDisabled");
484
- // functions[1] = toFunction(IAccessAdmin.createTarget.selector, "createTarget");
485
- functions[1] = toFunction(IAccessAdmin.setTargetLocked.selector, "setTargetLocked");
486
- functions[2] = toFunction(IAccessAdmin.authorizeFunctions.selector, "authorizeFunctions");
487
- functions[3] = toFunction(IAccessAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
488
- _authorizeTargetFunctions(address(this), getManagerRole(), functions);
366
+ PUBLIC_ROLE(),
367
+ toRole({
368
+ adminRoleId: ADMIN_ROLE(),
369
+ roleType: RoleType.Gif,
370
+ maxMemberCount: type(uint32).max,
371
+ name: PUBLIC_ROLE_NAME}));
489
372
  }
490
373
 
491
374
  /// @dev check if target exists and reverts if it doesn't
@@ -518,13 +401,17 @@ contract AccessAdmin is
518
401
  internal
519
402
  {
520
403
  _checkRoleId(roleId);
521
- _checkRoleIsActive(roleId);
522
404
 
523
405
  // check max role members will not be exceeded
524
406
  if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
525
407
  revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
526
408
  }
527
409
 
410
+ // check account is contract for contract role
411
+ // TODO implement
412
+ if (_roleInfo[roleId].roleType == RoleType.Contract) {
413
+ }
414
+
528
415
  _roleMembers[roleId].add(account);
529
416
  _authority.grantRole(
530
417
  RoleId.unwrap(roleId),
@@ -541,7 +428,7 @@ contract AccessAdmin is
541
428
  _checkRoleId(roleId);
542
429
 
543
430
  // check role removal is permitted
544
- if (_roleInfo[roleId].memberRemovalDisabled) {
431
+ if (_roleInfo[roleId].roleType == RoleType.Contract) {
545
432
  revert ErrorRoleRemovalDisabled(roleId);
546
433
  }
547
434
 
@@ -569,23 +456,11 @@ contract AccessAdmin is
569
456
  }
570
457
  }
571
458
 
572
-
573
- function _checkRoleIsActive(RoleId roleId)
574
- internal
575
- {
576
- if (isRoleDisabled(roleId)) {
577
- revert ErrorRoleIsDisabled(roleId);
578
- }
579
- }
580
-
581
-
459
+ /// @dev Creates a role based on the provided parameters.
460
+ /// Checks that the provided role and role id and role name not already used.
582
461
  function _createRole(
583
462
  RoleId roleId,
584
- RoleId adminRoleId,
585
- string memory roleName,
586
- bool isCustom,
587
- uint256 maxMemberCount,
588
- bool memberRemovalDisabled
463
+ RoleInfo memory info
589
464
  )
590
465
  internal
591
466
  {
@@ -597,93 +472,55 @@ contract AccessAdmin is
597
472
  }
598
473
 
599
474
  // check admin role exists
600
- if(!roleExists(adminRoleId)) {
601
- revert ErrorRoleAdminNotExisting(adminRoleId);
475
+ if(!roleExists(info.adminRoleId)) {
476
+ revert ErrorRoleAdminNotExisting(info.adminRoleId);
602
477
  }
603
478
 
604
479
  // check role name is not empty
605
- Str name = StrLib.toStr(roleName);
606
- if(name.length() == 0) {
480
+ if(info.name.length() == 0) {
607
481
  revert ErrorRoleNameEmpty(roleId);
608
482
  }
609
483
 
610
484
  // check role name is not used for another role
611
- if(_roleForName[name].exists) {
485
+ if(_roleForName[info.name].exists) {
612
486
  revert ErrorRoleNameAlreadyExists(
613
487
  roleId,
614
- roleName,
615
- _roleForName[name].roleId);
488
+ info.name.toString(),
489
+ _roleForName[info.name].roleId);
616
490
  }
617
491
 
618
- _createRoleUnchecked(
619
- roleId, adminRoleId,
620
- name,
621
- isCustom,
622
- maxMemberCount,
623
- memberRemovalDisabled);
624
- }
625
-
626
-
627
- function _setRoleDisabled(
628
- RoleId roleId,
629
- bool disabled
630
- )
631
- internal
632
- {
633
-
634
- _checkRoleId(roleId);
635
- Timestamp disabledAtOld = _roleInfo[roleId].disabledAt;
636
-
637
- if (disabled) {
638
- _roleInfo[roleId].disabledAt = TimestampLib.blockTimestamp();
639
- } else {
640
- _roleInfo[roleId].disabledAt = TimestampLib.max();
641
- }
642
-
643
- emit LogRoleDisabled(roleId, disabled, disabledAtOld);
492
+ _createRoleUnchecked(roleId, info);
644
493
  }
645
494
 
646
495
 
647
496
  function _createRoleUnchecked(
648
497
  RoleId roleId,
649
- RoleId adminRoleId,
650
- Str name,
651
- bool custom,
652
- uint256 maxMemberCount,
653
- bool memberRemovalDisabled
498
+ RoleInfo memory info
654
499
  )
655
500
  private
656
501
  {
657
502
  // create role info
658
- _roleInfo[roleId] = RoleInfo({
659
- adminRoleId: adminRoleId,
660
- name: name,
661
- isCustom: custom,
662
- maxMemberCount: maxMemberCount,
663
- memberRemovalDisabled: memberRemovalDisabled,
664
- createdAt: TimestampLib.blockTimestamp(),
665
- disabledAt: TimestampLib.max()});
503
+ info.createdAt = TimestampLib.blockTimestamp();
504
+ _roleInfo[roleId] = info;
666
505
 
667
506
  // create role name info
668
- _roleForName[name] = RoleNameInfo({
507
+ _roleForName[info.name] = RoleNameInfo({
669
508
  roleId: roleId,
670
509
  exists: true});
671
510
 
672
511
  // add role to list of roles
673
512
  _roleIds.push(roleId);
674
513
 
675
- emit LogRoleCreated(roleId, adminRoleId, name.toString());
676
- }
677
-
678
-
679
- function _createTarget(address target, string memory targetName)
680
- internal
681
- {
682
- _createTarget(target, targetName, false);
514
+ emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
683
515
  }
684
516
 
685
517
 
686
- function _createTarget(address target, string memory targetName, bool custom)
518
+ function _createTarget(
519
+ address target,
520
+ string memory targetName,
521
+ bool checkAuthority,
522
+ bool custom
523
+ )
687
524
  internal
688
525
  {
689
526
  // check target does not yet exist
@@ -699,7 +536,7 @@ contract AccessAdmin is
699
536
  revert ErrorTargetNameEmpty(target);
700
537
  }
701
538
 
702
- // check target name is not used for another role
539
+ // check target name is not used for another target
703
540
  if( _targetForName[name] != address(0)) {
704
541
  revert ErrorTargetNameAlreadyExists(
705
542
  target,
@@ -713,9 +550,11 @@ contract AccessAdmin is
713
550
  }
714
551
 
715
552
  // check target shares authority with this contract
716
- address targetAuthority = AccessManagedUpgradeable(target).authority();
717
- if (targetAuthority != authority()) {
718
- revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
553
+ if (checkAuthority) {
554
+ address targetAuthority = AccessManagedUpgradeable(target).authority();
555
+ if (targetAuthority != authority()) {
556
+ revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
557
+ }
719
558
  }
720
559
 
721
560
  // create target info
@@ -0,0 +1,16 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
5
+
6
+ contract AccessManagerCloneable is
7
+ AccessManagerUpgradeable
8
+ {
9
+
10
+ function initialize(address initialAdmin)
11
+ external
12
+ initializer()
13
+ {
14
+ __AccessManager_init(initialAdmin);
15
+ }
16
+ }