@etherisc/gif-next 0.0.2-7d58318-324 → 0.0.2-7d7c399-947

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 (509) hide show
  1. package/README.md +46 -8
  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 +158 -70
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +97 -37
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +163 -389
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +245 -315
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -123
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +128 -76
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +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 +502 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +919 -315
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  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 +619 -492
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  96. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  102. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +114 -340
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  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 +102 -130
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +143 -387
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +434 -201
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -195
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -370
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +243 -400
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  162. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +455 -318
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  171. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  172. package/artifacts/contracts/product/Product.sol/Product.json +241 -398
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +315 -34
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  187. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.json +521 -95
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  205. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +508 -551
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -125
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +454 -210
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  237. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
  244. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  258. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  270. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
  272. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  274. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +153 -107
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  288. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  291. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  325. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  330. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  334. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/contracts/accounting/AccountingService.sol +262 -0
  340. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  341. package/contracts/accounting/IAccountingService.sol +45 -0
  342. package/contracts/authorization/AccessAdmin.sol +192 -124
  343. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  344. package/contracts/authorization/Authorization.sol +111 -40
  345. package/contracts/authorization/IAccess.sol +1 -0
  346. package/contracts/authorization/IAccessAdmin.sol +10 -6
  347. package/contracts/authorization/IAuthorization.sol +13 -7
  348. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  349. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  350. package/contracts/distribution/BasicDistribution.sol +12 -22
  351. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  352. package/contracts/distribution/Distribution.sol +36 -50
  353. package/contracts/distribution/DistributionService.sol +121 -116
  354. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  355. package/contracts/distribution/IDistributionComponent.sol +2 -2
  356. package/contracts/distribution/IDistributionService.sol +16 -14
  357. package/contracts/examples/fire/DamageLevel.sol +59 -0
  358. package/contracts/examples/fire/FirePool.sol +90 -0
  359. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  360. package/contracts/examples/fire/FireProduct.sol +438 -0
  361. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  362. package/contracts/examples/fire/FireUSD.sol +26 -0
  363. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  364. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  365. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  366. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  367. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  368. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  369. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  370. package/contracts/instance/BundleSet.sol +38 -34
  371. package/contracts/instance/IInstance.sol +16 -36
  372. package/contracts/instance/IInstanceService.sol +9 -29
  373. package/contracts/instance/Instance.sol +47 -66
  374. package/contracts/instance/InstanceAdmin.sol +133 -73
  375. package/contracts/instance/InstanceAuthorizationV3.sol +55 -34
  376. package/contracts/instance/InstanceReader.sol +218 -27
  377. package/contracts/instance/InstanceService.sol +125 -164
  378. package/contracts/instance/InstanceServiceManager.sol +6 -7
  379. package/contracts/instance/InstanceStore.sol +24 -2
  380. package/contracts/instance/RiskSet.sol +117 -0
  381. package/contracts/instance/base/ObjectCounter.sol +1 -2
  382. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  383. package/contracts/instance/base/ObjectSet.sol +24 -25
  384. package/contracts/instance/module/IBundle.sol +1 -1
  385. package/contracts/instance/module/IComponents.sol +14 -14
  386. package/contracts/instance/module/IDistribution.sol +0 -1
  387. package/contracts/instance/module/IPolicy.sol +26 -25
  388. package/contracts/instance/module/IRisk.sol +3 -0
  389. package/contracts/mock/Dip.sol +1 -1
  390. package/contracts/oracle/BasicOracle.sol +0 -1
  391. package/contracts/oracle/IOracleService.sol +2 -1
  392. package/contracts/oracle/Oracle.sol +9 -23
  393. package/contracts/oracle/OracleService.sol +113 -81
  394. package/contracts/oracle/OracleServiceManager.sol +6 -6
  395. package/contracts/pool/BasicPool.sol +38 -27
  396. package/contracts/pool/BasicPoolAuthorization.sol +19 -3
  397. package/contracts/pool/BundleService.sol +221 -80
  398. package/contracts/pool/BundleServiceManager.sol +6 -6
  399. package/contracts/pool/IBundleService.sol +33 -18
  400. package/contracts/pool/IPoolComponent.sol +21 -10
  401. package/contracts/pool/IPoolService.sol +53 -50
  402. package/contracts/pool/Pool.sol +150 -116
  403. package/contracts/pool/PoolService.sol +338 -159
  404. package/contracts/pool/PoolServiceManager.sol +4 -4
  405. package/contracts/product/ApplicationService.sol +72 -43
  406. package/contracts/product/ApplicationServiceManager.sol +4 -4
  407. package/contracts/product/BasicProduct.sol +13 -44
  408. package/contracts/product/BasicProductAuthorization.sol +1 -3
  409. package/contracts/product/ClaimService.sol +427 -135
  410. package/contracts/product/ClaimServiceManager.sol +4 -4
  411. package/contracts/product/IApplicationService.sol +6 -2
  412. package/contracts/product/IClaimService.sol +44 -7
  413. package/contracts/product/IPolicyService.sol +46 -34
  414. package/contracts/product/IPricingService.sol +10 -10
  415. package/contracts/product/IProductComponent.sol +27 -5
  416. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  417. package/contracts/product/PolicyService.sol +520 -259
  418. package/contracts/product/PolicyServiceManager.sol +4 -4
  419. package/contracts/product/PricingService.sol +66 -62
  420. package/contracts/product/PricingServiceManager.sol +4 -4
  421. package/contracts/product/Product.sol +160 -89
  422. package/contracts/product/RiskService.sol +151 -0
  423. package/contracts/product/RiskServiceManager.sol +39 -0
  424. package/contracts/registry/ChainNft.sol +72 -40
  425. package/contracts/registry/IRegistry.sol +58 -28
  426. package/contracts/registry/IRegistryService.sol +5 -12
  427. package/contracts/registry/IRelease.sol +26 -0
  428. package/contracts/registry/ITransferInterceptor.sol +1 -2
  429. package/contracts/registry/Registry.sol +353 -203
  430. package/contracts/registry/RegistryAdmin.sol +161 -182
  431. package/contracts/registry/RegistryService.sol +37 -48
  432. package/contracts/registry/RegistryServiceManager.sol +3 -3
  433. package/contracts/registry/ReleaseAdmin.sol +245 -0
  434. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  435. package/contracts/registry/ReleaseRegistry.sol +258 -234
  436. package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
  437. package/contracts/registry/TokenRegistry.sol +6 -8
  438. package/contracts/shared/Component.sol +71 -125
  439. package/contracts/shared/ComponentService.sol +428 -350
  440. package/contracts/shared/ComponentServiceManager.sol +8 -5
  441. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  442. package/contracts/shared/ContractLib.sol +252 -0
  443. package/contracts/shared/IComponent.sol +8 -17
  444. package/contracts/shared/IComponentService.sol +43 -39
  445. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  446. package/contracts/shared/ILifecycle.sol +3 -1
  447. package/contracts/shared/INftOwnable.sol +2 -0
  448. package/contracts/shared/IPolicyHolder.sol +12 -22
  449. package/contracts/shared/IRegisterable.sol +23 -1
  450. package/contracts/shared/IService.sol +3 -5
  451. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  452. package/contracts/shared/InstanceLinkedComponent.sol +72 -47
  453. package/contracts/shared/KeyValueStore.sol +1 -1
  454. package/contracts/shared/Lifecycle.sol +15 -4
  455. package/contracts/shared/NftOwnable.sol +31 -11
  456. package/contracts/shared/PolicyHolder.sol +17 -57
  457. package/contracts/shared/Registerable.sol +55 -21
  458. package/contracts/shared/RegistryLinked.sol +9 -14
  459. package/contracts/shared/Service.sol +15 -32
  460. package/contracts/shared/TokenHandler.sol +357 -26
  461. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  462. package/contracts/staking/IStaking.sol +11 -5
  463. package/contracts/staking/IStakingService.sol +0 -3
  464. package/contracts/staking/StakeManagerLib.sol +18 -25
  465. package/contracts/staking/Staking.sol +71 -59
  466. package/contracts/staking/StakingManager.sol +8 -6
  467. package/contracts/staking/StakingReader.sol +12 -5
  468. package/contracts/staking/StakingService.sol +64 -36
  469. package/contracts/staking/StakingServiceManager.sol +2 -2
  470. package/contracts/staking/TargetManagerLib.sol +7 -3
  471. package/contracts/type/Amount.sol +27 -5
  472. package/contracts/type/Blocknumber.sol +7 -1
  473. package/contracts/type/ClaimId.sol +6 -1
  474. package/contracts/type/Key32.sol +2 -2
  475. package/contracts/type/Key32Set.sol +62 -0
  476. package/contracts/type/NftId.sol +7 -0
  477. package/contracts/type/ObjectType.sol +36 -17
  478. package/contracts/type/PayoutId.sol +10 -10
  479. package/contracts/type/Referral.sol +1 -0
  480. package/contracts/type/RiskId.sol +35 -4
  481. package/contracts/type/RoleId.sol +4 -13
  482. package/contracts/type/Seconds.sol +21 -1
  483. package/contracts/type/StateId.sol +15 -1
  484. package/contracts/type/Timestamp.sol +10 -5
  485. package/contracts/type/UFixed.sol +35 -122
  486. package/contracts/type/Version.sol +15 -5
  487. package/contracts/upgradeability/ProxyManager.sol +68 -34
  488. package/contracts/upgradeability/Versionable.sol +2 -2
  489. package/package.json +4 -3
  490. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  491. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  492. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  493. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  494. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  495. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  496. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  497. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  498. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  499. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  500. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  501. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  502. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  503. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  504. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  505. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  506. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  507. package/contracts/product/ProductService.sol +0 -99
  508. package/contracts/product/ProductServiceManager.sol +0 -39
  509. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -0,0 +1,370 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../../type/Amount.sol";
