@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e79d227-681

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 +77 -10
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  8. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  10. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  12. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  14. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  18. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -546
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +380 -229
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +198 -96
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +186 -238
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +223 -47
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +153 -86
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +181 -119
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +174 -215
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1666 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +876 -160
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +260 -268
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -81
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +506 -338
  76. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  77. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  78. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  80. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  81. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  82. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  84. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  86. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  88. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  90. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  95. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  96. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +456 -187
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +218 -80
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +264 -26
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +115 -354
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -223
  127. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  128. package/artifacts/contracts/pool/Pool.sol/Pool.json +152 -682
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +590 -382
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +190 -76
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +147 -161
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +147 -77
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +343 -168
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +200 -90
  145. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +88 -8
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +364 -121
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +134 -86
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +176 -160
  155. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  156. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +51 -3
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +475 -294
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +199 -81
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.json +229 -275
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +172 -102
  165. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  166. package/artifacts/contracts/product/Product.sol/Product.json +201 -486
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +412 -35
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +225 -196
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +761 -87
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +278 -306
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +154 -78
  187. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  189. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  191. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  193. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +185 -135
  195. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  196. package/artifacts/contracts/shared/Component.sol/Component.json +79 -274
  197. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +626 -252
  199. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +209 -99
  201. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -101
  203. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  206. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  207. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  208. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  209. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  210. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +74 -79
  211. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +561 -13
  213. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +120 -108
  215. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -13
  217. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  219. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
  221. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  223. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -1
  225. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IService.sol/IService.json +49 -1
  228. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  229. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  230. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +129 -360
  232. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -98
  234. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  236. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  237. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  238. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
  240. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  241. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  242. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +62 -87
  244. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  245. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  246. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  247. package/artifacts/contracts/shared/Service.sol/Service.json +55 -101
  248. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  252. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  253. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  254. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  255. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +462 -634
  256. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  257. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +546 -48
  258. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  260. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/Staking.sol/Staking.json +613 -871
  262. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  264. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +185 -81
  266. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  268. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +633 -173
  270. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +166 -68
  272. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  273. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  274. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  275. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  276. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  277. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  278. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
  280. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
  282. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  284. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  286. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  288. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  290. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  292. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  294. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  296. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  298. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  300. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  302. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  304. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
  306. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  308. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
  310. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  312. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  314. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  316. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  318. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  320. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  322. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  324. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  326. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  328. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  329. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  331. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  332. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  333. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  334. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  335. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  336. package/contracts/authorization/AccessAdmin.sol +616 -0
  337. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  338. package/contracts/authorization/Authorization.sol +289 -0
  339. package/contracts/authorization/IAccess.sol +49 -0
  340. package/contracts/authorization/IAccessAdmin.sol +137 -0
  341. package/contracts/authorization/IAuthorization.sol +60 -0
  342. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  343. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  344. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  345. package/contracts/distribution/BasicDistribution.sol +139 -0
  346. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  347. package/contracts/distribution/Distribution.sol +145 -124
  348. package/contracts/distribution/DistributionService.sol +156 -99
  349. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  350. package/contracts/distribution/IDistributionComponent.sol +27 -41
  351. package/contracts/distribution/IDistributionService.sol +29 -10
  352. package/contracts/examples/fire/DamageLevel.sol +59 -0
  353. package/contracts/examples/fire/FirePool.sol +86 -0
  354. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  355. package/contracts/examples/fire/FireProduct.sol +431 -0
  356. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  357. package/contracts/examples/fire/FireUSD.sol +26 -0
  358. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  359. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  360. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  361. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  362. package/contracts/instance/BundleSet.sol +130 -0
  363. package/contracts/instance/IInstance.sol +39 -44
  364. package/contracts/instance/IInstanceService.sol +33 -42
  365. package/contracts/instance/Instance.sol +137 -124
  366. package/contracts/instance/InstanceAdmin.sol +278 -0
  367. package/contracts/instance/InstanceAuthorizationV3.sol +217 -0
  368. package/contracts/instance/InstanceReader.sol +249 -36
  369. package/contracts/instance/InstanceService.sol +227 -151
  370. package/contracts/instance/InstanceServiceManager.sol +14 -29
  371. package/contracts/instance/InstanceStore.sol +85 -57
  372. package/contracts/instance/RiskSet.sol +119 -0
  373. package/contracts/instance/base/BalanceStore.sol +12 -7
  374. package/contracts/instance/base/Cloneable.sol +2 -25
  375. package/contracts/instance/base/ObjectCounter.sol +21 -0
  376. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  377. package/contracts/instance/base/ObjectSet.sol +78 -0
  378. package/contracts/instance/module/IAccess.sol +2 -10
  379. package/contracts/instance/module/IBundle.sol +1 -1
  380. package/contracts/instance/module/IComponents.sol +11 -13
  381. package/contracts/instance/module/IDistribution.sol +0 -1
  382. package/contracts/instance/module/IPolicy.sol +26 -25
  383. package/contracts/instance/module/IRisk.sol +1 -0
  384. package/contracts/mock/Dip.sol +26 -0
  385. package/contracts/oracle/BasicOracle.sol +47 -0
  386. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  387. package/contracts/oracle/IOracle.sol +36 -0
  388. package/contracts/oracle/IOracleComponent.sol +33 -0
  389. package/contracts/oracle/IOracleService.sol +66 -0
  390. package/contracts/oracle/Oracle.sol +156 -0
  391. package/contracts/oracle/OracleService.sol +309 -0
  392. package/contracts/oracle/OracleServiceManager.sol +39 -0
  393. package/contracts/pool/BasicPool.sol +175 -0
  394. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  395. package/contracts/pool/BundleService.sol +232 -122
  396. package/contracts/pool/BundleServiceManager.sol +13 -25
  397. package/contracts/pool/IBundleService.sol +34 -18
  398. package/contracts/pool/IPoolComponent.sol +20 -70
  399. package/contracts/pool/IPoolService.sol +57 -51
  400. package/contracts/pool/Pool.sol +208 -162
  401. package/contracts/pool/PoolService.sol +372 -181
  402. package/contracts/pool/PoolServiceManager.sol +12 -24
  403. package/contracts/product/ApplicationService.sol +90 -84
  404. package/contracts/product/ApplicationServiceManager.sol +12 -9
  405. package/contracts/product/BasicProduct.sol +49 -0
  406. package/contracts/product/BasicProductAuthorization.sol +42 -0
  407. package/contracts/product/ClaimService.sol +331 -153
  408. package/contracts/product/ClaimServiceManager.sol +12 -9
  409. package/contracts/product/IApplicationService.sol +7 -3
  410. package/contracts/product/IClaimService.sol +35 -5
  411. package/contracts/product/IPolicyService.sol +47 -35
  412. package/contracts/product/IPricingService.sol +11 -11
  413. package/contracts/product/IProductComponent.sol +26 -9
  414. package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -2
  415. package/contracts/product/PolicyService.sol +524 -262
  416. package/contracts/product/PolicyServiceManager.sol +12 -27
  417. package/contracts/product/PricingService.sol +64 -64
  418. package/contracts/product/PricingServiceManager.sol +12 -24
  419. package/contracts/product/Product.sol +189 -139
  420. package/contracts/product/{ProductService.sol → RiskService.sol} +35 -50
  421. package/contracts/product/RiskServiceManager.sol +39 -0
  422. package/contracts/registry/ChainNft.sol +68 -37
  423. package/contracts/registry/IRegistry.sol +90 -28
  424. package/contracts/registry/IRegistryService.sol +26 -43
  425. package/contracts/registry/ITransferInterceptor.sol +1 -2
  426. package/contracts/registry/Registry.sol +424 -228
  427. package/contracts/registry/RegistryAdmin.sol +451 -0
  428. package/contracts/registry/RegistryService.sol +63 -149
  429. package/contracts/registry/RegistryServiceManager.sol +23 -30
  430. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  431. package/contracts/registry/ReleaseRegistry.sol +485 -0
  432. package/contracts/registry/ServiceAuthorizationV3.sol +175 -0
  433. package/contracts/registry/TokenRegistry.sol +187 -59
  434. package/contracts/shared/Component.sol +56 -125
  435. package/contracts/shared/ComponentService.sol +411 -201
  436. package/contracts/shared/ComponentServiceManager.sol +10 -7
  437. package/contracts/shared/ComponentVerifyingService.sol +40 -23
  438. package/contracts/shared/ContractLib.sol +224 -0
  439. package/contracts/shared/IComponent.sol +11 -18
  440. package/contracts/shared/IComponentService.sol +52 -13
  441. package/contracts/shared/IInstanceLinkedComponent.sol +11 -16
  442. package/contracts/shared/IKeyValueStore.sol +2 -1
  443. package/contracts/shared/ILifecycle.sol +3 -2
  444. package/contracts/shared/INftOwnable.sol +3 -1
  445. package/contracts/shared/IPolicyHolder.sol +12 -17
  446. package/contracts/shared/IRegisterable.sol +11 -0
  447. package/contracts/shared/IService.sol +9 -2
  448. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  449. package/contracts/shared/InstanceLinkedComponent.sol +103 -43
  450. package/contracts/shared/KeyValueStore.sol +30 -68
  451. package/contracts/shared/Lifecycle.sol +30 -63
  452. package/contracts/shared/NftIdSet.sol +65 -0
  453. package/contracts/shared/NftOwnable.sol +31 -22
  454. package/contracts/shared/PolicyHolder.sol +18 -50
  455. package/contracts/shared/Registerable.sol +19 -11
  456. package/contracts/shared/RegistryLinked.sol +9 -14
  457. package/contracts/shared/Service.sol +44 -37
  458. package/contracts/shared/TokenHandler.sol +358 -27
  459. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  460. package/contracts/staking/IStaking.sol +133 -37
  461. package/contracts/staking/IStakingService.sol +93 -41
  462. package/contracts/staking/StakeManagerLib.sol +224 -0
  463. package/contracts/staking/Staking.sol +394 -101
  464. package/contracts/staking/StakingLifecycle.sol +23 -0
  465. package/contracts/staking/StakingManager.sol +24 -18
  466. package/contracts/staking/StakingReader.sol +190 -0
  467. package/contracts/staking/StakingService.sol +282 -42
  468. package/contracts/staking/StakingServiceManager.sol +10 -7
  469. package/contracts/staking/StakingStore.sol +605 -0
  470. package/contracts/staking/TargetManagerLib.sol +211 -0
  471. package/contracts/type/AddressSet.sol +1 -1
  472. package/contracts/type/Amount.sol +39 -3
  473. package/contracts/type/Blocknumber.sol +20 -2
  474. package/contracts/type/ClaimId.sol +6 -1
  475. package/contracts/type/Fee.sol +1 -1
  476. package/contracts/type/Key32.sol +2 -2
  477. package/contracts/type/Key32Set.sol +62 -0
  478. package/contracts/type/NftId.sol +16 -4
  479. package/contracts/type/NftIdSet.sol +1 -1
  480. package/contracts/type/ObjectType.sol +178 -65
  481. package/contracts/type/PayoutId.sol +10 -10
  482. package/contracts/type/Referral.sol +2 -1
  483. package/contracts/type/RequestId.sol +75 -0
  484. package/contracts/type/RiskId.sol +31 -5
  485. package/contracts/type/RoleId.sol +98 -74
  486. package/contracts/type/Seconds.sol +48 -1
  487. package/contracts/type/Selector.sol +102 -0
  488. package/contracts/type/StateId.sol +41 -2
  489. package/contracts/type/String.sol +53 -0
  490. package/contracts/type/Timestamp.sol +17 -3
  491. package/contracts/type/UFixed.sol +38 -9
  492. package/contracts/type/Version.sol +4 -2
  493. package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
  494. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  495. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  496. package/package.json +11 -7
  497. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  499. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  500. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  501. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  502. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
  503. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  505. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  506. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  507. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -673
  508. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  509. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -636
  510. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  511. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
  512. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  513. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -688
  514. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  515. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  516. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  517. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  518. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  519. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  520. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  521. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  522. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  523. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  524. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  525. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  526. package/contracts/instance/BundleManager.sol +0 -126
  527. package/contracts/instance/InstanceAccessManager.sol +0 -543
  528. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
  529. package/contracts/instance/base/ObjectManager.sol +0 -82
  530. package/contracts/product/ProductServiceManager.sol +0 -54
  531. package/contracts/registry/RegistryAccessManager.sol +0 -213
  532. package/contracts/registry/ReleaseManager.sol +0 -375
  533. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  534. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  535. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,217 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {
5
+ PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
6
+ } from "../../contracts/type/ObjectType.sol";
7
+
8
+ import {BundleSet} from "../instance/BundleSet.sol";
9
+ import {RiskSet} from "../instance/RiskSet.sol";
10
+ import {IAccess} from "../authorization/IAccess.sol";
11
+ import {Instance} from "../instance/Instance.sol";
12
+ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
13
+ import {InstanceStore} from "../instance/InstanceStore.sol";
14
+ import {Authorization} from "../authorization/Authorization.sol";
15
+
16
+
17
+ contract InstanceAuthorizationV3
18
+ is Authorization
19
+ {
20
+
21
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
22
+
23
+ string public constant INSTANCE_TARGET_NAME = "Instance";
24
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
26
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
28
+
29
+ constructor() Authorization(INSTANCE_TARGET_NAME) {}
30
+
31
+
32
+ function _setupRoles()
33
+ internal
34
+ override
35
+ {
36
+ // empty implementation
37
+ }
38
+
39
+
40
+ function _setupTargets()
41
+ internal
42
+ override
43
+ {
44
+ // instance target
45
+ _addTargetWithRole(
46
+ INSTANCE_TARGET_NAME,
47
+ _toTargetRoleId(INSTANCE()),
48
+ INSTANCE_ROLE_NAME);
49
+
50
+ // instance supporting targets
51
+ _addTarget(INSTANCE_STORE_TARGET_NAME);
52
+ _addTarget(INSTANCE_ADMIN_TARGET_NAME);
53
+ _addTarget(BUNDLE_SET_TARGET_NAME);
54
+ _addTarget(RISK_SET_TARGET_NAME);
55
+
56
+ // service targets relevant to instance
57
+ _addServiceTargetWithRole(INSTANCE());
58
+ _addServiceTargetWithRole(COMPONENT());
59
+ _addServiceTargetWithRole(DISTRIBUTION());
60
+ _addServiceTargetWithRole(ORACLE());
61
+ _addServiceTargetWithRole(POOL());
62
+ _addServiceTargetWithRole(BUNDLE());
63
+ _addServiceTargetWithRole(RISK());
64
+ _addServiceTargetWithRole(APPLICATION());
65
+ _addServiceTargetWithRole(POLICY());
66
+ _addServiceTargetWithRole(CLAIM());
67
+ }
68
+
69
+
70
+ function _setupTargetAuthorizations()
71
+ internal
72
+ override
73
+ {
74
+ _setupInstanceAuthorization();
75
+ _setupInstanceAdminAuthorization();
76
+ _setupInstanceStoreAuthorization();
77
+ _setupBundleSetAuthorization();
78
+ _setUpRiskSetAuthorization();
79
+ }
80
+
81
+
82
+ function _setupBundleSetAuthorization()
83
+ internal
84
+ {
85
+ IAccess.FunctionInfo[] storage functions;
86
+
87
+ // authorize bundle service role
88
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
89
+ _authorize(functions, BundleSet.add.selector, "add");
90
+ _authorize(functions, BundleSet.lock.selector, "lock");
91
+ _authorize(functions, BundleSet.unlock.selector, "unlock");
92
+
93
+ // authorize bundle service role
94
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
95
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
96
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
97
+ }
98
+
99
+ function _setUpRiskSetAuthorization()
100
+ internal
101
+ {
102
+ IAccess.FunctionInfo[] storage functions;
103
+
104
+ // authorize risk service role
105
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
106
+ _authorize(functions, RiskSet.add.selector, "add");
107
+ _authorize(functions, RiskSet.pause.selector, "pause");
108
+ _authorize(functions, RiskSet.activate.selector, "activate");
109
+
110
+ // authorize policy service role
111
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
112
+ _authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
113
+ _authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
114
+ }
115
+
116
+
117
+ function _setupInstanceAuthorization()
118
+ internal
119
+ {
120
+ IAccess.FunctionInfo[] storage functions;
121
+
122
+ // authorize instance service role
123
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
124
+ _authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
125
+ }
126
+
127
+
128
+ function _setupInstanceAdminAuthorization()
129
+ internal
130
+ {
131
+ IAccess.FunctionInfo[] storage functions;
132
+
133
+ // authorize instance role
134
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
135
+ _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
136
+
137
+ // authorize instance service role
138
+ // functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
139
+ }
140
+
141
+
142
+ function _setupInstanceStoreAuthorization()
143
+ internal
144
+ {
145
+ IAccess.FunctionInfo[] storage functions;
146
+
147
+ // authorize component service role
148
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
149
+ _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
150
+ _authorize(functions, InstanceStore.updateComponent.selector, "updateComponent");
151
+ _authorize(functions, InstanceStore.createPool.selector, "createPool");
152
+ _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
153
+ _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
154
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
155
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
156
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
157
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
158
+
159
+ // authorize distribution service role
160
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
161
+ _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
162
+ _authorize(functions, InstanceStore.updateDistributorType.selector, "updateDistributorType");
163
+ _authorize(functions, InstanceStore.updateDistributorTypeState.selector, "updateDistributorTypeState");
164
+ _authorize(functions, InstanceStore.createDistributor.selector, "createDistributor");
165
+ _authorize(functions, InstanceStore.updateDistributor.selector, "updateDistributor");
166
+ _authorize(functions, InstanceStore.updateDistributorState.selector, "updateDistributorState");
167
+ _authorize(functions, InstanceStore.createReferral.selector, "createReferral");
168
+ _authorize(functions, InstanceStore.updateReferral.selector, "updateReferral");
169
+ _authorize(functions, InstanceStore.updateReferralState.selector, "updateReferralState");
170
+
171
+ // authorize oracle service role
172
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ORACLE()));
173
+ _authorize(functions, InstanceStore.createRequest.selector, "createRequest");
174
+ _authorize(functions, InstanceStore.updateRequest.selector, "updateRequest");
175
+ _authorize(functions, InstanceStore.updateRequestState.selector, "updateRequestState");
176
+
177
+ // authorize pool service role
178
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POOL()));
179
+ _authorize(functions, InstanceStore.updatePool.selector, "updatePool");
180
+
181
+ // authorize bundle service role
182
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(BUNDLE()));
183
+ _authorize(functions, InstanceStore.createBundle.selector, "createBundle");
184
+ _authorize(functions, InstanceStore.updateBundle.selector, "updateBundle");
185
+ _authorize(functions, InstanceStore.updateBundleState.selector, "updateBundleState");
186
+ _authorize(functions, InstanceStore.increaseLocked.selector, "increaseLocked");
187
+ _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
188
+
189
+ // authorize product service role
190
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
191
+ _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
192
+ _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
193
+ _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
194
+
195
+ // authorize application service role
196
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(APPLICATION()));
197
+ _authorize(functions, InstanceStore.createApplication.selector, "createApplication");
198
+ _authorize(functions, InstanceStore.updateApplication.selector, "updateApplication");
199
+ _authorize(functions, InstanceStore.updateApplicationState.selector, "updateApplicationState");
200
+
201
+ // authorize policy service role
202
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
203
+ _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
204
+ _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
205
+ _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
206
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
207
+
208
+ // authorize claim service role
209
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
210
+ _authorize(functions, InstanceStore.updatePolicyClaims.selector, "updatePolicyClaims");
211
+ _authorize(functions, InstanceStore.createClaim.selector, "createClaim");
212
+ _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
213
+ _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
214
+ _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
215
+ }
216
+ }
217
+
@@ -1,34 +1,33 @@
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} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
5
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
8
6
  import {DistributorType} from "../type/DistributorType.sol";
