@etherisc/gif-next 0.0.2-d437d8d-974 → 0.0.2-d43ca2d-657

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 (484) hide show
  1. package/README.md +27 -6
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +166 -59
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +97 -18
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +192 -212
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +132 -128
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +196 -95
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +142 -69
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +119 -110
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -2
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2025 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +232 -164
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +175 -151
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +321 -183
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +632 -231
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +182 -85
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +312 -135
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +525 -84
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +134 -157
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +110 -49
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +207 -116
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  96. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  102. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +151 -171
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  107. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +113 -104
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -123
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +156 -81
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +130 -45
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +146 -142
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +161 -156
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -75
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +74 -35
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -135
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +298 -187
  132. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  133. package/artifacts/contracts/pool/Pool.sol/Pool.json +146 -153
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +421 -264
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -49
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +135 -54
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -45
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +186 -136
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +328 -131
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +146 -69
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +206 -10
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +154 -21
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +172 -117
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +264 -130
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +140 -63
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +185 -115
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +123 -54
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  171. package/artifacts/contracts/product/Product.sol/Product.json +182 -132
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +117 -63
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +115 -42
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +98 -17
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  182. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  184. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +142 -53
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +257 -254
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +112 -183
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +102 -37
  194. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  196. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  198. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +406 -250
  200. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  202. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +3 -3
  204. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Component.sol/Component.json +105 -83
  206. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -480
  208. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +139 -76
  210. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +60 -2
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -65
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +448 -260
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +113 -104
  226. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  230. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  232. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +126 -122
  242. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  243. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  244. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  246. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  248. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  250. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  251. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -3
  252. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  255. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  256. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Service.sol/Service.json +60 -2
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  263. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +110 -101
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  268. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
  270. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  271. package/artifacts/contracts/staking/Staking.sol/Staking.json +192 -171
  272. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +127 -53
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +103 -62
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +106 -41
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -104
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
  286. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  292. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  294. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  296. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  298. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  300. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  302. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  304. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  306. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  308. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  310. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  312. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  314. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  316. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  324. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  326. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  328. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  330. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  331. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -27
  333. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  334. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  335. package/contracts/accounting/AccountingService.sol +262 -0
  336. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  337. package/contracts/accounting/IAccountingService.sol +45 -0
  338. package/contracts/authorization/AccessAdmin.sol +195 -128
  339. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  340. package/contracts/authorization/Authorization.sol +111 -39
  341. package/contracts/authorization/IAccess.sol +1 -0
  342. package/contracts/authorization/IAccessAdmin.sol +10 -5
  343. package/contracts/authorization/IAuthorization.sol +13 -7
  344. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  345. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  346. package/contracts/distribution/BasicDistribution.sol +8 -7
  347. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  348. package/contracts/distribution/Distribution.sol +32 -40
  349. package/contracts/distribution/DistributionService.sol +86 -65
  350. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  351. package/contracts/distribution/IDistributionComponent.sol +1 -1
  352. package/contracts/distribution/IDistributionService.sol +5 -6
  353. package/contracts/examples/fire/DamageLevel.sol +59 -0
  354. package/contracts/examples/fire/FirePool.sol +90 -0
  355. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  356. package/contracts/examples/fire/FireProduct.sol +436 -0
  357. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  358. package/contracts/examples/fire/FireUSD.sol +26 -0
  359. package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
  360. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  361. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  362. package/contracts/examples/unpermissioned/SimplePool.sol +37 -6
  363. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  364. package/contracts/examples/unpermissioned/SimpleProduct.sol +38 -23
  365. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  366. package/contracts/instance/BundleSet.sol +38 -34
  367. package/contracts/instance/IInstance.sol +12 -9
  368. package/contracts/instance/IInstanceService.sol +9 -29
  369. package/contracts/instance/Instance.sol +40 -34
  370. package/contracts/instance/InstanceAdmin.sol +114 -73
  371. package/contracts/instance/InstanceAuthorizationV3.sol +51 -32
  372. package/contracts/instance/InstanceReader.sol +171 -20
  373. package/contracts/instance/InstanceService.sol +86 -149
  374. package/contracts/instance/InstanceServiceManager.sol +6 -7
  375. package/contracts/instance/RiskSet.sol +117 -0
  376. package/contracts/instance/base/ObjectCounter.sol +1 -2
  377. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  378. package/contracts/instance/base/ObjectSet.sol +24 -25
  379. package/contracts/instance/module/IComponents.sol +10 -6
  380. package/contracts/instance/module/IPolicy.sol +4 -3
  381. package/contracts/instance/module/IRisk.sol +3 -0
  382. package/contracts/oracle/BasicOracle.sol +0 -1
  383. package/contracts/oracle/IOracleService.sol +2 -1
  384. package/contracts/oracle/Oracle.sol +5 -16
  385. package/contracts/oracle/OracleService.sol +110 -80
  386. package/contracts/oracle/OracleServiceManager.sol +6 -6
  387. package/contracts/pool/BasicPool.sol +33 -24
  388. package/contracts/pool/BasicPoolAuthorization.sol +12 -2
  389. package/contracts/pool/BundleService.sol +74 -87
  390. package/contracts/pool/BundleServiceManager.sol +6 -6
  391. package/contracts/pool/IBundleService.sol +2 -15
  392. package/contracts/pool/IPoolComponent.sol +19 -15
  393. package/contracts/pool/IPoolService.sol +30 -37
  394. package/contracts/pool/Pool.sol +141 -122
  395. package/contracts/pool/PoolService.sol +265 -159
  396. package/contracts/pool/PoolServiceManager.sol +4 -4
  397. package/contracts/product/ApplicationService.sol +32 -21
  398. package/contracts/product/ApplicationServiceManager.sol +4 -4
  399. package/contracts/product/BasicProduct.sol +8 -12
  400. package/contracts/product/BasicProductAuthorization.sol +1 -3
  401. package/contracts/product/ClaimService.sol +298 -127
  402. package/contracts/product/ClaimServiceManager.sol +4 -4
  403. package/contracts/product/IApplicationService.sol +5 -2
  404. package/contracts/product/IClaimService.sol +16 -2
  405. package/contracts/product/IPolicyService.sol +25 -10
  406. package/contracts/product/IPricingService.sol +9 -9
  407. package/contracts/product/IProductComponent.sol +23 -3
  408. package/contracts/product/PolicyService.sol +296 -198
  409. package/contracts/product/PolicyServiceManager.sol +4 -4
  410. package/contracts/product/PricingService.sol +14 -14
  411. package/contracts/product/PricingServiceManager.sol +4 -4
  412. package/contracts/product/Product.sol +100 -74
  413. package/contracts/product/RiskService.sol +79 -25
  414. package/contracts/product/RiskServiceManager.sol +4 -4
  415. package/contracts/registry/ChainNft.sol +10 -11
  416. package/contracts/registry/IRegistry.sol +14 -18
  417. package/contracts/registry/IRegistryService.sol +5 -12
  418. package/contracts/registry/IRelease.sol +26 -0
  419. package/contracts/registry/ITransferInterceptor.sol +1 -2
  420. package/contracts/registry/Registry.sol +32 -8
  421. package/contracts/registry/RegistryAdmin.sol +121 -241
  422. package/contracts/registry/RegistryService.sol +36 -47
  423. package/contracts/registry/RegistryServiceManager.sol +3 -3
  424. package/contracts/registry/ReleaseAdmin.sol +245 -0
  425. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  426. package/contracts/registry/ReleaseRegistry.sol +257 -237
  427. package/contracts/registry/ServiceAuthorizationV3.sol +93 -50
  428. package/contracts/registry/TokenRegistry.sol +5 -7
  429. package/contracts/shared/Component.sol +67 -109
  430. package/contracts/shared/ComponentService.sol +381 -332
  431. package/contracts/shared/ComponentServiceManager.sol +8 -5
  432. package/contracts/shared/ComponentVerifyingService.sol +27 -16
  433. package/contracts/shared/ContractLib.sol +223 -9
  434. package/contracts/shared/IComponent.sol +8 -17
  435. package/contracts/shared/IComponentService.sol +45 -37
  436. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  437. package/contracts/shared/ILifecycle.sol +3 -1
  438. package/contracts/shared/INftOwnable.sol +2 -0
  439. package/contracts/shared/IRegisterable.sol +23 -1
  440. package/contracts/shared/IService.sol +3 -5
  441. package/contracts/shared/InstanceLinkedComponent.sol +68 -43
  442. package/contracts/shared/KeyValueStore.sol +1 -1
  443. package/contracts/shared/Lifecycle.sol +15 -4
  444. package/contracts/shared/NftOwnable.sol +26 -6
  445. package/contracts/shared/PolicyHolder.sol +5 -1
  446. package/contracts/shared/Registerable.sol +53 -19
  447. package/contracts/shared/RegistryLinked.sol +7 -13
  448. package/contracts/shared/Service.sol +13 -30
  449. package/contracts/shared/TokenHandler.sol +316 -66
  450. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  451. package/contracts/staking/IStaking.sol +9 -4
  452. package/contracts/staking/IStakingService.sol +0 -3
  453. package/contracts/staking/Staking.sol +64 -36
  454. package/contracts/staking/StakingManager.sol +8 -6
  455. package/contracts/staking/StakingReader.sol +12 -5
  456. package/contracts/staking/StakingService.sol +56 -24
  457. package/contracts/staking/StakingServiceManager.sol +2 -2
  458. package/contracts/type/Amount.sol +15 -0
  459. package/contracts/type/ClaimId.sol +6 -1
  460. package/contracts/type/Key32.sol +2 -2
  461. package/contracts/type/Key32Set.sol +62 -0
  462. package/contracts/type/NftId.sol +7 -0
  463. package/contracts/type/ObjectType.sol +11 -0
  464. package/contracts/type/PayoutId.sol +10 -10
  465. package/contracts/type/RiskId.sol +35 -4
  466. package/contracts/type/RoleId.sol +4 -13
  467. package/contracts/type/StateId.sol +14 -1
  468. package/contracts/type/Timestamp.sol +0 -5
  469. package/contracts/type/UFixed.sol +13 -119
  470. package/contracts/type/Version.sol +15 -5
  471. package/contracts/upgradeability/ProxyManager.sol +68 -34
  472. package/contracts/upgradeability/Versionable.sol +2 -2
  473. package/package.json +4 -3
  474. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  475. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  476. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  477. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  478. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  479. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  480. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  481. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  482. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  483. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  484. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,36 +1,35 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
