@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-04e2e0d-531

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 (511) hide show
  1. package/README.md +131 -332
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +111 -57
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +107 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +65 -19
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +370 -141
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +25 -6
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +266 -64
  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 +263 -87
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
  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 -38
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +463 -149
  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 -11
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +317 -19
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +108 -79
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
  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 +799 -0
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  53. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  67. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
  87. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  88. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +84 -212
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  92. package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +61 -245
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +366 -5
  97. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  98. package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +782 -553
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +392 -31
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1374 -2013
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  112. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3477 -0
  113. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  114. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  115. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  117. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  120. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  122. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  124. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  126. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  131. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +25 -16
  134. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
  136. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -10
  139. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  141. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
  143. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
  145. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
  147. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
  149. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  150. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
  151. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +312 -123
  153. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
  155. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +198 -33
  157. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  158. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
  159. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +250 -19
  161. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  162. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
  163. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  164. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  165. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  166. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +350 -79
  167. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
  169. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  170. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
  171. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
  173. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  174. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
  175. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  176. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
  177. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  178. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  179. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
  181. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
  183. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  185. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +67 -0
  187. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
  189. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  190. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -31
  191. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
  193. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  194. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +169 -86
  195. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  196. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +519 -21
  197. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
  199. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  200. package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
  201. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
  203. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  204. package/artifacts/contracts/product/Product.sol/Product.json +40 -31
  205. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  206. package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
  207. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  208. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
  209. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  211. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +39 -22
  213. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  214. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  215. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  216. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  217. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  218. package/artifacts/contracts/registry/Registry.sol/Registry.json +77 -60
  219. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  220. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
  221. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  222. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
  223. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  224. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
  225. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
  227. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  228. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +551 -246
  229. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  230. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  231. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  232. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +169 -111
  233. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  234. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
  235. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  236. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  237. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
  239. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +221 -201
  241. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  242. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
  243. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  244. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
  245. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  246. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  248. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  249. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
  251. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
  253. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +136 -132
  255. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
  257. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  260. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  263. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  265. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  266. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  267. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  268. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
  269. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  270. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  271. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  272. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  273. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  274. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  275. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  276. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  277. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  278. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  279. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  280. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  281. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  282. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  283. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  284. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  286. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  287. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  288. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  289. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1415 -134
  290. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +109 -117
  292. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  293. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  294. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  295. package/artifacts/contracts/staking/Staking.sol/Staking.json +1504 -192
  296. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  297. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
  298. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
  300. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
  302. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +143 -167
  304. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
  306. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
  308. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  309. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  310. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  311. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
  312. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  313. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  315. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  317. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  319. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  321. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  323. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  325. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  327. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  328. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  329. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  331. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  332. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  333. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  335. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  337. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  339. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  341. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  342. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  343. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  345. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  347. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  349. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  354. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  356. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  358. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  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 +31 -31
  369. package/contracts/accounting/IAccountingService.sol +9 -8
  370. package/contracts/authorization/AccessAdmin.sol +281 -325
  371. package/contracts/authorization/AccessAdminLib.sol +535 -23
  372. package/contracts/authorization/AccessManagerCloneable.sol +3 -18
  373. package/contracts/authorization/Authorization.sol +64 -239
  374. package/contracts/authorization/IAccess.sol +29 -12
  375. package/contracts/authorization/IAccessAdmin.sol +25 -53
  376. package/contracts/authorization/IAuthorization.sol +3 -57
  377. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  378. package/contracts/authorization/ServiceAuthorization.sol +228 -34
  379. package/contracts/distribution/BasicDistribution.sol +3 -4
  380. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  381. package/contracts/distribution/Distribution.sol +9 -8
  382. package/contracts/distribution/DistributionService.sol +127 -62
  383. package/contracts/distribution/IDistributionComponent.sol +3 -1
  384. package/contracts/distribution/IDistributionService.sol +21 -8
  385. package/contracts/examples/fire/FireProduct.sol +6 -6
  386. package/contracts/examples/flight/FlightLib.sol +337 -0
  387. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  388. package/contracts/examples/flight/FlightNft.sol +234 -0
  389. package/contracts/examples/flight/FlightOracle.sol +226 -0
  390. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  391. package/contracts/examples/flight/FlightPool.sol +89 -0
  392. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  393. package/contracts/examples/flight/FlightProduct.sol +687 -0
  394. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  395. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  396. package/contracts/examples/flight/FlightUSD.sol +28 -0
  397. package/contracts/examples/flight/originalV1.sol +396 -0
  398. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
  399. package/contracts/instance/BaseStore.sol +97 -0
  400. package/contracts/instance/IBaseStore.sol +45 -0
  401. package/contracts/instance/IInstance.sol +57 -6
  402. package/contracts/instance/IInstanceService.sol +44 -7
  403. package/contracts/instance/Instance.sol +111 -56
  404. package/contracts/instance/InstanceAdmin.sol +150 -294
  405. package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
  406. package/contracts/instance/InstanceReader.sol +384 -394
  407. package/contracts/instance/InstanceService.sol +190 -134
  408. package/contracts/instance/InstanceStore.sol +153 -128
  409. package/contracts/instance/ProductStore.sol +290 -0
  410. package/contracts/instance/RiskSet.sol +10 -2
  411. package/contracts/instance/TargetNames.sol +10 -0
  412. package/contracts/instance/base/BalanceStore.sol +4 -6
  413. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  414. package/contracts/instance/module/IBundle.sol +6 -5
  415. package/contracts/instance/module/IComponents.sol +15 -5
  416. package/contracts/instance/module/IDistribution.sol +17 -7
  417. package/contracts/instance/module/IPolicy.sol +28 -8
  418. package/contracts/instance/module/IRisk.sol +2 -0
  419. package/contracts/oracle/BasicOracle.sol +3 -3
  420. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  421. package/contracts/oracle/IOracle.sol +9 -4
  422. package/contracts/oracle/IOracleService.sol +12 -12
  423. package/contracts/oracle/Oracle.sol +6 -8
  424. package/contracts/oracle/OracleService.sol +8 -8
  425. package/contracts/pool/BasicPool.sol +4 -16
  426. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  427. package/contracts/pool/BundleService.sol +34 -43
  428. package/contracts/pool/IBundleService.sol +14 -13
  429. package/contracts/pool/IPoolService.sol +8 -3
  430. package/contracts/pool/Pool.sol +6 -18
  431. package/contracts/pool/PoolLib.sol +127 -2
  432. package/contracts/pool/PoolService.sol +41 -182
  433. package/contracts/product/ApplicationService.sol +64 -11
  434. package/contracts/product/BasicProduct.sol +2 -3
  435. package/contracts/product/BasicProductAuthorization.sol +13 -5
  436. package/contracts/product/ClaimService.sol +99 -105
  437. package/contracts/product/IApplicationService.sol +21 -2
  438. package/contracts/product/IClaimService.sol +5 -4
  439. package/contracts/product/IPolicyService.sol +10 -3
  440. package/contracts/product/IRiskService.sol +18 -3
  441. package/contracts/product/PolicyService.sol +41 -60
  442. package/contracts/product/PolicyServiceLib.sol +83 -7
  443. package/contracts/product/PricingService.sol +28 -31
  444. package/contracts/product/Product.sol +40 -16
  445. package/contracts/product/RiskService.sol +50 -15
  446. package/contracts/registry/ChainNft.sol +1 -1
  447. package/contracts/registry/IRegistry.sol +15 -9
  448. package/contracts/registry/IRelease.sol +6 -3
  449. package/contracts/registry/Registry.sol +15 -9
  450. package/contracts/registry/RegistryAdmin.sol +39 -118
  451. package/contracts/registry/RegistryAuthorization.sol +139 -69
  452. package/contracts/registry/RegistryService.sol +1 -1
  453. package/contracts/registry/ReleaseAdmin.sol +59 -106
  454. package/contracts/registry/ReleaseRegistry.sol +20 -12
  455. package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
  456. package/contracts/registry/TokenRegistry.sol +56 -52
  457. package/contracts/shared/Component.sol +8 -8
  458. package/contracts/shared/ComponentService.sol +250 -262
  459. package/contracts/shared/ContractLib.sol +106 -75
  460. package/contracts/shared/EcdsaChecker.sol +5 -0
  461. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  462. package/contracts/shared/IComponent.sol +1 -1
  463. package/contracts/shared/IComponentService.sol +15 -15
  464. package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
  465. package/contracts/shared/INftOwnable.sol +2 -0
  466. package/contracts/shared/IRegisterable.sol +0 -1
  467. package/contracts/shared/InstanceLinkedComponent.sol +64 -26
  468. package/contracts/shared/NftOwnable.sol +3 -1
  469. package/contracts/shared/PolicyHolder.sol +3 -2
  470. package/contracts/shared/Service.sol +6 -4
  471. package/contracts/staking/IStaking.sol +263 -70
  472. package/contracts/staking/IStakingService.sol +40 -85
  473. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  474. package/contracts/staking/Staking.sol +469 -217
  475. package/contracts/staking/StakingLib.sol +38 -124
  476. package/contracts/staking/StakingManager.sol +4 -3
  477. package/contracts/staking/StakingReader.sol +62 -71
  478. package/contracts/staking/StakingService.sol +43 -186
  479. package/contracts/staking/StakingServiceManager.sol +1 -0
  480. package/contracts/staking/StakingStore.sol +1093 -331
  481. package/contracts/staking/TargetHandler.sol +132 -0
  482. package/contracts/staking/TargetManagerLib.sol +69 -46
  483. package/contracts/type/Amount.sol +4 -0
  484. package/contracts/type/Blocknumber.sol +17 -22
  485. package/contracts/type/ChainId.sol +101 -0
  486. package/contracts/type/Fee.sol +8 -8
  487. package/contracts/type/NftId.sol +3 -3
  488. package/contracts/type/ObjectType.sol +17 -33
  489. package/contracts/type/Referral.sol +6 -0
  490. package/contracts/type/RequestIdSet.sol +62 -0
  491. package/contracts/type/RoleId.sol +57 -59
  492. package/contracts/type/Seconds.sol +23 -0
  493. package/contracts/type/String.sol +42 -0
  494. package/contracts/type/Timestamp.sol +14 -3
  495. package/contracts/type/UFixed.sol +28 -10
  496. package/contracts/upgradeability/IVersionable.sol +3 -0
  497. package/contracts/upgradeability/ProxyManager.sol +26 -12
  498. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  499. package/contracts/upgradeability/Versionable.sol +6 -3
  500. package/package.json +2 -1
  501. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  502. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  503. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  504. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  505. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  506. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  507. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  508. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  509. package/contracts/shared/IKeyValueStore.sol +0 -54
  510. package/contracts/shared/KeyValueStore.sol +0 -131
  511. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -4,84 +4,65 @@ pragma solidity ^0.8.20;
