@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-df69269-973

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 (406) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +65 -58
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +20 -22
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -55
  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 +233 -5
  12. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +115 -21
  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 +37 -5
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +42 -13
  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 +77 -47
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +90 -33
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -21
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -8
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
  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 +76 -42
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +93 -40
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +233 -184
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +90 -33
  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 +104 -54
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +90 -33
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +98 -48
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +93 -40
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +262 -147
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +90 -33
  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 +54 -21
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +289 -92
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +97 -40
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +81 -195
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +40 -268
  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/module/IAccess.sol/IAccess.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  97. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -38
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +92 -35
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -8
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -22
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +93 -40
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +101 -94
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +38 -40
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +27 -3
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +27 -3
  127. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  128. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +85 -78
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +30 -32
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +90 -33
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +249 -150
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +57 -55
  145. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +27 -3
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
  155. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +95 -88
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +35 -37
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  165. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  166. package/artifacts/contracts/product/Product.sol/Product.json +157 -112
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +7 -2
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  176. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  177. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +45 -40
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +176 -214
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  187. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +307 -49
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  197. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  198. package/artifacts/contracts/shared/Component.sol/Component.json +51 -21
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  200. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +113 -90
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +44 -38
  203. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
  207. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  211. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -8
  213. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -3
  215. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
  217. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  219. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  223. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  241. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +3 -3
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  249. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -8
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  255. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  256. package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +59 -52
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +17 -19
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  276. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  278. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  281. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  282. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +23 -4
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  306. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  309. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  311. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  312. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  313. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  314. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  315. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  316. package/contracts/accounting/AccountingService.sol +3 -4
  317. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  318. package/contracts/authorization/AccessAdmin.sol +115 -71
  319. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  320. package/contracts/authorization/Authorization.sol +268 -227
  321. package/contracts/authorization/IAccessAdmin.sol +6 -3
  322. package/contracts/authorization/IAuthorization.sol +7 -1
  323. package/contracts/distribution/BasicDistributionAuthorization.sol +9 -8
  324. package/contracts/distribution/DistributionService.sol +6 -6
  325. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  326. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  327. package/contracts/examples/fire/FireProduct.sol +3 -1
  328. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  329. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  330. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  331. package/contracts/examples/unpermissioned/SimpleProduct.sol +18 -0
  332. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  333. package/contracts/instance/BundleSet.sol +0 -1
  334. package/contracts/instance/IInstance.sol +6 -7
  335. package/contracts/instance/IInstanceService.sol +2 -0
  336. package/contracts/instance/Instance.sol +17 -9
  337. package/contracts/instance/InstanceAdmin.sol +227 -53
  338. package/contracts/instance/InstanceAuthorizationV3.sol +14 -8
  339. package/contracts/instance/InstanceReader.sol +6 -6
  340. package/contracts/instance/InstanceService.sol +41 -29
  341. package/contracts/instance/InstanceServiceManager.sol +1 -1
  342. package/contracts/instance/InstanceStore.sol +1 -0
  343. package/contracts/instance/RiskSet.sol +7 -9
  344. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  345. package/contracts/instance/module/IComponents.sol +0 -8
  346. package/contracts/instance/module/IRisk.sol +2 -0
  347. package/contracts/oracle/BasicOracleAuthorization.sol +11 -10
  348. package/contracts/oracle/Oracle.sol +1 -1
  349. package/contracts/oracle/OracleService.sol +16 -15
  350. package/contracts/oracle/OracleServiceManager.sol +1 -1
  351. package/contracts/pool/BasicPoolAuthorization.sol +10 -9
  352. package/contracts/pool/BundleService.sol +3 -3
  353. package/contracts/pool/BundleServiceManager.sol +1 -1
  354. package/contracts/pool/PoolService.sol +4 -4
  355. package/contracts/pool/PoolServiceManager.sol +1 -1
  356. package/contracts/product/ApplicationService.sol +3 -3
  357. package/contracts/product/ApplicationServiceManager.sol +1 -1
  358. package/contracts/product/BasicProduct.sol +2 -0
  359. package/contracts/product/BasicProductAuthorization.sol +10 -9
  360. package/contracts/product/ClaimService.sol +144 -50
  361. package/contracts/product/ClaimServiceManager.sol +1 -1
  362. package/contracts/product/IClaimService.sol +13 -0
  363. package/contracts/product/IProductComponent.sol +4 -1
  364. package/contracts/product/PolicyService.sol +3 -3
  365. package/contracts/product/PolicyServiceManager.sol +1 -1
  366. package/contracts/product/PricingService.sol +23 -19
  367. package/contracts/product/PricingServiceManager.sol +3 -3
  368. package/contracts/product/Product.sol +36 -0
  369. package/contracts/product/RiskService.sol +65 -21
  370. package/contracts/product/RiskServiceManager.sol +1 -1
  371. package/contracts/registry/IRegistry.sol +6 -15
  372. package/contracts/registry/IRelease.sol +26 -0
  373. package/contracts/registry/Registry.sol +3 -2
  374. package/contracts/registry/RegistryAdmin.sol +117 -230
  375. package/contracts/registry/RegistryService.sol +3 -3
  376. package/contracts/registry/RegistryServiceManager.sol +1 -1
  377. package/contracts/registry/ReleaseAdmin.sol +245 -0
  378. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  379. package/contracts/registry/ReleaseRegistry.sol +124 -99
  380. package/contracts/registry/ServiceAuthorizationV3.sol +36 -1
  381. package/contracts/registry/TokenRegistry.sol +6 -8
  382. package/contracts/shared/Component.sol +24 -17
  383. package/contracts/shared/ComponentService.sol +63 -51
  384. package/contracts/shared/ComponentServiceManager.sol +1 -1
  385. package/contracts/shared/ContractLib.sol +29 -1
  386. package/contracts/shared/IComponent.sol +3 -4
  387. package/contracts/shared/IRegisterable.sol +15 -4
  388. package/contracts/shared/IService.sol +3 -5
  389. package/contracts/shared/NftOwnable.sol +4 -4
  390. package/contracts/shared/PolicyHolder.sol +1 -1
  391. package/contracts/shared/Registerable.sol +45 -19
  392. package/contracts/shared/RegistryLinked.sol +1 -1
  393. package/contracts/shared/Service.sol +8 -27
  394. package/contracts/shared/TokenHandler.sol +2 -2
  395. package/contracts/staking/Staking.sol +23 -12
  396. package/contracts/staking/StakingService.sol +2 -3
  397. package/contracts/type/ObjectType.sol +41 -27
  398. package/contracts/type/RiskId.sol +5 -0
  399. package/contracts/type/RoleId.sol +24 -4
  400. package/contracts/type/Timestamp.sol +0 -5
  401. package/contracts/type/Version.sol +15 -5
  402. package/contracts/upgradeability/ProxyManager.sol +1 -1
  403. package/package.json +1 -1
  404. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  405. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  406. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -1,19 +1,19 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