-
6
4
  import {Amount} from "../type/Amount.sol";
7
5
  import {BundleSet} from "./BundleSet.sol";
6
+ import {RiskSet} from "./RiskSet.sol";
7
+ import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
8
8
  import {IInstance} from "./IInstance.sol";
9
+ import {IComponentService} from "../shared/IComponentService.sol";
9
10
  import {IInstanceService} from "./IInstanceService.sol";
10
11
  import {InstanceReader} from "./InstanceReader.sol";
11
12
  import {InstanceAdmin} from "./InstanceAdmin.sol";
12
13
  import {InstanceStore} from "./InstanceStore.sol";
13
- import {INSTANCE} from "../type/ObjectType.sol";
14
14
  import {IRegistry} from "../registry/IRegistry.sol";
15
+ import {NftId} from "../type/NftId.sol";
15
16
  import {Registerable} from "../shared/Registerable.sol";
16
17
  import {RoleId} from "../type/RoleId.sol";
17
18
  import {Seconds} from "../type/Seconds.sol";
18
19
  import {UFixed} from "../type/UFixed.sol";
19
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
20
20
 
21
21
  contract Instance is
22
22
  IInstance,
23
- AccessManagedUpgradeable,
24
23
  Registerable
25
24
  {
26
- uint256 public constant GIF_MAJOR_VERSION = 3;
27
-
28
25
  bool private _initialized;
29
26
 
27
+ IComponentService internal _componentService;
30
28
  IInstanceService internal _instanceService;
31
29
  InstanceAdmin internal _instanceAdmin;
32
30
  InstanceReader internal _instanceReader;
33
- BundleSet internal _bundleManager;
31
+ BundleSet internal _bundleSet;
32
+ RiskSet internal _riskSet;
34
33
  InstanceStore internal _instanceStore;
35
34
 
36
35
  modifier onlyChainNft() {
@@ -43,7 +42,8 @@ contract Instance is
43
42
  function initialize(
44
43
  InstanceAdmin instanceAdmin,
45
44
  InstanceStore instanceStore,
46
- BundleSet bundleManager,
45
+ BundleSet bundleSet,
46
+ RiskSet riskSet,
47
47
  InstanceReader instanceReader,
48
48
  IRegistry registry,
49
49
  address initialOwner
@@ -51,17 +51,15 @@ contract Instance is
51
51
  external
52
52
  initializer()
53
53
  {
54
- _instanceAdmin = instanceAdmin;
55
- if(_instanceAdmin.authority() == address(0)) {
56
- // TODO rename error
54
+ if(address(instanceAdmin) == address(0)) {
57
55
  revert ErrorInstanceInstanceAdminZero();
58
56
  }
59
57
 
60
- // set authority to instance admin authority
61
- __AccessManaged_init(_instanceAdmin.authority());
58
+ _instanceAdmin = instanceAdmin;
62
59
 
63
60
  // setup instance object info
64
- _initializeRegisterable(
61
+ __Registerable_init(
62
+ instanceAdmin.authority(),
65
63
  address(registry),
66
64
  registry.getNftId(),
67
65
  INSTANCE(),
@@ -71,27 +69,42 @@ contract Instance is
71
69
 
72
70
  // store instance supporting contracts
73
71
  _instanceStore = instanceStore;
74
- _bundleManager = bundleManager;
72
+ _bundleSet = bundleSet;
73
+ _riskSet = riskSet;
75
74
  _instanceReader = instanceReader;
76
75
 
77
76
  // initialize instance supporting contracts
78
77
  _instanceStore.initialize();
79
- _bundleManager.initialize();
78
+ _bundleSet.initialize();
79
+ _riskSet.initialize();
80
80
  _instanceReader.initialize();
81
81
 
82
+ _componentService = IComponentService(
83
+ getRegistry().getServiceAddress(
84
+ COMPONENT(),
85
+ getRelease()));
86
+
82
87
  _instanceService = IInstanceService(
83
88
  getRegistry().getServiceAddress(
84
89
  INSTANCE(),
85
- getMajorVersion()));
90
+ getRelease()));
86
91
 
87
92
  _registerInterface(type(IInstance).interfaceId);
88
93
  }
89
94
 
95
+ //--- ProductRegistration ----------------------------------------------//
96
+ function registerProduct(address product)
97
+ external
98
+ onlyOwner()
99
+ returns (NftId productNftId)
100
+ {
101
+ return _componentService.registerProduct(product);
102
+ }
103
+
90
104
  //--- Staking ----------------------------------------------------------//
91
105
 
92
106
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
93
107
  external
94
- // TODO decide if onlyOwner or restricted to instance owner role is better
95
108
  onlyOwner()
96
109
  {
97
110
  _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
@@ -168,23 +181,16 @@ contract Instance is
168
181
  // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
169
182
  }
170
183
 
171
- function setTargetLocked(address target, bool locked)
184
+ function setLocked(address target, bool locked)
172
185
  external
173
186
  onlyOwner()
174
187
  {
175
- // TODO refactor
176
- // _instanceAdmin.setTargetLockedByInstance(target, locked);
188
+ _componentService.setLockedFromInstance(target, locked);
177
189
  }
178
190
 
179
191
  //--- ITransferInterceptor ----------------------------------------------//
180
192
 
181
- // TODO interception of child components nfts
182
- function nftMint(address to, uint256 tokenId) external onlyChainNft {
183
- // TODO refactor
184
- // _instanceAdmin.transferInstanceOwnerRole(address(0), to);
185
- }
186
-
187
- function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
193
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external onlyChainNft {
188
194
  // TODO refactor
189
195
  // _instanceAdmin.transferInstanceOwnerRole(from, to);
190
196
  }
@@ -210,7 +216,11 @@ contract Instance is
210
216
  }
211
217
 
212
218
  function getBundleSet() external view returns (BundleSet) {
213
- return _bundleManager;
219
+ return _bundleSet;
220
+ }
221
+
222
+ function getRiskSet() external view returns (RiskSet) {
223
+ return _riskSet;
214
224
  }
215
225
 
216
226
  function getInstanceAdmin() external view returns (InstanceAdmin) {
@@ -221,9 +231,5 @@ contract Instance is
221
231
  return _instanceStore;
222
232
  }
223
233
 
224
- function getMajorVersion() public pure returns (VersionPart majorVersion) {
225
- return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
226
- }
227
-
228
234
  //--- internal view/pure functions --------------------------------------//
229
235
  }
@@ -1,22 +1,19 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
4
 
6
5
  import {AccessAdmin} from "../authorization/AccessAdmin.sol";
7
6
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
- import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
9
7
  import {IAuthorization} from "../authorization/IAuthorization.sol";
10
- import {IComponent} from "../shared/IComponent.sol";
11
- import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
12
10
  import {IRegistry} from "../registry/IRegistry.sol";
13
11
  import {IInstance} from "./IInstance.sol";
14
- import {IService} from "../shared/IService.sol";
15
- import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
16
- import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
12
+ import {ObjectType} from "../type/ObjectType.sol";
13
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
17
14
  import {Str, StrLib} from "../type/String.sol";
18
15
  import {TokenHandler} from "../shared/TokenHandler.sol";
19
- import {VersionPart} from "../type/Version.sol";
16
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
20
17
 
21
18
 
22
19
  contract InstanceAdmin is
@@ -26,77 +23,86 @@ contract InstanceAdmin is
26
23
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
27
24
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
28
25
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
26
+ string public constant RISK_SET_TAGET_NAME = "RiskSet";
29
27
 
30
28
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
31
29
 
30
+ error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
31
+ error ErrorInstanceAdminInstanceAlreadyLocked();
32
32
  error ErrorInstanceAdminNotRegistered(address target);
33
33
  error ErrorInstanceAdminAlreadyAuthorized(address target);
34
34
  error ErrorInstanceAdminReleaseMismatch();
35
35
  error ErrorInstanceAdminExpectedTargetMissing(string targetName);
36
36
 
37
- IInstance _instance;
37
+ IInstance internal _instance;
38
38
  IRegistry internal _registry;
39
- uint64 _idNext;
39
+ uint64 internal _idNext;
40
+
41
+ IAuthorization internal _instanceAuthorization;
42
+
40
43
 
41
- IModuleAuthorization _instanceAuthorization;
44
+ modifier onlyInstanceOwner() {
45
+ if(msg.sender != _registry.ownerOf(address(_instance))) {
46
+ revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
47
+ }
48
+ _;
49
+ }
42
50
 
43
51
  /// @dev Only used for master instance admin.
44
52
  /// Contracts created via constructor come with disabled initializers.
45
53
  constructor(
46
- IModuleAuthorization instanceAuthorization
47
- )
48
- AccessAdmin()
49
- {
50
- _instanceAuthorization = instanceAuthorization;
54
+ address instanceAuthorization
55
+ ) {
56
+ initialize(new AccessManagerCloneable());
57
+
58
+ _instanceAuthorization = IAuthorization(instanceAuthorization);
59
+
60
+ _disableInitializers();
51
61
  }
52
62
 
53
- /// @dev Initializes this instance admin with the provided instances authorization specification.
54
- /// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
55
- /// for the inststance authorizatios.
56
- /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
63
+
57
64
  function initialize(
58
- AccessManagerCloneable accessManager,
59
- IModuleAuthorization instanceAuthorization
65
+ AccessManagerCloneable clonedAccessManager,
66
+ IRegistry registry,
67
+ VersionPart release
60
68
  )
61
69
  external
62
- initializer()
70
+ initializer()
63
71
  {
64
- // create new access manager for this instance admin
65
- _initializeAuthority(address(accessManager));
72
+ __AccessAdmin_init(clonedAccessManager);
66
73
 
67
- // create basic instance independent setup
68
- _createAdminAndPublicRoles();
74
+ clonedAccessManager.completeSetup(
75
+ address(registry),
76
+ release);
69
77
 
70
- // store instance authorization specification
71
- _instanceAuthorization = IModuleAuthorization(instanceAuthorization);
78
+ _registry = registry;
72
79
  }
73
80
 
74
- function _checkTargetIsReadyForAuthorization(address target)
75
- internal
76
- view
77
- {
78
- if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
79
- revert ErrorInstanceAdminNotRegistered(target);
80
- }
81
81
 
82
- if (targetExists(target)) {
83
- revert ErrorInstanceAdminAlreadyAuthorized(target);
84
- }
85
- }
86
-
87
- /// @dev Completes the initialization of this instance admin using the provided instance.
82
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
83
+ /// Important: Initialization of instance admin is only complete after calling this function.
88
84
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
89
- function initializeInstanceAuthorization(address instanceAddress)
85
+ function completeSetup(
86
+ address instance,
87
+ address authorization
88
+ )
90
89
  external
90
+ reinitializer(uint64(getRelease().toInt()))
91
+ onlyDeployer()
91
92
  {
92
- _checkTargetIsReadyForAuthorization(instanceAddress);
93
-
94
93
  _idNext = CUSTOM_ROLE_ID_MIN;
95
- _instance = IInstance(instanceAddress);
96
- _registry = _instance.getRegistry();
94
+ _instance = IInstance(instance);
95
+ _instanceAuthorization = IAuthorization(authorization);
96
+
97
+ // AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
98
+ // accessManager.completeSetup(
99
+ // address(_registry),
100
+ // release);
101
+
102
+ _checkTargetIsReadyForAuthorization(instance);
97
103
 
98
104
  // check matching releases
99
- if (_instanceAuthorization.getRelease() != _instance.getMajorVersion()) {
105
+ if (_instanceAuthorization.getRelease() != getRelease()) {
100
106
  revert ErrorInstanceAdminReleaseMismatch();
101
107
  }
102
108
 
@@ -104,43 +110,48 @@ contract InstanceAdmin is
104
110
  _createRoles(_instanceAuthorization);
105
111
  _createModuleTargetsWithRoles();
106
112
  _createTargetAuthorizations(_instanceAuthorization);
107
-
108
- // grant component owner roles to instance owner
109
- _grantComponentOwnerRoles();
110
113
  }
111
114
 
112
115
 
113
116
  /// @dev Initializes the authorization for the specified component.
114
117
  /// Important: The component MUST be registered.
115
118
  function initializeComponentAuthorization(
116
- IComponent component,
117
- IAuthorization authorization
119
+ IInstanceLinkedComponent component
118
120
  )
119
121
  external
120
122
  {
123
+ // !!! TODO add caller restrictions?
124
+
125
+ _checkTargetIsReadyForAuthorization(address(component));
126
+
127
+ // get authorization specification
128
+ IAuthorization authorization = component.getAuthorization();
129
+ string memory targetName = authorization.getTargetName();
121
130
  _checkTargetIsReadyForAuthorization(address(component));
122
131
 
132
+
133
+ // create roles
123
134
  _createRoles(authorization);
124
135
 
125
136
  // create component target
126
137
  _createTarget(
127
138
  address(component),
128
- authorization.getTargetName(),
139
+ targetName,
129
140
  true, // checkAuthority
130
141
  false); // custom
131
142
 
132
143
  _createTarget(
133
144
  address(component.getTokenHandler()),
134
- string(abi.encodePacked(authorization.getTargetName(), "TH")),
145
+ string(abi.encodePacked(targetName, "TH")),
135
146
  true,
136
147
  false);
137
148
 
138
- // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
139
149
  FunctionInfo[] memory functions = new FunctionInfo[](3);
140
150
  functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
141
151
  functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
142
152
  functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
143
153
 
154
+ // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
144
155
  _authorizeTargetFunctions(
145
156
  address(component.getTokenHandler()),
146
157
  getPublicRole(),
@@ -148,23 +159,12 @@ contract InstanceAdmin is
148
159
 
149
160
  _grantRoleToAccount(
150
161
  authorization.getTargetRole(
151
- authorization.getTarget()),
162
+ authorization.getMainTarget()),
152
163
  address(component));
153
164
 
154
165
  _createTargetAuthorizations(authorization);
155
166
  }
156
167
 
157
-
158
- function _grantComponentOwnerRoles()
159
- internal
160
- {
161
- address instanceOwner = _registry.ownerOf(_instance.getNftId());
162
- _grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
163
- _grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
164
- _grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
165
- _grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
166
- }
167
-
168
168
  /// @dev Creates a custom role
169
169
  // TODO implement
170
170
  // function createRole()
@@ -184,15 +184,52 @@ contract InstanceAdmin is
184
184
  _grantRoleToAccount(roleId, account);
185
185
  }
186
186
 
187
+
188
+ function setInstanceLocked(bool locked)
189
+ external
190
+ onlyInstanceOwner()
191
+ {
192
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
193
+
194
+ if(accessManager.isLocked() == locked) {
195
+ revert ErrorInstanceAdminInstanceAlreadyLocked();
196
+ }
197
+ accessManager.setLocked(locked);
198
+ }
199
+
200
+ function setTargetLocked(address target, bool locked)
201
+ external
202
+ restricted()
203
+ {
204
+ _setTargetClosed(target, locked);
205
+ }
206
+
207
+
208
+
187
209
  /// @dev Returns the instance authorization specification used to set up this instance admin.
188
210
  function getInstanceAuthorization()
189
211
  external
190
212
  view
191
- returns (IModuleAuthorization instanceAuthorizaion)
213
+ returns (IAuthorization instanceAuthorizaion)
192
214
  {
193
215
  return _instanceAuthorization;
194
216
  }
195
217
 
218
+ // ------------------- Internal functions ------------------- //
219
+
220
+ function _checkTargetIsReadyForAuthorization(address target)
221
+ internal
222
+ view
223
+ {
224
+ if (!_registry.isRegistered(target)) {
225
+ revert ErrorInstanceAdminNotRegistered(target);
226
+ }
227
+
228
+ if (targetExists(target)) {
229
+ revert ErrorInstanceAdminAlreadyAuthorized(target);
230
+ }
231
+ }
232
+
196
233
 
197
234
  function _createRoles(IAuthorization authorization)
198
235
  internal
@@ -203,9 +240,12 @@ contract InstanceAdmin is
203
240
 
204
241
  for(uint256 i = 0; i < roles.length; i++) {
205
242
  roleId = roles[i];
206
- _createRole(
207
- roleId,
208
- authorization.getRoleInfo(roleId));
243
+
244
+ if (!roleExists(roleId)) {
245
+ _createRole(
246
+ roleId,
247
+ authorization.getRoleInfo(roleId));
248
+ }
209
249
  }
210
250
  }
