@etherisc/gif-next 0.0.2-9e6b423-414 → 0.0.2-9f51324-299

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