@etherisc/gif-next 0.0.2-f761c0d-394 → 0.0.2-f78c672-338

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 (547) hide show
  1. package/README.md +58 -9
  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 +203 -77
  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 +142 -44
  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 +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 +176 -451
  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 +125 -365
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +469 -283
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +151 -109
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -183
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +314 -86
  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 +589 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1431 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +164 -63
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +108 -106
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +201 -161
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +447 -144
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1026 -298
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +134 -269
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +640 -493
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -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 +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +139 -335
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +128 -126
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +115 -303
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +162 -387
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +331 -204
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +206 -29
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +143 -195
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -312
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +128 -370
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +653 -532
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +194 -178
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +100 -90
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +258 -396
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +250 -198
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +253 -306
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +123 -121
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  177. package/artifacts/contracts/product/Product.sol/Product.json +256 -394
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +370 -22
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +597 -80
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +351 -169
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  210. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +579 -495
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +143 -107
  216. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +547 -224
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +117 -126
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +104 -303
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  254. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
  275. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  277. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  278. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +122 -164
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +156 -110
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  296. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  298. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  300. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  302. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  304. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  306. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  310. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  312. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  314. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  316. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  318. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  320. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  322. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  324. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  328. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  330. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  332. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  337. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
  341. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  342. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  347. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  348. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  349. package/contracts/accounting/AccountingService.sol +262 -0
  350. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  351. package/contracts/accounting/IAccountingService.sol +45 -0
  352. package/contracts/authorization/AccessAdmin.sol +232 -134
  353. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  354. package/contracts/authorization/Authorization.sol +321 -202
  355. package/contracts/authorization/IAccess.sol +1 -0
  356. package/contracts/authorization/IAccessAdmin.sol +17 -10
  357. package/contracts/authorization/IAuthorization.sol +27 -7
  358. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  359. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  360. package/contracts/distribution/BasicDistribution.sol +18 -25
  361. package/contracts/distribution/BasicDistributionAuthorization.sol +26 -9
  362. package/contracts/distribution/Distribution.sol +41 -74
  363. package/contracts/distribution/DistributionService.sol +191 -108
  364. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  365. package/contracts/distribution/IDistributionComponent.sol +9 -14
  366. package/contracts/distribution/IDistributionService.sol +40 -22
  367. package/contracts/examples/fire/DamageLevel.sol +59 -0
  368. package/contracts/examples/fire/FirePool.sol +90 -0
  369. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  370. package/contracts/examples/fire/FireProduct.sol +437 -0
  371. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  372. package/contracts/examples/fire/FireUSD.sol +26 -0
  373. package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
  374. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  375. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  376. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  377. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  378. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  379. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  380. package/contracts/instance/BundleSet.sol +130 -0
  381. package/contracts/instance/IInstance.sol +25 -41
  382. package/contracts/instance/IInstanceService.sol +13 -33
  383. package/contracts/instance/Instance.sol +60 -67
  384. package/contracts/instance/InstanceAdmin.sol +258 -87
  385. package/contracts/instance/InstanceAuthorizationV3.sol +64 -53
  386. package/contracts/instance/InstanceReader.sol +288 -43
  387. package/contracts/instance/InstanceService.sol +129 -168
  388. package/contracts/instance/InstanceServiceManager.sol +8 -13
  389. package/contracts/instance/InstanceStore.sol +24 -2
  390. package/contracts/instance/RiskSet.sol +118 -0
  391. package/contracts/instance/base/ObjectCounter.sol +1 -2
  392. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  393. package/contracts/instance/base/ObjectSet.sol +77 -0
  394. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  395. package/contracts/instance/module/IBundle.sol +1 -1
  396. package/contracts/instance/module/IComponents.sol +14 -15
  397. package/contracts/instance/module/IDistribution.sol +5 -3
  398. package/contracts/instance/module/IPolicy.sol +26 -25
  399. package/contracts/instance/module/IRisk.sol +3 -0
  400. package/contracts/mock/Dip.sol +1 -1
  401. package/contracts/oracle/BasicOracle.sol +0 -1
  402. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  403. package/contracts/oracle/IOracleComponent.sol +2 -1
  404. package/contracts/oracle/IOracleService.sol +2 -1
  405. package/contracts/oracle/Oracle.sol +21 -22
  406. package/contracts/oracle/OracleService.sol +113 -81
  407. package/contracts/oracle/OracleServiceManager.sol +8 -11
  408. package/contracts/pool/BasicPool.sol +38 -27
  409. package/contracts/pool/BasicPoolAuthorization.sol +36 -9
  410. package/contracts/pool/BundleService.sol +204 -105
  411. package/contracts/pool/BundleServiceManager.sol +8 -11
  412. package/contracts/pool/IBundleService.sol +31 -22
  413. package/contracts/pool/IPoolComponent.sol +20 -10
  414. package/contracts/pool/IPoolService.sol +90 -75
  415. package/contracts/pool/Pool.sol +145 -111
  416. package/contracts/pool/PoolLib.sol +216 -0
  417. package/contracts/pool/PoolService.sol +546 -241
  418. package/contracts/pool/PoolServiceManager.sol +6 -9
  419. package/contracts/product/ApplicationService.sol +98 -78
  420. package/contracts/product/ApplicationServiceManager.sol +6 -6
  421. package/contracts/product/BasicProduct.sol +13 -44
  422. package/contracts/product/BasicProductAuthorization.sol +25 -9
  423. package/contracts/product/ClaimService.sol +365 -175
  424. package/contracts/product/ClaimServiceManager.sol +6 -6
  425. package/contracts/product/IApplicationService.sol +9 -2
  426. package/contracts/product/IClaimService.sol +44 -8
  427. package/contracts/product/IPolicyService.sol +53 -36
  428. package/contracts/product/IPricingService.sol +11 -10
  429. package/contracts/product/IProductComponent.sol +28 -5
  430. package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
  431. package/contracts/product/PolicyService.sol +476 -269
  432. package/contracts/product/PolicyServiceLib.sol +65 -0
  433. package/contracts/product/PolicyServiceManager.sol +6 -9
  434. package/contracts/product/PricingService.sol +71 -62
  435. package/contracts/product/PricingServiceManager.sol +6 -9
  436. package/contracts/product/Product.sol +169 -92
  437. package/contracts/product/RiskService.sol +154 -0
  438. package/contracts/product/RiskServiceManager.sol +39 -0
  439. package/contracts/registry/ChainNft.sol +72 -40
  440. package/contracts/registry/IRegistry.sol +74 -29
  441. package/contracts/registry/IRegistryService.sol +3 -10
  442. package/contracts/registry/IRelease.sol +26 -0
  443. package/contracts/registry/ITransferInterceptor.sol +1 -2
  444. package/contracts/registry/Registry.sol +368 -216
  445. package/contracts/registry/RegistryAdmin.sol +185 -196
  446. package/contracts/registry/RegistryService.sol +41 -66
  447. package/contracts/registry/RegistryServiceManager.sol +5 -5
  448. package/contracts/registry/ReleaseAdmin.sol +245 -0
  449. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  450. package/contracts/registry/ReleaseRegistry.sol +511 -0
  451. package/contracts/registry/ServiceAuthorizationV3.sol +99 -52
  452. package/contracts/registry/TokenRegistry.sol +8 -10
  453. package/contracts/shared/Component.sol +74 -128
  454. package/contracts/shared/ComponentService.sol +453 -342
  455. package/contracts/shared/ComponentServiceManager.sol +10 -7
  456. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  457. package/contracts/shared/ContractLib.sol +253 -0
  458. package/contracts/shared/IComponent.sol +8 -17
  459. package/contracts/shared/IComponentService.sol +49 -39
  460. package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
  461. package/contracts/shared/ILifecycle.sol +3 -1
  462. package/contracts/shared/INftOwnable.sol +2 -0
  463. package/contracts/shared/IPolicyHolder.sol +12 -22
  464. package/contracts/shared/IRegisterable.sol +23 -1
  465. package/contracts/shared/IService.sol +4 -6
  466. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  467. package/contracts/shared/InstanceLinkedComponent.sol +81 -35
  468. package/contracts/shared/KeyValueStore.sol +1 -1
  469. package/contracts/shared/Lifecycle.sol +15 -4
  470. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  471. package/contracts/shared/NftOwnable.sol +31 -11
  472. package/contracts/shared/PolicyHolder.sol +17 -57
  473. package/contracts/shared/Registerable.sol +55 -21
  474. package/contracts/shared/RegistryLinked.sol +9 -14
  475. package/contracts/shared/Service.sol +18 -36
  476. package/contracts/shared/TokenHandler.sol +309 -26
  477. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  478. package/contracts/staking/IStaking.sol +8 -11
  479. package/contracts/staking/IStakingService.sol +20 -8
  480. package/contracts/staking/StakeManagerLib.sol +19 -26
  481. package/contracts/staking/Staking.sol +86 -73
  482. package/contracts/staking/StakingManager.sol +10 -12
  483. package/contracts/staking/StakingReader.sol +24 -21
  484. package/contracts/staking/StakingService.sol +54 -35
  485. package/contracts/staking/StakingServiceManager.sol +8 -7
  486. package/contracts/staking/StakingStore.sol +12 -22
  487. package/contracts/staking/TargetManagerLib.sol +7 -3
  488. package/contracts/type/Amount.sol +27 -5
  489. package/contracts/type/Blocknumber.sol +7 -1
  490. package/contracts/type/ClaimId.sol +6 -1
  491. package/contracts/type/Key32.sol +2 -2
  492. package/contracts/type/Key32Set.sol +62 -0
  493. package/contracts/type/NftId.sol +7 -0
  494. package/contracts/type/ObjectType.sol +55 -27
  495. package/contracts/type/PayoutId.sol +10 -10
  496. package/contracts/type/Referral.sol +1 -0
  497. package/contracts/type/RiskId.sol +38 -6
  498. package/contracts/type/RoleId.sol +23 -15
  499. package/contracts/type/Seconds.sol +21 -1
  500. package/contracts/type/Selector.sol +5 -0
  501. package/contracts/type/StateId.sol +15 -1
  502. package/contracts/type/Timestamp.sol +10 -5
  503. package/contracts/type/UFixed.sol +35 -122
  504. package/contracts/type/Version.sol +18 -6
  505. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  506. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  507. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  508. package/package.json +7 -6
  509. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  510. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  511. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  512. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  513. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  514. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  515. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  516. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  517. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  519. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  520. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  521. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  522. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  523. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  524. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  525. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  526. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  527. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  528. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  529. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  530. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  531. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  532. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  533. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  534. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  535. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  536. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  537. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  538. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  539. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  540. package/contracts/instance/BundleManager.sol +0 -126
  541. package/contracts/instance/base/ObjectManager.sol +0 -79
  542. package/contracts/instance/module/IAccess.sol +0 -46
  543. package/contracts/product/ProductService.sol +0 -124
  544. package/contracts/product/ProductServiceManager.sol +0 -42
  545. package/contracts/registry/ReleaseManager.sol +0 -487
  546. package/contracts/shared/InitializableCustom.sol +0 -177
  547. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,20 +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 {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
6
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
11
7
  import {IRegistry} from "../registry/IRegistry.sol";
12
8
  import {IInstance} from "./IInstance.sol";
13
- import {IService} from "../shared/IService.sol";
14
- import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
15
- 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";
16
15
  import {Str, StrLib} from "../type/String.sol";
17
- import {VersionPart} from "../type/Version.sol";
16
+ import {TokenHandler} from "../shared/TokenHandler.sol";
17
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
18
18
 
19
19
 
20
20
  contract InstanceAdmin is
@@ -23,127 +23,145 @@ contract InstanceAdmin is
23
23
  string public constant INSTANCE_TARGET_NAME = "Instance";
24
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
26
- string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
26
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TAGET_NAME = "RiskSet";
27
28
 
28
29
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
29
30
 
31
+ error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
32
+ error ErrorInstanceAdminInstanceAlreadyLocked();
30
33
  error ErrorInstanceAdminNotRegistered(address target);
34
+
31
35
  error ErrorInstanceAdminAlreadyAuthorized(address target);
36
+ error ErrorInstanceAdminNotComponentRole(RoleId roleId);
37
+ error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
38
+ error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
39
+
32
40
  error ErrorInstanceAdminReleaseMismatch();
33
41
  error ErrorInstanceAdminExpectedTargetMissing(string targetName);
34
42
 
35
- IInstance _instance;
43
+ IInstance internal _instance;
36
44
  IRegistry internal _registry;
37
- uint64 _idNext;
45
+ uint64 internal _customIdNext;
38
46
 
39
- 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
+ }
40
59
 
