@etherisc/gif-next 0.0.2-ebc6253-419 → 0.0.2-ec19f94-589

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 (535) hide show
  1. package/README.md +85 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  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 +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +190 -446
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +109 -330
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +691 -343
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +231 -123
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -165
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +472 -101
  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 +1480 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2045 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1423 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2471 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +560 -66
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +377 -58
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +568 -166
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1688 -735
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +390 -228
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +142 -104
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +955 -640
  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 +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +142 -322
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +110 -114
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +118 -274
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +176 -96
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +158 -314
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +340 -352
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +177 -125
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +230 -96
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +148 -163
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +529 -262
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +146 -313
  135. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +752 -508
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +217 -109
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +357 -173
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +164 -96
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +301 -396
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +464 -243
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +194 -122
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +296 -9
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +333 -17
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +300 -64
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +264 -207
  163. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  164. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +196 -163
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +419 -291
  167. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +192 -120
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +164 -136
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  176. package/artifacts/contracts/product/Product.sol/Product.json +272 -367
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +780 -0
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +356 -45
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +562 -106
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +795 -394
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +140 -88
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Component.sol/Component.json +100 -227
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +474 -619
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +179 -129
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +93 -68
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +110 -114
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  233. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  246. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -273
  248. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  250. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  252. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  254. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  256. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  258. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  260. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  262. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  268. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  270. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +342 -108
  272. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +184 -23
  274. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/Staking.sol/Staking.json +444 -331
  276. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  278. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  280. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +179 -98
  282. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
  284. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -171
  286. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +157 -93
  288. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +205 -150
  290. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +91 -50
  292. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  293. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  295. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  298. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  300. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  302. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  304. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  305. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  306. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  308. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  312. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  314. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  316. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  330. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  334. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  336. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  338. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  340. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +117 -78
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  346. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  347. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  348. package/contracts/accounting/AccountingService.sol +274 -0
  349. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  350. package/contracts/accounting/IAccountingService.sol +47 -0
  351. package/contracts/authorization/AccessAdmin.sol +456 -267
  352. package/contracts/authorization/AccessAdminLib.sol +396 -0
  353. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  354. package/contracts/authorization/Authorization.sol +159 -207
  355. package/contracts/authorization/IAccess.sol +25 -6
  356. package/contracts/authorization/IAccessAdmin.sol +87 -79
  357. package/contracts/authorization/IAuthorization.sol +9 -36
  358. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  359. package/contracts/authorization/ServiceAuthorization.sol +254 -24
  360. package/contracts/distribution/BasicDistribution.sol +20 -17
  361. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  362. package/contracts/distribution/Distribution.sol +42 -90
  363. package/contracts/distribution/DistributionService.sol +242 -116
  364. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  365. package/contracts/distribution/IDistributionComponent.sol +4 -11
  366. package/contracts/distribution/IDistributionService.sol +46 -26
  367. package/contracts/examples/fire/DamageLevel.sol +59 -0
  368. package/contracts/examples/fire/FirePool.sol +86 -0
  369. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  370. package/contracts/examples/fire/FireProduct.sol +433 -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 +81 -0
  374. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  375. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  376. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  377. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  378. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  379. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  380. package/contracts/instance/BundleSet.sol +42 -38
  381. package/contracts/instance/IInstance.sol +101 -42
  382. package/contracts/instance/IInstanceService.sol +56 -32
  383. package/contracts/instance/Instance.sol +189 -97
  384. package/contracts/instance/InstanceAdmin.sol +276 -178
  385. package/contracts/instance/InstanceAuthorizationV3.sol +120 -58
  386. package/contracts/instance/InstanceReader.sol +477 -253
  387. package/contracts/instance/InstanceService.sol +275 -243
  388. package/contracts/instance/InstanceServiceManager.sol +6 -7
  389. package/contracts/instance/InstanceStore.sol +23 -2
  390. package/contracts/instance/RiskSet.sol +118 -0
  391. package/contracts/instance/base/BalanceStore.sol +3 -5
  392. package/contracts/instance/base/ObjectCounter.sol +1 -2
  393. package/contracts/instance/base/ObjectLifecycle.sol +10 -2
  394. package/contracts/instance/base/ObjectSet.sol +31 -33
  395. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  396. package/contracts/instance/module/IBundle.sol +6 -5
  397. package/contracts/instance/module/IComponents.sol +29 -13
  398. package/contracts/instance/module/IDistribution.sol +21 -8
  399. package/contracts/instance/module/IPolicy.sol +49 -28
  400. package/contracts/instance/module/IRisk.sol +5 -0
  401. package/contracts/oracle/BasicOracle.sol +1 -4
  402. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  403. package/contracts/oracle/IOracle.sol +9 -4
  404. package/contracts/oracle/IOracleService.sol +2 -1
  405. package/contracts/oracle/Oracle.sol +7 -19
  406. package/contracts/oracle/OracleService.sol +117 -85
  407. package/contracts/oracle/OracleServiceManager.sol +6 -6
  408. package/contracts/pool/BasicPool.sol +32 -25
  409. package/contracts/pool/BasicPoolAuthorization.sol +33 -9
  410. package/contracts/pool/BundleService.sol +113 -143
  411. package/contracts/pool/BundleServiceManager.sol +6 -6
  412. package/contracts/pool/IBundleService.sol +24 -37
  413. package/contracts/pool/IPoolComponent.sol +19 -15
  414. package/contracts/pool/IPoolService.sol +93 -70
  415. package/contracts/pool/Pool.sol +139 -124
  416. package/contracts/pool/PoolLib.sol +341 -0
  417. package/contracts/pool/PoolService.sol +376 -280
  418. package/contracts/pool/PoolServiceManager.sol +4 -4
  419. package/contracts/product/ApplicationService.sol +111 -34
  420. package/contracts/product/ApplicationServiceManager.sol +4 -4
  421. package/contracts/product/BasicProduct.sol +10 -13
  422. package/contracts/product/BasicProductAuthorization.sol +32 -12
  423. package/contracts/product/ClaimService.sol +382 -157
  424. package/contracts/product/ClaimServiceManager.sol +4 -4
  425. package/contracts/product/IApplicationService.sol +28 -3
  426. package/contracts/product/IClaimService.sol +43 -8
  427. package/contracts/product/IPolicyService.sol +47 -29
  428. package/contracts/product/IPricingService.sol +11 -10
  429. package/contracts/product/IProductComponent.sol +27 -5
  430. package/contracts/product/IRiskService.sol +37 -0
  431. package/contracts/product/PolicyService.sol +374 -315
  432. package/contracts/product/PolicyServiceLib.sol +139 -0
  433. package/contracts/product/PolicyServiceManager.sol +4 -4
  434. package/contracts/product/PricingService.sol +85 -83
  435. package/contracts/product/PricingServiceManager.sol +4 -4
  436. package/contracts/product/Product.sol +154 -95
  437. package/contracts/product/RiskService.sol +163 -0
  438. package/contracts/product/RiskServiceManager.sol +39 -0
  439. package/contracts/registry/ChainNft.sol +72 -40
  440. package/contracts/registry/IRegistry.sol +70 -29
  441. package/contracts/registry/IRegistryService.sol +5 -12
  442. package/contracts/registry/IRelease.sol +29 -0
  443. package/contracts/registry/ITransferInterceptor.sol +1 -2
  444. package/contracts/registry/Registry.sol +364 -204
  445. package/contracts/registry/RegistryAdmin.sol +110 -296
  446. package/contracts/registry/RegistryAuthorization.sol +284 -0
  447. package/contracts/registry/RegistryService.sol +38 -49
  448. package/contracts/registry/RegistryServiceManager.sol +3 -3
  449. package/contracts/registry/ReleaseAdmin.sol +195 -0
  450. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  451. package/contracts/registry/ReleaseRegistry.sol +275 -240
  452. package/contracts/registry/ServiceAuthorizationV3.sol +202 -57
  453. package/contracts/registry/TokenRegistry.sol +12 -13
  454. package/contracts/shared/Component.sol +66 -124
  455. package/contracts/shared/ComponentService.sol +413 -375
  456. package/contracts/shared/ComponentServiceManager.sol +8 -5
  457. package/contracts/shared/ContractLib.sol +311 -0
  458. package/contracts/shared/IComponent.sol +6 -18
  459. package/contracts/shared/IComponentService.sol +43 -40
  460. package/contracts/shared/IInstanceLinkedComponent.sol +2 -28
  461. package/contracts/shared/ILifecycle.sol +3 -1
  462. package/contracts/shared/INftOwnable.sol +4 -0
  463. package/contracts/shared/IPolicyHolder.sol +12 -22
  464. package/contracts/shared/IRegisterable.sol +22 -1
  465. package/contracts/shared/IService.sol +3 -5
  466. package/contracts/shared/InitializableERC165.sol +10 -2
  467. package/contracts/shared/InstanceLinkedComponent.sol +72 -50
  468. package/contracts/shared/KeyValueStore.sol +1 -1
  469. package/contracts/shared/Lifecycle.sol +15 -4
  470. package/contracts/shared/NftOwnable.sol +31 -9
  471. package/contracts/shared/PolicyHolder.sol +18 -54
  472. package/contracts/shared/Registerable.sol +52 -21
  473. package/contracts/shared/RegistryLinked.sol +9 -14
  474. package/contracts/shared/Service.sol +20 -35
  475. package/contracts/shared/TokenHandler.sol +275 -72
  476. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  477. package/contracts/staking/IStaking.sol +48 -20
  478. package/contracts/staking/IStakingService.sol +21 -11
  479. package/contracts/staking/Staking.sol +196 -88
  480. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +96 -21
  481. package/contracts/staking/StakingManager.sol +8 -6
  482. package/contracts/staking/StakingReader.sol +40 -24
  483. package/contracts/staking/StakingService.sol +88 -27
  484. package/contracts/staking/StakingServiceManager.sol +6 -5
  485. package/contracts/staking/StakingStore.sol +3 -2
  486. package/contracts/staking/TargetManagerLib.sol +8 -4
  487. package/contracts/type/Amount.sol +15 -0
  488. package/contracts/type/ClaimId.sol +6 -1
  489. package/contracts/type/Fee.sol +8 -8
  490. package/contracts/type/Key32.sol +2 -2
  491. package/contracts/type/Key32Set.sol +62 -0
  492. package/contracts/type/NftId.sol +7 -0
  493. package/contracts/type/ObjectType.sol +73 -37
  494. package/contracts/type/PayoutId.sol +10 -10
  495. package/contracts/type/RiskId.sol +38 -6
  496. package/contracts/type/RoleId.sol +61 -55
  497. package/contracts/type/Seconds.sol +12 -0
  498. package/contracts/type/Selector.sol +5 -0
  499. package/contracts/type/StateId.sol +15 -1
  500. package/contracts/type/String.sol +12 -0
  501. package/contracts/type/Timestamp.sol +0 -5
  502. package/contracts/type/UFixed.sol +37 -126
  503. package/contracts/type/Version.sol +54 -5
  504. package/contracts/upgradeability/IVersionable.sol +3 -0
  505. package/contracts/upgradeability/ProxyManager.sol +93 -45
  506. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
  507. package/contracts/upgradeability/Versionable.sol +8 -5
  508. package/package.json +5 -4
  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/module/IAccess.sol/IAccess.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  515. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  516. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  517. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  518. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  519. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  520. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  521. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  522. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  523. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  524. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  525. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -387
  526. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  527. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  528. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  529. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  530. package/contracts/instance/module/IAccess.sol +0 -46
  531. package/contracts/product/IProductService.sol +0 -34
  532. package/contracts/product/ProductService.sol +0 -99
  533. package/contracts/product/ProductServiceManager.sol +0 -39
  534. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  535. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,37 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