7
+ import {BasicProduct} from "../../product/BasicProduct.sol";
8
+ import {ClaimId} from "../../type/ClaimId.sol";
9
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
10
+ import {IComponents} from "../../instance/module/IComponents.sol";
11
+ import {IOracleService} from "../../oracle/IOracleService.sol";
12
+ import {ORACLE} from "../../type/ObjectType.sol";
13
+ import {NftId} from "../../type/NftId.sol";
14
+ import {PayoutId} from "../../type/PayoutId.sol";
15
+ import {ReferralId} from "../../type/Referral.sol";
16
+ import {RequestId} from "../../type/RequestId.sol";
17
+ import {RiskId} from "../../type/RiskId.sol";
18
+ import {Seconds} from "../../type/Seconds.sol";
19
+ import {SimpleOracle} from "./SimpleOracle.sol";
20
+ import {StateId} from "../../type/StateId.sol";
21
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
22
+
23
+ uint64 constant SPECIAL_ROLE_INT = 11111;
24
+
25
+ contract SimpleProduct is
26
+ BasicProduct
27
+ {
28
+
29
+ event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
30
+ event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
31
+
32
+ error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
33
+
34
+ IOracleService private _oracleService;
35
+
36
+ constructor(
37
+ address registry,
38
+ NftId instanceNftId,
39
+ string memory name,
40
+ address token,
41
+ IComponents.ProductInfo memory productInfo,
42
+ IComponents.FeeInfo memory feeInfo,
43
+ IAuthorization authorization,
44
+ address initialOwner
45
+ )
46
+ {
47
+ initialize(
48
+ registry,
49
+ instanceNftId,
50
+ name,
51
+ token,
52
+ productInfo,
53
+ feeInfo,
54
+ authorization,
55
+ initialOwner);
56
+ }
57
+
58
+
59
+ function initialize(
60
+ address registry,
61
+ NftId instanceNftid,
62
+ string memory name,
63
+ address token,
64
+ IComponents.ProductInfo memory productInfo,
65
+ IComponents.FeeInfo memory feeInfo,
66
+ IAuthorization authorization,
67
+ address initialOwner
68
+ )
69
+ public
70
+ virtual
71
+ initializer()
72
+ {
73
+ _initializeBasicProduct(
74
+ registry,
75
+ instanceNftid,
76
+ name,
77
+ token,
78
+ productInfo,
79
+ feeInfo,
80
+ authorization,
81
+ initialOwner);
82
+
83
+ _oracleService = IOracleService(_getServiceAddress(ORACLE()));
84
+ }
85
+
86
+
87
+ function createRisk(
88
+ RiskId id,
89
+ bytes memory data
90
+ ) public {
91
+ _createRisk(
92
+ id,
93
+ data
94
+ );
95
+ }
96
+
97
+ function updateRisk(
98
+ RiskId id,
99
+ bytes memory data
100
+ ) public {
101
+ _updateRisk(
102
+ id,
103
+ data
104
+ );
105
+ }
106
+
107
+ function updateRiskState(
108
+ RiskId id,
109
+ StateId state
110
+ ) public {
111
+ _updateRiskState(
112
+ id,
113
+ state
114
+ );
115
+ }
116
+
117
+ function createApplication(
118
+ address applicationOwner,
119
+ RiskId riskId,
120
+ uint256 sumInsured,
121
+ Seconds lifetime,
122
+ bytes memory applicationData,
123
+ NftId bundleNftId,
124
+ ReferralId referralId
125
+ )
126
+ public
127
+ returns (NftId nftId)
128
+ {
129
+ Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
130
+ Amount premiumAmount = calculatePremium(
131
+ sumInsuredAmount,
132
+ riskId,
133
+ lifetime,
134
+ applicationData,
135
+ bundleNftId,
136
+ referralId);
137
+
138
+ return _createApplication(
139
+ applicationOwner,
140
+ riskId,
141
+ sumInsuredAmount,
142
+ premiumAmount,
143
+ lifetime,
144
+ bundleNftId,
145
+ referralId,
146
+ applicationData
147
+ );
148
+ }
149
+
150
+ function createPolicy(
151
+ NftId applicationNftId,
152
+ bool requirePremiumPayment,
153
+ Timestamp activateAt
154
+ ) public {
155
+ _createPolicy(applicationNftId, activateAt);
156
+ if (requirePremiumPayment == true) {
157
+ _collectPremium(applicationNftId, activateAt);
158
+ }
159
+ }
160
+
161
+ function decline(
162
+ NftId policyNftId
163
+ ) public {
164
+ _decline(policyNftId);
165
+ }
166
+
167
+ function expire(
168
+ NftId policyNftId,
169
+ Timestamp expireAt
170
+ )
171
+ public
172
+ returns (Timestamp)
173
+ {
174
+ return _expire(policyNftId, expireAt);
175
+ }
176
+
177
+ function collectPremium(
178
+ NftId policyNftId,
179
+ Timestamp activateAt
180
+ ) public {
181
+ _collectPremium(policyNftId, activateAt);
182
+ }
183
+
184
+ function activate(
185
+ NftId policyNftId,
186
+ Timestamp activateAt
187
+ ) public {
188
+ _activate(policyNftId, activateAt);
189
+ }
190
+
191
+ function close(
192
+ NftId policyNftId
193
+ ) public {
194
+ _close(policyNftId);
195
+ }
196
+
197
+ function submitClaim(
198
+ NftId policyNftId,
199
+ Amount claimAmount,
200
+ bytes memory submissionData
201
+ ) public returns (ClaimId) {
202
+ return _submitClaim(policyNftId, claimAmount, submissionData);
203
+ }
204
+
205
+ function revokeClaim(
206
+ NftId policyNftId,
207
+ ClaimId claimId
208
+ ) public {
209
+ _revokeClaim(policyNftId, claimId);
210
+ }
211
+
212
+ function confirmClaim(
213
+ NftId policyNftId,
214
+ ClaimId claimId,
215
+ Amount confirmedAmount,
216
+ bytes memory processData
217
+ ) public {
218
+ _confirmClaim(policyNftId, claimId, confirmedAmount, processData);
219
+ }
220
+
221
+ function declineClaim(
222
+ NftId policyNftId,
223
+ ClaimId claimId,
224
+ bytes memory processData
225
+ ) public {
226
+ _declineClaim(policyNftId, claimId, processData);
227
+ }
228
+
229
+ function closeClaim(
230
+ NftId policyNftId,
231
+ ClaimId claimId
232
+ ) public {
233
+ _closeClaim(policyNftId, claimId);
234
+ }
235
+
236
+ function createPayout(
237
+ NftId policyNftId,
238
+ ClaimId claimId,
239
+ Amount amount,
240
+ bytes memory data
241
+ ) public returns (PayoutId) {
242
+ return _createPayout(policyNftId, claimId, amount, data);
243
+ }
244
+
245
+ function cancelPayout(
246
+ NftId policyNftId,
247
+ PayoutId payoutId
248
+ ) public {
249
+ _cancelPayout(policyNftId, payoutId);
250
+ }
251
+
252
+ // TODO add test
253
+ function createPayoutForBeneficiary(
254
+ NftId policyNftId,
255
+ ClaimId claimId,
256
+ Amount amount,
257
+ address beneficiary,
258
+ bytes memory data
259
+ ) public returns (PayoutId) {
260
+ return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
261
+ }
262
+
263
+ function processPayout(
264
+ NftId policyNftId,
265
+ PayoutId payoutId
266
+ ) public {
267
+ _processPayout(policyNftId, payoutId);
268
+ }
269
+
270
+ function createOracleRequest(
271
+ NftId oracleNftId,
272
+ string memory requestText,
273
+ Timestamp expiryAt,
274
+ bool synchronous
275
+ )
276
+ public
277
+ // restricted()
278
+ returns (RequestId)
279
+ {
280
+ bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
281
+ synchronous,
282
+ requestText));
283
+
284
+ if (synchronous) {
285
+ return _oracleService.request(
286
+ oracleNftId,
287
+ requestData,
288
+ expiryAt,
289
+ "fulfillOracleRequestSync");
290
+ } else {
291
+ return _oracleService.request(
292
+ oracleNftId,
293
+ requestData,
294
+ expiryAt,
295
+ "fulfillOracleRequestAsync");
296
+ }
297
+ }
298
+
299
+ function cancelOracleRequest(
300
+ RequestId requestId
301
+ )
302
+ public
303
+ // restricted() //
304
+ {
305
+ _oracleService.cancel(requestId);
306
+ }
307
+
308
+ function fulfillOracleRequestSync(
309
+ RequestId requestId,
310
+ bytes memory responseData
311
+ )
312
+ public
313
+ // restricted() // only oracle service
314
+ {
315
+ string memory responseText = abi.decode(responseData, (string));
316
+ emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
317
+ }
318
+
319
+ function fulfillOracleRequestAsync(
320
+ RequestId requestId,
321
+ bytes memory responseData
322
+ )
323
+ public
324
+ // restricted() // only oracle service
325
+ {
326
+ SimpleOracle.SimpleResponse memory response = abi.decode(
327
+ responseData, (SimpleOracle.SimpleResponse));
328
+
329
+ if (response.revertInCall && response.revertUntil >= TimestampLib.blockTimestamp()) {
330
+ revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
331
+ }
332
+
333
+ emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
334
+ }
335
+
336
+
337
+ function resend(
338
+ RequestId requestId
339
+ )
340
+ public
341
+ // restricted() //
342
+ {
343
+ _oracleService.resend(requestId);
344
+ }
345
+
346
+
347
+ function doSomethingSpecial()
348
+ public
349
+ restricted()
350
+ returns (bool)
351
+ {
352
+ return true;
353
+ }
354
+
355
+ function doWhenNotLocked()
356
+ public
357
+ restricted()
358
+ returns (bool)
359
+ {
360
+ return true;
361
+ }
362
+
363
+ function getOracleService() public view returns (IOracleService) {
364
+ return _oracleService;
365
+ }
366
+
367
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
368
+ function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
369
+ function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
370
+ }
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
5
+ import {IAccess} from "../../authorization/IAccess.sol";
6
+ import {PUBLIC_ROLE} from "../../type/RoleId.sol";
7
+ import {SimpleProduct} from "./SimpleProduct.sol";
8
+
9
+ contract SimpleProductAuthorization
10
+ is BasicProductAuthorization
11
+ {
12
+ constructor(string memory componentName)
13
+ BasicProductAuthorization(componentName)
14
+ {}
15
+
16
+ function _setupTargetAuthorizations()
17
+ internal
18
+ virtual override
19
+ {
20
+ super._setupTargetAuthorizations();
21
+
22
+ // authorize public role (open access to any account, only allows to lock target)
23
+ IAccess.FunctionInfo[] storage functions;
24
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
25
+ _authorize(functions, SimpleProduct.approveTokenHandler.selector, "approveTokenHandler");
26
+ _authorize(functions, SimpleProduct.setWallet.selector, "setWallet");
27
+ }
28
+ }
@@ -1,20 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IInstance} from "./IInstance.sol";
5
- import {INSTANCE} from "../type/ObjectType.sol";
6
- import {InstanceReader} from "./InstanceReader.sol";
7
4
  import {IPolicy} from "../instance/module/IPolicy.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
