@etherisc/gif-next 0.0.2-f78c672-338 → 0.0.2-f78f882-351

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 (478) hide show
  1. package/README.md +63 -312
  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 +111 -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 +655 -299
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +331 -56
  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 +501 -231
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +131 -16
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -59
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +322 -67
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -33
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +379 -150
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -32
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +233 -20
  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 +321 -66
  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 +321 -66
  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 +82 -84
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +321 -66
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
  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 +321 -66
  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 +321 -66
  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 +450 -28
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -85
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +942 -471
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -78
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +595 -532
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
  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 +33 -45
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +340 -60
  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 +87 -42
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -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 +321 -66
  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 +144 -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 +346 -87
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +218 -61
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
  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 +321 -66
  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 +128 -70
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -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 +29 -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 +203 -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 +138 -72
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +91 -118
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +113 -67
  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 +231 -46
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
  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 +799 -472
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +841 -419
  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 +197 -129
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -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 +212 -232
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -71
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
  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 +119 -147
  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/InitializableERC165.sol/InitializableERC165.json +2 -2
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  262. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1453 -153
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
  266. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  267. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  268. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -239
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -44
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
  282. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
  286. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  330. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
  334. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
  338. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  340. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  342. package/contracts/accounting/AccountingService.sol +15 -3
  343. package/contracts/accounting/IAccountingService.sol +4 -2
  344. package/contracts/authorization/AccessAdmin.sol +361 -371
  345. package/contracts/authorization/AccessAdminLib.sol +678 -0
  346. package/contracts/authorization/AccessManagerCloneable.sol +23 -32
  347. package/contracts/authorization/Authorization.sol +82 -229
  348. package/contracts/authorization/IAccess.sol +29 -12
  349. package/contracts/authorization/IAccessAdmin.sol +83 -84
  350. package/contracts/authorization/IAuthorization.sol +3 -51
  351. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  352. package/contracts/authorization/ServiceAuthorization.sol +228 -34
  353. package/contracts/distribution/BasicDistribution.sol +5 -7
  354. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  355. package/contracts/distribution/Distribution.sol +12 -17
  356. package/contracts/distribution/DistributionService.sol +129 -66
  357. package/contracts/distribution/IDistributionComponent.sol +3 -1
  358. package/contracts/distribution/IDistributionService.sol +21 -9
  359. package/contracts/examples/fire/FirePool.sol +0 -4
  360. package/contracts/examples/fire/FireProduct.sol +6 -10
  361. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
  362. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  363. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  364. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
  365. package/contracts/instance/BaseStore.sol +93 -0
  366. package/contracts/instance/IBaseStore.sol +37 -0
  367. package/contracts/instance/IInstance.sol +98 -12
  368. package/contracts/instance/IInstanceService.sol +54 -7
  369. package/contracts/instance/Instance.sol +165 -61
  370. package/contracts/instance/InstanceAdmin.sol +183 -313
  371. package/contracts/instance/InstanceAuthorizationV3.sol +123 -61
  372. package/contracts/instance/InstanceReader.sol +350 -394
  373. package/contracts/instance/InstanceService.sol +283 -173
  374. package/contracts/instance/InstanceStore.sol +153 -128
  375. package/contracts/instance/ProductStore.sol +290 -0
  376. package/contracts/instance/RiskSet.sol +10 -2
  377. package/contracts/instance/TargetNames.sol +10 -0
  378. package/contracts/instance/base/BalanceStore.sol +4 -6
  379. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  380. package/contracts/instance/module/IBundle.sol +6 -5
  381. package/contracts/instance/module/IComponents.sol +15 -6
  382. package/contracts/instance/module/IDistribution.sol +17 -7
  383. package/contracts/instance/module/IPolicy.sol +28 -8
  384. package/contracts/instance/module/IRisk.sol +2 -0
  385. package/contracts/oracle/BasicOracle.sol +3 -6
  386. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  387. package/contracts/oracle/IOracle.sol +9 -4
  388. package/contracts/oracle/Oracle.sol +4 -8
  389. package/contracts/oracle/OracleService.sol +8 -8
  390. package/contracts/pool/BasicPool.sol +4 -18
  391. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  392. package/contracts/pool/BundleService.sol +34 -43
  393. package/contracts/pool/IBundleService.sol +14 -13
  394. package/contracts/pool/IPoolService.sol +7 -2
  395. package/contracts/pool/Pool.sol +6 -20
  396. package/contracts/pool/PoolLib.sol +127 -2
  397. package/contracts/pool/PoolService.sol +41 -184
  398. package/contracts/product/ApplicationService.sol +65 -12
  399. package/contracts/product/BasicProduct.sol +2 -5
  400. package/contracts/product/BasicProductAuthorization.sol +11 -4
  401. package/contracts/product/ClaimService.sol +99 -105
  402. package/contracts/product/IApplicationService.sol +21 -2
  403. package/contracts/product/IClaimService.sol +5 -4
  404. package/contracts/product/IPolicyService.sol +9 -2
  405. package/contracts/product/IRiskService.sol +18 -3
  406. package/contracts/product/PolicyService.sol +40 -77
  407. package/contracts/product/PolicyServiceLib.sol +79 -5
  408. package/contracts/product/PricingService.sol +29 -32
  409. package/contracts/product/Product.sol +40 -18
  410. package/contracts/product/RiskService.sol +50 -15
  411. package/contracts/registry/IRegistry.sol +15 -9
  412. package/contracts/registry/IRelease.sol +6 -3
  413. package/contracts/registry/Registry.sol +15 -9
  414. package/contracts/registry/RegistryAdmin.sol +85 -266
  415. package/contracts/registry/RegistryAuthorization.sol +337 -0
  416. package/contracts/registry/RegistryService.sol +1 -1
  417. package/contracts/registry/ReleaseAdmin.sol +70 -116
  418. package/contracts/registry/ReleaseRegistry.sol +57 -43
  419. package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
  420. package/contracts/registry/TokenRegistry.sol +56 -52
  421. package/contracts/shared/Component.sol +20 -37
  422. package/contracts/shared/ComponentService.sol +249 -250
  423. package/contracts/shared/ContractLib.sol +134 -75
  424. package/contracts/shared/IComponent.sol +1 -4
  425. package/contracts/shared/IComponentService.sol +21 -22
  426. package/contracts/shared/INftOwnable.sol +2 -0
  427. package/contracts/shared/IRegisterable.sol +0 -1
  428. package/contracts/shared/InitializableERC165.sol +9 -1
  429. package/contracts/shared/InstanceLinkedComponent.sol +6 -11
  430. package/contracts/shared/NftOwnable.sol +4 -2
  431. package/contracts/shared/PolicyHolder.sol +3 -2
  432. package/contracts/shared/Registerable.sol +1 -4
  433. package/contracts/shared/Service.sol +6 -4
  434. package/contracts/shared/TokenHandler.sol +5 -4
  435. package/contracts/staking/IStaking.sol +265 -64
  436. package/contracts/staking/IStakingService.sol +44 -82
  437. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  438. package/contracts/staking/Staking.sol +475 -204
  439. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  440. package/contracts/staking/StakingManager.sol +4 -3
  441. package/contracts/staking/StakingReader.sol +58 -77
  442. package/contracts/staking/StakingService.sol +49 -158
  443. package/contracts/staking/StakingServiceManager.sol +1 -0
  444. package/contracts/staking/StakingStore.sol +1093 -330
  445. package/contracts/staking/TargetHandler.sol +132 -0
  446. package/contracts/staking/TargetManagerLib.sol +69 -46
  447. package/contracts/type/Amount.sol +4 -0
  448. package/contracts/type/Blocknumber.sol +17 -22
  449. package/contracts/type/ChainId.sol +101 -0
  450. package/contracts/type/Fee.sol +8 -8
  451. package/contracts/type/NftId.sol +3 -3
  452. package/contracts/type/ObjectType.sol +21 -17
  453. package/contracts/type/RoleId.sol +57 -59
  454. package/contracts/type/Seconds.sol +19 -0
  455. package/contracts/type/String.sol +12 -0
  456. package/contracts/type/Timestamp.sol +4 -2
  457. package/contracts/type/UFixed.sol +28 -10
  458. package/contracts/type/Version.sol +39 -0
  459. package/contracts/upgradeability/IVersionable.sol +3 -0
  460. package/contracts/upgradeability/ProxyManager.sol +26 -12
  461. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  462. package/contracts/upgradeability/Versionable.sol +6 -3
  463. package/package.json +1 -1
  464. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  465. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  466. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  467. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  468. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  469. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  470. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  471. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  472. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  473. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  474. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  475. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  476. package/contracts/shared/IKeyValueStore.sol +0 -54
  477. package/contracts/shared/KeyValueStore.sol +0 -131
  478. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -2,12 +2,11 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