4
  import {Amount, AmountLib} from "../type/Amount.sol";
7
5
  import {ClaimId} from "../type/ClaimId.sol";
8
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
- import {Fee, FeeLib} from "../type/Fee.sol";
10
- import {IRisk} from "../instance/module/IRisk.sol";
6
+ import {Fee} from "../type/Fee.sol";
11
7
  import {IApplicationService} from "./IApplicationService.sol";
12
8
  import {IAuthorization} from "../authorization/IAuthorization.sol";
13
9
  import {IComponentService} from "../shared/IComponentService.sol";
10
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
14
11
  import {IPolicyService} from "./IPolicyService.sol";
15
- import {IProductService} from "./IProductService.sol";
12
+ import {IRiskService} from "./IRiskService.sol";
16
13
  import {IClaimService} from "./IClaimService.sol";
17
14
  import {IPricingService} from "./IPricingService.sol";
18
15
  import {IProductComponent} from "./IProductComponent.sol";
19
- import {NftId, NftIdLib} from "../type/NftId.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
20
18
  import {PayoutId} from "../type/PayoutId.sol";
21
- import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
19
+ import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
22
20
  import {ReferralId} from "../type/Referral.sol";
23
- import {RiskId, RiskIdLib} from "../type/RiskId.sol";
21
+ import {RiskId} from "../type/RiskId.sol";
24
22
  import {Seconds} from "../type/Seconds.sol";