5
  import {LibNftIdSet} from "../type/NftIdSet.sol";
10
- import {NftId} from "../type/NftId.sol";
11
- import {TimestampLib} from "../type/Timestamp.sol";
6
+ import {NftId, NftIdLib} from "../type/NftId.sol";
7
+ import {Key32} from "../type/Key32.sol";
8
+ import {BUNDLE} from "../type/ObjectType.sol";
12
9
 
13
10
  import {ObjectSet} from "./base/ObjectSet.sol";
14
11
 
15
12
  contract BundleSet is
16
13
  ObjectSet
17
14
  {
15
+ using LibNftIdSet for LibNftIdSet.Set;
18
16
 
19
17
  event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
20
18
  event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
@@ -34,40 +32,28 @@ contract BundleSet is
34
32
  mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
35
33
 
36
34
  /// @dev links a policy to its bundle
37
- // to link a policy it MUST NOT yet have been linked
38
- function linkPolicy(NftId policyNftId) external restricted() {
39
- NftId bundleNftId = _instance.getInstanceReader().getPolicyInfo(policyNftId).bundleNftId;
40
- // decision will likely depend on the decision what to check here and what in the service
41
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
35
+ function linkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
42
36
 
43
37
  // ensure bundle is unlocked (in active set) and registered with this instance
44
- if (!_isActive(poolNftId, bundleNftId)) {
38
+ if (!_isActive(poolNftId, _toBundleKey32(bundleNftId))) {
45
39
  revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
46
40
  }
47
41
 
48
- LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
42
+ _activePolicies[bundleNftId].add(policyNftId);
49
43
  emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
50
44
  }
51
45
 
52
46
 
53
47
  /// @dev unlinks a policy from its bundle
54
- // to unlink a policy it must closable, ie. meet one of the following criterias
55
- // - the policy MUST be past its expiry period and it MUST NOT have any open claims
56
- // - the policy's payoutAmount MUST be equal to its sumInsuredAmount and MUST NOT have any open claims
57
- function unlinkPolicy(NftId policyNftId) external restricted() {
58
- IPolicy.PolicyInfo memory policyInfo = _instance.getInstanceReader().getPolicyInfo(policyNftId);
59
-
60
- NftId bundleNftId = policyInfo.bundleNftId;
61
- // decision will likely depend on the decision what to check here and what in the service
62
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
48
+ function unlinkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
63
49
 
64
50
  // ensure bundle is registered with this instance
65
- if (!_contains(poolNftId, bundleNftId)) {
51
+ if (!_contains(poolNftId, _toBundleKey32(bundleNftId))) {
66
52
  revert ErrorBundleSetBundleUnknown(bundleNftId);
67
53
  }
68
54
 
69
- LibNftIdSet.remove(_activePolicies[bundleNftId], policyNftId);
70
- emit LogBundleSetPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
55
+ _activePolicies[bundleNftId].remove(policyNftId);
56
+ emit LogBundleSetPolicyUnlinked(bundleNftId, policyNftId);
71
57
  }
72
58
 
73
59
 
@@ -81,7 +67,7 @@ contract BundleSet is
81
67
  revert ErrorBundleSetBundleNotRegistered(bundleNftId);
82
68
  }
83
69
 
84
- _add(poolNftId, bundleNftId);
70
+ _add(poolNftId, _toBundleKey32(bundleNftId));
85
71
  emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
86
72
  }
87
73
 
@@ -89,38 +75,56 @@ contract BundleSet is
89
75
  /// @dev unlocked (active) bundles are available to collateralize new policies
90
76
  function unlock(NftId bundleNftId) external restricted() {
91
77
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
92
- _activate(poolNftId, bundleNftId);
78
+ _activate(poolNftId, _toBundleKey32(bundleNftId));
93
79
  emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
94
80
  }
95
81
 
96
82
  /// @dev locked (deactivated) bundles may not collateralize any new policies
97
83
  function lock(NftId bundleNftId) external restricted() {
98
84
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
99
- _deactivate(poolNftId, bundleNftId);
85
+ _deactivate(poolNftId, _toBundleKey32(bundleNftId));
100
86
  emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
101
87
  }
102
88
 
89
+
90
+ function checkBundle(NftId productNftId, NftId bundleId)
91
+ public
92
+ view
93
+ returns (bool exists, bool active)
94
+ {
95
+ Key32 bundleKey32 = bundleId.toKey32(BUNDLE());
96
+ exists = _contains(productNftId, bundleKey32);
97
+
98
+ if (exists) {
99
+ active = _isActive(productNftId, bundleKey32);
100
+ }
101
+ }
102
+
103
103
  function bundles(NftId poolNftId) external view returns(uint256) {
104
104
  return _objects(poolNftId);
105
105
  }
106
106
 
107
- function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
108
- return _getObject(poolNftId, idx);
107
+ function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
108
+ return NftIdLib.toNftId(_getObject(poolNftId, idx).toKeyId());
109
109
  }