5
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
5
  import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
7
6
 
8
7
  import {InitializableERC165} from "../shared/InitializableERC165.sol";
9
8
  import {RegistryLinked} from "../shared/RegistryLinked.sol";
10
- import {VersionPart, VersionLib} from "../type/Version.sol";
9
+ import {VersionPart} from "../type/Version.sol";
11
10
 
12
11
 
13
12
  /// @dev An AccessManager based on OpenZeppelin that is cloneable and has a central lock property.
@@ -28,6 +27,7 @@ contract AccessManagerCloneable is
28
27
  VersionPart private _release;
29
28
  bool private _isLocked;
30
29
 
30
+
31
31
  modifier onlyAdminRole() {
32
32
  (bool isMember, ) = hasRole(ADMIN_ROLE, msg.sender);
33
33
  if(!isMember) {
@@ -36,12 +36,14 @@ contract AccessManagerCloneable is
36
36
  _;
37
37
  }
38
38
 
39
+
39
40
  function initialize(address admin)
40
- external
41
+ public
41
42
  initializer()
42
43
  {
44
+ __ERC165_init();
43
45
  __AccessManager_init(admin);
44
- _initializeERC165();
46
+
45
47
  _registerInterface(type(IAccessManager).interfaceId);
46
48
  }
47
49
 
@@ -56,21 +58,8 @@ contract AccessManagerCloneable is
56
58
  onlyAdminRole
57
59
  reinitializer(uint64(release.toInt()))
58
60
  {
59
- _completeSetup(registry, release, true);
60
- }
61
-
62
- /// @dev Completes the setup of the access manager.
63
- /// Links the access manager to the registry and sets the release version.
64
- function completeSetup(
65
- address registry,
66
- VersionPart release,
67
- bool verifyRelease
68
- )
69
- public
70
- onlyAdminRole
71
- reinitializer(uint64(release.toInt()))
72
- {
73
- _completeSetup(registry, release, verifyRelease);
61
+ _checkAndSetRegistry(registry);
62
+ _checkAndSetRelease(release);
74
63
  }
75
64
 
76
65
  /// @dev Returns true if the caller is authorized to call the target with the given selector and the manager lock is not set to locked.
@@ -89,12 +78,12 @@ contract AccessManagerCloneable is
89
78
  uint32 delay
90
79
  )