-
5
- import {AccessAdmin} from "../authorization/AccessAdmin.sol";
6
- import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
7
5
  import {IAuthorization} from "../authorization/IAuthorization.sol";
8
6
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
- import {IAuthorization} from "../authorization/IAuthorization.sol";
10
7
  import {IRegistry} from "../registry/IRegistry.sol";
11
8
  import {IInstance} from "./IInstance.sol";
9
+
10
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
11
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
12
  import {ObjectType} from "../type/ObjectType.sol";
13
13
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
14
  import {Str, StrLib} from "../type/String.sol";
15
15
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
- import {VersionPart} from "../type/Version.sol";
16
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
17
17
 
18
18
 
19
19
  contract InstanceAdmin is
@@ -27,68 +27,103 @@ contract InstanceAdmin is
27
27
 
28
28
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
29
29
 
30
+ error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
31
+ error ErrorInstanceAdminInstanceAlreadyLocked();
30
32
  error ErrorInstanceAdminNotRegistered(address target);
33
+
31
34
  error ErrorInstanceAdminAlreadyAuthorized(address target);
35
+ error ErrorInstanceAdminNotComponentRole(RoleId roleId);
36
+ error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
37
+ error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
38
+
32
39
  error ErrorInstanceAdminReleaseMismatch();