41
60
  /// @dev Only used for master instance admin.
42
61
  /// Contracts created via constructor come with disabled initializers.
43
62
  constructor(
44
- IModuleAuthorization instanceAuthorization
45
- )
46
- AccessAdmin()
47
- {
48
- _instanceAuthorization = instanceAuthorization;
63
+ address instanceAuthorization
64
+ ) {
65
+ initialize(new AccessManagerCloneable());
66
+
67
+ _instanceAuthorization = IAuthorization(instanceAuthorization);
68
+
69
+ _disableInitializers();
49
70
  }
50
71
 
51
- /// @dev Initializes this instance admin with the provided instances authorization specification.
52
- /// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
53
- /// for the inststance authorizatios.
54
- /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
72
+
55
73
  function initialize(
56
- AccessManagerCloneable accessManager,
57
- IModuleAuthorization instanceAuthorization
74
+ AccessManagerCloneable clonedAccessManager,
75
+ IRegistry registry,
76
+ VersionPart release
58
77
  )
59
78
  external
60
- initializer()
79
+ initializer()
61
80
  {
62
- // create new access manager for this instance admin
63
- _initializeAuthority(address(accessManager));
81
+ __AccessAdmin_init(clonedAccessManager);
64
82
 
65
- // create basic instance independent setup
66
- _createAdminAndPublicRoles();
83
+ clonedAccessManager.completeSetup(
84
+ address(registry),
85
+ release);
67
86
 
68
- // store instance authorization specification
69
- _instanceAuthorization = IModuleAuthorization(instanceAuthorization);
87
+ _registry = registry;
70
88
  }
