@etherisc/gif-next 0.0.2-da2c7dd-538 → 0.0.2-da87b00-860

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 (469) hide show
  1. package/README.md +57 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +573 -288
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +295 -47
  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 +452 -210
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -142
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +448 -148
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -77
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +296 -20
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -100
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -124
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +126 -166
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -180
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +274 -58
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +427 -28
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +335 -12
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -62
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +822 -402
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +299 -58
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +619 -402
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +367 -64
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +448 -374
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -35
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -21
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -21
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -69
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -31
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -31
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -48
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -42
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +40 -42
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +704 -472
  190. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  191. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +710 -407
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +184 -128
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +19 -21
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -71
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  218. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -21
  220. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
  222. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
  224. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
  226. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  227. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  229. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  232. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -21
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  241. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  252. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1450 -140
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
  264. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  265. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +1624 -272
  268. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +135 -68
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1600 -818
  280. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
  284. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  289. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  340. package/contracts/accounting/AccountingService.sol +15 -3
  341. package/contracts/accounting/IAccountingService.sol +4 -2
  342. package/contracts/authorization/AccessAdmin.sol +389 -298
  343. package/contracts/authorization/AccessAdminLib.sol +396 -0
  344. package/contracts/authorization/AccessManagerCloneable.sol +40 -31
  345. package/contracts/authorization/Authorization.sol +60 -228
  346. package/contracts/authorization/IAccess.sol +25 -7
  347. package/contracts/authorization/IAccessAdmin.sol +81 -80
  348. package/contracts/authorization/IAuthorization.sol +3 -51
  349. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  350. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  351. package/contracts/distribution/BasicDistribution.sol +6 -6
  352. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  353. package/contracts/distribution/Distribution.sol +10 -52
  354. package/contracts/distribution/DistributionService.sol +154 -64
  355. package/contracts/distribution/IDistributionComponent.sol +3 -10
  356. package/contracts/distribution/IDistributionService.sol +24 -10
  357. package/contracts/examples/fire/FirePool.sol +0 -4
  358. package/contracts/examples/fire/FireProduct.sol +6 -10
  359. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  360. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  361. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  362. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
  363. package/contracts/instance/IInstance.sol +87 -12
  364. package/contracts/instance/IInstanceService.sol +52 -7
  365. package/contracts/instance/Instance.sol +148 -48
  366. package/contracts/instance/InstanceAdmin.sol +227 -281
  367. package/contracts/instance/InstanceAuthorizationV3.sol +79 -26
  368. package/contracts/instance/InstanceReader.sol +375 -380
  369. package/contracts/instance/InstanceService.sol +230 -134
  370. package/contracts/instance/RiskSet.sol +10 -2
  371. package/contracts/instance/base/BalanceStore.sol +4 -6
  372. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  373. package/contracts/instance/module/IBundle.sol +6 -5
  374. package/contracts/instance/module/IComponents.sol +16 -5
  375. package/contracts/instance/module/IDistribution.sol +19 -7
  376. package/contracts/instance/module/IPolicy.sol +28 -8
  377. package/contracts/instance/module/IRisk.sol +2 -0
  378. package/contracts/oracle/BasicOracle.sol +2 -4
  379. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  380. package/contracts/oracle/IOracle.sol +9 -4
  381. package/contracts/oracle/Oracle.sol +2 -4
  382. package/contracts/oracle/OracleService.sol +8 -8
  383. package/contracts/pool/BasicPool.sol +3 -16
  384. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  385. package/contracts/pool/BundleService.sol +34 -43
  386. package/contracts/pool/IBundleService.sol +14 -13
  387. package/contracts/pool/IPoolService.sol +7 -2
  388. package/contracts/pool/Pool.sol +4 -16
  389. package/contracts/pool/PoolLib.sol +127 -2
  390. package/contracts/pool/PoolService.sol +41 -184
  391. package/contracts/product/ApplicationService.sol +83 -15
  392. package/contracts/product/BasicProduct.sol +1 -3
  393. package/contracts/product/BasicProductAuthorization.sol +11 -4
  394. package/contracts/product/ClaimService.sol +56 -58
  395. package/contracts/product/IApplicationService.sol +24 -2
  396. package/contracts/product/IClaimService.sol +5 -4
  397. package/contracts/product/IPolicyService.sol +9 -2
  398. package/contracts/product/IPricingService.sol +1 -0
  399. package/contracts/product/IRiskService.sol +21 -3
  400. package/contracts/product/PolicyService.sol +31 -68
  401. package/contracts/product/PolicyServiceLib.sol +79 -5
  402. package/contracts/product/PricingService.sol +33 -31
  403. package/contracts/product/Product.sol +38 -14
  404. package/contracts/product/RiskService.sol +55 -9
  405. package/contracts/registry/IRegistry.sol +15 -9
  406. package/contracts/registry/IRelease.sol +6 -3
  407. package/contracts/registry/Registry.sol +15 -9
  408. package/contracts/registry/RegistryAdmin.sol +100 -263
  409. package/contracts/registry/RegistryAuthorization.sol +336 -0
  410. package/contracts/registry/RegistryService.sol +1 -1
  411. package/contracts/registry/ReleaseAdmin.sol +62 -112
  412. package/contracts/registry/ReleaseRegistry.sol +57 -43
  413. package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
  414. package/contracts/registry/TokenRegistry.sol +56 -52
  415. package/contracts/shared/Component.sol +18 -31
  416. package/contracts/shared/ComponentService.sol +239 -244
  417. package/contracts/shared/ContractLib.sol +134 -75
  418. package/contracts/shared/IComponent.sol +1 -4
  419. package/contracts/shared/IComponentService.sol +21 -22
  420. package/contracts/shared/IKeyValueStore.sol +1 -1
  421. package/contracts/shared/INftOwnable.sol +2 -0
  422. package/contracts/shared/IRegisterable.sol +0 -1
  423. package/contracts/shared/InitializableERC165.sol +9 -1
  424. package/contracts/shared/InstanceLinkedComponent.sol +4 -7
  425. package/contracts/shared/KeyValueStore.sol +3 -3
  426. package/contracts/shared/NftOwnable.sol +4 -2
  427. package/contracts/shared/PolicyHolder.sol +3 -2
  428. package/contracts/shared/Registerable.sol +1 -4
  429. package/contracts/shared/Service.sol +6 -4
  430. package/contracts/shared/TokenHandler.sol +5 -4
  431. package/contracts/staking/IStaking.sol +266 -64
  432. package/contracts/staking/IStakingService.sol +44 -82
  433. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  434. package/contracts/staking/Staking.sol +473 -202
  435. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  436. package/contracts/staking/StakingManager.sol +4 -3
  437. package/contracts/staking/StakingReader.sol +58 -77
  438. package/contracts/staking/StakingService.sol +49 -158
  439. package/contracts/staking/StakingServiceManager.sol +1 -0
  440. package/contracts/staking/StakingStore.sol +1089 -330
  441. package/contracts/staking/TargetHandler.sol +132 -0
  442. package/contracts/staking/TargetManagerLib.sol +69 -46
  443. package/contracts/type/Amount.sol +4 -0
  444. package/contracts/type/Blocknumber.sol +15 -15
  445. package/contracts/type/ChainId.sol +101 -0
  446. package/contracts/type/Fee.sol +8 -8
  447. package/contracts/type/NftId.sol +3 -3
  448. package/contracts/type/ObjectType.sol +21 -17
  449. package/contracts/type/RoleId.sol +57 -59
  450. package/contracts/type/Seconds.sol +19 -0
  451. package/contracts/type/String.sol +12 -0
  452. package/contracts/type/Timestamp.sol +4 -2
  453. package/contracts/type/UFixed.sol +28 -10
  454. package/contracts/type/Version.sol +39 -0
  455. package/contracts/upgradeability/IVersionable.sol +3 -0
  456. package/contracts/upgradeability/ProxyManager.sol +25 -11
  457. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  458. package/contracts/upgradeability/Versionable.sol +6 -3
  459. package/package.json +2 -2
  460. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  461. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  462. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  463. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  464. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  465. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  466. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  467. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  468. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  469. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -8,170 +8,218 @@ import {IRegistry} from "../registry/IRegistry.sol";
