@etherisc/gif-next 0.0.2-fd4ee14-428 → 0.0.2-fd5f17a-625

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