@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
@@ -0,0 +1,678 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+
6
+ import {IAccess} from "./IAccess.sol";
7
+ import {IAccessAdmin} from "./IAccessAdmin.sol";
8
+ import {IAuthorization} from "./IAuthorization.sol";
9
+ import {IComponent} from "../shared/IComponent.sol";
10
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
11
+ import {IRegistry} from "../registry/IRegistry.sol";
12
+ import {IService} from "../shared/IService.sol";
13
+ import {IServiceAuthorization} from "./IServiceAuthorization.sol";
14
+
15
+ import {BlocknumberLib} from "../type/Blocknumber.sol";
16
+ import {ContractLib} from "../shared/ContractLib.sol";
17
+ import {ObjectType} from "../type/ObjectType.sol";
18
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
19
+ import {SelectorLib} from "../type/Selector.sol";
20
+ import {Str, StrLib} from "../type/String.sol";
21
+ import {TimestampLib} from "../type/Timestamp.sol";
22
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
23
+
24
+
25
+ library AccessAdminLib { // ACCESS_ADMIN_LIB
26
+
27
+ string public constant TOKEN_HANDLER_SUFFIX = "Th";
28
+ string public constant ROLE_SUFFIX = "_Role";
29
+
30
+ uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
31
+ uint64 public constant COMPONENT_ROLE_FACTOR = 1000;
32
+ uint64 public constant COMPONENT_ROLE_MAX = 19000;
33
+
34
+ uint64 public constant CORE_ROLE_MIN = 100;
35
+ uint64 public constant SERVICE_ROLE_MIN = 1000; // + service domain * SERVICE_ROLE_FACTOR + release
36
+ uint64 public constant SERVICE_ROLE_FACTOR = 1000;
37
+ uint64 public constant INSTANCE_ROLE_MIN = 100000;
38
+
39
+ // MUST match with Authorization.COMPONENT_ROLE_MIN
40
+ uint64 public constant COMPONENT_ROLE_MIN = 110000;
41
+
42
+ uint64 public constant CUSTOM_ROLE_MIN = 1000000;
43
+
44
+
45
+ function ADMIN_ROLE_NAME() public pure returns (string memory) {
46
+ return "AdminRole";
47
+ }
48
+
49
+
50
+ function isAdminRoleName(string memory name) public pure returns (bool) {
51
+ return StrLib.eq(name, ADMIN_ROLE_NAME());
52
+ }
53
+
54
+
55
+ function PUBLIC_ROLE_NAME() public pure returns (string memory) {
56
+ return "PublicRole";
57
+ }
58
+
59
+
60
+ function getAdminRole() public pure returns (RoleId adminRoleId) {
61
+ // see oz AccessManagerUpgradeable
62
+ return RoleId.wrap(type(uint64).min);
63
+ }
64
+
65
+
66
+ function getPublicRole() public pure returns (RoleId publicRoleId) {
67
+ // see oz AccessManagerUpgradeable
68
+ return RoleId.wrap(type(uint64).max);
69
+ }
70
+
71
+
72
+ function isAdminOrPublicRole(string memory name)
73
+ public
74
+ view
75
+ returns (bool)
76
+ {
77
+ return StrLib.eq(name, ADMIN_ROLE_NAME())
78
+ || StrLib.eq(name, PUBLIC_ROLE_NAME());
79
+ }
80
+
81
+
82
+ function isDynamicRoleId(RoleId roleId)
83
+ public
84
+ pure
85
+ returns (bool)
86
+ {
87
+ return roleId.toInt() >= COMPONENT_ROLE_MIN;
88
+ }
89
+
90
+
91
+ function adminRoleInfo()
92
+ public
93
+ view
94
+ returns (IAccess.RoleInfo memory)
95
+ {
96
+ return roleInfo(
97
+ getAdminRole(),
98
+ IAccess.TargetType.Core,
99
+ 1,
100
+ ADMIN_ROLE_NAME());
101
+ }
102
+
103
+
104
+ function publicRoleInfo()
105
+ public
106
+ view
107
+ returns (IAccess.RoleInfo memory)
108
+ {
109
+ return roleInfo(
110
+ getAdminRole(),
111
+ IAccess.TargetType.Custom,
112
+ type(uint32).max,
113
+ PUBLIC_ROLE_NAME());
114
+ }
115
+
116
+
117
+ function coreRoleInfo(string memory name)
118
+ public
119
+ view
120
+ returns (IAccess.RoleInfo memory)
121
+ {
122
+ return roleInfo(
123
+ getAdminRole(),
124
+ IAccess.TargetType.Core,
125
+ 1,
126
+ name);
127
+ }
128
+
129
+
130
+ function serviceRoleInfo(string memory serviceName)
131
+ public
132
+ view
133
+ returns (IAccess.RoleInfo memory)
134
+ {
135
+ return roleInfo(
136
+ getAdminRole(),
137
+ IAccess.TargetType.Service,
138
+ 1,
139
+ serviceName);
140
+ }
141
+
142
+
143
+ /// @dev Creates a role info object from the provided parameters
144
+ function roleInfo(
145
+ RoleId adminRoleId,
146
+ IAccess.TargetType targetType,
147
+ uint32 maxMemberCount,
148
+ string memory roleName
149
+ )
150
+ public
151
+ view
152
+ returns (IAccess.RoleInfo memory info)
153
+ {
154
+ return IAccess.RoleInfo({
155
+ name: StrLib.toStr(roleName),
156
+ adminRoleId: adminRoleId,
157
+ targetType: targetType,
158
+ maxMemberCount: maxMemberCount,
159
+ createdAt: TimestampLib.current(),
160
+ pausedAt: TimestampLib.max(),
161
+ lastUpdateIn: BlocknumberLib.current()});
162
+ }
163
+
164
+
165
+ function getSelectors(
166
+ IAccess.FunctionInfo[] memory functions
167
+ )
168
+ public
169
+ pure
170
+ returns (
171
+ bytes4[] memory selectors
172
+ )
173
+ {
174
+ uint256 n = functions.length;
175
+ selectors = new bytes4[](n);
176
+ for (uint256 i = 0; i < n; i++) {
177
+ selectors[i] = functions[i].selector.toBytes4();
178
+ }
179
+ }
180
+
181
+
182
+ function checkInitParameters(
183
+ address authority,
184
+ string memory adminName
185
+ )
186
+ public
187
+ view
188
+ {
189
+ // only contract check (authority might not yet be initialized at this time)
190
+ if (!ContractLib.isContract(authority)) {
191
+ revert IAccessAdmin.ErrorAccessAdminAuthorityNotContract(authority);
192
+ }
193
+
194
+ // check name not empty
195
+ if (bytes(adminName).length == 0) {
196
+ revert IAccessAdmin.ErrorAccessAdminAccessManagerEmptyName();
197
+ }
198
+ }
199
+
200
+
201
+ function checkRoleCreation(
202
+ IAccessAdmin accessAdmin,
203
+ RoleId roleId,
204
+ IAccess.RoleInfo memory info,
205
+ bool revertOnExistingRole
206
+ )
207
+ public
208
+ view
209
+ returns (bool isAdminOrPublicRole)
210
+ {
211
+ // check
212
+ if (roleId == ADMIN_ROLE() || roleId == PUBLIC_ROLE()) {
213
+ return true;
214
+ }
215
+
216
+ // check role does not yet exist
217
+ if(revertOnExistingRole && accessAdmin.roleExists(roleId)) {
218
+ revert IAccessAdmin.ErrorAccessAdminRoleAlreadyCreated(
219
+ roleId,
220
+ accessAdmin.getRoleInfo(roleId).name.toString());
221
+ }
222
+
223
+ // check admin role exists
224
+ if(!accessAdmin.roleExists(info.adminRoleId)) {
225
+ revert IAccessAdmin.ErrorAccessAdminRoleAdminNotExisting(info.adminRoleId);
226
+ }
227
+
228
+ // check role name is not empty
229
+ if(info.name.length() == 0) {
230
+ revert IAccessAdmin.ErrorAccessAdminRoleNameEmpty(roleId);
231
+ }
232
+
233
+ // check role name is not used for another role
234
+ (RoleId roleIdForName, bool exists) = accessAdmin.getRoleForName(StrLib.toString(info.name));
235
+ if(revertOnExistingRole && exists) {
236
+ revert IAccessAdmin.ErrorAccessAdminRoleNameAlreadyExists(
237
+ roleId,
238
+ info.name.toString(),
239
+ roleIdForName);
240
+ }
241
+
242
+ return false;
243
+ }
244
+
245
+
246
+ function checkRoleExists(
247
+ IAccessAdmin accessAdmin,
248
+ RoleId roleId,
249
+ bool onlyActiveRole,
250
+ bool allowAdminAndPublicRoles
251
+ )
252
+ internal
253
+ view
254
+ {
255
+ // check role exists
256
+ if (!accessAdmin.roleExists(roleId)) {
257
+ revert IAccessAdmin.ErrorAccessAdminRoleUnknown(roleId);
258
+ }
259
+
260
+ // if onlyActiveRoles: check if role is disabled
261
+ if (onlyActiveRole && accessAdmin.getRoleInfo(roleId).pausedAt <= TimestampLib.current()) {
262
+ revert IAccessAdmin.ErrorAccessAdminRoleIsPaused(roleId);
263
+ }
264
+
265
+ // if not allowAdminAndPublicRoles, check if role is admin or public role
266
+ if (!allowAdminAndPublicRoles) {
267
+ checkNotAdminOrPublicRole(roleId);
268
+ }
269
+ }
270
+
271
+
272
+ function checkNotAdminOrPublicRole(RoleId roleId) public pure {
273
+ if (roleId == ADMIN_ROLE()) {
274
+ revert IAccessAdmin.ErrorAccessAdminInvalidUseOfAdminRole();
275
+ }
276
+
277
+ if (roleId == PUBLIC_ROLE()) {
278
+ revert IAccessAdmin.ErrorAccessAdminInvalidUseOfPublicRole();
279
+ }
280
+ }
281
+
282
+ function checkTargetCreation(
283
+ IAccessAdmin accessAdmin,
284
+ address target,
285
+ string memory targetName,
286
+ bool checkAuthority
287
+ )
288
+ public
289
+ view
290
+ {
291
+ // check target does not yet exist
292
+ if(accessAdmin.targetExists(target)) {
293
+ revert IAccessAdmin.ErrorAccessAdminTargetAlreadyCreated(
294
+ target,
295
+ accessAdmin.getTargetInfo(target).name.toString());
296
+ }
297
+
298
+ // check target name is not empty
299
+ Str name = StrLib.toStr(targetName);
300
+ if(name.length() == 0) {
301
+ revert IAccessAdmin.ErrorAccessAdminTargetNameEmpty(target);
302
+ }
303
+
304
+ // check target name is not used for another target
305
+ address targetForName = accessAdmin.getTargetForName(name);
306
+ if(targetForName != address(0)) {
307
+ revert IAccessAdmin.ErrorAccessAdminTargetNameAlreadyExists(
308
+ target,
309
+ targetName,
310
+ targetForName);
311
+ }
312
+
313
+ // check target is an access managed contract
314
+ if (!ContractLib.isAccessManaged(target)) {
315
+ revert IAccessAdmin.ErrorAccessAdminTargetNotAccessManaged(target);
316
+ }
317
+
318
+ // check target shares authority with this contract
319
+ if (checkAuthority) {
320
+ address targetAuthority = AccessManagedUpgradeable(target).authority();
321
+ if (targetAuthority != accessAdmin.authority()) {
322
+ revert IAccessAdmin.ErrorAccessAdminTargetAuthorityMismatch(accessAdmin.authority(), targetAuthority);
323
+ }
324
+ }
325
+ }
326
+
327
+
328
+ function checkComponentInitialization(
329
+ IAccessAdmin accessAdmin,
330
+ IAuthorization instanceAuthorization,
331
+ address componentAddress,
332
+ ObjectType expectedType
333
+ )
334
+ public
335
+ view
336
+ returns (IAuthorization componentAuthorization)
337
+ {
338
+ checkIsRegistered(address(accessAdmin.getRegistry()), componentAddress, expectedType);
339
+
340
+ VersionPart expecteRelease = accessAdmin.getRelease();
341
+ IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
342
+ componentAuthorization = component.getAuthorization();
343
+
344
+ checkAuthorization(
345
+ address(instanceAuthorization),
346
+ address(componentAuthorization),
347
+ expectedType,
348
+ expecteRelease,
349
+ false, // expectServiceAuthorization,
350
+ false); // checkAlreadyInitialized
351
+ }
352
+
353
+
354
+ function checkTargetAndRoleForFunctions(
355
+ IAccessAdmin accessAdmin,
356
+ address target,
357
+ RoleId roleId,
358
+ bool onlyComponentOrContractTargets
359
+ )
360
+ public
361
+ view
362
+ {
363
+ // check target exists
364
+ IAccess.TargetType targetType = accessAdmin.getTargetInfo(target).targetType;
365
+ if (targetType == IAccess.TargetType.Undefined) {
366
+ revert IAccessAdmin.ErrorAccessAdminTargetNotCreated(target);
367
+ }
368
+
369
+ // check target type
370
+ if (onlyComponentOrContractTargets) {
371
+ if (targetType != IAccess.TargetType.Component && targetType != IAccess.TargetType.Contract) {
372
+ revert IAccessAdmin.ErrorAccessAdminNotComponentOrCustomTarget(target);
373
+ }
374
+ }
375
+
376
+ // check role exist
377
+ checkRoleExists(accessAdmin, roleId, true, true);
378
+ }
379
+
380
+
381
+ function checkTargetExists(
382
+ IAccessAdmin accessAdmin,
383
+ address target
384
+ )
385
+ public
386
+ view
387
+ {
388
+ // check not yet created
389
+ if (!accessAdmin.targetExists(target)) {
390
+ revert IAccessAdmin.ErrorAccessAdminTargetNotCreated(target);
391
+ }
392
+ }
393
+
394
+
395
+ function checkAuthorization(
396
+ address authorizationOld,
397
+ address authorization,
398
+ ObjectType expectedDomain,
399
+ VersionPart expectedRelease,
400
+ bool expectServiceAuthorization,
401
+ bool checkAlreadyInitialized
402
+ )
403
+ public
404
+ view
405
+ {
406
+ // checks
407
+ // check not yet initialized
408
+ if (checkAlreadyInitialized && authorizationOld != address(0)) {
409
+ revert IAccessAdmin.ErrorAccessAdminAlreadyInitialized(authorizationOld);
410
+ }
411
+
412
+ // check contract type matches
413
+ if (expectServiceAuthorization) {
414
+ if (!ContractLib.supportsInterface(authorization, type(IServiceAuthorization).interfaceId)) {
415
+ revert IAccessAdmin.ErrorAccessAdminNotServiceAuthorization(authorization);
416
+ }
417
+ } else {
418
+ if (!ContractLib.supportsInterface(authorization, type(IAuthorization).interfaceId)) {
419
+ revert IAccessAdmin.ErrorAccessAdminNotAuthorization(authorization);
420
+ }
421
+ }
422
+
423
+ // check domain matches
424
+ ObjectType domain = IAuthorization(authorization).getDomain();
425
+ if (domain != expectedDomain) {
426
+ revert IAccessAdmin.ErrorAccessAdminDomainMismatch(authorization, expectedDomain, domain);
427
+ }
428
+
429
+ // check release matches
430
+ VersionPart authorizationRelease = IAuthorization(authorization).getRelease();
431
+ if (authorizationRelease != expectedRelease) {
432
+ revert IAccessAdmin.ErrorAccessAdminReleaseMismatch(authorization, expectedRelease, authorizationRelease);
433
+ }
434
+ }
435
+
436
+
437
+ function checkIsRegistered(
438
+ address registry,
439
+ address target,
440
+ ObjectType expectedType
441
+ )
442
+ public
443
+ view
444
+ {
445
+ checkRegistry(registry);
446
+
447
+ ObjectType tagetType = IRegistry(registry).getObjectInfo(target).objectType;
448
+ if (tagetType.eqz()) {
449
+ revert IAccessAdmin.ErrorAccessAdminNotRegistered(target);
450
+ }
451
+
452
+ if (tagetType != expectedType) {
453
+ revert IAccessAdmin.ErrorAccessAdminTargetTypeMismatch(target, expectedType, tagetType);
454
+ }
455
+ }
456
+
457
+
458
+ function checkRegistry(
459
+ address registry
460
+ )
461
+ public
462
+ view
463
+ {
464
+ if (!ContractLib.isRegistry(registry)) {
465
+ revert IAccessAdmin.ErrorAccessAdminNotRegistry(registry);
466
+ }
467
+ }
468
+
469
+
470
+ function getAuthorizedRole(
471
+ IAccessAdmin accessAdmin,
472
+ IAuthorization authorization,
473
+ RoleId roleId
474
+ )
475
+ public
476
+ view
477
+ returns (RoleId authorizedRoleId)
478
+ {
479
+ string memory roleName = authorization.getRoleInfo(roleId).name.toString();
480
+ (authorizedRoleId, ) = accessAdmin.getRoleForName(roleName);
481
+ }
482
+
483
+
484
+ function getServiceRoleId(
485
+ address serviceAddress,
486
+ IAccess.TargetType serviceTargetType
487
+ )
488
+ public
489
+ view
490
+ returns (RoleId serviceRoleId)
491
+ {
492
+ IService service = IService(serviceAddress);
493
+
494
+ if (serviceTargetType == IAccess.TargetType.Service) {
495
+ return RoleIdLib.toServiceRoleId(service.getDomain(), service.getRelease());
496
+ } else if (serviceTargetType == IAccess.TargetType.GenericService) {
497
+ return RoleIdLib.toGenericServiceRoleId(service.getDomain());
498
+ }
499
+
500
+ revert IAccessAdmin.ErrorAccessAdminInvalidServiceType(serviceAddress, serviceTargetType);
501
+ }
502
+
503
+
504
+ function getVersionedServiceRoleId(
505
+ ObjectType serviceDomain,
506
+ VersionPart release
507
+ )
508
+ public
509
+ pure
510
+ returns (RoleId serviceRoleId)
511
+ {
512
+ return RoleIdLib.toRoleId(
513
+ SERVICE_ROLE_MIN + SERVICE_ROLE_FACTOR * serviceDomain.toInt() + release.toInt());
514
+ }
515
+
516
+
517
+ function getGenericServiceRoleId(
518
+ ObjectType serviceDomain
519
+ )
520
+ public
521
+ pure
522
+ returns (RoleId serviceRoleId)
523
+ {
524
+ return RoleIdLib.toRoleId(
525
+ SERVICE_ROLE_MIN + SERVICE_ROLE_FACTOR * serviceDomain.toInt() + VersionPartLib.releaseMax().toInt());
526
+ }
527
+
528
+
529
+ function getCustomRoleId(uint64 index)
530
+ public
531
+ pure
532
+ returns (RoleId customRoleId)
533
+ {
534
+ return RoleIdLib.toRoleId(CUSTOM_ROLE_MIN + index);
535
+ }
536
+
537
+
538
+ function isCustomRole(RoleId roleId)
539
+ public
540
+ pure
541
+ returns (bool)
542
+ {
543
+ return roleId.toInt() >= CUSTOM_ROLE_MIN;
544
+ }
545
+
546
+
547
+ function getTargetRoleId(
548
+ address target,
549
+ IAccess.TargetType targetType,
550
+ uint64 index
551
+ )
552
+ public
553
+ view
554
+ returns (RoleId targetRoleId)
555
+ {
556
+ if (targetType == IAccess.TargetType.Core) {
557
+ return RoleIdLib.toRoleId(CORE_ROLE_MIN + index);
558
+ }
559
+
560
+ if (targetType == IAccess.TargetType.Service || targetType == IAccess.TargetType.GenericService ) {
561
+ return getServiceRoleId(target, targetType);
562
+ }
563
+
564
+ if (targetType == IAccess.TargetType.Instance) {
565
+ return RoleIdLib.toRoleId(INSTANCE_ROLE_MIN + index);
566
+ }
567
+
568
+ if (targetType == IAccess.TargetType.Component) {
569
+ return RoleIdLib.toRoleId(COMPONENT_ROLE_MIN + index);
570
+ }
571
+
572
+ if (targetType == IAccess.TargetType.Custom
573
+ || targetType == IAccess.TargetType.Contract)
574
+ {
575
+ return RoleIdLib.toRoleId(CUSTOM_ROLE_MIN + index);
576
+ }
577
+
578
+ revert IAccessAdmin.ErrorAccessAdminInvalidTargetType(target, targetType);
579
+ }
580
+
581
+
582
+ function getTokenHandler(
583
+ address target,
584
+ string memory targetName,
585
+ IAccess.TargetType targetType
586
+ )
587
+ public
588
+ view
589
+ returns (
590
+ address tokenHandler,
591
+ string memory tokenHandlerName
592
+ )
593
+ {
594
+ // not component or core (we need to check core because of staking)
595
+ if (targetType != IAccess.TargetType.Component && targetType != IAccess.TargetType.Core) {
596
+ return (address(0), "");
597
+ }
598
+
599
+ // not contract
600
+ if (!ContractLib.isContract(target)) {
601
+ return (address(0), "");
602
+ }
603
+
604
+ // not component
605
+ if (!ContractLib.supportsInterface(target, type(IComponent).interfaceId)) {
606
+ return (address(0), "");
607
+ }
608
+
609
+ tokenHandler = address(IComponent(target).getTokenHandler());
610
+ tokenHandlerName = string(abi.encodePacked(targetName, TOKEN_HANDLER_SUFFIX));
611
+ }
612
+
613
+
614
+ function toFunctionGrantingString(
615
+ IAccessAdmin accessAdmin,
616
+ Str functionName,
617
+ RoleId roleId
618
+ )
619
+ public
620
+ view
621
+ returns (string memory)
622
+ {
623
+ return string(
624
+ abi.encodePacked(
625
+ functionName.toString(),
626
+ "(): ",
627
+ getRoleName(accessAdmin, roleId)));
628
+ }
629
+
630
+
631
+ function getRoleName(
632
+ IAccessAdmin accessAdmin,
633
+ RoleId roleId
634
+ )
635
+ public
636
+ view
637
+ returns (string memory)
638
+ {
639
+ if (accessAdmin.roleExists(roleId)) {
640
+ return accessAdmin.getRoleInfo(roleId).name.toString();
641
+ }
642
+
643
+ return "<unknown-role>";
644
+ }
645
+
646
+
647
+ function toRoleName(string memory name) public pure returns (string memory) {
648
+ return string(
649
+ abi.encodePacked(
650
+ name,
651
+ ROLE_SUFFIX));
652
+ }
653
+
654
+
655
+ function toFunction(
656
+ bytes4 selector,
657
+ string memory name
658
+ )
659
+ public
660
+ view
661
+ returns (IAccess.FunctionInfo memory)
662
+ {
663
+ if(selector == bytes4(0)) {
664
+ revert IAccessAdmin.ErrorAccessAdminSelectorZero();
665
+ }
666
+
667
+ if(bytes(name).length == 0) {
668
+ revert IAccessAdmin.ErrorAccessAdminFunctionNameEmpty();
669
+ }
670
+
671
+ return IAccess.FunctionInfo({
672
+ name: StrLib.toStr(name),
673
+ selector: SelectorLib.toSelector(selector),
674
+ createdAt: TimestampLib.current(),
675
+ lastUpdateIn: BlocknumberLib.current()});
676
+ }
677
+
678
+ }