25
23
  import {StateId} from "../type/StateId.sol";
26
24
  import {Timestamp} from "../type/Timestamp.sol";
27
25
 
28
- import {TokenHandler} from "../shared/TokenHandler.sol";
29
-
30
- import {InstanceReader} from "../instance/InstanceReader.sol";
31
26
  import {IPolicy} from "../instance/module/IPolicy.sol";
32
27
  import {IComponents} from "../instance/module/IComponents.sol";
33
- import {Pool} from "../pool/Pool.sol";
34
- import {Distribution} from "../distribution/Distribution.sol";
35
28
 
36
29
  abstract contract Product is
37
30
  InstanceLinkedComponent,
@@ -41,16 +34,39 @@ abstract contract Product is
41
34
  bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
42
35
 
43
36
  struct ProductStorage {
44
- IProductService _productService;
37
+ IComponents.ProductInfo _productInfo;
38
+ IComponents.FeeInfo _feeInfo;
39
+ IComponentService _componentService;
40
+ IRiskService _riskService;
45
41
  IApplicationService _applicationService;
46
42
  IPolicyService _policyService;
47
43
  IClaimService _claimService;
48
44
  IPricingService _pricingService;
49
- IComponentService _componentService;
50
- NftId _poolNftId;
51
- NftId _distributionNftId;
52
- Pool _pool;
53
- Distribution _distribution;
45
+ }
46
+
47
+
48
+ function registerComponent(address component)
49
+ external
50
+ virtual
51
+ restricted()
52
+ onlyOwner()
53
+ returns (NftId componentNftId)
54
+ {
55
+ return _getProductStorage()._componentService.registerComponent(component);
56
+ }
57
+
58
+
59
+ function processFundedClaim(
60
+ NftId policyNftId,
61
+ ClaimId claimId,
62
+ Amount availableAmount
63
+ )
64
+ external
65
+ virtual
66
+ restricted() // pool service role
67
+ onlyNftOfType(policyNftId, POLICY())
68
+ {
69
+ // default implementation does nothing
54
70
  }