110
110
 
111
111
  function activeBundles(NftId poolNftId) external view returns(uint256) {
112
112
  return _activeObjs(poolNftId);
113
113
  }
114
114
 
115
- function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
116
- return _getActiveObject(poolNftId, idx);
115
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
116
+ return NftIdLib.toNftId(_getActiveObject(poolNftId, idx).toKeyId());
117
117
  }
118
118
 
119
119
  function activePolicies(NftId bundleNftId) external view returns(uint256) {
120
- return LibNftIdSet.size(_activePolicies[bundleNftId]);
120
+ return _activePolicies[bundleNftId].size();
121
121
  }
122
122
 
123
123
  function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
124
- return LibNftIdSet.getElementAt(_activePolicies[bundleNftId], idx);
124
+ return _activePolicies[bundleNftId].getElementAt(idx);
125
+ }
126
+
127
+ function _toBundleKey32(NftId nftId) private pure returns (Key32) {
128
+ return nftId.toKey32(BUNDLE());
125
129
  }
126
130
  }
@@ -1,48 +1,21 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
-
6
4
  import {Amount} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
8
- import {DistributorType} from "../type/DistributorType.sol";
9
- import {PayoutId} from "../type/PayoutId.sol";
5
+ import {BundleSet} from "./BundleSet.sol";
6
+ import {RiskSet} from "./RiskSet.sol";
7
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
8
+ import {InstanceReader} from "./InstanceReader.sol";
9
+ import {InstanceStore} from "./InstanceStore.sol";
10
+ import {IRegisterable} from "../shared/IRegisterable.sol";
10
11
  import {NftId} from "../type/NftId.sol";
