@etherisc/gif-next 0.0.2-8ce6c0b-352 → 0.0.2-8d681eb-812

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