211
251
 
@@ -250,7 +290,7 @@ contract InstanceAdmin is
250
290
  _createTarget(
251
291
  target,
252
292
  targetName,
253
- false, // check authority TODO check normal targets, don't check service targets (they share authority with registry admin)
293
+ false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
254
294
  false);
255
295
 
256
296
  // assign target role if defined
@@ -268,6 +308,7 @@ contract InstanceAdmin is
268
308
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
269
309
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
270
310
  _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
311
+ _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
271
312
 
272
313
  // create targets for services that need to access the module targets
273
314
  ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
@@ -2,47 +2,38 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
5
+ ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
- import {
9
- DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
10
- } from "../../contracts/type/RoleId.sol";
11
-
12
- import {BundleSet} from "../instance/BundleSet.sol";
8
+ import {BundleSet} from "../instance/BundleSet.sol";
9
+ import {RiskSet} from "../instance/RiskSet.sol";
13
10
  import {IAccess} from "../authorization/IAccess.sol";
14
11
  import {Instance} from "../instance/Instance.sol";
15
12
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
16
13
  import {InstanceStore} from "../instance/InstanceStore.sol";
17
- import {ModuleAuthorization} from "../authorization/ModuleAuthorization.sol";
14
+ import {Authorization} from "../authorization/Authorization.sol";
18
15
 