4
4
  import {IAccess} from "./IAccess.sol";
5
5
  import {IAuthorization} from "./IAuthorization.sol";
6
6
 
7
- import {InitializableERC165} from "../shared/InitializableERC165.sol";
8
- import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
9
- import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
10
- import {SelectorLib} from "../type/Selector.sol";
7
+ import {AccessAdminLib} from "./AccessAdminLib.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
10
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
11
11
  import {Str, StrLib} from "../type/String.sol";
12
- import {TimestampLib} from "../type/Timestamp.sol";
13
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
+
14
13
 
15
14
  contract Authorization is
16
- InitializableERC165,
15
+ ServiceAuthorization,
17
16
  IAuthorization
18
17
  {
19
- uint256 public constant GIF_RELEASE = 3;
20
18
 
21
- string public constant ROLE_NAME_SUFFIX = "Role";
22
- string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
19
+ // MUST match with AccessAdminLib.COMPONENT_ROLE_MIN
20
+ uint64 public constant COMPONENT_ROLE_MIN = 110000;
21
+ uint64 public constant INSTANCE_ROLE_MIN = 100000;
23
22
 
24
23
  uint64 internal _nextGifContractRoleId;
25
- ObjectType[] internal _serviceDomains;
26
- mapping(ObjectType domain => Str target) internal _serviceTarget;
27
-
28
- string internal _mainTargetName = "Component";
29
- string internal _tokenHandlerName = "ComponentTH";
24
+ uint64 internal _nextInstanceContractRoleId;
30
25
 
31
- ObjectType internal _domain;
32
- Str internal _mainTarget;
26
+ string internal _tokenHandlerName = "ComponentTh";
33
27
  Str internal _tokenHandlerTarget;
34
- Str[] internal _targets;
35
-
36
- mapping(Str target => RoleId roleid) internal _targetRole;
37
- mapping(Str target => bool exists) internal _targetExists;
38
-
39
- RoleId[] internal _roles;
40
- mapping(RoleId role => RoleInfo info) internal _roleInfo;
41
-
42
- mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
43
- mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
44
28
 
45
29
 
46
30
  constructor(
47
31
  string memory mainTargetName,
48
- ObjectType targetDomain,
49
- bool isComponent,
32
+ ObjectType domain,
33
+ uint8 release,
34
+ string memory commitHash,
35
+ IAccess.TargetType targetType,
50
36
  bool includeTokenHandler
51
37
  )
38
+ ServiceAuthorization(mainTargetName, domain, release, commitHash)
52
39
  {
53
- // checks
54
- if (bytes(mainTargetName).length == 0) {
55
- revert ErrorAuthorizationMainTargetNameEmpty();
56
- }
57
-
58
- if (targetDomain == ObjectTypeLib.zero()) {
59
- revert ErrorAuthorizationTargetDomainZero();
60
- }
61
-
62
- // effects
63
- _initializeERC165();
64
-
65
- _domain = targetDomain;
66
- _mainTargetName = mainTargetName;
67
- _mainTarget = StrLib.toStr(mainTargetName);
68
- _nextGifContractRoleId = 10;
69
-
70
- if (isComponent) {
71
- if (targetDomain.eqz()) {
40
+ // IMPORTANT must match with AccessAdminLib.CORE_ROLE_MIN
41
+ _nextGifContractRoleId = 100;
42
+ _nextInstanceContractRoleId = INSTANCE_ROLE_MIN;
43
+
44
+ // setup main target
45
+ // special case: core targets
46
+ if (targetType == IAccess.TargetType.Core) {
47
+ _addGifTarget(_mainTargetName);
48
+ // special case instances
49
+ } else if (targetType == IAccess.TargetType.Instance) {
50
+ _addInstanceTarget(_mainTargetName);
51
+ // all other target types
52
+ } else {
53
+ if (domain.eqz()) {
72
54
  revert ErrorAuthorizationTargetDomainZero();
73
55
  }
74
56
 
75
- RoleId mainRoleId = RoleIdLib.toComponentRoleId(targetDomain, 0);
76
- string memory mainRolName = _toTargetRoleName(_mainTargetName);
57
+ RoleId mainRoleId = RoleIdLib.toRoleId(COMPONENT_ROLE_MIN);
58
+ string memory mainRoleName = _toTargetRoleName(_mainTargetName);
77
59
 
78
60
  _addTargetWithRole(
79
61
  _mainTargetName,
80
62
  mainRoleId,
81
- mainRolName);
82
- } else {
83
- _addGifContractTarget(_mainTargetName);
63
+ mainRoleName);
84
64
  }
65
+
85
66
  // setup use case specific parts
86
67
  _setupServiceTargets();
87
68
  _setupRoles(); // not including main target role
@@ -90,7 +71,7 @@ contract Authorization is
90
71
 
91
72
  // setup component token handler
92
73
  if (includeTokenHandler) {
93
- _tokenHandlerName = string(abi.encodePacked(mainTargetName, "TH"));
74
+ _tokenHandlerName = string(abi.encodePacked(mainTargetName, "Th"));
94
75
  _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
95
76
  _addTarget(_tokenHandlerName);
96
77
  _setupTokenHandlerAuthorizations();
@@ -99,47 +80,6 @@ contract Authorization is
99
80
  _registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
100
81
  }
101
82
 
102
- function getDomain() external view returns(ObjectType targetDomain) {
103
- return _domain;
104
- }
105
-
106
- function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
107
- return _serviceDomains;
108
- }
109
-
110
- function getComponentRole(ObjectType componentDomain) public view returns(RoleId roleId) {
111
- return RoleIdLib.toComponentRoleId(componentDomain, 0);
112
- }
113
-
114
- function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
115
- return RoleIdLib.roleForTypeAndVersion(
116
- serviceDomain,
117
- getRelease());
118
- }
119
-
120
- function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
121
- return _serviceTarget[serviceDomain];
122
- }
123
-
124
- function getRoles() external view returns(RoleId[] memory roles) {
125
- return _roles;
126
- }
127
-
128
- function roleExists(RoleId roleId) public view returns(bool exists) {
129
- return _roleInfo[roleId].roleType != RoleType.Undefined;
130
- }
131
-
132
- function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
133
- return _roleInfo[roleId];
134
- }
135
-
136
- function getMainTargetName() public virtual view returns (string memory name) {
137
- return _mainTargetName;
138
- }
139
-
140
- function getMainTarget() public view returns(Str) {
141
- return _mainTarget;
142
- }
143
83
 
