@etherisc/gif-next 0.0.2-b28f7c7-340 → 0.0.2-b3a8633-027

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 (645) hide show
  1. package/README.md +32 -3
  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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  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/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1191 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +184 -253
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +77 -324
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +296 -2011
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +198 -74
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +422 -2807
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +825 -379
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -282
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -218
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -153
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +90 -46
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +191 -296
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +294 -60
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → product/BasicProduct.sol/BasicProduct.json} +370 -400
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +131 -94
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +194 -80
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +86 -159
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/{components → product}/Product.sol/Product.json +338 -248
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
  151. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
  152. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1503 -0
  153. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
  154. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1881 -0
  155. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
  156. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +172 -29
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -125
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +559 -44
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1871 -0
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1140 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  178. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  179. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
  186. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  188. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  189. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
  190. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  192. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  194. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  196. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  198. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  200. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  206. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  208. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  216. package/artifacts/contracts/shared/MainnetId.sol/MainnetContract.dbg.json +4 -0
  217. package/artifacts/contracts/shared/MainnetId.sol/MainnetContract.json +34 -0
  218. package/artifacts/contracts/shared/MainnetId.sol/MainnetId.dbg.json +4 -0
  219. package/artifacts/contracts/shared/MainnetId.sol/MainnetId.json +24 -0
  220. package/artifacts/contracts/shared/MainnetId.sol/SidenetContract.dbg.json +4 -0
  221. package/artifacts/contracts/shared/MainnetId.sol/SidenetContract.json +34 -0
  222. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  223. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  224. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  226. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  228. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  230. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  232. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  236. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  238. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  240. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  242. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  243. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  244. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  246. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  248. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  250. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  252. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  254. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  256. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  258. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  259. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  260. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  262. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  264. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  266. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  270. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  272. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  274. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  275. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  276. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  278. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  280. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  282. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  284. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  286. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  288. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  290. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  292. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  294. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  296. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  298. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  299. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
  300. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  302. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  304. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  306. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  308. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  309. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  310. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  312. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  314. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  315. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  316. package/contracts/authorization/AccessAdmin.sol +590 -0
  317. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  318. package/contracts/authorization/Authorization.sol +218 -0
  319. package/contracts/authorization/IAccess.sol +48 -0
  320. package/contracts/authorization/IAccessAdmin.sol +136 -0
  321. package/contracts/authorization/IAuthorization.sol +54 -0
  322. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  323. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  324. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  325. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  326. package/contracts/distribution/BasicDistribution.sol +149 -0
  327. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  328. package/contracts/{components → distribution}/Distribution.sol +162 -159
  329. package/contracts/distribution/DistributionService.sol +288 -0
  330. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  331. package/contracts/distribution/IDistributionComponent.sol +48 -0
  332. package/contracts/{instance/service → distribution}/IDistributionService.sol +24 -38
  333. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  334. package/contracts/instance/IInstance.sol +55 -67
  335. package/contracts/instance/IInstanceService.sol +50 -30
  336. package/contracts/instance/Instance.sol +160 -233
  337. package/contracts/instance/InstanceAdmin.sol +266 -0
  338. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  339. package/contracts/instance/InstanceReader.sol +173 -59
  340. package/contracts/instance/InstanceService.sol +280 -332
  341. package/contracts/instance/InstanceServiceManager.sol +12 -26
  342. package/contracts/instance/InstanceStore.sol +276 -0
  343. package/contracts/instance/base/BalanceStore.sol +123 -0
  344. package/contracts/instance/base/Cloneable.sol +28 -0
  345. package/contracts/instance/base/ObjectCounter.sol +21 -0
  346. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  347. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  348. package/contracts/instance/module/IAccess.sol +4 -12
  349. package/contracts/instance/module/IBundle.sol +6 -9
  350. package/contracts/instance/module/IComponents.sol +21 -10
  351. package/contracts/instance/module/IDistribution.sol +7 -6
  352. package/contracts/instance/module/IPolicy.sol +28 -16
  353. package/contracts/instance/module/IRisk.sol +1 -1
  354. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  355. package/contracts/oracle/BasicOracle.sol +48 -0
  356. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  357. package/contracts/oracle/IOracle.sol +36 -0
  358. package/contracts/oracle/IOracleComponent.sol +32 -0
  359. package/contracts/oracle/IOracleService.sol +65 -0
  360. package/contracts/oracle/Oracle.sol +157 -0
  361. package/contracts/oracle/OracleService.sol +278 -0
  362. package/contracts/oracle/OracleServiceManager.sol +39 -0
  363. package/contracts/pool/BasicPool.sol +164 -0
  364. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  365. package/contracts/pool/BundleService.sol +284 -0
  366. package/contracts/pool/BundleServiceManager.sol +39 -0
  367. package/contracts/{instance/service → pool}/IBundleService.sol +35 -22
  368. package/contracts/pool/IPoolComponent.sol +52 -0
  369. package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
  370. package/contracts/pool/Pool.sol +311 -0
  371. package/contracts/pool/PoolService.sol +436 -0
  372. package/contracts/pool/PoolServiceManager.sol +39 -0
  373. package/contracts/product/ApplicationService.sol +230 -0
  374. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  375. package/contracts/product/BasicProduct.sol +82 -0
  376. package/contracts/product/BasicProductAuthorization.sol +40 -0
  377. package/contracts/product/ClaimService.sol +416 -0
  378. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  379. package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
  380. package/contracts/product/IClaimService.sol +99 -0
  381. package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
  382. package/contracts/product/IPricingService.sol +39 -0
  383. package/contracts/product/IProductComponent.sol +39 -0
  384. package/contracts/product/IProductService.sol +33 -0
  385. package/contracts/product/PolicyService.sol +475 -0
  386. package/contracts/product/PolicyServiceManager.sol +39 -0
  387. package/contracts/product/PricingService.sol +300 -0
  388. package/contracts/product/PricingServiceManager.sol +39 -0
  389. package/contracts/{components → product}/Product.sol +209 -110
  390. package/contracts/product/ProductService.sol +99 -0
  391. package/contracts/product/ProductServiceManager.sol +39 -0
  392. package/contracts/registry/ChainNft.sol +34 -26
  393. package/contracts/registry/GlobalRegistry.sol +95 -0
  394. package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
  395. package/contracts/registry/IGlobalRegistry.sol +17 -0
  396. package/contracts/registry/IRegistry.sol +58 -26
  397. package/contracts/registry/IRegistryService.sol +42 -41
  398. package/contracts/registry/Registry.sol +261 -161
  399. package/contracts/registry/RegistryAdmin.sol +447 -0
  400. package/contracts/registry/RegistryService.sol +69 -99
  401. package/contracts/registry/RegistryServiceManager.sol +23 -32
  402. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  403. package/contracts/registry/ReleaseRegistry.sol +533 -0
  404. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  405. package/contracts/registry/TokenRegistry.sol +261 -62
  406. package/contracts/shared/Component.sol +281 -0
  407. package/contracts/shared/ComponentService.sol +581 -0
  408. package/contracts/shared/ComponentServiceManager.sol +35 -0
  409. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  410. package/contracts/shared/ERC165.sol +1 -1
  411. package/contracts/{components → shared}/IComponent.sol +23 -29
  412. package/contracts/shared/IComponentService.sol +102 -0
  413. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  414. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  415. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  416. package/contracts/shared/INftOwnable.sol +2 -2
  417. package/contracts/shared/IPolicyHolder.sol +29 -10
  418. package/contracts/shared/IRegistryLinked.sol +0 -1
  419. package/contracts/shared/IService.sol +12 -3
  420. package/contracts/shared/InitializableCustom.sol +177 -0
  421. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  422. package/contracts/shared/KeyValueStore.sol +131 -0
  423. package/contracts/shared/Lifecycle.sol +77 -0
  424. package/contracts/shared/MainnetId.sol +29 -0
  425. package/contracts/shared/NftIdSet.sol +65 -0
  426. package/contracts/shared/NftOwnable.sol +3 -16
  427. package/contracts/shared/PolicyHolder.sol +40 -19
  428. package/contracts/shared/Registerable.sol +13 -12
  429. package/contracts/shared/RegistryLinked.sol +0 -5
  430. package/contracts/shared/Service.sol +32 -22
  431. package/contracts/shared/TokenHandler.sol +27 -2
  432. package/contracts/staking/IStaking.sol +167 -0
  433. package/contracts/staking/IStakingService.sol +160 -0
  434. package/contracts/staking/StakeManagerLib.sol +231 -0
  435. package/contracts/staking/Staking.sol +510 -0
  436. package/contracts/staking/StakingLifecycle.sol +23 -0
  437. package/contracts/staking/StakingManager.sol +50 -0
  438. package/contracts/staking/StakingReader.sol +183 -0
  439. package/contracts/staking/StakingService.sol +411 -0
  440. package/contracts/staking/StakingServiceManager.sol +44 -0
  441. package/contracts/staking/StakingStore.sol +605 -0
  442. package/contracts/staking/TargetManagerLib.sol +207 -0
  443. package/contracts/{types → type}/AddressSet.sol +1 -1
  444. package/contracts/type/Amount.sol +128 -0
  445. package/contracts/{types → type}/Blocknumber.sol +20 -3
  446. package/contracts/{types → type}/ClaimId.sol +25 -2
  447. package/contracts/{types → type}/Fee.sol +24 -22
  448. package/contracts/{types → type}/NftId.sol +14 -16
  449. package/contracts/{types → type}/NftIdSet.sol +2 -2
  450. package/contracts/type/ObjectType.sol +271 -0
  451. package/contracts/{types → type}/PayoutId.sol +33 -5
  452. package/contracts/{types → type}/Referral.sol +1 -1
  453. package/contracts/type/RequestId.sol +75 -0
  454. package/contracts/{types → type}/RiskId.sol +1 -1
  455. package/contracts/type/RoleId.sol +174 -0
  456. package/contracts/{types → type}/Seconds.sol +27 -0
  457. package/contracts/type/Selector.sol +102 -0
  458. package/contracts/{types → type}/StateId.sol +33 -4
  459. package/contracts/type/String.sol +53 -0
  460. package/contracts/{types → type}/Timestamp.sol +10 -1
  461. package/contracts/{types → type}/UFixed.sol +6 -0
  462. package/contracts/{types → type}/Version.sol +4 -2
  463. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  464. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  465. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  466. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  467. package/package.json +8 -5
  468. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  469. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  470. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  471. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  472. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  473. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  474. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  475. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  476. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  477. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  478. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  479. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  480. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  481. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  483. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  485. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  487. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  490. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  491. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  492. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  493. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  494. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  495. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  497. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  499. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  501. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  503. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  505. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  507. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  509. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  511. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  513. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  520. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  522. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  524. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  526. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  528. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  530. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  531. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  532. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  533. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  534. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  535. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  536. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  537. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  538. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  539. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  540. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  541. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  542. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  543. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  544. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  545. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  546. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  547. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  548. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  549. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  550. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  551. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  552. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  553. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  554. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  555. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  556. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  557. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  558. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  559. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  560. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  562. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  564. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  566. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  568. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  570. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  572. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  573. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  574. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  576. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  577. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  578. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  580. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  582. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  584. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  586. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  588. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  590. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  592. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  594. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  596. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  598. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  600. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  602. package/contracts/components/Component.sol +0 -253
  603. package/contracts/components/IDistributionComponent.sol +0 -71
  604. package/contracts/components/IPoolComponent.sol +0 -113
  605. package/contracts/components/IProductComponent.sol +0 -40
  606. package/contracts/components/Pool.sol +0 -303
  607. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  608. package/contracts/instance/Cloneable.sol +0 -51
  609. package/contracts/instance/InstanceAccessManager.sol +0 -527
  610. package/contracts/instance/base/ComponentService.sol +0 -121
  611. package/contracts/instance/base/KeyValueStore.sol +0 -180
  612. package/contracts/instance/base/Lifecycle.sol +0 -109
  613. package/contracts/instance/module/ISetup.sol +0 -33
  614. package/contracts/instance/module/ITreasury.sol +0 -23
  615. package/contracts/instance/service/ApplicationService.sol +0 -350
  616. package/contracts/instance/service/BundleService.sol +0 -431
  617. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  618. package/contracts/instance/service/ClaimService.sol +0 -151
  619. package/contracts/instance/service/DistributionService.sol +0 -435
  620. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  621. package/contracts/instance/service/IClaimService.sol +0 -61
  622. package/contracts/instance/service/IProductService.sol +0 -40
  623. package/contracts/instance/service/PolicyService.sol +0 -362
  624. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  625. package/contracts/instance/service/PoolService.sol +0 -303
  626. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  627. package/contracts/instance/service/ProductService.sol +0 -210
  628. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  629. package/contracts/registry/RegistryAccessManager.sol +0 -216
  630. package/contracts/registry/ReleaseManager.sol +0 -324
  631. package/contracts/shared/ContractDeployerLib.sol +0 -72
  632. package/contracts/test/TestFee.sol +0 -25
  633. package/contracts/test/TestRegisterable.sol +0 -18
  634. package/contracts/test/TestRoleId.sol +0 -14
  635. package/contracts/test/TestService.sol +0 -25
  636. package/contracts/test/TestToken.sol +0 -26
  637. package/contracts/test/TestVersion.sol +0 -44
  638. package/contracts/test/TestVersionable.sol +0 -17
  639. package/contracts/types/Amount.sol +0 -60
  640. package/contracts/types/ChainId.sol +0 -38
  641. package/contracts/types/NumberId.sol +0 -52
  642. package/contracts/types/ObjectType.sol +0 -157
  643. package/contracts/types/RoleId.sol +0 -97
  644. /package/contracts/{types → type}/DistributorType.sol +0 -0
  645. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,590 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