19
16
 
20
17
  contract InstanceAuthorizationV3
21
- is ModuleAuthorization
18
+ is Authorization
22
19
  {
23
20
 
21
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
22
+
24
23
  string public constant INSTANCE_TARGET_NAME = "Instance";
25
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
26
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
27
26
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
28
28
 
29
- string public constant INSTANCE_ROLE_NAME = "InstanceRole";
30
- string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
31
- string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
32
- string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
33
- string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
34
-
35
- constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
29
+ constructor() Authorization(INSTANCE_TARGET_NAME) {}
36
30
 
37
31
 
38
32
  function _setupRoles()
39
33
  internal
40
34
  override
41
35
  {
42
- _addGifRole(DISTRIBUTION_OWNER_ROLE(), DISTRIBUTION_OWNER_ROLE_NAME);
43
- _addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
44
- _addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
45
- _addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
36
+ // empty implementation
46
37
  }
47
38
 
48
39
 
@@ -53,22 +44,24 @@ contract InstanceAuthorizationV3
53
44
  // instance target
54
45
  _addTargetWithRole(
55
46
  INSTANCE_TARGET_NAME,
56
- _getTargetRoleId(INSTANCE()),
47
+ _toTargetRoleId(INSTANCE()),
57
48
  INSTANCE_ROLE_NAME);
58
49
 
59
50
  // instance supporting targets
60
51
  _addTarget(INSTANCE_STORE_TARGET_NAME);
61
52
  _addTarget(INSTANCE_ADMIN_TARGET_NAME);
62
53
  _addTarget(BUNDLE_SET_TARGET_NAME);
54
+ _addTarget(RISK_SET_TARGET_NAME);
63
55
 
64
56
  // service targets relevant to instance
65
57
  _addServiceTargetWithRole(INSTANCE());
58
+ _addServiceTargetWithRole(ACCOUNTING());
66
59
  _addServiceTargetWithRole(COMPONENT());
67
60
  _addServiceTargetWithRole(DISTRIBUTION());
68
61
  _addServiceTargetWithRole(ORACLE());
69
62
  _addServiceTargetWithRole(POOL());
70
63
  _addServiceTargetWithRole(BUNDLE());
71
- _addServiceTargetWithRole(PRODUCT());
64
+ _addServiceTargetWithRole(RISK());
72
65
  _addServiceTargetWithRole(APPLICATION());
73
66
  _addServiceTargetWithRole(POLICY());
74
67
  _addServiceTargetWithRole(CLAIM());
@@ -83,6 +76,7 @@ contract InstanceAuthorizationV3
83
76
  _setupInstanceAdminAuthorization();
84
77
  _setupInstanceStoreAuthorization();
85
78
  _setupBundleSetAuthorization();
79
+ _setUpRiskSetAuthorization();
86
80
  }