8
8
  import {IInstance} from "./IInstance.sol";
9
9
 
10
10
  import {AccessAdmin} from "../authorization/AccessAdmin.sol";
11
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
12
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
- import {NftId} from "../type/NftId.sol";
13
- import {ObjectType} from "../type/ObjectType.sol";
14
- import {RoleId, RoleIdLib} from "../type/RoleId.sol";
15
- import {Str, StrLib} from "../type/String.sol";
16
- import {TokenHandler} from "../shared/TokenHandler.sol";
17
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
13
+ import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
14
+ import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
15
+ import {Str} from "../type/String.sol";
16
+ import {VersionPart} from "../type/Version.sol";
18
17
 
19
18
 
20
19
  contract InstanceAdmin is
21
20
  AccessAdmin
22
21
  {
23
22
  string public constant INSTANCE_TARGET_NAME = "Instance";
24
- string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
23
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
24
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
26
25
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
- string public constant RISK_SET_TAGET_NAME = "RiskSet";
28
-
29
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
26
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
30
27
 
31
- error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
32
- error ErrorInstanceAdminInstanceAlreadyLocked();
33
- error ErrorInstanceAdminNotRegistered(address target);
28
+ // onlyInstanceService
29
+ error ErrorInstanceAdminNotInstanceService(address caller);
34
30
 
35
- error ErrorInstanceAdminAlreadyAuthorized(address target);
36
- error ErrorInstanceAdminNotComponentRole(RoleId roleId);
37
- error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
38
- error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
39
-
40
- error ErrorInstanceAdminReleaseMismatch();
41
- error ErrorInstanceAdminExpectedTargetMissing(string targetName);
31
+ // authorizeFunctions
32
+ error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
42
33
 
43
34
  IInstance internal _instance;
44
35
  IRegistry internal _registry;
45
- uint64 internal _customIdNext;
36
+ VersionPart internal _release;
37
+
38
+ uint64 internal _customRoleIdNext;
46
39
 
47
40
  mapping(address target => RoleId roleId) internal _targetRoleId;
48
41
  uint64 internal _components;
49
42
 
50
- IAuthorization internal _instanceAuthorization;
51
43
 
52
-
53
- modifier onlyInstanceOwner() {
54
- if(msg.sender != _registry.ownerOf(address(_instance))) {
55
- revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
44
+ modifier onlyInstanceService() {
45
+ if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
46
+ revert ErrorInstanceAdminNotInstanceService(msg.sender);
56
47
  }
57
48
  _;
58
49
  }
59
50
 
60
51
  /// @dev Only used for master instance admin.
61
- /// Contracts created via constructor come with disabled initializers.
62
- constructor(
63
- address instanceAuthorization
64
- ) {
65
- initialize(new AccessManagerCloneable());
66
-
67
- _instanceAuthorization = IAuthorization(instanceAuthorization);
68
-
69
- _disableInitializers();
52
+ constructor(address accessManager) {
53
+ initialize(
54
+ accessManager,
55
+ "MasterInstanceAdmin");
70
56
  }
71
57
 
72
58
 
73
- function initialize(
74
- AccessManagerCloneable clonedAccessManager,
75
- IRegistry registry,
76
- VersionPart release
77
- )
78
- external
79
- initializer()
80
- {
81
- __AccessAdmin_init(clonedAccessManager);
82
-
83
- clonedAccessManager.completeSetup(
84
- address(registry),
85
- release);
86
-
87
- _registry = registry;
88
- }
89
-
90
59
  /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
91
60
  /// Important: Initialization of instance admin is only complete after calling this function.
92
61
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
93
62
  function completeSetup(
94
- address instance,
95
- address authorization
63
+ address registry,
64
+ address authorization,
65
+ VersionPart release,
66
+ address instance
96
67
  )
97
68
  external
98
- reinitializer(uint64(getRelease().toInt()))
69
+ reinitializer(uint64(release.toInt()))
99
70
  onlyDeployer()
100
71
  {
101
- _components = 0;
102
- _customIdNext = CUSTOM_ROLE_ID_MIN;
72
+ // checks
73
+ AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
74
+
75
+ AccessManagerCloneable(
76
+ authority()).completeSetup(
77
+ registry,
78
+ release);
79
+
80
+ _checkAuthorization(authorization, INSTANCE(), release, false, true);
81
+
82
+ // effects
83
+ _registry = IRegistry(registry);
84
+ _release = release;
85
+
103
86
  _instance = IInstance(instance);
104
- _instanceAuthorization = IAuthorization(authorization);
87
+ _authorization = IAuthorization(authorization);
88
+ _components = 0;
89
+ _customRoleIdNext = 0;
105
90
 
106
- _checkTargetIsReadyForAuthorization(instance);
91
+ // link nft ownability to instance
92
+ _linkToNftOwnable(instance);
107
93
 
108
- // check matching releases
109
- if (_instanceAuthorization.getRelease() != getRelease()) {
110
- revert ErrorInstanceAdminReleaseMismatch();
111
- }
94
+ // setup instance targets
95
+ _createInstanceTargets(_authorization.getMainTargetName());
96
+
97
+ // setup non-contract roles
98
+ _setupServiceRoles(_authorization);
99
+ _createRoles(_authorization);
100
+
101
+ // authorize functions of instance contracts
102
+ _createTargetAuthorizations(_authorization);
103
+ }
104
+
105
+
106
+ /// @dev grants the service roles to the service addresses based on the authorization specification.
107
+ /// Service addresses used for the granting are determined by the registry and the release of this instance.
108
+ function _setupServiceRoles(IAuthorization authorization)
109
+ internal
110
+ {
111
+ ObjectType[] memory serviceDomains = authorization.getServiceDomains();
112
+
113
+ for(uint256 i = 0; i < serviceDomains.length; i++) {
114
+ ObjectType serviceDomain = serviceDomains[i];
115
+ RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
116
+ string memory serviceRoleName = authorization.getRoleName(serviceRoleId);
117
+
118
+ // create service role if missing
119
+ if (!roleExists(serviceRoleId)) {
120
+ _createRole(
121
+ serviceRoleId,
122
+ AccessAdminLib.toRole(
123
+ ADMIN_ROLE(),
124
+ IAccess.RoleType.Contract,
125
+ 1,
126
+ serviceRoleName));
127
+ }
112
128
 
113
- // create instance role and target
114
- _setupInstance(instance);
129
+ // grant service role to service
130
+ address service = _registry.getServiceAddress(serviceDomain, _release);
131
+ _grantRoleToAccount(
132
+ serviceRoleId,
133
+ service);
134
+ }
135
+ }
115
136
 
116
- // add instance authorization
117
- _createRoles(_instanceAuthorization);
118
137
 
119
- _setupInstanceHelperTargetsWithRoles();
120
- _createTargetAuthorizations(_instanceAuthorization);
138
+ function _createInstanceTargets(string memory instanceTargetName)
139
+ internal
140
+ {
141
+ _createManagedTarget(address(_instance), instanceTargetName, TargetType.Instance);
142
+ _createManagedTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, TargetType.Instance);
143
+ _createManagedTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, TargetType.Instance);
144
+ _createManagedTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, TargetType.Instance);
145
+ _createManagedTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, TargetType.Instance);
121
146
  }