33
40
  error ErrorInstanceAdminExpectedTargetMissing(string targetName);
34
41
 
35
42
  IInstance internal _instance;
36
43
  IRegistry internal _registry;
37
- uint64 internal _idNext;
44
+ uint64 internal _customIdNext;
45
+
46
+ mapping(address target => RoleId roleId) internal _targetRoleId;
47
+ uint64 internal _components;
38
48
 
39
49
  IAuthorization internal _instanceAuthorization;
40
50
 
51
+
52
+ modifier onlyInstanceOwner() {
53
+ if(msg.sender != _registry.ownerOf(address(_instance))) {
54
+ revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
55
+ }
56
+ _;
57
+ }
58
+
41
59
  /// @dev Only used for master instance admin.
42
60
  /// Contracts created via constructor come with disabled initializers.
43
61
  constructor(
44
62
  address instanceAuthorization
45
- )
46
- AccessAdmin()
47
- {
63
+ ) {
64
+ initialize(new AccessManagerCloneable());
65
+
48
66
  _instanceAuthorization = IAuthorization(instanceAuthorization);
67
+
68
+ _disableInitializers();
49
69
  }
50
70
 
51
- /// @dev Initializes this instance admin with the provided instances authorization specification.
52
- /// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
53
- /// for the inststance authorizatios.
54
- /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
71
+
55
72
  function initialize(
56
- AccessManagerCloneable accessManager,
57
- address instanceAuthorization
73
+ AccessManagerCloneable clonedAccessManager,
74
+ IRegistry registry,
75
+ VersionPart release
58
76
  )
59
77
  external
60
78
  initializer()
61
79
  {
62
- // create new access manager for this instance admin
63
- _initializeAuthority(address(accessManager));
80
+ __AccessAdmin_init(clonedAccessManager);
64
81
 
65
- // create basic instance independent setup
66
- _createAdminAndPublicRoles();
82
+ clonedAccessManager.completeSetup(
83
+ address(registry),
84
+ release);
67
85
 
68
- // store instance authorization specification
69
- _instanceAuthorization = IAuthorization(instanceAuthorization);
86
+ _registry = registry;
70
87
  }
71
88
 
72
- /// @dev Completes the initialization of this instance admin using the provided instance.
89
+ event LogDebug(string message, uint256 value);
90
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
91
+ /// Important: Initialization of instance admin is only complete after calling this function.
73
92
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
74
- function initializeInstanceAuthorization(address instanceAddress)
93
+ function completeSetup(
94
+ address instance,
95
+ address authorization
96
+ )
75
97
  external
98
+ reinitializer(uint64(getRelease().toInt()))
99
+ onlyDeployer()
76
100
  {
77
- _checkTargetIsReadyForAuthorization(instanceAddress);
101
+ _components = 0;
102
+ _customIdNext = CUSTOM_ROLE_ID_MIN;
103
+ _instance = IInstance(instance);
104
+ _instanceAuthorization = IAuthorization(authorization);
78
105
 
79
- _idNext = CUSTOM_ROLE_ID_MIN;
80
- _instance = IInstance(instanceAddress);
81
- _registry = _instance.getRegistry();
106
+ _checkTargetIsReadyForAuthorization(instance);
82
107
 
83
108
  // check matching releases
84
- if (_instanceAuthorization.getRelease() != _instance.getRelease()) {
109
+ if (_instanceAuthorization.getRelease() != getRelease()) {
85
110
  revert ErrorInstanceAdminReleaseMismatch();
86
111
  }
87
112
 
113
+ // TODO cleanup
114
+ emit LogDebug("a", 0);
115
+ // create instance role and target
116
+ _setupInstance(instance);
117
+ emit LogDebug("b", 0);
118
+
88
119
  // add instance authorization
89
120
  _createRoles(_instanceAuthorization);
90
- _createModuleTargetsWithRoles();
121
+ emit LogDebug("c", 0);
122
+
123
+ _setupInstanceHelperTargetsWithRoles();
124
+ emit LogDebug("d", 0);
91
125
  _createTargetAuthorizations(_instanceAuthorization);
126
+ emit LogDebug("e", 0);
92
127
  }
93
128
 
94
129
 
@@ -98,47 +133,71 @@ contract InstanceAdmin is
98
133
  IInstanceLinkedComponent component
99
134
  )