71
89
 
72
- function _checkTargetIsReadyForAuthorization(address target)
73
- internal
74
- view
75
- {
76
- if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
77
- revert ErrorInstanceAdminNotRegistered(target);
78
- }
79
-
80
- if (targetExists(target)) {
81
- revert ErrorInstanceAdminAlreadyAuthorized(target);
82
- }
83
- }
84
-
85
- /// @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.
86
92
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
87
- function initializeInstanceAuthorization(address instanceAddress)
93
+ function completeSetup(
94
+ address instance,
95
+ address authorization
96
+ )
88
97
  external
98
+ reinitializer(uint64(getRelease().toInt()))
99
+ onlyDeployer()
89
100
  {
90
- _checkTargetIsReadyForAuthorization(instanceAddress);
101
+ _components = 0;
102
+ _customIdNext = CUSTOM_ROLE_ID_MIN;
103
+ _instance = IInstance(instance);
104
+ _instanceAuthorization = IAuthorization(authorization);
91
105
 
92
- _idNext = CUSTOM_ROLE_ID_MIN;
93
- _instance = IInstance(instanceAddress);
94
- _registry = _instance.getRegistry();
106
+ _checkTargetIsReadyForAuthorization(instance);
95
107
 
96
108
  // check matching releases
97
- if (_instanceAuthorization.getRelease() != _instance.getMajorVersion()) {
109
+ if (_instanceAuthorization.getRelease() != getRelease()) {
98
110
  revert ErrorInstanceAdminReleaseMismatch();
99
111
  }
100
112
 
113
+ // create instance role and target
114
+ _setupInstance(instance);
115
+
101
116
  // add instance authorization
102
117
  _createRoles(_instanceAuthorization);
103
- _createModuleTargetsWithRoles();
104
- _createTargetAuthorizations(_instanceAuthorization);
105
118
 
106
- // grant component owner roles to instance owner
107
- _grantComponentOwnerRoles();
119
+ _setupInstanceHelperTargetsWithRoles();
120
+ _createTargetAuthorizations(_instanceAuthorization);
108
121
  }
109
122
 
110
123
 
111
124
  /// @dev Initializes the authorization for the specified component.
112
125
  /// Important: The component MUST be registered.
113
126
  function initializeComponentAuthorization(
114
- address componentAddress,
115
- IAuthorization authorization
127
+ IInstanceLinkedComponent component
116
128
  )
117
129
  external
130
+ restricted()
118
131
  {
119
- _checkTargetIsReadyForAuthorization(componentAddress);
132
+ // checks
133
+ _checkTargetIsReadyForAuthorization(address(component));
134
+
135
+ // setup target and role for component (including token handler)
136
+ _setupComponentAndTokenHandler(component);
120
137
 
121
- _createRoles(authorization);
138
+ // create other roles
139
+ IAuthorization authorization = component.getAuthorization();
140
+ _createRoles(authorization);
141
+ _createTargetAuthorizations(authorization);
142
+ }
122
143
 
123
- // create component target
144
+ // create instance role and target
145
+ function _setupInstance(address instance) internal {
146
+ // create instance role
147
+ RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
148
+ _instanceAuthorization.getMainTarget());
149
+
150
+ _createRole(
151
+ instanceRoleId,
152
+ _instanceAuthorization.getRoleInfo(instanceRoleId));
153
+
154
+ // create instance target
124
155
  _createTarget(
125
- componentAddress,
126
- authorization.getTargetName(),
156
+ instance,
157
+ _instanceAuthorization.getMainTargetName(),
127
158
  true, // checkAuthority
128
159
  false); // custom
129
160
 
161
+ // assign instance role to instance
130
162
  _grantRoleToAccount(
131
- authorization.getTargetRole(
132
- authorization.getTarget()),
133
- componentAddress);
134
-
135
- _createTargetAuthorizations(authorization);
136
- }
137
-
138
-
139
- function _grantComponentOwnerRoles()
140
- internal
141
- {
142
- address instanceOwner = _registry.ownerOf(_instance.getNftId());
143
- _grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
144
- _grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
145
- _grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
146
- _grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
163
+ instanceRoleId,
164
+ instance);
147
165
  }