55
71
 
56
72
 
@@ -64,10 +80,12 @@ abstract contract Product is
64
80
  )
65
81
  public
66
82
  view
83
+ virtual
67
84
  override
85
+ onlyNftOfType(bundleNftId, BUNDLE())
68
86
  returns (Amount premiumAmount)
69
87
  {
70
- IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
88
+ IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
71
89
  getNftId(),
72
90
  riskId,
73
91
  sumInsuredAmount,
@@ -77,14 +95,14 @@ abstract contract Product is
77
95
  referralId
78
96
  );
79
97
 
80
- return AmountLib.toAmount(premium.premiumAmount);
98
+ return premium.premiumAmount;
81
99
  }
82
100
 
83
101
  function calculateNetPremium(
84
102
  Amount sumInsuredAmount,
85
- RiskId riskId,
86
- Seconds lifetime,
87
- bytes memory applicationData
103
+ RiskId,
104
+ Seconds,
105
+ bytes memory
88
106
  )
89
107
  external
90
108
  view
@@ -96,56 +114,33 @@ abstract contract Product is
96
114
  }
97
115
 
98
116
 
99
- function register()
100
- external
101
- virtual
102
- onlyOwner()
103
- {
104
- _getProductStorage()._componentService.registerProduct();
105
- _approveTokenHandler(type(uint256).max);
106
- }
107
-
108
-
109
117
  function getInitialProductInfo()
110
118
  public
111
119
  virtual
112
120
  view
113
121
  returns (IComponents.ProductInfo memory poolInfo)