100
135
  external
136
+ restricted()
101
137
  {
102
138
  // checks
103
- // get authorization specification
104
- IAuthorization authorization = component.getAuthorization();
105
- string memory targetName = authorization.getTargetName();
106
139
  _checkTargetIsReadyForAuthorization(address(component));
107
140
 
141
+ emit LogDebug("f", 0);
108
142
 
109
- // create roles
110
- _createRoles(authorization);
143
+ // setup target and role for component (including token handler)
144
+ _setupComponentAndTokenHandler(component);
111
145
 
112
- // create component target
113
- _createTarget(
114
- address(component),
115
- targetName,
116
- true, // checkAuthority
117
- false); // custom
146
+ emit LogDebug("g", 0);
118
147
 
119
- _createTarget(
120
- address(component.getTokenHandler()),
121
- string(abi.encodePacked(targetName, "TH")),
122
- true,
123
- false);
148
+ // create other roles
149
+ IAuthorization authorization = component.getAuthorization();
150
+ _createRoles(authorization);
151
+
152
+ emit LogDebug("h", 0);
124
153
 
125
154
  FunctionInfo[] memory functions = new FunctionInfo[](3);
126
155
  functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
127
156
  functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
128
157
  functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
129
158
 
159
+ emit LogDebug("i", 0);
160
+
130
161
  // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
131
162
  _authorizeTargetFunctions(
132
163
  address(component.getTokenHandler()),
133
164
  getPublicRole(),
134
165
  functions);
135
166
 
136
- _grantRoleToAccount(
137
- authorization.getTargetRole(
138
- authorization.getMainTarget()),
139
- address(component));
167
+ emit LogDebug("j", 0);
168
+
169
+ // TODO cleanup
170
+ // _grantRoleToAccount(
171
+ // authorization.getTargetRole(
172
+ // authorization.getMainTarget()),
173
+ // address(component));
140
174
 
141
175
  _createTargetAuthorizations(authorization);
176
+
177
+ emit LogDebug("k", 0);
178
+ }
179
+
180
+ // create instance role and target
181
+ function _setupInstance(address instance) internal {
182
+ // create instance role
183
+ RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
184
+ _instanceAuthorization.getMainTarget());
185
+
186
+ _createRole(
187
+ instanceRoleId,
188
+ _instanceAuthorization.getRoleInfo(instanceRoleId));
189
+
190
+ // create instance target
191
+ _createTarget(
192
+ instance,
193
+ _instanceAuthorization.getMainTargetName(),
194
+ true, // checkAuthority
195
+ false); // custom
196
+
197
+ // assign instance role to instance
198
+ _grantRoleToAccount(
199
+ instanceRoleId,
200
+ instance);
142
201
  }
143
202
 
144
203
  /// @dev Creates a custom role
@@ -160,6 +219,19 @@ contract InstanceAdmin is
160
219
  _grantRoleToAccount(roleId, account);
161
220
  }
162
221
 
222
+
223
+ function setInstanceLocked(bool locked)
224
+ external
225
+ onlyInstanceOwner()
226
+ {
227
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
228
+
229
+ if(accessManager.isLocked() == locked) {
230
+ revert ErrorInstanceAdminInstanceAlreadyLocked();
231
+ }
232
+ accessManager.setLocked(locked);
233
+ }
234
+
163
235
  function setTargetLocked(address target, bool locked)
164
236
  external
165
237
  restricted()
@@ -178,12 +250,98 @@ contract InstanceAdmin is
178
250
  return _instanceAuthorization;
179
251
  }
180
252
 