91
80
  {
92
- (immediate, delay) = super.canCall(caller, target, selector);
93
-
94
81
  // locking of all contracts under control of this access manager
95
- if (isLocked()) {
82
+ if (_isLocked) {
96
83
  revert ErrorAccessManagerTargetAdminLocked(target);
97
84
  }
85
+
86
+ (immediate, delay) = super.canCall(caller, target, selector);
98
87
  }
99
88
 
100
89
 
@@ -126,11 +115,18 @@ contract AccessManagerCloneable is
126
115
  }
127
116
 
128
117
 
129
- function _completeSetup(
130
- address registry,
131
- VersionPart release,
132
- bool verifyRelease
133
- )
118
+ function _checkAndSetRelease(VersionPart release)
119
+ internal
120
+ {
121
+ if (!release.isValidRelease()) {
122
+ revert ErrorAccessManagerInvalidRelease(release);
123
+ }
124
+
125
+ _release = release;
126
+ }
127
+
128
+
129
+ function _checkAndSetRegistry(address registry)
134
130
  internal
135
131
  {
136
132
  // checks
@@ -138,12 +134,7 @@ contract AccessManagerCloneable is
138
134
  revert ErrorAccessManagerRegistryAlreadySet(address(getRegistry()) );
139
135
  }
140
136
 
141
- if (verifyRelease && !release.isValidRelease()) {
142
- revert ErrorAccessManagerInvalidRelease(release);
143
- }
144
-
145
137
  // effects
146
138
  __RegistryLinked_init(registry);
147
- _release = release;
148
139
  }
149
140
  }
@@ -3,129 +3,83 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccess} from "./IAccess.sol";
5
5
  import {IAuthorization} from "./IAuthorization.sol";
