@etherisc/gif-next 0.0.2-ada9a19-458 → 0.0.2-adb0ad8-584

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