144
84
  function getTokenHandlerName() public view returns(string memory) {
145
85
  return _tokenHandlerName;
@@ -149,7 +89,7 @@ contract Authorization is
149
89
  return _tokenHandlerTarget;
150
90
  }
151
91
 
152
- function getTarget(string memory targetName) public view returns(Str target) {
92
+ function getTarget(string memory targetName) public pure returns(Str target) {
153
93
  return StrLib.toStr(targetName);
154
94
  }
155
95
 
@@ -161,44 +101,45 @@ contract Authorization is
161
101
  return target == _mainTarget || _targetExists[target];
162
102
  }
163
103
 
164
- function getTargetRole(Str target) public view returns(RoleId roleId) {
165
- return _targetRole[target];
166
- }
167
-
168
- function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
169
- return _authorizedRoles[target];
170
- }
171
-
172
- function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
173
- return _authorizedFunctions[target][roleId];
174
- }
175
-
176
- function getRelease() public virtual pure returns(VersionPart release) {
177
- return VersionPartLib.toVersionPart(GIF_RELEASE);
178
- }
179
-
180
104
  /// @dev Sets up the relevant service targets for the component.
181
105
  /// Overwrite this function for use case specific authorizations.
106
+ // solhint-disable-next-line no-empty-blocks
182
107
  function _setupServiceTargets() internal virtual { }