6
- import {ObjectType, ObjectTypeLib, PRODUCT, ORACLE, DISTRIBUTION, POOL} from "../type/ObjectType.sol";
7
- import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
8
- import {SelectorLib} from "../type/Selector.sol";
6
+
7
+ import {AccessAdminLib} from "./AccessAdminLib.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
10
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
9
11
  import {Str, StrLib} from "../type/String.sol";
10
- import {TimestampLib} from "../type/Timestamp.sol";
11
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
12
 
13
- contract Authorization
14
- is IAuthorization
15
- {
16
- uint256 public constant GIF_RELEASE = 3;
17
13
 
18
- string public constant ROLE_NAME_SUFFIX = "Role";
19
- string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
14
+ contract Authorization is
15
+ ServiceAuthorization,
16
+ IAuthorization
17
+ {
20
18
 
21
- ObjectType[] internal _serviceDomains;
22
- mapping(ObjectType domain => Str target) internal _serviceTarget;
19
+ // MUST match with AccessAdminLib.COMPONENT_ROLE_MIN
20
+ uint64 public constant COMPONENT_ROLE_MIN = 110000;
21
+ uint64 public constant INSTANCE_ROLE_MIN = 100000;
23
22
 
24
- string internal _mainTargetName = "Component";
25
- string internal _tokenHandlerName = "ComponentTH";
23
+ uint64 internal _nextGifContractRoleId;
24
+ uint64 internal _nextInstanceContractRoleId;
26
25
 
27
- Str internal _mainTarget;
26
+ string internal _tokenHandlerName = "ComponentTh";
28
27
  Str internal _tokenHandlerTarget;
29
- Str[] internal _targets;
30
-
31
- mapping(Str target => RoleId roleid) internal _targetRole;
32
- mapping(Str target => bool exists) internal _targetExists;
33
-
34
- RoleId[] internal _roles;
35
- mapping(RoleId role => RoleInfo info) internal _roleInfo;
36
-
37
- mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
38
- mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
39
28
 
40
29
 
41
30
  constructor(
42
31
  string memory mainTargetName,
43
- ObjectType targetDomain
32
+ ObjectType domain,
33
+ uint8 release,
34
+ string memory commitHash,
35
+ IAccess.TargetType targetType,
36
+ bool includeTokenHandler
44
37
  )
38
+ ServiceAuthorization(mainTargetName, domain, release, commitHash)
45
39
  {
46
- // checks
47
- if (bytes(mainTargetName).length == 0) {
48
- revert ErrorAuthorizationMainTargetNameEmpty();
49
- }
50
-
51
- if (targetDomain.eqz()) {
52
- revert ErrorAuthorizationTargetDomainZero();
53
- }
54
-
55
- // effects
56
- // setup main target, main role id and main role info
57
- _mainTargetName = mainTargetName;
58
- _tokenHandlerName = string(abi.encodePacked(mainTargetName, "TH"));
40
+ // IMPORTANT must match with AccessAdminLib.CORE_ROLE_MIN
41
+ _nextGifContractRoleId = 100;
42
+ _nextInstanceContractRoleId = INSTANCE_ROLE_MIN;
43
+
44
+ // setup main target
45
+ // special case: core targets
46
+ if (targetType == IAccess.TargetType.Core) {
47
+ _addGifTarget(_mainTargetName);
48
+ // special case instances
49
+ } else if (targetType == IAccess.TargetType.Instance) {
50
+ _addInstanceTarget(_mainTargetName);
51
+ // all other target types
52
+ } else {
53
+ if (domain.eqz()) {
54
+ revert ErrorAuthorizationTargetDomainZero();
55
+ }
59
56
 
60
- RoleId mainRoleId = RoleIdLib.toComponentRoleId(targetDomain, 0);
61
- string memory mainRolName = _toTargetRoleName(mainTargetName);
57
+ RoleId mainRoleId = RoleIdLib.toRoleId(COMPONENT_ROLE_MIN);
58
+ string memory mainRoleName = _toTargetRoleName(_mainTargetName);
62
59
 
63
- _addTargetWithRole(
64
- _mainTargetName,
65
- mainRoleId,
66
- mainRolName);
67
-
68
- _mainTarget = StrLib.toStr(mainTargetName);
69
- _targetRole[_mainTarget] = mainRoleId;
70
-
71
- // add token handler target for components
72
- if (targetDomain == PRODUCT()
73
- || targetDomain == DISTRIBUTION()
74
- || targetDomain == ORACLE()
75
- || targetDomain == POOL()
76
- ) {
77
- _addTarget(_tokenHandlerName);
60
+ _addTargetWithRole(
61
+ _mainTargetName,
62
+ mainRoleId,
63
+ mainRoleName);
78
64
  }
79
65
 
80
- // setup token handler target
81
- _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
82
-
83
66
  // setup use case specific parts
84
67
  _setupServiceTargets();
85
68
  _setupRoles(); // not including main target role
86
69
  _setupTargets(); // not including main target (and token handler target)
87
-
88
- _setupTokenHandlerAuthorizations();
89
70
  _setupTargetAuthorizations(); // not including token handler target
90
- }
91
-
92
- function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
93
- return _serviceDomains;
94
- }
95
-
96
- function getComponentRole(ObjectType componentDomain) public view returns(RoleId roleId) {
97
- return RoleIdLib.toComponentRoleId(componentDomain, 0);
98
- }
99
-
100
- function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
101
- return RoleIdLib.roleForTypeAndVersion(
102
- serviceDomain,
103
- getRelease());
104
- }
105
-
106
- function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
107
- return _serviceTarget[serviceDomain];
108
- }
109
71
 