148
166
 
149
167
  /// @dev Creates a custom role
@@ -165,32 +183,183 @@ contract InstanceAdmin is
165
183
  _grantRoleToAccount(roleId, account);
166
184
  }
167
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
+
168
215
  /// @dev Returns the instance authorization specification used to set up this instance admin.
169
216
  function getInstanceAuthorization()
170
217
  external
171
218
  view
172
- returns (IModuleAuthorization instanceAuthorizaion)
219
+ returns (IAuthorization instanceAuthorizaion)
173
220
  {
174
221
  return _instanceAuthorization;
175
222
  }
176
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
+
177
328
 
178
329
  function _createRoles(IAuthorization authorization)
179
330
  internal
180
331
  {
181
332
  RoleId[] memory roles = authorization.getRoles();
333
+ RoleId mainTargetRoleId = authorization.getTargetRole(
334
+ authorization.getMainTarget());
335
+
182
336
  RoleId roleId;
183
337
  RoleInfo memory roleInfo;
184
338
 
185
339
  for(uint256 i = 0; i < roles.length; i++) {
340
+
186
341
  roleId = roles[i];
187
- _createRole(
188
- roleId,
189
- authorization.getRoleInfo(roleId));
342
+
343
+ // skip main target role, create role if not exists
344
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
345
+ _createRole(
346
+ roleId,
347
+ authorization.getRoleInfo(roleId));
348
+ }
190
349
  }