183
108
 
184
109
  /// @dev Sets up the relevant (non-service) targets for the component.
185
110
  /// Overwrite this function for use case specific authorizations.
111
+ // solhint-disable-next-line no-empty-blocks
186
112
  function _setupTargets() internal virtual { }
187
113
 
188
114
  /// @dev Sets up the relevant roles for the component.
189
115
  /// Overwrite this function for use case specific authorizations.
116
+ // solhint-disable-next-line no-empty-blocks
190
117
  function _setupRoles() internal virtual {}
191
118
 
192
119
  /// @dev Sets up the relevant component's token handler authorizations.
193
120
  /// Overwrite this function for use case specific authorizations.
121
+ // solhint-disable-next-line no-empty-blocks
194
122
  function _setupTokenHandlerAuthorizations() internal virtual {}
195
123
 
196
124
  /// @dev Sets up the relevant target authorizations for the component.
197
125
  /// Overwrite this function for use case specific authorizations.
126
+ // solhint-disable-next-line no-empty-blocks
198
127
  function _setupTargetAuthorizations() internal virtual {}
199
128
 
200
- function _addGifContractTarget(string memory contractName) internal {
201
129
 
130
+ /// @dev Add a contract role for the provided role id and name.
131
+ function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
132
+ _addRole(
133
+ roleId,
134
+ AccessAdminLib.roleInfo(
135
+ adminRoleId,
136
+ TargetType.Custom,
137
+ maxMemberCount,
138
+ name));
139
+ }
140
+
141
+ /// @dev Add a gif target with its corresponding contract role
142
+ function _addGifTarget(string memory contractName) internal {
202
143
  RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
203
144
  string memory contractRoleName = string(
204
145
  abi.encodePacked(
@@ -211,155 +152,39 @@ contract Authorization is
211
152
  contractRoleName);
212
153
  }
213
154
 
214
- /// @dev Add the service target role for the specified service domain
215
- function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
216
- // add service domain
217
- _serviceDomains.push(serviceDomain);
218
-
219
- // get versioned target name
220
- string memory serviceTargetName = ObjectTypeLib.toVersionedName(
221
- ObjectTypeLib.toName(serviceDomain),
222
- "Service",
223
- getRelease());
224
-
225
- _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
226
-
227
- RoleId serviceRoleId = getServiceRole(serviceDomain);
228
- string memory serviceRoleName = ObjectTypeLib.toVersionedName(
229
- ObjectTypeLib.toName(serviceDomain),
230
- "ServiceRole",
231
- getRelease());
155
+ /// @dev Add an instance target with its corresponding contract role
156
+ function _addInstanceTarget(string memory contractName) internal {
157
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextInstanceContractRoleId++);
158
+ string memory contractRoleName = _toTargetRoleName(contractName);
232
159
 
233
160
  _addTargetWithRole(
234
- serviceTargetName,
235
- serviceRoleId,
236
- serviceRoleName);
237
- }
238
-
239
-
240
- /// @dev Use this method to to add an authorized role.
241
- function _addRole(RoleId roleId, RoleInfo memory info) internal {
242
- _roles.push(roleId);
243
- _roleInfo[roleId] = info;
244
- }
245
-
246
-
247
- /// @dev Add a contract role for the provided role id and name.
248
- function _addContractRole(RoleId roleId, string memory name) internal {
249
- _addRole(
250
- roleId,
251
- _toRoleInfo(
252
- ADMIN_ROLE(),
253
- RoleType.Contract,
254
- 1,
255
- name));
256
- }
257
-
258
-
259
- /// @dev Add the versioned service role for the specified service domain
260
- function _addServiceRole(ObjectType serviceDomain) internal {
261
- _addContractRole(
262
- getServiceRole(serviceDomain),
263
- ObjectTypeLib.toVersionedName(
264
- ObjectTypeLib.toName(serviceDomain),
265
- SERVICE_ROLE_NAME_SUFFIX,
266
- getRelease()));
267
- }
268
-
269
-
270
- /// @dev Add a contract role for the provided role id and name.
271
- function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
272
- _addRole(
273
- roleId,
274
- _toRoleInfo(
275
- adminRoleId,
276
- RoleType.Custom,
277
- maxMemberCount,
278
- name));
279
- }
280
-
281
-
282
- /// @dev Use this method to to add an authorized target together with its target role.
283
- function _addTargetWithRole(
284
- string memory targetName,
285
- RoleId roleId,
286
- string memory roleName
287
- )
288
- internal
289
- {
290
- // add target
291
- Str target = StrLib.toStr(targetName);
292
- _targets.push(target);
293
-
294
- _targetExists[target] = true;
295
-
296
- // link role to target if defined
297
- if (roleId != RoleIdLib.zero()) {
298
- // add role if new
299
- if (!roleExists(roleId)) {
300
- _addContractRole(roleId, roleName);
301
- }
302
-
303
- // link target to role
304
- _targetRole[target] = roleId;
305
- }
161
+ contractName,
162
+ contractRoleId,
163
+ contractRoleName);
306
164
  }