110
- function getRoles() external view returns(RoleId[] memory roles) {
111
- return _roles;
112
- }
113
-
114
- function roleExists(RoleId roleId) public view returns(bool exists) {
115
- return _roleInfo[roleId].roleType != RoleType.Undefined;
116
- }
117
-
118
- function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
119
- return _roleInfo[roleId];
120
- }
72
+ // setup component token handler
73
+ if (includeTokenHandler) {
74
+ _tokenHandlerName = string(abi.encodePacked(mainTargetName, "Th"));
75
+ _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
76
+ _addTarget(_tokenHandlerName);
77
+ _setupTokenHandlerAuthorizations();
78
+ }
121
79
 
122
- function getMainTargetName() public virtual view returns (string memory name) {
123
- return _mainTargetName;
80
+ _registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
124
81
  }
125
82
 
126
- function getMainTarget() public view returns(Str) {
127
- return _mainTarget;
128
- }
129
83
 
130
84
  function getTokenHandlerName() public view returns(string memory) {
131
85
  return _tokenHandlerName;
@@ -135,7 +89,7 @@ contract Authorization
135
89
  return _tokenHandlerTarget;
136
90
  }
137
91
 
138
- function getTarget(string memory targetName) public view returns(Str target) {
92
+ function getTarget(string memory targetName) public pure returns(Str target) {
139
93
  return StrLib.toStr(targetName);
140
94
  }
141
95
 
@@ -147,191 +101,90 @@ contract Authorization
147
101
  return target == _mainTarget || _targetExists[target];
148
102
  }
149
103
 
150
- function getTargetRole(Str target) external view returns(RoleId roleId) {
151
- return _targetRole[target];
152
- }
153
-
154
- function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
155
- return _authorizedRoles[target];
156
- }
157
-
158
- function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
159
- return _authorizedFunctions[target][roleId];
160
- }
161
-
162
- function getRelease() public virtual pure returns(VersionPart release) {
163
- return VersionPartLib.toVersionPart(GIF_RELEASE);
164
- }
165
-
166
104
  /// @dev Sets up the relevant service targets for the component.
167
105
  /// Overwrite this function for use case specific authorizations.
106
+ // solhint-disable-next-line no-empty-blocks
168
107
  function _setupServiceTargets() internal virtual { }
169
108
 
170
109
  /// @dev Sets up the relevant (non-service) targets for the component.
171
110
  /// Overwrite this function for use case specific authorizations.
111
+ // solhint-disable-next-line no-empty-blocks
172
112
  function _setupTargets() internal virtual { }
173
113
 
174
114
  /// @dev Sets up the relevant roles for the component.
175
115
  /// Overwrite this function for use case specific authorizations.
116
+ // solhint-disable-next-line no-empty-blocks
176
117
  function _setupRoles() internal virtual {}
177
118
 
178
119
  /// @dev Sets up the relevant component's token handler authorizations.
179
120
  /// Overwrite this function for use case specific authorizations.
121
+ // solhint-disable-next-line no-empty-blocks
180
122
  function _setupTokenHandlerAuthorizations() internal virtual {}
181
123
 
