@etherisc/gif-next 0.0.2-f1f3b2c-994 → 0.0.2-f2273b3-211

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