191
350
  }
192
351
 
193
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
+
194
363
  function _createTargetAuthorizations(IAuthorization authorization)
195
364
  internal
196
365
  {
@@ -231,7 +400,7 @@ contract InstanceAdmin is
231
400
  _createTarget(
232
401
  target,
233
402
  targetName,
234
- 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)
235
404
  false);
236
405
 
237
406
  // assign target role if defined
@@ -241,14 +410,16 @@ contract InstanceAdmin is
241
410
  }
242
411
  }
243
412
 
244
- function _createModuleTargetsWithRoles()
413
+ function _setupInstanceHelperTargetsWithRoles()
245
414
  internal
246
415
  {
416
+ // _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
417
+
247
418
  // create module targets
248
- _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
249
419
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
250
420
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
251
- _checkAndCreateTargetWithRole(address(_instance.getBundleManager()), BUNDLE_MANAGER_TARGET_NAME);
421
+ _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
422
+ _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
252
423
 
253
424
  // create targets for services that need to access the module targets
254
425
  ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
@@ -2,75 +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
- ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
10
- } from "../../contracts/type/RoleId.sol";
11
-
12
- import {BundleManager} from "../instance/BundleManager.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";
18
- import {RoleId} from "../type/RoleId.sol";
19
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
14
+ import {Authorization} from "../authorization/Authorization.sol";
20
15
 
21
16
 
22
17
  contract InstanceAuthorizationV3