9
- import {Fee, FeeLib} from "../type/Fee.sol";
10
7
  import {Key32} from "../type/Key32.sol";
11
8
  import {NftId} from "../type/NftId.sol";
12
- import {ObjectType, COMPONENT, DISTRIBUTOR, DISTRIBUTION, INSTANCE, PRODUCT, POLICY, POOL, FEE, BUNDLE} from "../type/ObjectType.sol";
13
- import {PayoutId} from "../type/PayoutId.sol";
9
+ import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
14
11
  import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
15
- import {Registerable} from "../shared/Registerable.sol";
12
+ import {RequestId} from "../type/RequestId.sol";
16
13
  import {RiskId} from "../type/RiskId.sol";
17
- import {UFixed, MathLib, UFixedLib} from "../type/UFixed.sol";
18
- import {Version} from "../type/Version.sol";
14
+ import {RoleId} from "../type/RoleId.sol";
19
15
  import {StateId} from "../type/StateId.sol";
16
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
20
17
 
21
- import {IRegistry} from "../registry/IRegistry.sol";
22
18
  import {IBundle} from "../instance/module/IBundle.sol";
23
19
  import {IComponents} from "../instance/module/IComponents.sol";
24
20
  import {IDistribution} from "../instance/module/IDistribution.sol";