114
122
  {
115
- ProductStorage storage $ = _getProductStorage();
116
-
117
- return IComponents.ProductInfo({
118
- distributionNftId: $._distributionNftId,
119
- poolNftId: $._poolNftId,
120
- productFee: FeeLib.zero(),
121
- processingFee: FeeLib.zero(),
122
- distributionFee: FeeLib.zero(),
123
- minDistributionOwnerFee: FeeLib.zero(),
124
- poolFee: FeeLib.zero(),
125
- stakingFee: FeeLib.zero(),
126
- performanceFee: FeeLib.zero()
127
- });
123
+ return _getProductStorage()._productInfo;
128
124
  }
129
125
 
130
- function getPoolNftId() external view override returns (NftId poolNftId) {
131
- return getRegistry().getNftId(address(_getProductStorage()._pool));
126
+ function getInitialFeeInfo()
127
+ public
128
+ virtual
129
+ view
130
+ returns (IComponents.FeeInfo memory feeInfo)
131
+ {
132
+ return _getProductStorage()._feeInfo;
132
133
  }
133
134
 
134
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
135
- return getRegistry().getNftId(address(_getProductStorage()._distribution));
136
- }
137
135
 
138
136
  function _initializeProduct(
139
137
  address registry,
140
138
  NftId instanceNftId,
139
+ string memory name,
140
+ IComponents.ProductInfo memory productInfo,
141
+ IComponents.FeeInfo memory feeInfo,
141
142
  IAuthorization authorization,
142
143
  address initialOwner,
143
- string memory name,
144
- address token,
145
- bool isInterceptor,
146
- address pool,
147
- address distribution,
148
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
149
144
  bytes memory componentData // writeonly data that will saved in the object info record of the registry
150
145
  )
151
146
  internal
@@ -156,29 +151,23 @@ abstract contract Product is
156
151
  registry,
157
152
  instanceNftId,
158
153
  name,
159
- token,
160
154
  PRODUCT(),
161
155
  authorization,
162
- isInterceptor,
156
+ productInfo.isInterceptingPolicyTransfers,
163
157
  initialOwner,
164
- registryData,
165
158
  componentData);
166
159
 
167
160
  ProductStorage storage $ = _getProductStorage();
168
- // TODO add validation
169
- // TODO refactor to go via registry ?
170
- $._productService = IProductService(_getServiceAddress(PRODUCT()));
161
+ $._productInfo = productInfo;
162
+ $._feeInfo = feeInfo;
163
+ $._riskService = IRiskService(_getServiceAddress(RISK()));
171
164
  $._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
172
165
  $._policyService = IPolicyService(_getServiceAddress(POLICY()));
173
166
  $._claimService = IClaimService(_getServiceAddress(CLAIM()));
174
167
  $._pricingService = IPricingService(_getServiceAddress(PRICE()));
175
168
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
176
- $._pool = Pool(pool);
177
- $._distribution = Distribution(distribution);
178
- $._poolNftId = getRegistry().getNftId(pool);
179
- $._distributionNftId = getRegistry().getNftId(distribution);
180
169
 
181
- registerInterface(type(IProductComponent).interfaceId);
170
+ _registerInterface(type(IProductComponent).interfaceId);
182
171
  }
183
172
 
184
173
 
@@ -194,10 +183,14 @@ abstract contract Product is
194
183
 
195
184
 