182
124
  /// @dev Sets up the relevant target authorizations for the component.
183
125
  /// Overwrite this function for use case specific authorizations.
126
+ // solhint-disable-next-line no-empty-blocks
184
127
  function _setupTargetAuthorizations() internal virtual {}
185
128
 
186
- /// @dev Add the service target role for the specified service domain
187
- function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
188
- // add service domain
189
- _serviceDomains.push(serviceDomain);
190
-
191
- // get versioned target name
192
- string memory serviceTargetName = ObjectTypeLib.toVersionedName(
193
- ObjectTypeLib.toName(serviceDomain),
194
- "Service",
195
- getRelease().toInt());
196
-
197
- _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
198
-
199
- RoleId serviceRoleId = getServiceRole(serviceDomain);
200
- string memory serviceRoleName = ObjectTypeLib.toVersionedName(
201
- ObjectTypeLib.toName(serviceDomain),
202
- "ServiceRole",
203
- getRelease().toInt());
204
-
205
- _addTargetWithRole(
206
- serviceTargetName,
207
- serviceRoleId,
208
- serviceRoleName);
209
- }
210
-
211
-
212
- /// @dev Use this method to to add an authorized role.
213
- function _addRole(RoleId roleId, RoleInfo memory info) internal {
214
- _roles.push(roleId);
215
- _roleInfo[roleId] = info;
216
- }
217
-
218
-
219
- /// @dev Add a contract role for the provided role id and name.
220
- function _addContractRole(RoleId roleId, string memory name) internal {
221
- _addRole(
222
- roleId,
223
- _toRoleInfo(
224
- ADMIN_ROLE(),
225
- RoleType.Contract,
226
- 1,
227
- name));
228
- }
229
-
230
-
231
- /// @dev Add the versioned service role for the specified service domain
232
- function _addServiceRole(ObjectType serviceDomain) internal {
233
- _addContractRole(
234
- getServiceRole(serviceDomain),
235
- ObjectTypeLib.toVersionedName(
236
- ObjectTypeLib.toName(serviceDomain),
237
- SERVICE_ROLE_NAME_SUFFIX,
238
- getRelease().toInt()));
239
- }
240
-
241
129
 
242
130
  /// @dev Add a contract role for the provided role id and name.
243
131
  function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
244
132
  _addRole(
245
133
  roleId,
246
- _toRoleInfo(
134
+ AccessAdminLib.roleInfo(
247
135
  adminRoleId,
248
- RoleType.Custom,
136
+ TargetType.Custom,
249
137
  maxMemberCount,
250
138
  name));
251
139
  }
252
140
 
141
+ /// @dev Add a gif target with its corresponding contract role
142
+ function _addGifTarget(string memory contractName) internal {
143
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
144
+ string memory contractRoleName = string(
145
+ abi.encodePacked(
146
+ contractName,
147
+ ROLE_NAME_SUFFIX));
253
148
 
254
- /// @dev Use this method to to add an authorized target together with its target role.
255
- function _addTargetWithRole(
256
- string memory targetName,
257
- RoleId roleId,
258
- string memory roleName
259
- )
260
- internal
261
- {
262
- // add target
263
- Str target = StrLib.toStr(targetName);
264
- _targets.push(target);
265
-
266
- _targetExists[target] = true;
149
+ _addTargetWithRole(
150
+ contractName,
151
+ contractRoleId,
152
+ contractRoleName);
153
+ }
267
154
 
268
- // link role to target if defined
269
- if (roleId != RoleIdLib.zero()) {
270
- // add role if new
271
- if (!roleExists(roleId)) {
272
- _addContractRole(roleId, roleName);
273
- }
155
+ /// @dev Add an instance target with its corresponding contract role
156
+ function _addInstanceTarget(string memory contractName) internal {
157
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextInstanceContractRoleId++);
158
+ string memory contractRoleName = _toTargetRoleName(contractName);
274
159
 
275
- // link target to role
276
- _targetRole[target] = roleId;
277
- }
160
+ _addTargetWithRole(
161
+ contractName,
162
+ contractRoleId,
163
+ contractRoleName);
278
164
  }
279
165
 
280
-
281
166
  /// @dev Use this method to to add an authorized target.
282
167
  function _addTarget(string memory name) internal {
283
168
  _addTargetWithRole(name, RoleIdLib.zero(), "");
284
169
  }
