@etherisc/gif-next 0.0.2-7d65090-351 → 0.0.2-7dc3cd3-858

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