307
165
 
308
-
309
166
  /// @dev Use this method to to add an authorized target.
310
167
  function _addTarget(string memory name) internal {
311
168
  _addTargetWithRole(name, RoleIdLib.zero(), "");
312
169
  }
313
170
 
314
171
 
315
- /// @dev Use this method to authorize the specified role to access the target.
316
- function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
317
- internal
318
- returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
319
- {
320
- Str targetStr = StrLib.toStr(target);
321
- _authorizedRoles[targetStr].push(authorizedRoleId);
322
- return _authorizedFunctions[targetStr][authorizedRoleId];
323
- }
324
-
325
-
326
- /// @dev Use this method to authorize a specific function authorization
327
- function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
328
- functions.push(
329
- IAccess.FunctionInfo({
330
- selector: SelectorLib.toSelector(selector),
331
- name: StrLib.toStr(name),
332
- createdAt: TimestampLib.blockTimestamp()}));
333
- }
334
-
335
-
336
- /// @dev role id for targets registry, staking and instance
172
+ /// @dev Role id for targets registry, staking and instance
337
173
  function _toTargetRoleId(ObjectType targetDomain)
338
174
  internal
339
175
  pure
340
176
  returns (RoleId targetRoleId)
341
177
  {
342
- return RoleIdLib.roleForType(targetDomain);
178
+ return RoleIdLib.toRoleId(100 * targetDomain.toInt());
343
179
  }