25
21
  import {IInstance} from "./IInstance.sol";
26
22
  import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
23
+ import {IOracle} from "../oracle/IOracle.sol";
27
24
  import {IPolicy} from "../instance/module/IPolicy.sol";
28
25
  import {IRisk} from "../instance/module/IRisk.sol";
29
26
  import {TimestampLib} from "../type/Timestamp.sol";
30
27
 
31
28
  import {InstanceStore} from "./InstanceStore.sol";
29
+ import {BundleSet} from "./BundleSet.sol";
30
+ import {RiskSet} from "./RiskSet.sol";
32
31
 
33
32
 
34
33
  contract InstanceReader {
@@ -36,24 +35,33 @@ contract InstanceReader {
36
35
  error ErrorInstanceReaderAlreadyInitialized();
37
36
  error ErrorInstanceReaderInstanceAddressZero();
38
37
 
39
- bool private _initialized;
38
+ bool private _initialized = false;
40
39
 
41
40
  IInstance internal _instance;
42
41
  InstanceStore internal _store;
42
+ BundleSet internal _bundleSet;
43
+ RiskSet internal _riskSet;
43
44
 
44
- function initialize(address instance) public {
45
+ /// @dev This initializer needs to be called from the instance itself.
46
+ function initialize() public {
45
47
  if(_initialized) {
46
48
  revert ErrorInstanceReaderAlreadyInitialized();
47
49
  }
48
50
 
49
- if(instance == address(0)) {
50
- revert ErrorInstanceReaderInstanceAddressZero();
51
- }
51
+ initializeWithInstance(msg.sender);
52
+ }
52
53
 
53
- _instance = IInstance(instance);
54
- _store = _instance.getInstanceStore();
54
+ /// @dev This initializer needs to be called from the instance itself.
55
+ function initializeWithInstance(address instanceAddress) public {
56
+ if(_initialized) {
57
+ revert ErrorInstanceReaderAlreadyInitialized();
58
+ }
55
59
 
56
60
  _initialized = true;
61
+ _instance = IInstance(instanceAddress);
62
+ _store = _instance.getInstanceStore();
63
+ _bundleSet = _instance.getBundleSet();
64
+ _riskSet = _instance.getRiskSet();
57
65
  }
58
66
 
59
67
 
@@ -78,14 +86,67 @@ contract InstanceReader {
78
86
  return _store.getState(toPolicyKey(policyNftId));
79
87
  }
80
88
 
81
- /// @dev returns true iff policy may be closed
82
- /// a policy can be closed all conditions below are met
83
- /// - policy exists
84
- /// - has been activated
85
- /// - is not yet closed
86
- /// - has no open claims
87
- /// - claim amount matches sum insured amount or is expired
88
- function policyIsCloseable(NftId policyNftId)
89
+ function getPremiumInfo(NftId policyNftId)
90
+ public
91
+ view
92
+ returns (IPolicy.PremiumInfo memory info)
93
+ {
94
+ bytes memory data = _store.getData(toPremiumKey(policyNftId));
95
+ if (data.length > 0) {
96
+ return abi.decode(data, (IPolicy.PremiumInfo));
97
+ }
98
+ }
99
+
100
+ function getPremiumInfoState(NftId policyNftId)
101
+ public
102
+ view
103
+ returns (StateId state)
104
+ {
105
+ return _store.getState(toPremiumKey(policyNftId));
106
+ }
107
+
108
+ function bundles(NftId poolNftId)
109
+ public
110
+ view
111
+ returns (uint256 bundles)
112
+ {
113
+ return _bundleSet.bundles(poolNftId);
114
+ }
115
+
116
+ function activeBundles(NftId poolNftId)
117
+ public
118
+ view
119
+ returns (uint256 bundles)
120
+ {
121
+ return _bundleSet.activeBundles(poolNftId);
122
+ }
123
+
124
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx)
125
+ public
126
+ view
127
+ returns (NftId bundleNftId)
128
+ {
129
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
130
+ }
131
+
132
+ function getBundleNftId(NftId poolNftId, uint256 idx)
133
+ public
134
+ view
135
+ returns (NftId bundleNftId)
136
+ {
137
+ return _bundleSet.getBundleNftId(poolNftId, idx);
138
+ }
139
+
140
+ function getBundleState(NftId bundleNftId)
141
+ public
142
+ view
143
+ returns (StateId state)
144
+ {
145
+ return _store.getState(toBundleKey(bundleNftId));
146
+ }
147
+
148
+ /// @dev Returns true iff policy is active.
149
+ function policyIsActive(NftId policyNftId)
89
150
  public
90
151
  view
91
152
  returns (bool isCloseable)
@@ -94,17 +155,27 @@ contract InstanceReader {
94
155
 
95
156
  if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
96
157
  if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
97
- if (info.closedAt.gtz()) { return false; } // not closeable: already closed
98
- if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
158
+ if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
159
+ if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
99
160
 
100
- // closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
101
- if (info.claimAmount == info.sumInsuredAmount) { return true; }
161
+ return true;
162
+ }
102
163
 
103
- // not closeable: not yet expired
104
- if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
164
+ function claims(NftId policyNftId)
165
+ public
166
+ view
167
+ returns (uint16 claims)
168
+ {
169
+ return getPolicyInfo(policyNftId).claimsCount;
170
+ }
105
171
 
106
- // all conditionsl to close the policy are met
107
- return true;
172
+
173
+ function getClaimId(uint idx)
174
+ public
175
+ view
176
+ returns (ClaimId claimId)
177
+ {
178
+ return ClaimIdLib.toClaimId(idx + 1);
108
179
  }
109
180
 
110
181
  function getClaimInfo(NftId policyNftId, ClaimId claimId)
@@ -118,6 +189,7 @@ contract InstanceReader {
118
189
  }
119
190
  }
120
191
 
192
+
121
193
  function getClaimState(NftId policyNftId, ClaimId claimId)
122
194
  public
123
195
  view
@@ -126,6 +198,34 @@ contract InstanceReader {
126
198
  return _store.getState(claimId.toKey32(policyNftId));
127
199
  }
128
200
 
201
+
202
+ function payouts(NftId policyNftId, ClaimId claimId)
203
+ public
204
+ view
205
+ returns (uint24 payouts)
206
+ {
207
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
208
+ }
209
+
210
+
211
+ function getPayoutId(ClaimId claimId, uint24 idx)
212
+ public
213
+ view
214
+ returns (PayoutId payoutId)
215
+ {
216
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
217
+ }
218
+
219
+
220
+ function getRemainingClaimableAmount(NftId policyNftId)
221
+ public
222
+ view
223
+ returns (Amount remainingClaimableAmount)
224
+ {
225
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
226
+ return info.sumInsuredAmount - info.claimAmount;
227
+ }
228
+
129
229
  function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
130
230
  public
131
231
  view
@@ -145,6 +245,38 @@ contract InstanceReader {
145
245
  return _store.getState(payoutId.toKey32(policyNftId));
146
246
  }
147
247
 
248
+ function risks(NftId productNftId)
249
+ public
250
+ view
251
+ returns (uint256 activeRisks)
252
+ {
253
+ return _riskSet.risks(productNftId);
254
+ }
255
+
256
+ function getRiskId(NftId productNftId, uint256 idx)
257
+ public
258
+ view
259
+ returns (RiskId riskId)
260
+ {
261
+ return _riskSet.getRiskId(productNftId, idx);
262
+ }
263
+
264
+ function activeRisks(NftId productNftId)
265
+ public
266
+ view
267
+ returns (uint256 activeRisks)
268
+ {
269
+ return _riskSet.activeRisks(productNftId);
270
+ }
271
+
272
+ function getActiveRiskId(NftId productNftId, uint256 idx)
273
+ public
274
+ view
275
+ returns (RiskId riskId)
276
+ {
277
+ return _riskSet.getActiveRiskId(productNftId, idx);
278
+ }
279
+
148
280
  function getRiskInfo(RiskId riskId)
149
281
  public
150
282
  view
@@ -156,6 +288,44 @@ contract InstanceReader {
156
288
  }
157
289
  }