122
147
 
123
148
 
124
149
  /// @dev Initializes the authorization for the specified component.
125
150
  /// Important: The component MUST be registered.
126
151
  function initializeComponentAuthorization(
127
- IInstanceLinkedComponent component
152
+ address componentAddress,
153
+ ObjectType expectedType
128
154
  )
129
155
  external
130
156
  restricted()
131
157
  {
132
158
  // checks
133
- _checkTargetIsReadyForAuthorization(address(component));
134
-
135
- // setup target and role for component (including token handler)
136
- _setupComponentAndTokenHandler(component);
159
+ AccessAdminLib.checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
137
160
 
138
- // create other roles
161
+ IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
139
162
  IAuthorization authorization = component.getAuthorization();
140
- _createRoles(authorization);
163
+ _checkAuthorization(address(authorization), expectedType, getRelease(), false, false);
164
+
165
+ // effects
166
+ _createRoles(authorization);
167
+ _createManagedTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component);
141
168
  _createTargetAuthorizations(authorization);
169
+
170
+ // increase component count
171
+ _components++;
172
+ }
173
+
174
+ function getRelease()
175
+ public
176
+ view
177
+ override
178
+ returns (VersionPart release)
179
+ {
180
+ return _release;
142
181
  }
143
182
 
144
- // create instance role and target
145
- function _setupInstance(address instance) internal {
146
- // create instance role
147
- RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
148
- _instanceAuthorization.getMainTarget());
149
183
 