11
- import {StateId} from "../type/StateId.sol";
12
- import {ReferralId} from "../type/Referral.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {VersionPart} from "../type/Version.sol";
15
- import {Key32} from "../type/Key32.sol";
16
12
  import {RoleId} from "../type/RoleId.sol";
17
13
  import {Seconds} from "../type/Seconds.sol";
18
14
  import {UFixed} from "../type/UFixed.sol";
19
15
 
20
- import {IRegisterable} from "../shared/IRegisterable.sol";
21
-
22
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
-
24
- import {InstanceAdmin} from "./InstanceAdmin.sol";
25
- import {BundleSet} from "./BundleSet.sol";
26
- import {InstanceReader} from "./InstanceReader.sol";
27
- import {InstanceStore} from "./InstanceStore.sol";
28
-
29
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
30
-
31
- import {IAccess} from "./module/IAccess.sol";
32
-
33
- import {IBundleService} from "../pool/IBundleService.sol";
34
- import {IDistributionService} from "../distribution/IDistributionService.sol";
35
- import {IPolicyService} from "../product/IPolicyService.sol";
36
- import {IPoolService} from "../pool/IPoolService.sol";
37
- import {IProductService} from "../product/IProductService.sol";
38
- import {IPolicyService} from "../product/IPolicyService.sol";
39
- import {IBundleService} from "../pool/IBundleService.sol";
40
-
41
16
 