158
290
 
291
+ function getRiskState(RiskId riskId)
292
+ public
293
+ view
294
+ returns (StateId stateId)
295
+ {
296
+ bytes memory data = _store.getData(riskId.toKey32());
297
+ return _store.getState(riskId.toKey32());
298
+ }
299
+
300
+ function policiesForRisk(RiskId riskId)
301
+ public
302
+ view
303
+ returns (uint256 linkedPolicies)
304
+ {
305
+ return _riskSet.linkedPolicies(riskId);
306
+ }
307
+
308
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
309
+ public
310
+ view
311
+ returns (NftId linkedPolicyNftId)
312
+ {
313
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
314
+ }
315
+
316
+ function getWallet(NftId componentNftId)
317
+ public
318
+ view
319
+ returns (address tokenHandler)
320
+ {
321
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
322
+
323
+ if (data.length > 0) {
324
+ IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
325
+ return info.tokenHandler.getWallet();
326
+ }
327
+ }
328
+
159
329
  function getTokenHandler(NftId componentNftId)
160
330
  public
161
331
  view
@@ -202,15 +372,15 @@ contract InstanceReader {
202
372
  }
203
373
  }
204
374
 
205
- function getBalanceAmount(NftId targetNftId) external returns (Amount) {
375
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
206
376
  return _store.getBalanceAmount(targetNftId);
207
377
  }
