@etherisc/gif-next 0.0.2-ccfa4c7-304 → 0.0.2-cd48412-522

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 (469) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +272 -102
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +662 -46
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +227 -52
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +180 -32
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +90 -17
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -152
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +226 -65
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -98
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +378 -149
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -78
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -97
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +232 -19
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -110
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +225 -64
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +225 -64
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +83 -177
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +225 -64
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +37 -71
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +225 -64
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +225 -64
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  64. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  67. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  68. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +368 -34
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +295 -5
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +419 -96
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +591 -343
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +194 -73
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +569 -513
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +321 -31
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +80 -42
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
  87. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +29 -41
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +239 -61
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -31
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +225 -64
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +338 -79
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +238 -52
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -42
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +225 -64
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +187 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +114 -112
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +99 -69
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +40 -52
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +385 -243
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +266 -70
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +389 -191
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +149 -97
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +209 -190
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -63
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +118 -123
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
  242. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  253. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1385 -150
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -117
  265. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  266. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  267. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/Staking.sol/Staking.json +1471 -213
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +123 -72
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +131 -167
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +84 -54
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
  281. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  282. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
  285. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  320. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  329. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  337. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  339. package/contracts/accounting/AccountingService.sol +15 -3
  340. package/contracts/accounting/IAccountingService.sol +4 -2
  341. package/contracts/authorization/AccessAdmin.sol +264 -188
  342. package/contracts/authorization/AccessAdminLib.sol +222 -9
  343. package/contracts/authorization/Authorization.sol +38 -234
  344. package/contracts/authorization/IAccess.sol +25 -7
  345. package/contracts/authorization/IAccessAdmin.sol +19 -45
  346. package/contracts/authorization/IAuthorization.sol +3 -57
  347. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  348. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  349. package/contracts/distribution/BasicDistribution.sol +7 -8
  350. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  351. package/contracts/distribution/Distribution.sol +12 -56
  352. package/contracts/distribution/DistributionService.sol +126 -63
  353. package/contracts/distribution/IDistributionComponent.sol +3 -10
  354. package/contracts/distribution/IDistributionService.sol +20 -8
  355. package/contracts/examples/fire/FirePool.sol +0 -4
  356. package/contracts/examples/fire/FireProduct.sol +6 -10
  357. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
  358. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  359. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  360. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
  361. package/contracts/instance/BaseStore.sol +93 -0
  362. package/contracts/instance/IBaseStore.sol +37 -0
  363. package/contracts/instance/IInstance.sol +57 -6
  364. package/contracts/instance/IInstanceService.sol +42 -7
  365. package/contracts/instance/Instance.sol +112 -57
  366. package/contracts/instance/InstanceAdmin.sol +164 -235
  367. package/contracts/instance/InstanceAuthorizationV3.sol +101 -61
  368. package/contracts/instance/InstanceReader.sol +354 -392
  369. package/contracts/instance/InstanceService.sol +186 -134
  370. package/contracts/instance/InstanceStore.sol +153 -128
  371. package/contracts/instance/ProductStore.sol +290 -0
  372. package/contracts/instance/RiskSet.sol +10 -2
  373. package/contracts/instance/TargetNames.sol +10 -0
  374. package/contracts/instance/base/BalanceStore.sol +4 -6
  375. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  376. package/contracts/instance/module/IBundle.sol +6 -5
  377. package/contracts/instance/module/IComponents.sol +15 -6
  378. package/contracts/instance/module/IDistribution.sol +17 -7
  379. package/contracts/instance/module/IPolicy.sol +28 -8
  380. package/contracts/instance/module/IRisk.sol +2 -0
  381. package/contracts/oracle/BasicOracle.sol +3 -6
  382. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  383. package/contracts/oracle/IOracle.sol +9 -4
  384. package/contracts/oracle/Oracle.sol +4 -8
  385. package/contracts/oracle/OracleService.sol +8 -8
  386. package/contracts/pool/BasicPool.sol +4 -18
  387. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  388. package/contracts/pool/BundleService.sol +34 -43
  389. package/contracts/pool/IBundleService.sol +14 -13
  390. package/contracts/pool/IPoolService.sol +7 -2
  391. package/contracts/pool/Pool.sol +6 -20
  392. package/contracts/pool/PoolLib.sol +127 -2
  393. package/contracts/pool/PoolService.sol +41 -184
  394. package/contracts/product/ApplicationService.sol +69 -11
  395. package/contracts/product/BasicProduct.sol +2 -5
  396. package/contracts/product/BasicProductAuthorization.sol +11 -4
  397. package/contracts/product/ClaimService.sol +99 -105
  398. package/contracts/product/IApplicationService.sol +23 -2
  399. package/contracts/product/IClaimService.sol +5 -4
  400. package/contracts/product/IPolicyService.sol +9 -2
  401. package/contracts/product/IPricingService.sol +1 -0
  402. package/contracts/product/IRiskService.sol +21 -3
  403. package/contracts/product/PolicyService.sol +40 -59
  404. package/contracts/product/PolicyServiceLib.sol +79 -5
  405. package/contracts/product/PricingService.sol +33 -31
  406. package/contracts/product/Product.sol +40 -18
  407. package/contracts/product/RiskService.sol +57 -12
  408. package/contracts/registry/IRegistry.sol +15 -9
  409. package/contracts/registry/IRelease.sol +6 -3
  410. package/contracts/registry/Registry.sol +15 -9
  411. package/contracts/registry/RegistryAdmin.sol +33 -100
  412. package/contracts/registry/RegistryAuthorization.sol +121 -52
  413. package/contracts/registry/RegistryService.sol +1 -1
  414. package/contracts/registry/ReleaseAdmin.sol +42 -100
  415. package/contracts/registry/ReleaseRegistry.sol +20 -12
  416. package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
  417. package/contracts/registry/TokenRegistry.sol +56 -52
  418. package/contracts/shared/Component.sol +16 -33
  419. package/contracts/shared/ComponentService.sol +249 -247
  420. package/contracts/shared/ContractLib.sol +106 -75
  421. package/contracts/shared/IComponent.sol +1 -4
  422. package/contracts/shared/IComponentService.sol +17 -16
  423. package/contracts/shared/INftOwnable.sol +2 -0
  424. package/contracts/shared/IRegisterable.sol +0 -1
  425. package/contracts/shared/InstanceLinkedComponent.sol +6 -11
  426. package/contracts/shared/NftOwnable.sol +3 -1
  427. package/contracts/shared/PolicyHolder.sol +3 -2
  428. package/contracts/shared/Service.sol +6 -4
  429. package/contracts/staking/IStaking.sol +262 -70
  430. package/contracts/staking/IStakingService.sol +39 -84
  431. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  432. package/contracts/staking/Staking.sol +470 -219
  433. package/contracts/staking/StakingLib.sol +38 -124
  434. package/contracts/staking/StakingManager.sol +4 -3
  435. package/contracts/staking/StakingReader.sol +62 -71
  436. package/contracts/staking/StakingService.sol +42 -185
  437. package/contracts/staking/StakingServiceManager.sol +1 -0
  438. package/contracts/staking/StakingStore.sol +1093 -331
  439. package/contracts/staking/TargetHandler.sol +132 -0
  440. package/contracts/staking/TargetManagerLib.sol +69 -46
  441. package/contracts/type/Amount.sol +4 -0
  442. package/contracts/type/Blocknumber.sol +15 -15
  443. package/contracts/type/ChainId.sol +101 -0
  444. package/contracts/type/Fee.sol +8 -8
  445. package/contracts/type/NftId.sol +3 -3
  446. package/contracts/type/ObjectType.sol +16 -3
  447. package/contracts/type/RoleId.sol +57 -59
  448. package/contracts/type/Seconds.sol +19 -0
  449. package/contracts/type/String.sol +12 -0
  450. package/contracts/type/Timestamp.sol +4 -2
  451. package/contracts/type/UFixed.sol +28 -10
  452. package/contracts/upgradeability/IVersionable.sol +3 -0
  453. package/contracts/upgradeability/ProxyManager.sol +25 -11
  454. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  455. package/contracts/upgradeability/Versionable.sol +6 -3
  456. package/package.json +1 -1
  457. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  458. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  459. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  460. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  461. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  462. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  463. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  464. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  465. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  466. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  467. package/contracts/shared/IKeyValueStore.sol +0 -54
  468. package/contracts/shared/KeyValueStore.sol +0 -131
  469. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -10,38 +10,56 @@ interface IAccess {
10
10
 
11
11
  enum RoleType {
12
12
  Undefined, // no role must have this type
13
+ Core, // GIF core roles
13
14
  Contract, // roles assigned to contracts, cannot be revoked
14
- Gif, // framework roles that may be freely assigned and revoked
15
+ Custom // use case specific rules for components
16
+ }
17
+
18
+ enum TargetType {
19
+ Undefined, // no target must have this type
20
+ Core, // GIF core contracts
21
+ GenericService, // release independent service contracts
22
+ Service, // service contracts
23
+ Instance, // instance contracts
24
+ Component, // instance contracts
15
25
  Custom // use case specific rules for components
16
26
  }
17
27
 
18
28
  struct RoleInfo {
19
- RoleId adminRoleId;
20
- RoleType roleType;
21
- uint32 maxMemberCount;
29
+ // slot 0
30
+ RoleId adminRoleId;
31
+ RoleType roleType;
32
+ uint32 maxMemberCount;
33
+ Timestamp createdAt;
34
+ Timestamp pausedAt;
35
+ // slot 1
22
36
  Str name;
23
- Timestamp createdAt;
24
- Timestamp pausedAt;
25
37
  }
26
38
 
39
+ // TODO recalc slot allocation
27
40
  struct TargetInfo {
28
41
  Str name;
29
- bool isCustom;
42
+ TargetType targetType;
43
+ RoleId roleId;
30
44
  Timestamp createdAt;
31
45
  }
32
46
 
33
47
  struct FunctionInfo {
48
+ // slot 0
34
49
  Str name; // function name
50
+ // slot 1
35
51
  Selector selector; // function selector
36
52
  Timestamp createdAt;
37
53
  }
38
54
 
39
55
  struct RoleNameInfo {
56
+ // slot 0
40
57
  RoleId roleId;
41
58
  bool exists;
42
59
  }
43
60
 
44
61
  struct TargeNameInfo {
62
+ // slot 0
45
63
  address target;
46
64
  bool exists;
47
65
  }
@@ -11,10 +11,10 @@ import {IRelease} from "../registry/IRelease.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
12
  import {ObjectType} from "../type/ObjectType.sol";
13
13
  import {RoleId} from "../type/RoleId.sol";
14
- import {Selector} from "../type/Selector.sol";
15
14
  import {Str} from "../type/String.sol";
16
15
  import {VersionPart} from "../type/Version.sol";
17
16
 
17
+ /// @dev Base interface for registry admin, release admin, and instance admin
18
18
  interface IAccessAdmin is
19
19
  IAccessManaged,
20
20
  IAccess,
@@ -24,7 +24,7 @@ interface IAccessAdmin is
24
24
 
25
25
  // roles, targets and functions
26
26
  event LogAccessAdminRoleCreated(string admin, RoleId roleId, RoleType roleType, RoleId roleAdminId, string name);
27
- event LogAccessAdminTargetCreated(string admin, address target, string name);
27
+ event LogAccessAdminTargetCreated(string admin, string name, bool managed, address target, RoleId roleId);
28
28
 
29
29
  event LogAccessAdminRoleGranted(string admin, address account, string roleName);
30
30
  event LogAccessAdminRoleRevoked(string admin, address account, string roleName);
@@ -39,6 +39,11 @@ interface IAccessAdmin is
39
39
  // only role owner modifier
40
40
  error ErrorAccessAdminNotRoleOwner(RoleId roleId, address account);
41
41
 
42
+ // role management
43
+ error ErrorAccessAdminInvalidUserOfAdminRole();
44
+ error ErrorAccessAdminInvalidUserOfPublicRole();
45
+ error ErrorAccessAdminRoleNotCustom(RoleId roleId);
46
+
42
47
  // initialization
43
48
  error ErrorAccessAdminNotRegistry(address registry);
44
49
  error ErrorAccessAdminAuthorityNotContract(address authority);
@@ -46,6 +51,8 @@ interface IAccessAdmin is
46
51
  error ErrorAccessAdminAccessManagerEmptyName();
47
52
 
48
53
  // check target
54
+ error ErrorAccessAdminInvalidTargetType(address target, TargetType targetType);
55
+ error ErrorAccessAdminInvalidServiceType(address target, TargetType serviceTargetType);
49
56
  error ErrorAccessAdminTargetNotCreated(address target);
50
57
  error ErrorAccessAdminTargetNotRegistered(address target);
51
58
  error ErrorAccessAdminTargetTypeMismatch(address target, ObjectType expectedType, ObjectType actualType);
@@ -53,6 +60,7 @@ interface IAccessAdmin is
53
60
  // check authorization
54
61
  error ErrorAccessAdminAlreadyInitialized(address authorization);
55
62
  error ErrorAccessAdminNotAuthorization(address authorization);
63
+ error ErrorAccessAdminNotServiceAuthorization(address serviceAuthorization);
56
64
  error ErrorAccessAdminDomainMismatch(address authorization, ObjectType expectedDomain, ObjectType actualDomain);
57
65
  error ErrorAccessAdminReleaseMismatch(address authorization, VersionPart expectedRelease, VersionPart actualRelease);
58
66
 
@@ -90,50 +98,13 @@ interface IAccessAdmin is
90
98
  // authorize target functions
91
99
  error ErrorAccessAdminAuthorizeForAdminRoleInvalid(address target);
92
100
 
101
+ // toFunction
102
+ error ErrorAccessAdminSelectorZero();
103
+ error ErrorAccessAdminFunctionNameEmpty();
104
+
93
105
  // check target
94
106
  error ErrorAccessAdminTargetUnknown(address target);
95
107
 
96
- /// @dev Set the disabled status of the speicified role.
97
- /// Role disabling only prevents the role from being granted to new accounts.
98
- /// Existing role members may still execute functions that are authorized for that role.
99
- /// Permissioned: the caller must have the manager role (getManagerRole).
100
- // TODO move to instance admin
101
- // function setRoleDisabled(RoleId roleId, bool disabled) external;
102
-
103
- /// @dev Grant the specified account the provided role.
104
- /// Permissioned: the caller must have the roles admin role.
105
- // TODO move to instance admin
106
- // function grantRole(address account, RoleId roleId) external;
107
-
108
- /// @dev Revoke the provided role from the specified account.
109
- /// Permissioned: the caller must have the roles admin role.
110
- // TODO move to instance admin
111
- // function revokeRole(address account, RoleId roleId) external;
112
-
113
- /// @dev Removes the provided role from the caller
114
- // TODO move to instance admin
115
- // function renounceRole(RoleId roleId) external;
116
-
117
- /// @dev Set the locked status of the speicified contract.
118
- /// IMPORTANT: using this function the AccessManager might itself be put into locked state from which it cannot be unlocked again.
119
- /// Overwrite this function if a different use case specific behaviour is required.
120
- /// Alternatively, add specific function to just unlock this contract without a restricted() modifier.
121
- /// Permissioned: the caller must have the manager role (getManagerRole).
122
- // TODO move to instance admin
123
- // function setTargetLocked(address target, bool locked) external;
124
-
125
- /// @dev Specifies which functions of the target can be accessed by the provided role.
126
- /// Previously existing authorizations will be overwritten.
127
- /// Authorizing the admin role is not allowed, use function unauthorizedFunctions for this.
128
- /// Permissioned: the caller must have the manager role (getManagerRole).
129
- // TODO move to instance admin
130
- // function authorizeFunctions(address target, RoleId roleId, FunctionInfo[] memory functions) external;
131
-
132
- /// @dev Specifies for which functionss to remove any previous authorization
133
- /// Permissioned: the caller must have the manager role (getManagerRole).
134
- // TODO move to instance admin
135
- // function unauthorizeFunctions(address target, FunctionInfo[] memory functions) external;
136
-
137
108
  //--- view functions ----------------------------------------------------//
138
109
 
139
110
  function getAuthorization() external view returns (IAuthorization authorization);
@@ -148,11 +119,14 @@ interface IAccessAdmin is
148
119
  function getPublicRole() external view returns (RoleId roleId);
149
120
 
150
121
  function roleExists(RoleId roleId) external view returns (bool exists);
122
+ function roleExists(string memory roleName) external view returns (bool exists);
151
123
  function getRoleForName(string memory name) external view returns (RoleId roleId);
152
124
  function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
125
+ function isRoleActive(RoleId roleId) external view returns (bool isActive);
126
+ function isRoleCustom(RoleId roleId) external view returns (bool isCustom);
153
127
 
154
- function hasRole(address account, RoleId roleId) external view returns (bool);
155
- function hasAdminRole(address account, RoleId roleId) external view returns (bool);
128
+ function isRoleMember(RoleId roleId, address account) external view returns (bool);
129
+ function isRoleAdmin(RoleId roleId, address account) external view returns (bool);
156
130
  function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers);