285
170
 
286
171
 
287
- /// @dev Use this method to authorize the specified role to access the target.
288
- function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
289
- internal
290
- returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
291
- {
292
- Str targetStr = StrLib.toStr(target);
293
- _authorizedRoles[targetStr].push(authorizedRoleId);
294
- return _authorizedFunctions[targetStr][authorizedRoleId];
295
- }
296
-
297
-
298
- /// @dev Use this method to authorize a specific function authorization
299
- function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
300
- functions.push(
301
- IAccess.FunctionInfo({
302
- selector: SelectorLib.toSelector(selector),
303
- name: StrLib.toStr(name),
304
- createdAt: TimestampLib.blockTimestamp()}));
305
- }
306
-
307
-
308
- /// @dev role id for targets registry, staking and instance
172
+ /// @dev Role id for targets registry, staking and instance
309
173
  function _toTargetRoleId(ObjectType targetDomain)
310
174
  internal
311
175
  pure
312
176
  returns (RoleId targetRoleId)
313
177
  {
314
- return RoleIdLib.roleForType(targetDomain);
178
+ return RoleIdLib.toRoleId(100 * targetDomain.toInt());
315
179
  }
316
180
 
317
181
 
182
+ /// @dev Returns the role name for the specified target name
318
183
  function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
319
184
  return string(
320
185
  abi.encodePacked(
321
186
  targetName,
322
187
  ROLE_NAME_SUFFIX));
323
188
  }
324
-
325
-
326
- /// @dev creates a role info object from the provided parameters
327
- function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
328
- return RoleInfo({
329
- name: StrLib.toStr(name),
330
- adminRoleId: adminRoleId,
331
- roleType: roleType,
332
- maxMemberCount: maxMemberCount,
333
- createdAt: TimestampLib.blockTimestamp(),
334
- pausedAt: TimestampLib.max()});
335
- }
336
189
  }
337
190
 
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Blocknumber} from "../type/Blocknumber.sol";
4
5
  import {RoleId} from "../type/RoleId.sol";
5
6
  import {Selector} from "../type/Selector.sol";
6
7
  import {Str} from "../type/String.sol";
@@ -8,40 +9,56 @@ import {Timestamp} from "../type/Timestamp.sol";
8
9
 
9
10
  interface IAccess {
10
11
 
11
- enum RoleType {
12
- Undefined, // no role must have this type
13
- 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
12
+ enum TargetType {
13
+ Undefined, // no target must have this type
14
+ Core, // GIF core contracts
15
+ GenericService, // release independent service contracts
16
+ Service, // service contracts
17
+ Instance, // instance contracts
18
+ Component, // instance contracts
19
+ Contract, // normal contracts
20
+ Custom // use case specific rules for contracts or normal accounts
16
21
  }
17
22
 
18
23
  struct RoleInfo {
19
- RoleId adminRoleId;
20
- RoleType roleType;
21
- uint32 maxMemberCount;
22
- Str name;
23
- Timestamp createdAt;
24
- Timestamp pausedAt;
24
+ // slot 0
25
+ RoleId adminRoleId; // 64
26
+ TargetType targetType; // ?
27
+ uint32 maxMemberCount; // 32
28
+ Timestamp createdAt; // 40
29
+ Timestamp pausedAt; // 40
30
+ Blocknumber lastUpdateIn; // 40
31
+ // slot 1
32
+ Str name; // 256
25
33
  }
26
34
 
35
+
36
+ // TODO recalc slot allocation
27
37
  struct TargetInfo {
28
38
  Str name;
29
- bool isCustom;
39
+ TargetType targetType;
40
+ RoleId roleId;
30
41
  Timestamp createdAt;
42
+ Blocknumber lastUpdateIn;
31
43
  }
32
44
 
33
45
  struct FunctionInfo {
46
+ // slot 0
34
47
  Str name; // function name
48
+ // slot 1
35
49
  Selector selector; // function selector
36
50
  Timestamp createdAt;
51
+ Blocknumber lastUpdateIn;
37
52
  }
38
53
 
39
54
  struct RoleNameInfo {
55
+ // slot 0
40
56
  RoleId roleId;
41
57
  bool exists;
42
58
  }
43
59
 
44
60
  struct TargeNameInfo {
61
+ // slot 0
45
62
  address target;
46
63
  bool exists;
47
64
  }