87
81
 
88
82
 
@@ -93,11 +87,31 @@ contract InstanceAuthorizationV3
93
87
 
94
88
  // authorize bundle service role
95
89
  functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
96
- _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
97
- _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
98
90
  _authorize(functions, BundleSet.add.selector, "add");
99
91
  _authorize(functions, BundleSet.lock.selector, "lock");
100
92
  _authorize(functions, BundleSet.unlock.selector, "unlock");
93
+
94
+ // authorize bundle service role
95
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
96
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
97
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
98
+ }
99
+
100
+ function _setUpRiskSetAuthorization()
101
+ internal
102
+ {
103
+ IAccess.FunctionInfo[] storage functions;
104
+
105
+ // authorize risk service role
106
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
107
+ _authorize(functions, RiskSet.add.selector, "add");
108
+ _authorize(functions, RiskSet.pause.selector, "pause");
109
+ _authorize(functions, RiskSet.activate.selector, "activate");
110
+
111
+ // authorize policy service role
112
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
113
+ _authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
114
+ _authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
101
115
  }
102
116
 
103
117
 
@@ -118,11 +132,12 @@ contract InstanceAuthorizationV3
118
132
  IAccess.FunctionInfo[] storage functions;
119
133
 
120
134
  // authorize instance role