157
131
  function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account);
158
132
 
@@ -1,54 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
-
6
- import {IAccess} from "../authorization/IAccess.sol";
7
- import {ObjectType} from "../type/ObjectType.sol";
8
- import {RoleId} from "../type/RoleId.sol";
4
+ import {IServiceAuthorization} from "./IServiceAuthorization.sol";
9
5
  import {Str} from "../type/String.sol";
10
- import {VersionPart} from "../type/Version.sol";
6
+
11
7
 
12
8
  interface IAuthorization is
13
- IERC165,
14
- IAccess
9
+ IServiceAuthorization
15
10
  {
16
11
 
17
- error ErrorAuthorizationMainTargetNameEmpty();
18
- error ErrorAuthorizationTargetDomainZero();
19
-
20
- /// @dev Returns the main domain of the authorization.
21
- function getDomain() external view returns(ObjectType targetDomain);
22
-
23
- /// @dev Returns the list of service targets.
24
- function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
25
-
26
- /// @dev Returns the service role for the specified service domain.
27
- function getServiceRole(ObjectType serviceDomain) external pure returns (RoleId serviceRoleId);
28
-
29
- /// @dev Returns the service target for the specified domain.
30
- function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
31
-
32
- /// @dev Returns the component role for the specified domain.
33
- function getComponentRole(ObjectType componentDomain) external view returns(RoleId componentRoleId);
34
-
35
- /// @dev Returns the list of involved roles.
36
- function getRoles() external view returns(RoleId[] memory roles);
37
-
38
- /// @dev Returns the name for the provided role id.
39
- function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
40
-
41
- /// @dev Returns true iff the specified role id exists.
42
- function roleExists(RoleId roleId) external view returns(bool exists);
43
-
44
- /// @dev Returns the main target id name as string.
45
- /// This name is used to derive the target id and a corresponding target role name
46
- /// Overwrite this function to change the basic pool target name.
47
- function getMainTargetName() external view returns (string memory name);
48
-
49
- /// @dev Returns the main target.
50
- function getMainTarget() external view returns(Str target);
51
-
52
12
  /// @dev Returns the token hander name.
53
13
  /// Only components have a token handler.
54
14
  function getTokenHandlerName() external view returns(string memory name);
@@ -62,19 +22,5 @@ interface IAuthorization is
62
22
 
63
23
  /// @dev Returns true iff the specified target exists.
64
24
  function targetExists(Str target) external view returns(bool exists);
65
-
66
- /// @dev Returns the role id associated with the target.
67
- /// If no role is associated with the target the zero role id is returned.
68
- function getTargetRole(Str target) external view returns(RoleId roleId);
69
-
70
- /// @dev For the given target the list of authorized role ids is returned
71
- function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds);
72
-
73
- /// @dev For the given target and role id the list of authorized functions is returned
74
- function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions);
75
-
76
- /// @dev Returns the release (VersionPart) for which the authorizations are defined by this contract.
77
- /// Matches with the release returned by the linked service authorization.
78
- function getRelease() external view returns(VersionPart release);
79
25
  }