184
+ /// @dev Creates a custom role.
185
+ function createRole(
186
+ string memory name,
187
+ RoleId adminRoleId,
188
+ uint32 maxMemberCount
189
+ )
190
+ external
191
+ restricted()
192
+ returns (RoleId roleId)
193
+ {
194
+ // check role does not yet exist
195
+ if (roleExists(name)) {
196
+ revert ErrorAccessAdminRoleAlreadyCreated(
197
+ getRoleForName(name),
198
+ name);
199
+ }
200
+
201
+ // create roleId
202
+ roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
203
+
204
+ // create role
150
205
  _createRole(
151
- instanceRoleId,
152
- _instanceAuthorization.getRoleInfo(instanceRoleId));
153
-
154
- // create instance target
155
- _createTarget(
156
- instance,
157
- _instanceAuthorization.getMainTargetName(),
158
- true, // checkAuthority
159
- false); // custom
160
-
161
- // assign instance role to instance
162
- _grantRoleToAccount(
163
- instanceRoleId,
164
- instance);
206
+ roleId,
207
+ AccessAdminLib.toRole(
208
+ adminRoleId,
209
+ IAccess.RoleType.Custom,
210
+ maxMemberCount,
211
+ name));
165
212
  }
166
213
 
167
- /// @dev Creates a custom role
168
- // TODO implement
169
- // function createRole()
170
- // external
171
- // restricted()
172
- // {
173
214
 
