@etherisc/gif-next 0.0.2-a84aad4-747 → 0.0.2-a8814be-836

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