42
17
  interface IInstance is
43
- IRegisterable,
44
- ITransferInterceptor,
45
- IAccessManaged
18
+ IRegisterable
46
19
  {
47
20
  error ErrorInstanceInstanceAdminZero();
48
21
  error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
@@ -52,6 +25,10 @@ interface IInstance is
52
25
  error ErrorInstanceBundleSetInstanceMismatch(address instance);
53
26
  error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
54
27
 
28
+ error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
29
+ error ErrorInstanceRiskSetInstanceMismatch(address instance);
30
+ error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
31
+
55
32
  error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
56
33
 
57
34
  error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
@@ -61,13 +38,16 @@ interface IInstance is
61
38
  uint64 requestsCount;
62
39
  }
63
40
 
41
+ /// @dev Register a product with the instance.
42
+ function registerProduct(address product) external returns (NftId productNftId);
43
+
64
44
  function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
65
45
  function grantRole(RoleId roleId, address account) external;
66
46
  function revokeRole(RoleId roleId, address account) external;
67
47
 
68
48
  function createTarget(address target, string memory name) external;
69
49
  function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
70
- function setTargetLocked(address target, bool locked) external;
50
+ function setLocked(address target, bool locked) external;
71
51
 
72
52
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
73
53
  function setStakingRewardRate(UFixed rewardRate) external;
@@ -78,9 +58,9 @@ interface IInstance is
78
58
  function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
79
59
 
80
60
  // get instance release and supporting contracts
81
- function getMajorVersion() external pure returns (VersionPart majorVersion);
82
61
  function getInstanceReader() external view returns (InstanceReader);
83
62
  function getBundleSet() external view returns (BundleSet);
63
+ function getRiskSet() external view returns (RiskSet);
84
64
  function getInstanceAdmin() external view returns (InstanceAdmin);
85
65
  function getInstanceStore() external view returns (InstanceStore);
86
66
  }