80
26
 
@@ -5,36 +5,74 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
 
6
6
  import {IAccess} from "../authorization/IAccess.sol";
7
7
  import {ObjectType} from "../type/ObjectType.sol";
8
+ import {RoleId} from "../type/RoleId.sol";
9
+ import {Str} from "../type/String.sol";
8
10
  import {VersionPart} from "../type/Version.sol";
9
11
 
10
- interface IServiceAuthorization is IERC165 {
12
+ interface IServiceAuthorization is
13
+ IERC165,
14
+ IAccess
15
+ {
11
16
 
12
- /// @dev Returns the commit hash representing the deployed release
13
- function getCommitHash()
14
- external
15
- view
16
- returns(string memory commitHash);
17
+ error ErrorAuthorizationMainTargetNameEmpty();
18
+ error ErrorAuthorizationTargetDomainZero();
19
+ error ErrorAuthorizationReleaseInvalid(uint8 release);
20
+ error ErrorAuthorizationCommitHashInvalid(string commitHash);
17
21
 
18
- /// @dev Returns the release (VersionPart) for which the service authorizations are defined by this contract.
19
- function getRelease()
20
- external
21
- view
22
- returns(VersionPart release);
22
+ /// @dev Returns the main domain of the authorization.
23
+ function getDomain() external view returns(ObjectType targetDomain);
23
24
 
24
- /// @dev Returns the service domain for the provided index.
25
- function getServiceDomain(uint idx) external view returns(ObjectType serviceDomain);
25
+ /// @dev Returns the release (VersionPart) for which the authorizations are defined by this contract.
26
+ /// Matches with the release returned by the linked service authorization.
27
+ function getRelease() external view returns(VersionPart release);
28
+
29
+ /// @dev Returns the commit hash for the related GIF release.
30
+ function getCommitHash() external view returns(string memory commitHash);
31
+
32
+ /// @dev Returns the main target id name as string.
33
+ /// This name is used to derive the target id and a corresponding target role name
34
+ /// Overwrite this function to change the basic pool target name.
35
+ function getMainTargetName() external view returns (string memory name);
36
+
37
+ /// @dev Returns the main target.
38
+ function getMainTarget() external view returns(Str target);
26
39
 
27
40
  /// @dev Returns the full list of service domains for this release.
28
41
  /// Services need to be registered for the release in revers order of this list.
29
42
  function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
30
43
 
44
+ /// @dev Returns the service domain for the provided index.
45
+ function getServiceDomain(uint256 idx) external view returns(ObjectType serviceDomain);
46
+
47
+ /// @dev Returns the service target for the specified domain.
48
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
49
+
50
+ /// @dev Returns the service target for the specified domain.
51
+ function getServiceRole(ObjectType serviceDomain) external view returns(RoleId serviceRoleId);
52
+
31
53
  /// @dev Returns the expected service address for the provided domain.
32
54
  function getServiceAddress(ObjectType serviceDomain) external view returns(address service);
33
55
 
34
- /// @dev Given the service domain this function returns the list of other service domains that are authorized to access this service.
35
- function getAuthorizedDomains(ObjectType serviceDomain) external view returns(ObjectType[] memory authorizatedDomains);
56
+ /// @dev Returns the role id associated with the target.
57
+ /// If no role is associated with the target the zero role id is returned.
58
+ function getTargetRole(Str target) external view returns(RoleId roleId);
59
+
60
+ /// @dev Returns true iff the role exists.
61
+ function roleExists(RoleId roleId) external view returns(bool exists);
62
+
63
+ /// @dev Returns the list of involved roles.
64
+ function getRoles() external view returns(RoleId[] memory roles);
65
+
66
+ /// @dev Returns the role info for the provided role id.
67
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
68
+
69
+ /// @dev Returns the name for the provided role id.
70
+ function getRoleName(RoleId roleId) external view returns (string memory roleName);
71
+
72
+ /// @dev For the given target the list of authorized role ids is returned
73
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds);
36
74
 
37
- /// @dev For the given service domain and authorized domain the function returns the list of authorized functions
38
- function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions);
75
+ /// @dev For the given target and role id the list of authorized functions is returned
76
+ function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions);
39
77
  }
40
78