@etherisc/gif-next 0.0.2-7c8d286-020 → 0.0.2-7d488b3-675

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