174
- // }
215
+ /// @dev Activtes/pauses the specified role.
216
+ function setRoleActive(RoleId roleId, bool active)
217
+ external
218
+ restricted()
219
+ {
220
+ _setRoleActive(roleId, active);
221
+ }
222
+
175
223
 
176
224
  /// @dev Grants the provided role to the specified account
177
225
  function grantRole(
@@ -184,23 +232,86 @@ contract InstanceAdmin is
184
232
  }
185
233
 
186
234
 
235
+ /// @dev Revokes the provided role from the specified account
236
+ function revokeRole(
237
+ RoleId roleId,
238
+ address account)
239
+ external
240
+ restricted()
241
+ {
242
+ _revokeRoleFromAccount(roleId, account);
243
+ }
244
+
245
+
246
+ /// @dev Create a new custom target.
247
+ /// The target needs to be an access managed contract.
248
+ function createTarget(
249
+ address target,
250
+ string memory name
251
+ )
252
+ external
253
+ restricted()
254
+ returns (RoleId contractRoleId)
255
+ {
256
+ return _createManagedTarget(
257
+ target,
258
+ name,
259
+ TargetType.Custom);
260
+ }
261
+
262
+
263
+ /// @dev Add function authorizations for the specified component or custom target.
264
+ function authorizeFunctions(
265
+ address target,
266
+ RoleId roleId,
267
+ IAccess.FunctionInfo[] memory functions
268
+ )
269
+ external
270
+ restricted()
271
+ {
272
+ _checkComponentOrCustomTarget(target);
273
+ _authorizeTargetFunctions(target, roleId, functions, true);
274
+ }
275
+
276
+
277
+ /// @dev Removes function authorizations for the specified component or custom target.
278
+ function unauthorizeFunctions(
279
+ address target,
280
+ IAccess.FunctionInfo[] memory functions
281
+ )
282
+ external
283
+ restricted()
284
+ {
285
+ _checkComponentOrCustomTarget(target);
286
+ _authorizeTargetFunctions(target, ADMIN_ROLE(), functions, false);
287
+ }
288
+
289
+
290
+ /// @dev locks the instance and all its releated targets including component and custom targets.
187
291
  function setInstanceLocked(bool locked)