23
- is ModuleAuthorization
18
+ is Authorization
24
19
  {
25
20
 
21
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
22
+
26
23
  string public constant INSTANCE_TARGET_NAME = "Instance";
27
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
28
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
29
- string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
30
-
31
- string public constant INSTANCE_ROLE_NAME = "InstanceRole";
32
- string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
33
- string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
34
- string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
35
- string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
36
-
37
- constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
38
-
39
-
40
- function _setupRoles()
41
- internal
42
- override
43
- {
44
- _addGifRole(DISTRIBUTION_OWNER_ROLE(), DISTRIBUTION_OWNER_ROLE_NAME);
45
- _addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
46
- _addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
47
- _addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
48
- }
26
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
49
28
 
29
+ constructor()
30
+ Authorization(INSTANCE_TARGET_NAME, INSTANCE())
31
+ { }
50
32
 
51
33
  function _setupTargets()
52
34
  internal
53
35
  override
54
36
  {
55
- // instance target
56
- _addTargetWithRole(
57
- INSTANCE_TARGET_NAME,
58
- _getTargetRoleId(INSTANCE()),
59
- INSTANCE_ROLE_NAME);
60
-
61
37
  // instance supporting targets
62
38
  _addTarget(INSTANCE_STORE_TARGET_NAME);
63
39
  _addTarget(INSTANCE_ADMIN_TARGET_NAME);
64
- _addTarget(BUNDLE_MANAGER_TARGET_NAME);
40
+ _addTarget(BUNDLE_SET_TARGET_NAME);
41
+ _addTarget(RISK_SET_TARGET_NAME);
65
42
 
66
43
  // service targets relevant to instance
67
44
  _addServiceTargetWithRole(INSTANCE());
45
+ _addServiceTargetWithRole(ACCOUNTING());
68
46
  _addServiceTargetWithRole(COMPONENT());
69
47
  _addServiceTargetWithRole(DISTRIBUTION());
70
48
  _addServiceTargetWithRole(ORACLE());
71
49
  _addServiceTargetWithRole(POOL());
72
50
  _addServiceTargetWithRole(BUNDLE());
73
- _addServiceTargetWithRole(PRODUCT());
51
+ _addServiceTargetWithRole(RISK());
74
52
  _addServiceTargetWithRole(APPLICATION());
75
53
  _addServiceTargetWithRole(POLICY());
76
54
  _addServiceTargetWithRole(CLAIM());
@@ -84,22 +62,43 @@ contract InstanceAuthorizationV3
84
62
  _setupInstanceAuthorization();
85
63
  _setupInstanceAdminAuthorization();
86
64
  _setupInstanceStoreAuthorization();
87
- _setupBundleManagerAuthorization();
65
+ _setupBundleSetAuthorization();
66
+ _setUpRiskSetAuthorization();
88
67
  }
89
68
 
90
69
 
91
- function _setupBundleManagerAuthorization()
70
+ function _setupBundleSetAuthorization()
92
71
  internal
93
72
  {
94
73
  IAccess.FunctionInfo[] storage functions;
95
74
 
96
75
  // authorize bundle service role
97
- functions = _authorizeForTarget(BUNDLE_MANAGER_TARGET_NAME, getServiceRole(BUNDLE()));
98
- _authorize(functions, BundleManager.linkPolicy.selector, "linkPolicy");
99
- _authorize(functions, BundleManager.unlinkPolicy.selector, "unlinkPolicy");
100
- _authorize(functions, BundleManager.add.selector, "add");
101
- _authorize(functions, BundleManager.lock.selector, "lock");
102
- _authorize(functions, BundleManager.unlock.selector, "unlock");
76
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
77
+ _authorize(functions, BundleSet.add.selector, "add");
78
+ _authorize(functions, BundleSet.lock.selector, "lock");
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");
103
102
  }
104
103
 
105
104
 
@@ -120,11 +119,13 @@ contract InstanceAuthorizationV3
120
119
  IAccess.FunctionInfo[] storage functions;
121
120
 
122
121
  // authorize instance role
123
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _getTargetRoleId(INSTANCE()));
122
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getComponentRole(INSTANCE()));
124
123
  _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
125
124
 
126
- // authorize instance service role
127
- // 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");
128
129
  }
129
130
 
130
131
 
@@ -133,6 +134,13 @@ contract InstanceAuthorizationV3
133
134
  {
134
135
  IAccess.FunctionInfo[] storage functions;
135
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
+
136
144
  // authorize component service role
137
145
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
138
146
  _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
@@ -140,9 +148,9 @@ contract InstanceAuthorizationV3
140
148
  _authorize(functions, InstanceStore.createPool.selector, "createPool");
141
149
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
142
150
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
143
- _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
144
- _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
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");
@@ -189,6 +197,8 @@ contract InstanceAuthorizationV3
189
197
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
190
198
  _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
191
199
  _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
200
+ _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
201
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
192
202
 
193
203
  // authorize claim service role
194
204
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
@@ -197,6 +207,7 @@ contract InstanceAuthorizationV3
197
207
  _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
198
208
  _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
199
209
  _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
210
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
200
211
  }
201
212
  }
202
213