6
+ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
7
+
8
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
9
+ import {IAccessAdmin} from "./IAccessAdmin.sol";
10
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
11
+ import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
12
+ import {Str, StrLib} from "../type/String.sol";
13
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
14
+
15
+
16
+ /**
17
+ * @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
18
+ * The contract provides read functions to query all available roles, targets and access rights.
19
+ * This contract works for both a constructor based deployment or a deployment based on cloning and initialization.
20
+ */
21
+ contract AccessAdmin is
22
+ AccessManagedUpgradeable,
23
+ ReentrancyGuardUpgradeable,
24
+ IAccessAdmin
25
+ {
26
+ using EnumerableSet for EnumerableSet.AddressSet;
27
+
28
+ string public constant ADMIN_ROLE_NAME = "AdminRole";
29
+ string public constant PUBLIC_ROLE_NAME = "PublicRole";
30
+
31
+ /// @dev the OpenZeppelin access manager driving the access admin contract
32
+ AccessManagerCloneable internal _authority;
33
+
34
+ /// @dev stores the deployer address and allows to create initializers
35
+ /// that are restricted to the deployer address.
36
+ address internal _deployer;
37
+
38
+ /// @dev store role info per role id
39
+ mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
40
+
41
+ /// @dev store role name info per role name
42
+ mapping(Str roleName => RoleNameInfo nameInfo) internal _roleForName;
43
+
44
+ /// @dev store array with all created roles
45
+ RoleId [] internal _roleIds;
46
+
47
+ /// @dev store set of current role members for given role
48
+ mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
49
+
50
+ /// @dev store target info per target address
51
+ mapping(address target => TargetInfo info) internal _targetInfo;
52
+
53
+ /// @dev store role name info per role name
54
+ mapping(Str targetName => address target) internal _targetForName;
55
+
56
+ /// @dev store array with all created targets
57
+ address [] internal _targets;
58
+
59
+ /// @dev store all managed functions per target
60
+ mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
61
+
62
+ /// @dev function infos array
63
+ mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
64
+
65
+ /// @dev temporary dynamic functions array
66
+ bytes4[] private _functions;
67
+
68
+ modifier onlyDeployer() {
69
+ // special case for cloned AccessAdmin contracts
70
+ // IMPORTANT cloning and _initializeAuthority needs to be done in a single transaction
71
+ if (_deployer == address(0)) {
72
+ _deployer = msg.sender;
73
+ }
74
+
75
+ if (msg.sender != _deployer) {
76
+ revert ErrorNotDeployer();
77
+ }
78
+ _;
79
+ }
80
+
81
+ modifier onlyRoleAdmin(RoleId roleId) {
82
+ if (!roleExists(roleId)) {
83
+ revert ErrorRoleUnknown(roleId);
84
+ }
85
+
86
+ if (!hasAdminRole(msg.sender, roleId)) {
87
+ revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
88
+ }
89
+ _;
90
+ }
91
+
92
+ modifier onlyRoleMember(RoleId roleId) {
93
+ if (!hasRole(msg.sender, roleId)) {
94
+ revert ErrorNotRoleOwner(roleId);
95
+ }
96
+ _;
97
+ }
98
+
99
+ modifier onlyExistingRole(RoleId roleId) {
100
+ _checkRoleId(roleId);
101
+ _;
102
+ }
103
+
104
+ modifier onlyExistingTarget(address target) {
105
+ _checkTarget(target);
106
+ _;
107
+ }
108
+
109
+ constructor() {
110
+ _deployer = msg.sender;
111
+ _authority = new AccessManagerCloneable();
112
+ _authority.initialize(address(this));
113
+
114
+ _setAuthority(address(_authority)); // set authority for oz access managed
115
+ _createAdminAndPublicRoles();
116
+ }
117
+
118
+ //--- view functions for roles ------------------------------------------//
119
+
120
+ function roles() external view returns (uint256 numberOfRoles) {
121
+ return _roleIds.length;
122
+ }
123
+
124
+ function getRoleId(uint256 idx) external view returns (RoleId roleId) {
125
+ return _roleIds[idx];
126
+ }
127
+
128
+ function getAdminRole() public view returns (RoleId roleId) {
129
+ return RoleId.wrap(_authority.ADMIN_ROLE());
130
+ }
131
+
132
+ function getPublicRole() public view returns (RoleId roleId) {
133
+ return RoleId.wrap(_authority.PUBLIC_ROLE());
134
+ }
135
+
136
+ function roleExists(RoleId roleId) public view returns (bool exists) {
137
+ return _roleInfo[roleId].createdAt.gtz();
138
+ }
139
+
140
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
141
+ return _roleInfo[roleId];
142
+ }
143
+
144
+ function getRoleForName(Str name) external view returns (RoleNameInfo memory) {
145
+ return _roleForName[name];
146
+ }
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
+
156
+ function hasRole(address account, RoleId roleId) public view returns (bool) {
157
+ (bool isMember, ) = _authority.hasRole(
158
+ RoleId.unwrap(roleId),
159
+ account);
160
+ return isMember;
161
+ }
162
+
163
+ function hasAdminRole(address account, RoleId roleId)
164
+ public
165
+ virtual
166
+ view
167
+ returns (bool)
168
+ {
169
+ return hasRole(account, _roleInfo[roleId].adminRoleId);
170
+ }
171
+
172
+ //--- view functions for targets ----------------------------------------//
173
+
174
+ function targetExists(address target) public view returns (bool exists) {
175
+ return _targetInfo[target].createdAt.gtz();
176
+ }
177
+
178
+ function targets() external view returns (uint256 numberOfTargets) {
179
+ return _targets.length;
180
+ }
181
+
182
+ function getTargetAddress(uint256 idx) external view returns (address target) {
183
+ return _targets[idx];
184
+ }
185
+
186
+ function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo) {
187
+ return _targetInfo[target];
188
+ }
189
+
190
+ function getTargetForName(Str name) public view returns (address target) {
191
+ return _targetForName[name];
192
+ }
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
+
221
+ function isAccessManaged(address target) public view returns (bool) {
222
+ if (!_isContract(target)) {
223
+ return false;
224
+ }
225
+
226
+ (bool success, ) = target.staticcall(
227
+ abi.encodeWithSelector(
228
+ AccessManagedUpgradeable.authority.selector));
229
+
230
+ return success;
231
+ }
232
+
233
+ function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
234
+ (can, ) = _authority.canCall(caller, target, selector.toBytes4());
235
+ }
236
+
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()});
252
+ }
253
+
254
+ function deployer() public view returns (address) {
255
+ return _deployer;
256
+ }
257
+
258
+ //--- internal/private functions -------------------------------------------------//
259
+
260
+ function _authorizeTargetFunctions(
261
+ address target,
262
+ RoleId roleId,
263
+ FunctionInfo[] memory functions
264
+ )
265
+ internal
266
+ {
267
+ if (roleId == getAdminRole()) {
268
+ revert ErrorAuthorizeForAdminRoleInvalid(target);
269
+ }
270
+
271
+ bool addFunctions = true;
272
+ bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
273
+
274
+ // apply authz via access manager
275
+ _grantRoleAccessToFunctions(target, roleId, functionSelectors);
276
+ }
277
+
278
+ function _unauthorizeTargetFunctions(
279
+ address target,
280
+ FunctionInfo[] memory functions
281
+ )
282
+ internal
283
+ {
284
+ bool addFunctions = false;
285
+ bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
286
+ _grantRoleAccessToFunctions(target, getAdminRole(), functionSelectors);
287
+ }
288
+
289
+ function _processFunctionSelectors(
290
+ address target,
291
+ FunctionInfo[] memory functions,
292
+ bool addFunctions
293
+ )
294
+ internal
295
+ returns (
296
+ bytes4[] memory functionSelectors
297
+ )
298
+ {
299
+ uint256 n = functions.length;
300
+ functionSelectors = new bytes4[](n);
301
+ FunctionInfo memory func;
302
+ Selector selector;
303
+
304
+ for (uint256 i = 0; i < n; i++) {
305
+ func = functions[i];
306
+ selector = func.selector;
307
+
308
+ // add function selector to target selector set if not in set
309
+ if (addFunctions) { SelectorSetLib.add(_targetFunctions[target], selector); }
310
+ else { SelectorSetLib.remove(_targetFunctions[target], selector); }
311
+
312
+ // set function name
313
+ _functionInfo[target][selector] = func;
314
+
315
+ // add bytes4 selector to function selector array
316
+ functionSelectors[i] = selector.toBytes4();
317
+ }
318
+ }
319
+
320
+ function _initializeAuthority(
321
+ address authorityAddress
322
+ )
323
+ internal
324
+ virtual
325
+ onlyInitializing()
326
+ onlyDeployer()
327
+ {
328
+ if (authority() != address(0)) {
329
+ revert ErrorAuthorityAlreadySet();
330
+ }
331
+
332
+ _authority = AccessManagerCloneable(authorityAddress);
333
+ __AccessManaged_init(address(_authority));
334
+ }
335
+
336
+
337
+ function _initializeAdminAndPublicRoles()
338
+ internal
339
+ virtual
340
+ onlyInitializing()
341
+ {
342
+ _createAdminAndPublicRoles();
343
+ }
344
+
345
+
346
+ /// @dev internal setup function that can be used in both constructor and initializer.
347
+ function _createAdminAndPublicRoles()
348
+ internal
349
+ {
350
+ RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
351
+ FunctionInfo[] memory functions;
352
+
353
+ // setup admin role
354
+ _createRoleUnchecked(
355
+ ADMIN_ROLE(),
356
+ toRole({
357
+ adminRoleId: ADMIN_ROLE(),
358
+ roleType: RoleType.Contract,
359
+ maxMemberCount: 1,
360
+ name: ADMIN_ROLE_NAME}));
361
+
362
+ // add this contract as admin role member
363
+ _roleMembers[adminRoleId].add(address(this));
364
+
365
+ // setup public role
366
+ _createRoleUnchecked(
367
+ PUBLIC_ROLE(),
368
+ toRole({
369
+ adminRoleId: ADMIN_ROLE(),
370
+ roleType: RoleType.Gif,
371
+ maxMemberCount: type(uint32).max,
372
+ name: PUBLIC_ROLE_NAME}));
373
+ }
374
+
375
+ /// @dev check if target exists and reverts if it doesn't
376
+ function _checkTarget(address target)
377
+ internal
378
+ {
379
+ if (_targetInfo[target].createdAt.eqz()) {
380
+ revert ErrorTargetUnknown(target);
381
+ }
382
+ }
383
+
384
+ /// @dev grant the specified role access to all functions in the provided selector list
385
+ function _grantRoleAccessToFunctions(
386
+ address target,
387
+ RoleId roleId,
388
+ bytes4[] memory functionSelectors
389
+ )
390
+ internal
391
+ {
392
+ _authority.setTargetFunctionRole(
393
+ target,
394
+ functionSelectors,
395
+ RoleId.unwrap(roleId));
396
+
397
+ // implizit logging: rely on OpenZeppelin log TargetFunctionRoleUpdated
398
+ }
399
+
400
+ /// @dev grant the specified role to the provided account
401
+ function _grantRoleToAccount(RoleId roleId, address account)
402
+ internal
403
+ {
404
+ _checkRoleId(roleId);
405
+
406
+ // check max role members will not be exceeded
407
+ if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
408
+ revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
409
+ }
410
+
411
+ // check account is contract for contract role
412
+ // TODO implement
413
+ if (_roleInfo[roleId].roleType == RoleType.Contract) {
414
+ }
415
+
416
+ _roleMembers[roleId].add(account);
417
+ _authority.grantRole(
418
+ RoleId.unwrap(roleId),
419
+ account,
420
+ 0);
421
+
422
+ // indirect logging: rely on OpenZeppelin log RoleGranted
423
+ }
424
+
425
+ /// @dev revoke the specified role from the provided account
426
+ function _revokeRoleFromAccount(RoleId roleId, address account)
427
+ internal
428
+ {
429
+ _checkRoleId(roleId);
430
+
431
+ // check role removal is permitted
432
+ if (_roleInfo[roleId].roleType == RoleType.Contract) {
433
+ revert ErrorRoleRemovalDisabled(roleId);
434
+ }
435
+
436
+ _roleMembers[roleId].remove(account);
437
+ _authority.revokeRole(
438
+ RoleId.unwrap(roleId),
439
+ account);
440
+
441
+ // indirect logging: rely on OpenZeppelin log RoleGranted
442
+ }
443
+
444
+
445
+ function _checkRoleId(RoleId roleId)
446
+ internal
447
+ {
448
+ if (_roleInfo[roleId].createdAt.eqz()) {
449
+ revert ErrorRoleUnknown(roleId);
450
+ }
451
+
452
+ uint64 roleIdInt = RoleId.unwrap(roleId);
453
+ if (roleIdInt == _authority.ADMIN_ROLE()
454
+ || roleIdInt == _authority.PUBLIC_ROLE())
455
+ {
456
+ revert ErrorRoleIsLocked(roleId);
457
+ }
458
+ }
459
+
460
+ /// @dev Creates a role based on the provided parameters.
461
+ /// Checks that the provided role and role id and role name not already used.
462
+ function _createRole(
463
+ RoleId roleId,
464
+ RoleInfo memory info
465
+ )
466
+ internal
467
+ {
468
+ // check role does not yet exist
469
+ if(roleExists(roleId)) {
470
+ revert ErrorRoleAlreadyCreated(
471
+ roleId,
472
+ _roleInfo[roleId].name.toString());
473
+ }
474
+
475
+ // check admin role exists
476
+ if(!roleExists(info.adminRoleId)) {
477
+ revert ErrorRoleAdminNotExisting(info.adminRoleId);
478
+ }
479
+
480
+ // check role name is not empty
481
+ if(info.name.length() == 0) {
482
+ revert ErrorRoleNameEmpty(roleId);
483
+ }
484
+
485
+ // check role name is not used for another role
486
+ if(_roleForName[info.name].exists) {
487
+ revert ErrorRoleNameAlreadyExists(
488
+ roleId,
489
+ info.name.toString(),
490
+ _roleForName[info.name].roleId);
491
+ }
492
+
493
+ _createRoleUnchecked(roleId, info);
494
+ }
495
+
496
+
497
+ function _createRoleUnchecked(
498
+ RoleId roleId,
499
+ RoleInfo memory info
500
+ )
501
+ private
502
+ {
503
+ // create role info
504
+ info.createdAt = TimestampLib.blockTimestamp();
505
+ _roleInfo[roleId] = info;
506
+
507
+ // create role name info
508
+ _roleForName[info.name] = RoleNameInfo({
509
+ roleId: roleId,
510
+ exists: true});
511
+
512
+ // add role to list of roles
513
+ _roleIds.push(roleId);
514
+
515
+ emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
516
+ }
517
+
518
+
519
+ function _createTarget(
520
+ address target,
521
+ string memory targetName,
522
+ bool checkAuthority,
523
+ bool custom
524
+ )
525
+ internal
526
+ nonReentrant()
527
+ {
528
+ // check target does not yet exist
529
+ if(targetExists(target)) {
530
+ revert ErrorTargetAlreadyCreated(
531
+ target,
532
+ _targetInfo[target].name.toString());
533
+ }
534
+
535
+ // check target name is not empty
536
+ Str name = StrLib.toStr(targetName);
537
+ if(name.length() == 0) {
538
+ revert ErrorTargetNameEmpty(target);
539
+ }
540
+
541
+ // check target name is not used for another target
542
+ if( _targetForName[name] != address(0)) {
543
+ revert ErrorTargetNameAlreadyExists(
544
+ target,
545
+ targetName,
546
+ _targetForName[name]);
547
+ }
548
+
549
+ // check target is an access managed contract
550
+ if (!isAccessManaged(target)) {
551
+ revert ErrorTargetNotAccessManaged(target);
552
+ }
553
+
554
+ // check target shares authority with this contract
555
+ if (checkAuthority) {
556
+ address targetAuthority = AccessManagedUpgradeable(target).authority();
557
+ if (targetAuthority != authority()) {
558
+ revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
559
+ }
560
+ }
561
+
562
+ // create target info
563
+ _targetInfo[target] = TargetInfo({
564
+ name: name,
565
+ isCustom: custom,
566
+ createdAt: TimestampLib.blockTimestamp()
567
+ });
568
+
569
+ // create name to target mapping
570
+ _targetForName[name] = target;
571
+
572
+ // add role to list of roles
573
+ _targets.push(target);
574
+
575
+ emit LogTargetCreated(target, targetName);
576
+ }
577
+
578
+ function _isContract(address target)
579
+ internal
580
+ view
581
+ returns (bool)
582
+ {
583
+ uint256 size;
584
+ assembly {
585
+ size := extcodesize(target)
586
+ }
587
+ return size > 0;
588
+ }
589
+
590
+ }
@@ -0,0 +1,16 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
5
+
6
+ contract AccessManagerCloneable is
7
+ AccessManagerUpgradeable
8
+ {
9
+
10
+ function initialize(address initialAdmin)
11
+ external
12
+ initializer()
13
+ {
14
+ __AccessManager_init(initialAdmin);
15
+ }
16
+ }