@etherisc/gif-next 0.0.2-f347f00-614 → 0.0.2-f36fd21-685

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