196
185
  function _createRisk(
197
- RiskId id,
186
+ bytes32 id,
198
187
  bytes memory data
199
- ) internal {
200
- _getProductService().createRisk(
188
+ )
189
+ internal
190
+ virtual
191
+ returns (RiskId riskId)
192
+ {
193
+ return _getProductStorage()._riskService.createRisk(
201
194
  id,
202
195
  data
203
196
  );
@@ -206,8 +199,11 @@ abstract contract Product is
206
199
  function _updateRisk(
207
200
  RiskId id,
208
201
  bytes memory data
209
- ) internal {
210
- _getProductService().updateRisk(
202
+ )
203
+ internal
204
+ virtual
205
+ {
206
+ _getProductStorage()._riskService.updateRisk(
211
207
  id,
212
208
  data
213
209
  );
@@ -216,19 +212,17 @@ abstract contract Product is
216
212
  function _updateRiskState(
217
213
  RiskId id,
218
214
  StateId state
219
- ) internal {
220
- _getProductService().updateRiskState(
215
+ )
216
+ internal
217
+ virtual
218
+ {
219
+ _getProductStorage()._riskService.updateRiskState(
221
220
  id,
222
221
  state
223
222
  );
224
223
  }
225
224
 
226
225
 
227
- function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
228
- return getInstance().getInstanceReader().getRiskInfo(id);
229
- }
230
-
231
-
232
226
  function _createApplication(
233
227
  address applicationOwner,
234
228
  RiskId riskId,
@@ -240,6 +234,7 @@ abstract contract Product is
240
234
  bytes memory applicationData
241
235
  )
242
236
  internal
237
+ virtual
243
238
  returns (NftId applicationNftId)
244
239
  {
245
240
  return _getProductStorage()._applicationService.create(
@@ -256,21 +251,24 @@ abstract contract Product is
256
251
 
257
252
  function _createPolicy(
258
253
  NftId applicationNftId,
259
- bool requirePremiumPayment,
260
- Timestamp activateAt
254
+ Timestamp activateAt,
255
+ Amount maxPremiumAmount
261
256
  )
262
257
  internal
258
+ virtual
259
+ returns (Amount premiumAmount)
263
260
  {
264
- _getProductStorage()._policyService.createPolicy(
261
+ premiumAmount = _getProductStorage()._policyService.createPolicy(
265
262
  applicationNftId,
266
- requirePremiumPayment,
267
- activateAt);
263
+ activateAt,
264
+ maxPremiumAmount);
268
265
  }
269
266
 
270
267
  function _decline(
271
268
  NftId policyNftId
272
269
  )
273
270
  internal
271
+ virtual
274
272
  {
275
273
  _getProductStorage()._policyService.decline(
276
274
  policyNftId);
@@ -281,16 +279,33 @@ abstract contract Product is
281
279
  Timestamp expireAt
282
280
  )
283
281
  internal
282
+ virtual
284
283
  returns (Timestamp expiredAt)
285
284
  {
286
285
  expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
287
286
  }
288
287
 
288
+ /// @dev adjust the activation date of the policy.
289
+ /// The policy must already have an activation date set.
290
+ /// Allowed values are from the current blocktime to the expiration date of the policy.
291
+ function _adjustActivation(
292
+ NftId policyNftId,
293
+ Timestamp activateAt
294
+ )
295
+ internal
296
+ virtual
297
+ {
298
+ _getProductStorage()._policyService.adjustActivation(
299
+ policyNftId,
300
+ activateAt);
301
+ }
302
+
289
303
  function _collectPremium(
290
304
  NftId policyNftId,
291
305
  Timestamp activateAt
292
306
  )
293
307
  internal
308
+ virtual
294
309
  {
295
310
  _getProductStorage()._policyService.collectPremium(
296
311
  policyNftId,
@@ -302,6 +317,7 @@ abstract contract Product is
302
317
  Timestamp activateAt
303
318
  )
304
319
  internal
320
+ virtual
305
321
  {
306
322
  _getProductStorage()._policyService.activate(
307
323
  policyNftId,
@@ -312,6 +328,7 @@ abstract contract Product is
312
328
  NftId policyNftId
313
329
  )
314
330
  internal
331
+ virtual
315
332
  {
316
333
  _getProductStorage()._policyService.close(
317
334
  policyNftId);
@@ -323,6 +340,7 @@ abstract contract Product is
323
340
  bytes memory claimData
324
341
  )
325
342
  internal
343
+ virtual
326
344
  returns(ClaimId)
327
345
  {
328
346
  return _getProductStorage()._claimService.submit(
@@ -331,6 +349,18 @@ abstract contract Product is
331
349
  claimData);
332
350
  }
333
351
 
352
+ function _revokeClaim(
353
+ NftId policyNftId,
354
+ ClaimId claimId
355
+ )
356
+ internal
357
+ virtual
358
+ {
359
+ _getProductStorage()._claimService.revoke(
360
+ policyNftId,
361
+ claimId);
362
+ }
363
+
334
364
  function _confirmClaim(
335
365
  NftId policyNftId,
336
366
  ClaimId claimId,
@@ -338,6 +368,7 @@ abstract contract Product is
338
368
  bytes memory data
339
369
  )
340
370
  internal
371
+ virtual
341
372
  {
342
373
  _getProductStorage()._claimService.confirm(
343
374
  policyNftId,
@@ -352,6 +383,7 @@ abstract contract Product is
352
383
  bytes memory data
353
384
  )
354
385
  internal
386
+ virtual
355
387
  {
356
388
  _getProductStorage()._claimService.decline(
357
389
  policyNftId,
@@ -364,6 +396,7 @@ abstract contract Product is
364
396
  ClaimId claimId
365
397
  )
366
398
  internal
399
+ virtual
367
400
  {
368
401
  _getProductStorage()._claimService.close(
369
402
  policyNftId,
@@ -377,6 +410,7 @@ abstract contract Product is
377
410
  bytes memory data
378
411
  )
379
412
  internal
413
+ virtual
380
414
  returns (PayoutId)
381
415
  {
382
416
  return _getProductStorage()._claimService.createPayout(
@@ -386,28 +420,53 @@ abstract contract Product is
386
420
  data);
387
421
  }
388
422
 
423
+ function _createPayoutForBeneficiary(
424
+ NftId policyNftId,
425
+ ClaimId claimId,
426
+ Amount amount,
427
+ address beneficiary,
428
+ bytes memory data
429
+ )
430
+ internal
431
+ virtual
432
+ returns (PayoutId)
433
+ {
434
+ return _getProductStorage()._claimService.createPayoutForBeneficiary(
435
+ policyNftId,
436
+ claimId,
437
+ amount,
438
+ beneficiary,
439
+ data);
440
+ }
441
+
389
442
  function _processPayout(
390
443
  NftId policyNftId,
391
444
  PayoutId payoutId
392
445
  )
393
446
  internal
447
+ virtual
448
+ returns (Amount netPayoutAmount, Amount processingFeeAmount)
394
449
  {
395
- _getProductStorage()._claimService.processPayout(
450
+ (netPayoutAmount, processingFeeAmount) = _getProductStorage()._claimService.processPayout(
396
451
  policyNftId,
397
452
  payoutId);
398
453
  }
399
454
 
400
- function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
401
- return RiskIdLib.toRiskId(riskName);
455
+ function _cancelPayout(
456
+ NftId policyNftId,
457
+ PayoutId payoutId
458
+ )
459
+ internal
460
+ virtual
461
+ {
462
+ _getProductStorage()._claimService.cancelPayout(
463
+ policyNftId,
464
+ payoutId);
402
465
  }
403
466
 
404
- function _getProductStorage() private pure returns (ProductStorage storage $) {
467
+ function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
405
468
  assembly {
406
469
  $.slot := PRODUCT_STORAGE_LOCATION_V1
407
470
  }
408
471
  }
409
-
410
- function _getProductService() internal view returns (IProductService) {
411
- return _getProductStorage()._productService;
412
- }
413
472
  }
@@ -0,0 +1,163 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IInstance} from "../instance/IInstance.sol";
5
+ import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IRisk} from "../instance/module/IRisk.sol";
7
+ import {IRiskService} from "./IRiskService.sol";
8
+
9
+ import {ContractLib} from "../shared/ContractLib.sol";
10
+ import {InstanceReader} from "../instance/InstanceReader.sol";
11
+ import {ObjectType, COMPONENT, PRODUCT, RISK} from "../type/ObjectType.sol";
12
+ import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
13
+ import {NftId} from "../type/NftId.sol";
14
+ import {RiskId, RiskIdLib} from "../type/RiskId.sol";
15
+ import {StateId} from "../type/StateId.sol";
16
+ import {RiskSet} from "../instance/RiskSet.sol";
17
+ import {Service} from "../shared/Service.sol";
18
+ import {TimestampLib} from "../type/Timestamp.sol";
19
+
20
+ contract RiskService is
21
+ Service,
22
+ IRiskService
23
+ {
24
+
25
+ function _initialize(
26
+ address owner,
27
+ bytes memory data
28
+ )
29
+ internal
30
+ initializer
31
+ virtual override
32
+ {
33
+ (
34
+ address authority,
35
+ address registry
36
+ ) = abi.decode(data, (address, address));
37
+
38
+ __Service_init(authority, registry, owner);
39
+ _registerInterface(type(IRiskService).interfaceId);
40
+ }
41
+
42
+ /// @inheritdoc IRiskService
43
+ function createRisk(
44
+ bytes32 id,
45
+ bytes memory data
46
+ )
47
+ external
48
+ virtual
49
+ restricted()
50
+ returns (RiskId riskId)
51
+ {
52
+ // checks
53
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
54
+
55
+ // effects
56
+ riskId = RiskIdLib.toRiskId(productNftId, id);
57
+ IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
58
+ productNftId: productNftId,
59
+ createdAt: TimestampLib.blockTimestamp(),
60
+ data: data});
61
+
62
+ instance.getInstanceStore().createRisk(
63
+ riskId,
64
+ riskInfo
65
+ );
66
+
67
+ // add risk to RiskSet
68
+ RiskSet riskSet = instance.getRiskSet();
69
+ riskSet.add(riskId);
70
+
71
+ emit LogRiskServiceRiskCreated(productNftId, riskId);
72
+ }
73
+
74
+
75
+ function updateRisk(
76
+ RiskId riskId,
77
+ bytes memory data
78
+ )
79
+ external
80
+ virtual
81
+ restricted()
82
+ {
83
+ // checks
84
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
85
+
86
+ // effects
87
+ InstanceReader instanceReader = instance.getInstanceReader();
88
+ IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
89
+
90
+ if (riskInfo.productNftId != productNftId) {
91
+ revert ErrorRiskServiceRiskProductMismatch(riskId, riskInfo.productNftId, productNftId);
92
+ }
93
+
94
+ riskInfo.data = data;
95
+ instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
96
+
97
+ emit LogRiskServiceRiskUpdated(productNftId, riskId);
98
+ }
99
+
100
+
101
+ function updateRiskState(
102
+ RiskId riskId,
103
+ StateId state
104
+ )
105
+ external
106
+ virtual
107
+ restricted()
108
+ {
109
+ // checks
110
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
111
+
112
+ NftId riskProductNftId = instance.getInstanceReader().getRiskInfo(riskId).productNftId;
113
+ if (riskProductNftId != productNftId) {
114
+ revert ErrorRiskServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
115
+ }
116
+
117
+ // effects
118
+ instance.getInstanceStore().updateRiskState(riskId, state);
119
+
120
+ if (state == ACTIVE()) {
121
+ instance.getRiskSet().activate(riskId);
122
+ } else if (state == PAUSED()) {
123
+ instance.getRiskSet().pause(riskId);
124
+ }
125
+
126
+ emit LogRiskServiceRiskStateUpdated(productNftId, riskId, state);
127
+ }
128
+
129
+ function _getAndVerifyActiveComponent(ObjectType expectedType)
130
+ internal
131
+ view
132
+ returns (
133
+ NftId componentNftId,
134
+ IInstance instance
135
+ )
136
+ {
137
+ IRegistry.ObjectInfo memory info;
138
+ address instanceAddress;
139
+ bool isActive = true;
140
+
141
+ if (expectedType != COMPONENT()) {
142
+ (info, instanceAddress) = ContractLib.getAndVerifyComponent(
143
+ getRegistry(),
144
+ msg.sender, // caller
145
+ expectedType,
146
+ isActive);
147
+ } else {
148
+ (info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
149
+ getRegistry(),
150
+ msg.sender,
151
+ isActive);
152
+ }
153
+
154
+ // get component nft id and instance
155
+ componentNftId = info.nftId;
156
+ instance = IInstance(instanceAddress);
157
+ }
158
+
159
+
160
+ function _getDomain() internal pure override returns(ObjectType) {
161
+ return RISK();
162
+ }
163
+ }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {RiskService} from "./RiskService.sol";
7
+
8
+ contract RiskServiceManager is ProxyManager {
9
+
10
+ RiskService private _riskService;
11
+
12
+ /// @dev initializes proxy manager with product service implementation
13
+ constructor(
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
18
+ {
19
+ RiskService svc = new RiskService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
26
+
27
+ _riskService = RiskService(address(versionable));
28
+ }
29
+
30
+ //--- view functions ----------------------------------------------------//
31
+ function getRiskService()
32
+ external
33
+ view
34
+ returns (RiskService riskService)
35
+ {
36
+ return _riskService;
37
+ }
38
+
39
+ }