188
292
  external
189
- onlyInstanceOwner()
293
+ // not restricted(): need to operate on locked instances to unlock instance
294
+ onlyInstanceService()
190
295
  {
191
296
  AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
192
-
193
- if(accessManager.isLocked() == locked) {
194
- revert ErrorInstanceAdminInstanceAlreadyLocked();
195
- }
196
297
  accessManager.setLocked(locked);
197
298
  }
198
299
 
300
+
199
301
  function setTargetLocked(address target, bool locked)
302
+ external
303
+ // not restricted(): might need to operate on targets while instance is locked
304
+ onlyInstanceService()
305
+ {
306
+ _setTargetLocked(target, locked);
307
+ }
308
+
309
+
310
+ function setComponentLocked(address target, bool locked)
200
311
  external
201
312
  restricted()
202
313
  {
203
- _setTargetClosed(target, locked);
314
+ _setTargetLocked(target, locked);
204
315
  }
205
316
 
206
317
  /// @dev Returns the number of components that have been registered with this instance.
@@ -218,114 +329,11 @@ contract InstanceAdmin is
218
329
  view
219
330
  returns (IAuthorization instanceAuthorizaion)
220
331
  {
221
- return _instanceAuthorization;
332
+ return _authorization;
222
333
  }
223
334
 
224
335
  // ------------------- Internal functions ------------------- //
225
336
 
226
- function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
227
- internal
228
- {
229
-
230
- IAuthorization authorization = component.getAuthorization();
231
- string memory targetName = authorization.getMainTargetName();
232
-
233
- // create component role and target
234
- RoleId componentRoleId = _createComponentRoleId(component, authorization);
235
-
236
- // create component's target
237
- _createTarget(
238
- address(component),
239
- targetName,
240
- true, // checkAuthority
241
- false); // custom
242
-
243
- // create component's token handler target
244
- NftId componentNftId = _registry.getNftIdForAddress(address(component));
245
- address tokenHandler = address(
246
- _instance.getInstanceReader().getComponentInfo(
247
- componentNftId).tokenHandler);
248
-
249
- _createTarget(
250
- tokenHandler,
251
- authorization.getTokenHandlerName(),
252
- true,
253
- false);
254
-
255
- // assign component role to component
256
- _grantRoleToAccount(
257
- componentRoleId,
258
- address(component));
259
-
260
- // token handler does not require its own role
261
- // token handler is not calling other components
262
- }
263
-
264
-
265
- function _createComponentRoleId(
266
- IInstanceLinkedComponent component,
267
- IAuthorization authorization
268
- )
269
- internal
270
- returns (RoleId componentRoleId)
271
- {
272
- // checks
273
- // check component is not yet authorized
274
- if (_targetRoleId[address(component)].gtz()) {
275
- revert ErrorInstanceAdminAlreadyAuthorized(address(component));
276
- }
277
-
278
- // check generic component role
279
- RoleId genericComponentRoleId = authorization.getTargetRole(
280
- authorization.getMainTarget());
281
-
282
- if (!genericComponentRoleId.isComponentRole()) {
283
- revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
284
- }
285
-
286
- // check component role does not exist
287
- componentRoleId = toComponentRole(
288
- genericComponentRoleId,
289
- _components);
290
-
291
- if (roleExists(componentRoleId)) {
292
- revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
293
- }
294
-
295
- // check role info
296
- IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
297
- genericComponentRoleId);
298
-
299
- if (roleInfo.roleType != IAccess.RoleType.Contract) {
300
- revert ErrorInstanceAdminRoleTypeNotContract(
301
- componentRoleId,
302
- roleInfo.roleType);
303
- }
304
-
305
- // effects
306
- _targetRoleId[address(component)] = componentRoleId;
307
- _components++;
308
-
309
- _createRole(
310
- componentRoleId,
311
- roleInfo);
312
- }
313
-
314
-
315
- function _checkTargetIsReadyForAuthorization(address target)
316
- internal
317
- view
318
- {
319
- if (!_registry.isRegistered(target)) {
320
- revert ErrorInstanceAdminNotRegistered(target);
321
- }
322
-
323
- if (targetExists(target)) {
324
- revert ErrorInstanceAdminAlreadyAuthorized(target);
325
- }
326
- }
327
-
328
-
329
337
  function _createRoles(IAuthorization authorization)