208
378
 
209
- function getLockedAmount(NftId targetNftId) external returns (Amount) {
379
+ function getLockedAmount(NftId targetNftId) external view returns (Amount) {
210
380
  return _store.getLockedAmount(targetNftId);
211
381
  }
212
382
 
213
- function getFeeAmount(NftId targetNftId) external returns (Amount) {
383
+ function getFeeAmount(NftId targetNftId) external view returns (Amount) {
214
384
  return _store.getFeeAmount(targetNftId);
215
385
  }
216
386
 
@@ -258,6 +428,16 @@ contract InstanceReader {
258
428
  }
259
429
  }
260
430
 
431
+ function getRequestInfo(RequestId requestId)
432
+ public
433
+ view
434
+ returns (IOracle.RequestInfo memory requestInfo)
435
+ {
436
+ bytes memory data = _store.getData(requestId.toKey32());
437
+ if (data.length > 0) {
438
+ return abi.decode(data, (IOracle.RequestInfo));
439
+ }
440
+ }
261
441
 
262
442
  function getMetadata(Key32 key)
263
443
  public
@@ -267,6 +447,14 @@ contract InstanceReader {
267
447
  return _store.getMetadata(key);
268
448
  }
269
449
 
450
+ function getState(Key32 key)
451
+ public
452
+ view
453
+ returns (StateId state)
454
+ {
455
+ return _store.getMetadata(key).state;
456
+ }
457
+
270
458
 
271
459
  function toReferralId(
272
460
  NftId distributionNftId,
@@ -318,10 +506,27 @@ contract InstanceReader {
318
506
  }
319
507
 
320
508
 
509
+ function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
510
+ return _instance.getInstanceAdmin().hasRole(account, roleId);
511
+ }
512
+
513
+
514
+ function hasAdminRole(address account, RoleId roleId) public view returns (bool isMember) {
515
+ return _instance.getInstanceAdmin().hasAdminRole(account, roleId);
516
+ }
517
+
518
+
519
+ function isTargetLocked(address target) public view returns (bool) {
520
+ return _instance.getInstanceAdmin().isTargetLocked(target);
521
+ }
522
+
321
523
  function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
322
524
  return policyNftId.toKey32(POLICY());
323
525
  }
324
526
 
527
+ function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
528
+ return policyNftId.toKey32(PREMIUM());
529
+ }
325
530
 
326
531
  function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
327
532
  return distributorNftId.toKey32(DISTRIBUTOR());
@@ -356,6 +561,14 @@ contract InstanceReader {
356
561
  return _store;
357
562
  }
358
563
 
564
+ function getBundleSet() external view returns (BundleSet bundleSet) {
565
+ return _bundleSet;
566
+ }
567
+
568
+ function getRiskSet() external view returns (RiskSet riskSet) {
569
+ return _riskSet;
570
+ }
571
+
359
572
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
360
573
  return UFixedLib.toUFixed(value, exp);
361
574
  }