@etherisc/gif-next 0.0.2-f12cf4d-104 → 0.0.2-f13d67f-541

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 (555) hide show
  1. package/README.md +86 -312
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +729 -287
  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 +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +438 -35
  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 +560 -220
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
  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 +128 -218
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -137
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +555 -217
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +170 -82
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +37 -116
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
  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 +183 -138
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +401 -59
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +324 -260
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
  51. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  53. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
  55. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  57. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  59. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
  61. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
  63. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  65. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +214 -215
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -110
  73. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +196 -165
  75. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +600 -306
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  81. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  82. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
  83. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  85. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  86. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  87. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +551 -50
  89. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +415 -15
  91. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  92. package/artifacts/contracts/instance/Instance.sol/Instance.json +606 -112
  93. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1121 -374
  95. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +379 -68
  97. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1136 -561
  99. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +419 -82
  101. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -54
  103. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1283 -1912
  105. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  106. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  107. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  108. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  109. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  111. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  114. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  118. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  120. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  125. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  127. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -91
  128. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
  130. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +41 -55
  133. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
  135. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -75
  137. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +141 -81
  139. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +134 -50
  141. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  142. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -124
  143. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +401 -59
  145. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +298 -329
  147. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +133 -97
  149. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  150. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -131
  151. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -73
  153. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  154. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
  155. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  156. package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -86
  157. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  158. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  159. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +565 -367
  161. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +169 -69
  163. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  164. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +313 -64
  165. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +123 -47
  167. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  168. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -192
  169. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  170. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
  171. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  172. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
  173. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -94
  175. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  176. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
  177. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  178. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
  179. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -55
  181. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
  183. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  184. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +168 -167
  185. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
  187. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  188. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +283 -195
  189. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  190. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  191. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +153 -81
  193. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  194. package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
  195. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +118 -70
  197. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  198. package/artifacts/contracts/product/Product.sol/Product.json +187 -186
  199. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  200. package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
  201. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +123 -47
  203. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  205. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +54 -19
  207. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
  209. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  210. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  211. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/Registry.sol/Registry.json +92 -57
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +845 -489
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  217. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +71 -35
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -43
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  223. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +398 -64
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  232. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Component.sol/Component.json +60 -60
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +269 -561
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +134 -86
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +525 -4
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  246. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +41 -41
  248. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +155 -382
  250. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +41 -55
  252. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  255. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
  258. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
  261. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  263. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  264. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -74
  265. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  266. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  267. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  268. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  270. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  271. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  272. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  273. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
  274. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  275. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  276. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  277. package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  281. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  282. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  283. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  284. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  285. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1457 -145
  286. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  287. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
  288. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  289. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  290. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  291. package/artifacts/contracts/staking/Staking.sol/Staking.json +1634 -275
  292. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  294. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +149 -62
  296. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  297. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  298. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
  300. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +102 -50
  302. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
  304. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  306. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  307. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
  308. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  324. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  328. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +49 -50
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  337. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  338. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  339. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  341. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  343. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  345. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  347. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  349. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  352. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  354. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  356. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  358. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  360. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  361. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  362. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  363. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
  364. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  365. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  366. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  367. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  368. package/contracts/accounting/AccountingService.sol +274 -0
  369. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  370. package/contracts/accounting/IAccountingService.sol +47 -0
  371. package/contracts/authorization/AccessAdmin.sol +389 -306
  372. package/contracts/authorization/AccessAdminLib.sol +678 -0
  373. package/contracts/authorization/AccessManagerCloneable.sol +128 -4
  374. package/contracts/authorization/Authorization.sol +161 -260
  375. package/contracts/authorization/IAccess.sol +29 -12
  376. package/contracts/authorization/IAccessAdmin.sol +89 -84
  377. package/contracts/authorization/IAuthorization.sol +9 -43
  378. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  379. package/contracts/authorization/ServiceAuthorization.sol +228 -34
  380. package/contracts/distribution/BasicDistribution.sol +19 -18
  381. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  382. package/contracts/distribution/Distribution.sol +45 -85
  383. package/contracts/distribution/DistributionService.sol +192 -99
  384. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  385. package/contracts/distribution/IDistributionComponent.sol +3 -10
  386. package/contracts/distribution/IDistributionService.sol +38 -24
  387. package/contracts/examples/fire/FirePool.sol +6 -6
  388. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  389. package/contracts/examples/fire/FireProduct.sol +15 -13
  390. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  391. package/contracts/examples/flight/FlightLib.sol +279 -0
  392. package/contracts/examples/flight/FlightOracle.sol +168 -0
  393. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  394. package/contracts/examples/flight/FlightPool.sol +89 -0
  395. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  396. package/contracts/examples/flight/FlightProduct.sol +470 -0
  397. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  398. package/contracts/examples/flight/FlightUSD.sol +26 -0
  399. package/contracts/examples/flight/originalV1.sol +396 -0
  400. package/contracts/examples/unpermissioned/SimpleDistribution.sol +34 -11
  401. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  402. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  403. package/contracts/examples/unpermissioned/SimplePool.sol +7 -13
  404. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  405. package/contracts/examples/unpermissioned/SimpleProduct.sol +119 -27
  406. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  407. package/contracts/instance/BaseStore.sol +93 -0
  408. package/contracts/instance/BundleSet.sol +42 -38
  409. package/contracts/instance/IBaseStore.sol +37 -0
  410. package/contracts/instance/IInstance.sol +109 -19
  411. package/contracts/instance/IInstanceService.sol +59 -11
  412. package/contracts/instance/Instance.sol +184 -65
  413. package/contracts/instance/InstanceAdmin.sol +221 -191
  414. package/contracts/instance/InstanceAuthorizationV3.sol +153 -72
  415. package/contracts/instance/InstanceReader.sol +447 -314
  416. package/contracts/instance/InstanceService.sol +305 -205
  417. package/contracts/instance/InstanceServiceManager.sol +1 -1
  418. package/contracts/instance/InstanceStore.sol +152 -116
  419. package/contracts/instance/ProductStore.sol +290 -0
  420. package/contracts/instance/RiskSet.sol +126 -0
  421. package/contracts/instance/TargetNames.sol +10 -0
  422. package/contracts/instance/base/BalanceStore.sol +4 -6
  423. package/contracts/instance/base/ObjectCounter.sol +1 -2
  424. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  425. package/contracts/instance/base/ObjectSet.sol +31 -33
  426. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  427. package/contracts/instance/module/IBundle.sol +6 -5
  428. package/contracts/instance/module/IComponents.sol +18 -8
  429. package/contracts/instance/module/IDistribution.sol +21 -8
  430. package/contracts/instance/module/IPolicy.sol +28 -8
  431. package/contracts/instance/module/IRisk.sol +5 -0
  432. package/contracts/oracle/BasicOracle.sol +3 -6
  433. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  434. package/contracts/oracle/IOracle.sol +9 -4
  435. package/contracts/oracle/IOracleService.sol +12 -12
  436. package/contracts/oracle/Oracle.sol +5 -9
  437. package/contracts/oracle/OracleService.sol +98 -80
  438. package/contracts/oracle/OracleServiceManager.sol +1 -1
  439. package/contracts/pool/BasicPool.sol +4 -18
  440. package/contracts/pool/BasicPoolAuthorization.sol +29 -16
  441. package/contracts/pool/BundleService.sol +66 -165
  442. package/contracts/pool/BundleServiceManager.sol +1 -1
  443. package/contracts/pool/IBundleService.sol +27 -51
  444. package/contracts/pool/IPoolService.sol +56 -58
  445. package/contracts/pool/Pool.sol +15 -29
  446. package/contracts/pool/PoolLib.sol +341 -0
  447. package/contracts/pool/PoolService.sol +221 -227
  448. package/contracts/pool/PoolServiceManager.sol +1 -1
  449. package/contracts/product/ApplicationService.sol +93 -25
  450. package/contracts/product/ApplicationServiceManager.sol +1 -1
  451. package/contracts/product/BasicProduct.sol +4 -5
  452. package/contracts/product/BasicProductAuthorization.sol +33 -11
  453. package/contracts/product/ClaimService.sol +221 -209
  454. package/contracts/product/ClaimServiceManager.sol +1 -1
  455. package/contracts/product/IApplicationService.sol +28 -3
  456. package/contracts/product/IClaimService.sol +18 -5
  457. package/contracts/product/IPolicyService.sol +31 -11
  458. package/contracts/product/IPricingService.sol +1 -0
  459. package/contracts/product/IProductComponent.sol +4 -1
  460. package/contracts/product/IRiskService.sol +25 -10
  461. package/contracts/product/PolicyService.sol +252 -302
  462. package/contracts/product/PolicyServiceLib.sol +139 -0
  463. package/contracts/product/PolicyServiceManager.sol +1 -1
  464. package/contracts/product/PricingService.sol +52 -46
  465. package/contracts/product/PricingServiceManager.sol +3 -3
  466. package/contracts/product/Product.sol +95 -36
  467. package/contracts/product/RiskService.sol +130 -37
  468. package/contracts/product/RiskServiceManager.sol +1 -1
  469. package/contracts/registry/ChainNft.sol +4 -2
  470. package/contracts/registry/IRegistry.sol +23 -24
  471. package/contracts/registry/IRelease.sol +29 -0
  472. package/contracts/registry/Registry.sol +22 -11
  473. package/contracts/registry/RegistryAdmin.sol +94 -383
  474. package/contracts/registry/RegistryAuthorization.sol +337 -0
  475. package/contracts/registry/RegistryService.sol +4 -4
  476. package/contracts/registry/RegistryServiceManager.sol +1 -1
  477. package/contracts/registry/ReleaseAdmin.sol +199 -0
  478. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  479. package/contracts/registry/ReleaseRegistry.sol +157 -117
  480. package/contracts/registry/ServiceAuthorizationV3.sol +193 -54
  481. package/contracts/registry/TokenRegistry.sol +61 -59
  482. package/contracts/shared/Component.sol +36 -55
  483. package/contracts/shared/ComponentService.sol +350 -438
  484. package/contracts/shared/ComponentServiceManager.sol +1 -1
  485. package/contracts/shared/ContractLib.sol +260 -2
  486. package/contracts/shared/IComponent.sol +1 -10
  487. package/contracts/shared/IComponentService.sol +22 -41
  488. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  489. package/contracts/shared/INftOwnable.sol +2 -0
  490. package/contracts/shared/IRegisterable.sol +15 -5
  491. package/contracts/shared/IService.sol +3 -5
  492. package/contracts/shared/InitializableERC165.sol +9 -1
  493. package/contracts/shared/InstanceLinkedComponent.sol +62 -35
  494. package/contracts/shared/NftOwnable.sol +8 -6
  495. package/contracts/shared/PolicyHolder.sol +4 -3
  496. package/contracts/shared/Registerable.sol +42 -19
  497. package/contracts/shared/RegistryLinked.sol +1 -1
  498. package/contracts/shared/Service.sol +13 -30
  499. package/contracts/shared/TokenHandler.sol +45 -100
  500. package/contracts/staking/IStaking.sol +265 -72
  501. package/contracts/staking/IStakingService.sol +45 -75
  502. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  503. package/contracts/staking/Staking.sol +502 -210
  504. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  505. package/contracts/staking/StakingManager.sol +4 -3
  506. package/contracts/staking/StakingReader.sol +58 -77
  507. package/contracts/staking/StakingService.sol +62 -194
  508. package/contracts/staking/StakingServiceManager.sol +6 -4
  509. package/contracts/staking/StakingStore.sol +1093 -330
  510. package/contracts/staking/TargetHandler.sol +132 -0
  511. package/contracts/staking/TargetManagerLib.sol +69 -46
  512. package/contracts/type/Amount.sol +4 -0
  513. package/contracts/type/Blocknumber.sol +17 -22
  514. package/contracts/type/ChainId.sol +101 -0
  515. package/contracts/type/Fee.sol +8 -8
  516. package/contracts/type/Key32.sol +2 -2
  517. package/contracts/type/Key32Set.sol +62 -0
  518. package/contracts/type/NftId.sol +6 -0
  519. package/contracts/type/ObjectType.sol +70 -68
  520. package/contracts/type/Referral.sol +6 -0
  521. package/contracts/type/RequestIdSet.sol +62 -0
  522. package/contracts/type/RiskId.sol +26 -8
  523. package/contracts/type/RoleId.sol +63 -45
  524. package/contracts/type/Seconds.sol +23 -0
  525. package/contracts/type/Selector.sol +5 -0
  526. package/contracts/type/String.sol +42 -0
  527. package/contracts/type/Timestamp.sol +14 -8
  528. package/contracts/type/UFixed.sol +35 -127
  529. package/contracts/type/Version.sol +54 -5
  530. package/contracts/upgradeability/IVersionable.sol +3 -0
  531. package/contracts/upgradeability/ProxyManager.sol +27 -13
  532. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  533. package/contracts/upgradeability/Versionable.sol +6 -3
  534. package/package.json +2 -2
  535. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  536. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  537. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  539. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  540. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
  541. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  544. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  545. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  546. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  548. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  549. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  550. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  551. package/contracts/instance/module/IAccess.sol +0 -46
  552. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  553. package/contracts/shared/IKeyValueStore.sol +0 -54
  554. package/contracts/shared/KeyValueStore.sol +0 -131
  555. 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
+ }