121
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _getTargetRoleId(INSTANCE()));
135
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
122
136
  _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
123
137
 
124
- // authorize instance service role
125
- // functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
138
+ // authorize component service role
139
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
140
+ _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
126
141
  }
127
142
 
128
143
 
@@ -131,6 +146,13 @@ contract InstanceAuthorizationV3
131
146
  {
132
147
  IAccess.FunctionInfo[] storage functions;
133
148
 
149
+ // authorize accounting service role
150
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
151
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
152
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
153
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
154
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
155
+
134
156
  // authorize component service role
135
157
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
136
158
  _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
@@ -138,11 +160,7 @@ contract InstanceAuthorizationV3
138
160
  _authorize(functions, InstanceStore.createPool.selector, "createPool");
139
161
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
140
162
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
141
- _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
142
- _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
143
- _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
144
- _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
145
-
163
+
146
164
  // authorize distribution service role
147
165
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
148
166
  _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
@@ -174,7 +192,7 @@ contract InstanceAuthorizationV3
174
192
  _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
175
193
 
176
194
  // authorize product service role
177
- functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(PRODUCT()));
195
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
178
196
  _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
179
197
  _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
180
198
  _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
@@ -199,6 +217,7 @@ contract InstanceAuthorizationV3
199
217
  _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
200
218
  _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
201
219
  _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
220
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
202
221
  }
203
222
  }
204
223