344
180
 
345
181
 
182
+ /// @dev Returns the role name for the specified target name
346
183
  function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
347
184
  return string(
348
185
  abi.encodePacked(
349
186
  targetName,
350
187
  ROLE_NAME_SUFFIX));
351
188
  }
352
-
353
-
354
- /// @dev creates a role info object from the provided parameters
355
- function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
356
- return RoleInfo({
357
- name: StrLib.toStr(name),
358
- adminRoleId: adminRoleId,
359
- roleType: roleType,
360
- maxMemberCount: maxMemberCount,
361
- createdAt: TimestampLib.blockTimestamp(),
362
- pausedAt: TimestampLib.max()});
363
- }
364
189
  }
365
190
 
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Blocknumber} from "../type/Blocknumber.sol";
4
5
  import {RoleId} from "../type/RoleId.sol";
5
6
  import {Selector} from "../type/Selector.sol";
6
7
  import {Str} from "../type/String.sol";
@@ -8,40 +9,56 @@ import {Timestamp} from "../type/Timestamp.sol";
8
9
 
9
10
  interface IAccess {
10
11
 
11
- enum RoleType {
12
- Undefined, // no role must have this type
13
- Contract, // roles assigned to contracts, cannot be revoked
14
- Gif, // framework roles that may be freely assigned and revoked
15
- Custom // use case specific rules for components
12
+ enum TargetType {
13
+ Undefined, // no target must have this type
14
+ Core, // GIF core contracts
15
+ GenericService, // release independent service contracts
16
+ Service, // service contracts
17
+ Instance, // instance contracts
18
+ Component, // instance contracts
19
+ Contract, // normal contracts
20
+ Custom // use case specific rules for contracts or normal accounts
16
21
  }
17
22
 
18
23
  struct RoleInfo {
19
- RoleId adminRoleId;
20
- RoleType roleType;
21
- uint32 maxMemberCount;
22
- Str name;
23
- Timestamp createdAt;
24
- Timestamp pausedAt;
24
+ // slot 0
25
+ RoleId adminRoleId; // 64
26
+ TargetType targetType; // ?
27
+ uint32 maxMemberCount; // 32
28
+ Timestamp createdAt; // 40
29
+ Timestamp pausedAt; // 40
30
+ Blocknumber lastUpdateIn; // 40
31
+ // slot 1
32
+ Str name; // 256
25
33
  }
26
34
 
35
+
36
+ // TODO recalc slot allocation
27
37
  struct TargetInfo {
28
38
  Str name;
29
- bool isCustom;
39
+ TargetType targetType;
40
+ RoleId roleId;
30
41
  Timestamp createdAt;
42
+ Blocknumber lastUpdateIn;
31
43
  }
32
44
 
33
45
  struct FunctionInfo {
46
+ // slot 0
34
47
  Str name; // function name
48
+ // slot 1
35
49
  Selector selector; // function selector
36
50
  Timestamp createdAt;
51
+ Blocknumber lastUpdateIn;
37
52
  }
38
53
 
39
54
  struct RoleNameInfo {
55
+ // slot 0
40
56
  RoleId roleId;
41
57
  bool exists;
42
58
  }
43
59
 
44
60
  struct TargeNameInfo {
61
+ // slot 0
45
62
  address target;
46
63
  bool exists;
47
64
  }
@@ -8,13 +8,14 @@ import {IAuthorization} from "./IAuthorization.sol";
8
8
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
9
9
  import {IRelease} from "../registry/IRelease.sol";
10
10
 
11
+ import {Blocknumber} from "../type/Blocknumber.sol";
11
12
  import {NftId} from "../type/NftId.sol";
12
13
  import {ObjectType} from "../type/ObjectType.sol";
13
14
  import {RoleId} from "../type/RoleId.sol";
14
- import {Selector} from "../type/Selector.sol";
15
15
  import {Str} from "../type/String.sol";
16
16
  import {VersionPart} from "../type/Version.sol";
17
17
 
18
+ /// @dev Base interface for registry admin, release admin, and instance admin
18
19
  interface IAccessAdmin is
19
20
  IAccessManaged,
20
21
  IAccess,
@@ -23,12 +24,14 @@ interface IAccessAdmin is
23
24
  {
24
25
 
25
26
  // roles, targets and functions
26
- event LogAccessAdminRoleCreated(string admin, RoleId roleId, RoleType roleType, RoleId roleAdminId, string name);
27
- event LogAccessAdminTargetCreated(string admin, address target, string name);
27
+ event LogAccessAdminRoleCreated(string admin, RoleId roleId, TargetType targetType, RoleId roleAdminId, string name);
28
+ event LogAccessAdminTargetCreated(string admin, string name, bool managed, address target, RoleId roleId);
28
29
 
30
+ event LogAccessAdminRoleActivatedSet(string admin, RoleId roleId, bool active, Blocknumber lastUpdateIn);
29
31
  event LogAccessAdminRoleGranted(string admin, address account, string roleName);
30
32
  event LogAccessAdminRoleRevoked(string admin, address account, string roleName);
31
- event LogAccessAdminFunctionGranted(string admin, address target, string func);
33
+ event LogAccessAdminTargetLockedSet(string admin, address target, bool locked, Blocknumber lastUpdateIn);
34
+ event LogAccessAdminFunctionGranted(string admin, address target, string func, Blocknumber lastUpdateIn);
32
35
 
33
36
  // only deployer modifier
34
37
  error ErrorAccessAdminNotDeployer();
@@ -39,6 +42,11 @@ interface IAccessAdmin is
39
42
  // only role owner modifier
40
43
  error ErrorAccessAdminNotRoleOwner(RoleId roleId, address account);
41
44
 
45
+ // role management
46
+ error ErrorAccessAdminInvalidUseOfAdminRole();
47
+ error ErrorAccessAdminInvalidUseOfPublicRole();
48
+ error ErrorAccessAdminRoleNotCustom(RoleId roleId);
49
+
42
50
  // initialization
43
51
  error ErrorAccessAdminNotRegistry(address registry);
44
52
  error ErrorAccessAdminAuthorityNotContract(address authority);
@@ -46,6 +54,8 @@ interface IAccessAdmin is
46
54
  error ErrorAccessAdminAccessManagerEmptyName();
47
55
 
48
56
  // check target
57
+ error ErrorAccessAdminInvalidTargetType(address target, TargetType targetType);
58
+ error ErrorAccessAdminInvalidServiceType(address target, TargetType serviceTargetType);
49
59
  error ErrorAccessAdminTargetNotCreated(address target);
50
60
  error ErrorAccessAdminTargetNotRegistered(address target);
51
61
  error ErrorAccessAdminTargetTypeMismatch(address target, ObjectType expectedType, ObjectType actualType);
@@ -53,6 +63,7 @@ interface IAccessAdmin is
53
63
  // check authorization
54
64
  error ErrorAccessAdminAlreadyInitialized(address authorization);
55
65
  error ErrorAccessAdminNotAuthorization(address authorization);
66
+ error ErrorAccessAdminNotServiceAuthorization(address serviceAuthorization);
56
67
  error ErrorAccessAdminDomainMismatch(address authorization, ObjectType expectedDomain, ObjectType actualDomain);
57
68
  error ErrorAccessAdminReleaseMismatch(address authorization, VersionPart expectedRelease, VersionPart actualRelease);
58
69
 
@@ -88,71 +99,34 @@ interface IAccessAdmin is
88
99
  error ErrorAccessAdminTargetAlreadyLocked(address target, bool isLocked);
89
100
 
90
101
  // authorize target functions
102
+ error ErrorAccessAdminNotComponentOrCustomTarget(address target);
91
103
  error ErrorAccessAdminAuthorizeForAdminRoleInvalid(address target);
92
104
 
105
+ // toFunction
106
+ error ErrorAccessAdminSelectorZero();
107
+ error ErrorAccessAdminFunctionNameEmpty();
108
+
93
109
  // check target
94
110
  error ErrorAccessAdminTargetUnknown(address target);
95
111
 
96
- /// @dev Set the disabled status of the speicified role.
97
- /// Role disabling only prevents the role from being granted to new accounts.
98
- /// Existing role members may still execute functions that are authorized for that role.
99
- /// Permissioned: the caller must have the manager role (getManagerRole).
100
- // TODO move to instance admin
101
- // function setRoleDisabled(RoleId roleId, bool disabled) external;
102
-
103
- /// @dev Grant the specified account the provided role.
104
- /// Permissioned: the caller must have the roles admin role.
105
- // TODO move to instance admin
106
- // function grantRole(address account, RoleId roleId) external;
107
-
108
- /// @dev Revoke the provided role from the specified account.
109
- /// Permissioned: the caller must have the roles admin role.
110
- // TODO move to instance admin
111
- // function revokeRole(address account, RoleId roleId) external;
112
-
113
- /// @dev Removes the provided role from the caller
114
- // TODO move to instance admin
115
- // function renounceRole(RoleId roleId) external;
116
-
117
- /// @dev Set the locked status of the speicified contract.
118
- /// IMPORTANT: using this function the AccessManager might itself be put into locked state from which it cannot be unlocked again.
119
- /// Overwrite this function if a different use case specific behaviour is required.
120
- /// Alternatively, add specific function to just unlock this contract without a restricted() modifier.
121
- /// Permissioned: the caller must have the manager role (getManagerRole).
122
- // TODO move to instance admin
123
- // function setTargetLocked(address target, bool locked) external;
124
-
125
- /// @dev Specifies which functions of the target can be accessed by the provided role.
126
- /// Previously existing authorizations will be overwritten.
127
- /// Authorizing the admin role is not allowed, use function unauthorizedFunctions for this.
128
- /// Permissioned: the caller must have the manager role (getManagerRole).
129
- // TODO move to instance admin
130
- // function authorizeFunctions(address target, RoleId roleId, FunctionInfo[] memory functions) external;
131
-
132
- /// @dev Specifies for which functionss to remove any previous authorization
133
- /// Permissioned: the caller must have the manager role (getManagerRole).
134
- // TODO move to instance admin
135
- // function unauthorizeFunctions(address target, FunctionInfo[] memory functions) external;
136
-
137
112
  //--- view functions ----------------------------------------------------//
138
113
 
139
114
  function getAuthorization() external view returns (IAuthorization authorization);
140
115
  function getLinkedNftId() external view returns (NftId linkedNftId);
141
- function getLinkedOwner() external view returns (address linkedOwner);
142
116
 
143
117
  function isLocked() external view returns (bool locked);
144
118
 
145
119
  function roles() external view returns (uint256 numberOfRoles);
146
120
  function getRoleId(uint256 idx) external view returns (RoleId roleId);
147
- function getAdminRole() external view returns (RoleId roleId);
148
- function getPublicRole() external view returns (RoleId roleId);
149
121
 
150
122
  function roleExists(RoleId roleId) external view returns (bool exists);
151
- function getRoleForName(string memory name) external view returns (RoleId roleId);
123
+ function getRoleForName(string memory name) external view returns (RoleId roleId, bool exists);
152
124
  function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
125
+ function isRoleActive(RoleId roleId) external view returns (bool isActive);
126
+ function isRoleCustom(RoleId roleId) external view returns (bool isCustom);
153
127
 
154
- function hasRole(address account, RoleId roleId) external view returns (bool);
155
- function hasAdminRole(address account, RoleId roleId) external view returns (bool);
128
+ function isRoleMember(RoleId roleId, address account) external view returns (bool);
129
+ function isRoleAdmin(RoleId roleId, address account) external view returns (bool);
156
130
  function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers);
157
131
  function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account);
158
132
 
@@ -165,6 +139,4 @@ interface IAccessAdmin is
165
139
 
166
140
  function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions);
167
141
  function getAuthorizedFunction(address target, uint256 idx) external view returns (FunctionInfo memory func, RoleId roleId);
168
-
169
- function deployer() external view returns (address);
170
142
  }