253
+ // ------------------- Internal functions ------------------- //
254
+
255
+ function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
256
+ internal
257
+ {
258
+
259
+ IAuthorization authorization = component.getAuthorization();
260
+ string memory targetName = authorization.getMainTargetName();
261
+
262
+ // create component role and target
263
+ RoleId componentRoleId = _createComponentRoleId(component, authorization);
264
+
265
+ // create component's target
266
+ _createTarget(
267
+ address(component),
268
+ targetName,
269
+ true, // checkAuthority
270
+ false); // custom
271
+
272
+ // create component's token handler target
273
+ _createTarget(
274
+ // TODO fetch token handler from instance
275
+ address(component.getTokenHandler()),
276
+ string(abi.encodePacked(targetName, "TH")),
277
+ true,
278
+ false);
279
+
280
+ // assign component role to component
281
+ _grantRoleToAccount(
282
+ componentRoleId,
283
+ address(component));
284
+
285
+ // token handler does not require its own role
286
+ // token handler is not calling other components
287
+ }
288
+
289
+
290
+ function _createComponentRoleId(
291
+ IInstanceLinkedComponent component,
292
+ IAuthorization authorization
293
+ )
294
+ internal
295
+ returns (RoleId componentRoleId)
296
+ {
297
+ // checks
298
+ // check component is not yet authorized
299
+ if (_targetRoleId[address(component)].gtz()) {
300
+ revert ErrorInstanceAdminAlreadyAuthorized(address(component));
301
+ }
302
+
303
+ // check generic component role
304
+ RoleId genericComponentRoleId = authorization.getTargetRole(
305
+ authorization.getMainTarget());
306
+
307
+ if (!genericComponentRoleId.isComponentRole()) {
308
+ revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
309
+ }
310
+
311
+ // check component role does not exist
312
+ componentRoleId = toComponentRole(
313
+ genericComponentRoleId,
314
+ _components);
315
+
316
+ if (roleExists(componentRoleId)) {
317
+ revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
318
+ }
319
+
320
+ // check role info
321
+ IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
322
+ genericComponentRoleId);
323
+
324
+ if (roleInfo.roleType != IAccess.RoleType.Contract) {
325
+ revert ErrorInstanceAdminRoleTypeNotContract(
326
+ componentRoleId,
327
+ roleInfo.roleType);
328
+ }
329
+
330
+ // effects
331
+ _targetRoleId[address(component)] = componentRoleId;
332
+ _components++;
333
+
334
+ _createRole(
335
+ componentRoleId,
336
+ roleInfo);
337
+ }
338
+
181
339
 
182
340
  function _checkTargetIsReadyForAuthorization(address target)
183
341
  internal
184
342
  view