330
338
  internal
331
339
  {
@@ -333,12 +341,8 @@ contract InstanceAdmin is
333
341
  RoleId mainTargetRoleId = authorization.getTargetRole(
334
342
  authorization.getMainTarget());
335
343
 
336
- RoleId roleId;
337
- RoleInfo memory roleInfo;
338
-
339
344
  for(uint256 i = 0; i < roles.length; i++) {
340
-
341
- roleId = roles[i];
345
+ RoleId roleId = roles[i];
342
346
 
343
347
  // skip main target role, create role if not exists
344
348
  if (roleId != mainTargetRoleId && !roleExists(roleId)) {
@@ -350,16 +354,6 @@ contract InstanceAdmin is
350
354
  }
351
355
 
352
356
 
353
- function toComponentRole(RoleId roleId, uint64 componentIdx)
354
- internal
355
- pure
356
- returns (RoleId)
357
- {
358
- return RoleIdLib.toRoleId(
359
- RoleIdLib.toInt(roleId) + componentIdx);
360
- }
361
-
362
-
363
357
  function _createTargetAuthorizations(IAuthorization authorization)
364
358
  internal
365
359
  {
@@ -369,69 +363,21 @@ contract InstanceAdmin is
369
363
  for(uint256 i = 0; i < targets.length; i++) {
370
364
  target = targets[i];
371
365
  RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
372
- RoleId authorizedRole;
373
366
 
374
367
  for(uint256 j = 0; j < authorizedRoles.length; j++) {
375
- authorizedRole = authorizedRoles[j];
376
-
377
- _authorizeTargetFunctions(
378
- getTargetForName(target),
379
- authorizedRole,
380
- authorization.getAuthorizedFunctions(
381
- target,
382
- authorizedRole));
368
+ _authorizeFunctions(authorization, target, authorizedRoles[j]);
383
369
  }
384
370
  }
385
371
  }
386
372
 
387
- function _checkAndCreateTargetWithRole(
388
- address target,
389
- string memory targetName
390
- )
391
- internal
392
- {
393
- // check that target name is defined in authorization specification
394
- Str name = StrLib.toStr(targetName);
395
- if (!_instanceAuthorization.targetExists(name)) {
396
- revert ErrorInstanceAdminExpectedTargetMissing(targetName);
397
- }
398
373
 
399
- // create named target
400
- _createTarget(
401
- target,
402
- targetName,
403
- false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
404
- false);
405
-
406
- // assign target role if defined
407
- RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
408
- if (targetRoleId != RoleIdLib.zero()) {
409
- _grantRoleToAccount(targetRoleId, target);
410
- }
411
- }
412
-
413
- function _setupInstanceHelperTargetsWithRoles()
374
+ function _checkComponentOrCustomTarget(address target)
414
375
  internal
376
+ view
415
377
  {
416
- // _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
417
-
418
- // create module targets
419
- _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
420
- _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
421
- _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
422
- _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
423
-
424
- // create targets for services that need to access the module targets
425
- ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
426
- VersionPart release = _instanceAuthorization.getRelease();
427
- ObjectType serviceDomain;
428
-
429
- for (uint256 i = 0; i < serviceDomains.length; i++) {
430
- serviceDomain = serviceDomains[i];
431
-
432
- _checkAndCreateTargetWithRole(
433
- _registry.getServiceAddress(serviceDomain, release),
434
- _instanceAuthorization.getServiceTarget(serviceDomain).toString());
378
+ IAccess.TargetType targetType = getTargetInfo(target).targetType;
379
+ if (targetType != TargetType.Component && targetType != TargetType.Custom) {
380
+ revert ErrorInstanceAdminNotComponentOrCustomTarget(target);
435
381
  }
436
382
  }
437
383
  }