185
343
  {
186
- if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
344
+ if (!_registry.isRegistered(target)) {
187
345
  revert ErrorInstanceAdminNotRegistered(target);
188
346
  }
189
347
 
@@ -197,13 +355,18 @@ contract InstanceAdmin is
197
355
  internal
198
356
  {
199
357
  RoleId[] memory roles = authorization.getRoles();
358
+ RoleId mainTargetRoleId = authorization.getTargetRole(
359
+ authorization.getMainTarget());
360
+
200
361
  RoleId roleId;
201
362
  RoleInfo memory roleInfo;
202
363
 
203
364
  for(uint256 i = 0; i < roles.length; i++) {
365
+
204
366
  roleId = roles[i];
205
367
 
206
- if (!roleExists(roleId)) {
368
+ // skip main target role, create role if not exists
369
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
207
370
  _createRole(
208
371
  roleId,
209
372
  authorization.getRoleInfo(roleId));
@@ -212,6 +375,16 @@ contract InstanceAdmin is
212
375
  }
213
376
 
214
377
 
378
+ function toComponentRole(RoleId roleId, uint64 componentIdx)
379
+ internal
380
+ pure
381
+ returns (RoleId)
382
+ {
383
+ return RoleIdLib.toRoleId(
384
+ RoleIdLib.toInt(roleId) + componentIdx);
385
+ }
386
+
387
+
215
388
  function _createTargetAuthorizations(IAuthorization authorization)
216
389
  internal
217
390
  {
@@ -262,11 +435,12 @@ contract InstanceAdmin is
262
435
  }
263
436
  }
264
437
 
265
- function _createModuleTargetsWithRoles()
438
+ function _setupInstanceHelperTargetsWithRoles()
266
439
  internal
267
440
  {
441
+ // _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
442
+
268
443
  // create module targets
269
- _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
270
444
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
271
445
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
272
446
  _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
@@ -26,7 +26,9 @@ contract InstanceAuthorizationV3
26
26
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
27
  string public constant RISK_SET_TARGET_NAME = "RiskSet";
28
28
 
29
- constructor() Authorization(INSTANCE_TARGET_NAME) {}
29
+ constructor()
30
+ Authorization(INSTANCE_TARGET_NAME, INSTANCE())
31
+ { }
30
32
 
31
33
 
32
34
  function _setupRoles()
@@ -36,16 +38,16 @@ contract InstanceAuthorizationV3
36
38
  // empty implementation
37
39
  }
38
40
 
39
-
40
41
  function _setupTargets()
41
42
  internal
42
43
  override
43
44
  {
44
- // instance target
45
- _addTargetWithRole(
46
- INSTANCE_TARGET_NAME,
47
- _toTargetRoleId(INSTANCE()),
48
- INSTANCE_ROLE_NAME);
45
+ // TODO cleanup
46
+ // // instance target
47
+ // _addTargetWithRole(
48
+ // INSTANCE_TARGET_NAME,
49
+ // _toTargetRoleId(INSTANCE()),
50
+ // INSTANCE_ROLE_NAME);
49
51
 
50
52
  // instance supporting targets
51
53
  _addTarget(INSTANCE_STORE_TARGET_NAME);
@@ -132,11 +134,12 @@ contract InstanceAuthorizationV3
132
134
  IAccess.FunctionInfo[] storage functions;
133
135
 
134
136
  // authorize instance role
135
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
137
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getComponentRole(INSTANCE()));
136
138
  _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
137
139
 
138
140
  // authorize component service role
139
141
  functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
142
+ _authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
140
143
  _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
141
144
  }
142
145
 
@@ -160,6 +163,8 @@ contract InstanceAuthorizationV3
160
163
  _authorize(functions, InstanceStore.createPool.selector, "createPool");
161
164
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
162
165
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
166
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
167
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
163
168
 
164
169
  // authorize distribution service role
165
170
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
@@ -217,6 +222,7 @@ contract InstanceAuthorizationV3
217
222
  _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
218
223
  _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
219
224
  _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
225
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
220
226
  }
221
227
  }
222
228
 
@@ -110,7 +110,7 @@ contract InstanceReader {
110
110
  function bundles(NftId poolNftId)
111
111
  public
112
112
  view
113
- returns (uint256 bundles)
113
+ returns (uint256 bundleCount)
114
114
  {
115
115
  return _bundleSet.bundles(poolNftId);
116
116
  }
@@ -118,7 +118,7 @@ contract InstanceReader {
118
118
  function activeBundles(NftId poolNftId)
119
119
  public
120
120
  view
121
- returns (uint256 bundles)
121
+ returns (uint256 bundleCount)
122
122
  {
123
123
  return _bundleSet.activeBundles(poolNftId);
124
124
  }
@@ -166,7 +166,7 @@ contract InstanceReader {
166
166
  function claims(NftId policyNftId)
167
167
  public
168
168
  view
169
- returns (uint16 claims)
169
+ returns (uint16 claimCount)
170
170
  {
171
171
  return getPolicyInfo(policyNftId).claimsCount;
172
172
  }
@@ -204,7 +204,7 @@ contract InstanceReader {
204
204
  function payouts(NftId policyNftId, ClaimId claimId)
205
205
  public
206
206
  view
207
- returns (uint24 payouts)
207
+ returns (uint24 payoutCount)
208
208
  {
209
209
  return getClaimInfo(policyNftId, claimId).payoutsCount;
210
210
  }
@@ -250,7 +250,7 @@ contract InstanceReader {
250
250
  function risks(NftId productNftId)
251
251
  public
252
252
  view
253
- returns (uint256 activeRisks)
253
+ returns (uint256 riskCount)
254
254
  {
255
255
  return _riskSet.risks(productNftId);
256
256
  }
@@ -266,7 +266,7 @@ contract InstanceReader {
266
266
  function activeRisks(NftId productNftId)
267
267
  public
268
268
  view
269
- returns (uint256 activeRisks)
269
+ returns (uint256 activeRiskCount)
270
270
  {
271
271
  return _riskSet.activeRisks(productNftId);
272
272
  }