@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ff795d8-141

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 (582) hide show
  1. package/README.md +130 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -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 +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1652 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1279 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1333 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -600
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +564 -471
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +240 -116
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +165 -336
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +373 -113
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +526 -87
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +413 -74
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +533 -218
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2302 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1843 -719
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +433 -211
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +171 -93
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1651 -770
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1013 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +772 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +355 -366
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +214 -102
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +221 -76
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +214 -423
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +554 -401
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +223 -624
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +694 -710
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +228 -112
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +219 -242
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +188 -88
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +458 -332
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +222 -114
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +155 -9
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +327 -16
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +399 -69
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -82
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +367 -231
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -62
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +440 -380
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -124
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -324
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +192 -108
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +409 -509
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +462 -56
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +251 -127
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +905 -121
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2127 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +303 -245
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +169 -91
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2140 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1393 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +315 -139
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Component.sol/Component.json +109 -296
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1021 -165
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  221. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +680 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  231. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +116 -141
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1127 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  237. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  238. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
  239. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  240. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +154 -0
  247. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +74 -2
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -90
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +67 -102
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +615 -6
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1301 -119
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +685 -63
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +1579 -172
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +250 -73
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +775 -176
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +195 -83
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +119 -58
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +66 -4
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +153 -4
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  356. package/contracts/accounting/AccountingService.sol +261 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +45 -0
  359. package/contracts/authorization/AccessAdmin.sol +789 -0
  360. package/contracts/authorization/AccessAdminLib.sol +387 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +174 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +137 -0
  365. package/contracts/authorization/IAuthorization.sol +27 -0
  366. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  367. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  368. package/contracts/distribution/BasicDistribution.sol +141 -0
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  370. package/contracts/distribution/Distribution.sol +135 -175
  371. package/contracts/distribution/DistributionService.sol +306 -213
  372. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  373. package/contracts/distribution/IDistributionComponent.sol +23 -49
  374. package/contracts/distribution/IDistributionService.sol +55 -33
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +114 -49
  390. package/contracts/instance/IInstanceService.sol +74 -37
  391. package/contracts/instance/Instance.sol +245 -133
  392. package/contracts/instance/InstanceAdmin.sol +380 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +263 -0
  394. package/contracts/instance/InstanceReader.sol +437 -100
  395. package/contracts/instance/InstanceService.sol +402 -180
  396. package/contracts/instance/InstanceServiceManager.sol +14 -29
  397. package/contracts/instance/InstanceStore.sol +151 -64
  398. package/contracts/instance/RiskSet.sol +118 -0
  399. package/contracts/instance/base/BalanceStore.sol +123 -0
  400. package/contracts/instance/base/Cloneable.sol +2 -25
  401. package/contracts/instance/base/ObjectCounter.sol +20 -0
  402. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  403. package/contracts/instance/base/ObjectSet.sol +77 -0
  404. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  405. package/contracts/instance/module/IBundle.sol +6 -8
  406. package/contracts/instance/module/IComponents.sol +40 -19
  407. package/contracts/instance/module/IDistribution.sol +21 -9
  408. package/contracts/instance/module/IPolicy.sol +57 -30
  409. package/contracts/instance/module/IRisk.sol +5 -0
  410. package/contracts/mock/Dip.sol +26 -0
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  413. package/contracts/oracle/IOracle.sol +41 -0
  414. package/contracts/oracle/IOracleComponent.sol +33 -0
  415. package/contracts/oracle/IOracleService.sol +66 -0
  416. package/contracts/oracle/Oracle.sol +154 -0
  417. package/contracts/oracle/OracleService.sol +310 -0
  418. package/contracts/oracle/OracleServiceManager.sol +39 -0
  419. package/contracts/pool/BasicPool.sol +173 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  421. package/contracts/pool/BundleService.sol +237 -224
  422. package/contracts/pool/BundleServiceManager.sol +13 -25
  423. package/contracts/pool/IBundleService.sol +35 -38
  424. package/contracts/pool/IPoolComponent.sol +23 -75
  425. package/contracts/pool/IPoolService.sol +107 -56
  426. package/contracts/pool/Pool.sol +209 -168
  427. package/contracts/pool/PoolLib.sol +353 -0
  428. package/contracts/pool/PoolService.sol +446 -262
  429. package/contracts/pool/PoolServiceManager.sol +12 -24
  430. package/contracts/product/ApplicationService.sol +177 -85
  431. package/contracts/product/ApplicationServiceManager.sol +12 -9
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +61 -0
  434. package/contracts/product/ClaimService.sol +380 -184
  435. package/contracts/product/ClaimServiceManager.sol +12 -9
  436. package/contracts/product/IApplicationService.sol +10 -3
  437. package/contracts/product/IClaimService.sol +48 -6
  438. package/contracts/product/IPolicyService.sol +54 -39
  439. package/contracts/product/IPricingService.sol +14 -11
  440. package/contracts/product/IProductComponent.sol +31 -10
  441. package/contracts/product/IRiskService.sol +33 -0
  442. package/contracts/product/PolicyService.sol +498 -234
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +12 -27
  445. package/contracts/product/PricingService.sol +116 -82
  446. package/contracts/product/PricingServiceManager.sol +12 -24
  447. package/contracts/product/Product.sol +236 -148
  448. package/contracts/product/RiskService.sol +154 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +72 -39
  451. package/contracts/registry/IRegistry.sol +94 -34
  452. package/contracts/registry/IRegistryService.sol +28 -35
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -2
  455. package/contracts/registry/Registry.sol +444 -219
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +277 -0
  458. package/contracts/registry/RegistryService.sol +74 -137
  459. package/contracts/registry/RegistryServiceManager.sol +23 -30
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +520 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +343 -0
  464. package/contracts/registry/TokenRegistry.sol +262 -64
  465. package/contracts/shared/Component.sol +122 -183
  466. package/contracts/shared/ComponentService.sol +610 -99
  467. package/contracts/shared/ComponentServiceManager.sol +38 -0
  468. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  469. package/contracts/shared/ContractLib.sol +357 -0
  470. package/contracts/shared/IComponent.sol +17 -49
  471. package/contracts/shared/IComponentService.sol +110 -0
  472. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  473. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  474. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  475. package/contracts/shared/INftOwnable.sol +3 -1
  476. package/contracts/shared/IPolicyHolder.sol +12 -17
  477. package/contracts/shared/IRegisterable.sol +23 -1
  478. package/contracts/shared/IService.sol +11 -6
  479. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  480. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  481. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  482. package/contracts/shared/Lifecycle.sol +88 -0
  483. package/contracts/shared/NftIdSet.sol +65 -0
  484. package/contracts/shared/NftOwnable.sol +33 -24
  485. package/contracts/shared/PolicyHolder.sol +18 -50
  486. package/contracts/shared/Registerable.sol +54 -23
  487. package/contracts/shared/RegistryLinked.sol +9 -14
  488. package/contracts/shared/Service.sol +36 -41
  489. package/contracts/shared/TokenHandler.sol +320 -13
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +170 -6
  492. package/contracts/staking/IStakingService.sol +110 -40
  493. package/contracts/staking/Staking.sol +509 -27
  494. package/contracts/staking/StakingLib.sol +281 -0
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +24 -16
  497. package/contracts/staking/StakingReader.sol +180 -0
  498. package/contracts/staking/StakingService.sol +311 -48
  499. package/contracts/staking/StakingServiceManager.sol +12 -8
  500. package/contracts/staking/StakingStore.sol +606 -0
  501. package/contracts/staking/TargetManagerLib.sol +211 -0
  502. package/contracts/type/AddressSet.sol +1 -1
  503. package/contracts/type/Amount.sol +44 -3
  504. package/contracts/type/Blocknumber.sol +26 -3
  505. package/contracts/type/ClaimId.sol +6 -1
  506. package/contracts/type/Fee.sol +22 -21
  507. package/contracts/type/Key32.sol +2 -2
  508. package/contracts/type/Key32Set.sol +62 -0
  509. package/contracts/type/NftId.sol +21 -16
  510. package/contracts/type/NftIdSet.sol +1 -1
  511. package/contracts/type/ObjectType.sol +204 -63
  512. package/contracts/type/PayoutId.sol +10 -10
  513. package/contracts/type/Referral.sol +2 -1
  514. package/contracts/type/RequestId.sol +75 -0
  515. package/contracts/type/RiskId.sol +39 -7
  516. package/contracts/type/RoleId.sol +122 -74
  517. package/contracts/type/Seconds.sol +48 -1
  518. package/contracts/type/Selector.sol +107 -0
  519. package/contracts/type/StateId.sol +41 -2
  520. package/contracts/type/String.sol +53 -0
  521. package/contracts/type/Timestamp.sol +16 -7
  522. package/contracts/type/UFixed.sol +61 -125
  523. package/contracts/type/Version.sol +58 -7
  524. package/contracts/{shared → upgradeability}/ProxyManager.sol +101 -36
  525. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  526. package/contracts/{shared → upgradeability}/Versionable.sol +6 -3
  527. package/package.json +12 -8
  528. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  530. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  531. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  532. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  533. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  534. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  535. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  538. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  540. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  542. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  543. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  544. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  547. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  548. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  549. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
  550. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  552. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  553. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  554. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  555. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
  556. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  557. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  558. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  559. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  560. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  561. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  562. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  563. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  564. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  565. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  566. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  567. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  568. package/contracts/instance/BundleManager.sol +0 -126
  569. package/contracts/instance/InstanceAccessManager.sol +0 -543
  570. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  571. package/contracts/instance/base/Lifecycle.sol +0 -121
  572. package/contracts/instance/base/ObjectManager.sol +0 -82
  573. package/contracts/instance/module/IAccess.sol +0 -54
  574. package/contracts/instance/module/ISetup.sol +0 -33
  575. package/contracts/instance/module/ITreasury.sol +0 -23
  576. package/contracts/product/IProductService.sol +0 -40
  577. package/contracts/product/ProductService.sol +0 -210
  578. package/contracts/product/ProductServiceManager.sol +0 -54
  579. package/contracts/registry/RegistryAccessManager.sol +0 -207
  580. package/contracts/registry/ReleaseManager.sol +0 -360
  581. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  582. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -3,60 +3,108 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
- import {ClaimId} from "../type/ClaimId.sol";
7
- import {DistributorType} from "../type/DistributorType.sol";
8
- import {Fee, FeeLib} from "../type/Fee.sol";
9
- import {Key32} from "../type/Key32.sol";
10
- import {NftId} from "../type/NftId.sol";
11
- import {ObjectType, DISTRIBUTOR, DISTRIBUTION, INSTANCE, PRODUCT, POLICY, POOL, TREASURY, BUNDLE} from "../type/ObjectType.sol";
12
- import {PayoutId} from "../type/PayoutId.sol";
13
- import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
14
- import {Registerable} from "../shared/Registerable.sol";
15
- import {RiskId} from "../type/RiskId.sol";
16
- import {UFixed, MathLib, UFixedLib} from "../type/UFixed.sol";
17
- import {Version} from "../type/Version.sol";
18
- import {StateId} from "../type/StateId.sol";
19
-
20
- import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IAccess} from "../authorization/IAccess.sol";
21
7
  import {IBundle} from "../instance/module/IBundle.sol";
22
8
  import {IComponents} from "../instance/module/IComponents.sol";
23
9
  import {IDistribution} from "../instance/module/IDistribution.sol";
10
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
24
11
  import {IInstance} from "./IInstance.sol";
25
- import {IKeyValueStore} from "../instance/base/IKeyValueStore.sol";
12
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
13
+ import {IOracle} from "../oracle/IOracle.sol";
26
14
  import {IPolicy} from "../instance/module/IPolicy.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
27
16
  import {IRisk} from "../instance/module/IRisk.sol";
28
- import {ISetup} from "../instance/module/ISetup.sol";
29
- import {ITreasury} from "../instance/module/ITreasury.sol";
30
17
  import {TimestampLib} from "../type/Timestamp.sol";
31
18
 
19
+ import {Amount} from "../type/Amount.sol";
20
+ import {BundleSet} from "./BundleSet.sol";
21
+ import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
22
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
23
+ import {DistributorType} from "../type/DistributorType.sol";
32
24
  import {InstanceStore} from "./InstanceStore.sol";
25
+ import {Key32} from "../type/Key32.sol";
26
+ import {NftId} from "../type/NftId.sol";
27
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
28
+ import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
29
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
30
+ import {RequestId} from "../type/RequestId.sol";
31
+ import {RiskId} from "../type/RiskId.sol";
32
+ import {RiskSet} from "./RiskSet.sol";
33
+ import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
34
+ import {StateId} from "../type/StateId.sol";
35
+ import {TokenHandler} from "../shared/TokenHandler.sol";
36
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
33
37
 
34
38
 
39
+ /// @dev Central reader contract for a specific instance.
40
+ /// Should provide convenient reading functions for all instance and related component data.
35
41
  contract InstanceReader {
36
42
 
37
43
  error ErrorInstanceReaderAlreadyInitialized();
38
44
  error ErrorInstanceReaderInstanceAddressZero();
39
45
 
40
- bool private _initialized;
46
+ bool private _initialized = false;
41
47
 
48
+ IRegistry internal _registry;
42
49
  IInstance internal _instance;
43
- IKeyValueStore internal _store;
44
50
 
45
- function initialize(address instance) public {
51
+ InstanceStore internal _store;
52
+ BundleSet internal _bundleSet;
53
+ RiskSet internal _riskSet;
54
+ IDistributionService internal _distributionService;
55
+
56
+ /// @dev This initializer needs to be called from the instance itself.
57
+ function initialize() public {
46
58
  if(_initialized) {
47
59
  revert ErrorInstanceReaderAlreadyInitialized();
48
60
  }
49
61
 
50
- if(instance == address(0)) {
51
- revert ErrorInstanceReaderInstanceAddressZero();
62
+ initializeWithInstance(msg.sender);
63
+ }
64
+
65
+ function initializeWithInstance(address instanceAddress)
66
+ public
67
+ {
68
+ if(_initialized) {
69
+ revert ErrorInstanceReaderAlreadyInitialized();
52
70
  }
53
71
 
54
- _instance = IInstance(instance);
72
+ _initialized = true;
73
+ _instance = IInstance(instanceAddress);
74
+ _registry = _instance.getRegistry();
75
+
55
76
  _store = _instance.getInstanceStore();
77
+ _bundleSet = _instance.getBundleSet();
78
+ _riskSet = _instance.getRiskSet();
79
+ _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
80
+ }
56
81
 
57
- _initialized = true;
82
+
83
+ // instance level functions
84
+
85
+ function getRegistry() public view returns (IRegistry registry) {
86
+ return _registry;
87
+ }
88
+
89
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
90
+ return _registry.getNftIdForAddress(address(_instance));
91
+ }
92
+
93
+ function getInstance() public view returns (IInstance instance) {
94
+ return _instance;
95
+ }
96
+
97
+ function components() public view returns (uint256 componentCount) {
98
+ return _instance.getInstanceAdmin().components();
58
99
  }
59
100
 
101
+ function products() public view returns (uint256 productCount) {
102
+ return _instance.products();
103
+ }
104
+
105
+ function getProductNftId(uint256 idx) public view returns (NftId productNftId) {
106
+ return _instance.getProductNftId(idx);
107
+ }
60
108
 
61
109
  // module specific functions
62
110
 
@@ -79,33 +127,89 @@ contract InstanceReader {
79
127
  return _store.getState(toPolicyKey(policyNftId));
80
128
  }
81
129
 
82
- /// @dev returns true iff policy may be closed
83
- /// a policy can be closed all conditions below are met
84
- /// - policy exists
85
- /// - has been activated
86
- /// - is not yet closed
87
- /// - has no open claims
88
- /// - claim amount matches sum insured amount or is expired
89
- function policyIsCloseable(NftId policyNftId)
130
+ function getPremiumInfo(NftId policyNftId)
90
131
  public
91
132
  view
92
- returns (bool isCloseable)
133
+ returns (IPolicy.PremiumInfo memory info)
93
134
  {
94
- IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
135
+ bytes memory data = _store.getData(toPremiumKey(policyNftId));
136
+ if (data.length > 0) {
137
+ return abi.decode(data, (IPolicy.PremiumInfo));
138
+ }
139
+ }
95
140
 
96
- if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
97
- if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
98
- if (info.closedAt.gtz()) { return false; } // not closeable: already closed
99
- if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
141
+ function getPremiumInfoState(NftId policyNftId)
142
+ public
143
+ view
144
+ returns (StateId state)
145
+ {
146
+ return _store.getState(toPremiumKey(policyNftId));
147
+ }
100
148
 
101
- // closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
102
- if (info.claimAmount == info.sumInsuredAmount) { return true; }
149
+ function bundles(NftId poolNftId)
150
+ public
151
+ view
152
+ returns (uint256 bundleCount)
153
+ {
154
+ return _bundleSet.bundles(poolNftId);
155
+ }
103
156
 
104
- // not closeable: not yet expired
105
- if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
157
+ function activeBundles(NftId poolNftId)
158
+ public
159
+ view
160
+ returns (uint256 bundleCount)
161
+ {
162
+ return _bundleSet.activeBundles(poolNftId);
163
+ }
164
+
165
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx)
166
+ public
167
+ view
168
+ returns (NftId bundleNftId)
169
+ {
170
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
171
+ }
106
172
 
107
- // all conditionsl to close the policy are met
108
- return true;
173
+ function getBundleNftId(NftId poolNftId, uint256 idx)
174
+ public
175
+ view
176
+ returns (NftId bundleNftId)
177
+ {
178
+ return _bundleSet.getBundleNftId(poolNftId, idx);
179
+ }
180
+
181
+ function getBundleState(NftId bundleNftId)
182
+ public
183
+ view
184
+ returns (StateId state)
185
+ {
186
+ return _store.getState(toBundleKey(bundleNftId));
187
+ }
188
+
189
+ /// @dev Returns true iff policy is active.
190
+ function policyIsActive(NftId policyNftId)
191
+ public
192
+ view
193
+ returns (bool isCloseable)
194
+ {
195
+ return PolicyServiceLib.policyIsActive(this, policyNftId);
196
+ }
197
+
198
+ function claims(NftId policyNftId)
199
+ public
200
+ view
201
+ returns (uint16 claimCount)
202
+ {
203
+ return getPolicyInfo(policyNftId).claimsCount;
204
+ }
205
+
206
+
207
+ function getClaimId(uint idx)
208
+ public
209
+ pure
210
+ returns (ClaimId claimId)
211
+ {
212
+ return ClaimIdLib.toClaimId(idx + 1);
109
213
  }
110
214
 
111
215
  function getClaimInfo(NftId policyNftId, ClaimId claimId)
@@ -119,6 +223,7 @@ contract InstanceReader {
119
223
  }
120
224
  }
121
225
 
226
+
122
227
  function getClaimState(NftId policyNftId, ClaimId claimId)
123
228
  public
124
229
  view
@@ -127,6 +232,34 @@ contract InstanceReader {
127
232
  return _store.getState(claimId.toKey32(policyNftId));
128
233
  }
129
234
 
235
+
236
+ function payouts(NftId policyNftId, ClaimId claimId)
237
+ public
238
+ view
239
+ returns (uint24 payoutCount)
240
+ {
241
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
242
+ }
243
+
244
+
245
+ function getPayoutId(ClaimId claimId, uint24 idx)
246
+ public
247
+ pure
248
+ returns (PayoutId payoutId)
249
+ {
250
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
251
+ }
252
+
253
+
254
+ function getRemainingClaimableAmount(NftId policyNftId)
255
+ public
256
+ view
257
+ returns (Amount remainingClaimableAmount)
258
+ {
259
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
260
+ return info.sumInsuredAmount - info.claimAmount;
261
+ }
262
+
130
263
  function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
131
264
  public
132
265
  view
@@ -146,6 +279,38 @@ contract InstanceReader {
146
279
  return _store.getState(payoutId.toKey32(policyNftId));
147
280
  }
148
281
 
282
+ function risks(NftId productNftId)
283
+ public
284
+ view
285
+ returns (uint256 riskCount)
286
+ {
287
+ return _riskSet.risks(productNftId);
288
+ }
289
+
290
+ function getRiskId(NftId productNftId, uint256 idx)
291
+ public
292
+ view
293
+ returns (RiskId riskId)
294
+ {
295
+ return _riskSet.getRiskId(productNftId, idx);
296
+ }
297
+
298
+ function activeRisks(NftId productNftId)
299
+ public
300
+ view
301
+ returns (uint256 activeRiskCount)
302
+ {
303
+ return _riskSet.activeRisks(productNftId);
304
+ }
305
+
306
+ function getActiveRiskId(NftId productNftId, uint256 idx)
307
+ public
308
+ view
309
+ returns (RiskId riskId)
310
+ {
311
+ return _riskSet.getActiveRiskId(productNftId, idx);
312
+ }
313
+
149
314
  function getRiskInfo(RiskId riskId)
150
315
  public
151
316
  view
@@ -157,30 +322,68 @@ contract InstanceReader {
157
322
  }
158
323
  }
159
324
 
160
- function getTokenHandler(NftId productNftId)
325
+ function getRiskState(RiskId riskId)
326
+ public
327
+ view
328
+ returns (StateId stateId)
329
+ {
330
+ bytes memory data = _store.getData(riskId.toKey32());
331
+ return _store.getState(riskId.toKey32());
332
+ }
333
+
334
+ function policiesForRisk(RiskId riskId)
161
335
  public
162
336
  view
163
- returns (address tokenHandler)
337
+ returns (uint256 linkedPolicies)
164
338
  {
165
- bytes memory data = _store.getData(toTreasuryKey(productNftId));
339
+ return _riskSet.linkedPolicies(riskId);
340
+ }
166
341
 
167
- if (data.length > 0) {
168
- ITreasury.TreasuryInfo memory info = abi.decode(data, (ITreasury.TreasuryInfo));
169
- return address(info.tokenHandler);
342
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
343
+ public
344
+ view
345
+ returns (NftId linkedPolicyNftId)
346
+ {
347
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
348
+ }
349
+
350
+
351
+ function getToken(NftId componentNftId)
352
+ public
353
+ view
354
+ returns (IERC20Metadata token)
355
+ {
356
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
357
+ if (address(tokenHandler) != address(0)) {
358
+ return tokenHandler.TOKEN();
170
359
  }
171
360
  }
172
361
 
173
- function getTreasuryInfo(NftId productNftId)
174
- public
175
- view
176
- returns (ITreasury.TreasuryInfo memory info)
362
+
363
+ function getWallet(NftId componentNftId)
364
+ public
365
+ view
366
+ returns (address wallet)
177
367
  {
178
- bytes memory data = _store.getData(toTreasuryKey(productNftId));
368
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
369
+ if (address(tokenHandler) != address(0)) {
370
+ return tokenHandler.getWallet();
371
+ }
372
+ }
373
+
374
+
375
+ function getTokenHandler(NftId componentNftId)
376
+ public
377
+ view
378
+ returns (TokenHandler tokenHandler)
379
+ {
380
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
179
381
  if (data.length > 0) {
180
- return abi.decode(data, (ITreasury.TreasuryInfo));
382
+ return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler;
181
383
  }
182
384
  }
183
-
385
+
386
+
184
387
  function getBundleInfo(NftId bundleNftId)
185
388
  public
186
389
  view
@@ -214,37 +417,59 @@ contract InstanceReader {
214
417
  }
215
418
  }
216
419
 
217
- function getDistributionSetupInfo(NftId distributionNftId)
420
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
421
+ return _store.getBalanceAmount(targetNftId);
422
+ }
423
+
424
+ function getLockedAmount(NftId targetNftId) external view returns (Amount) {
425
+ return _store.getLockedAmount(targetNftId);
426
+ }
427
+
428
+ function getFeeAmount(NftId targetNftId) external view returns (Amount) {
429
+ return _store.getFeeAmount(targetNftId);
430
+ }
431
+
432
+ function getComponentInfo(NftId componentNftId)
218
433
  public
219
434
  view
220
- returns (ISetup.DistributionSetupInfo memory info)
435
+ returns (IComponents.ComponentInfo memory info)
221
436
  {
222
- bytes memory data = _store.getData(toDistributionKey(distributionNftId));
437
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
223
438
  if (data.length > 0) {
224
- return abi.decode(data, (ISetup.DistributionSetupInfo));
439
+ return abi.decode(data, (IComponents.ComponentInfo));
225
440
  }
226
441
  }
227
442
 
228
- // TODO consider to replace by component type specific getXyzInfo
229
- function getComponentInfo(NftId poolNftId)
443
+ function getProductInfo(NftId productNftId)
230
444
  public
231
445
  view
232
- returns (IComponents.ComponentInfo memory info)
446
+ returns (IComponents.ProductInfo memory info)
233
447
  {
234
- bytes memory data = _store.getData(toPoolKey(poolNftId));
448
+ bytes memory data = _store.getData(toProductKey(productNftId));
235
449
  if (data.length > 0) {
236
- return abi.decode(data, (IComponents.ComponentInfo));
450
+ return abi.decode(data, (IComponents.ProductInfo));
237
451
  }
238
452
  }
239
453
 
240
- function getProductSetupInfo(NftId productNftId)
454
+ function getFeeInfo(NftId productNftId)
241
455
  public
242
456
  view
243
- returns (ISetup.ProductSetupInfo memory info)
457
+ returns (IComponents.FeeInfo memory feeInfo)
244
458
  {
245
- bytes memory data = _store.getData(toProductKey(productNftId));
459
+ bytes memory data = _store.getData(toFeeKey(productNftId));
246
460
  if (data.length > 0) {
247
- return abi.decode(data, (ISetup.ProductSetupInfo));
461
+ return abi.decode(data, (IComponents.FeeInfo));
462
+ }
463
+ }
464
+
465
+ function getPoolInfo(NftId poolNftId)
466
+ public
467
+ view
468
+ returns (IComponents.PoolInfo memory info)
469
+ {
470
+ bytes memory data = _store.getData(toPoolKey(poolNftId));
471
+ if (data.length > 0) {
472
+ return abi.decode(data, (IComponents.PoolInfo));
248
473
  }
249
474
  }
250
475
 
@@ -259,6 +484,27 @@ contract InstanceReader {
259
484
  }
260
485
  }
261
486
 
487
+ function isReferralValid(NftId distributionNftId, ReferralId referralId)
488
+ external
489
+ view
490
+ returns (bool isValid)
491
+ {
492
+ return _distributionService.referralIsValid(
493
+ distributionNftId,
494
+ referralId);
495
+ }
496
+
497
+ function getRequestInfo(RequestId requestId)
498
+ public
499
+ view
500
+ returns (IOracle.RequestInfo memory requestInfo)
501
+ {
502
+ bytes memory data = _store.getData(requestId.toKey32());
503
+ if (data.length > 0) {
504
+ return abi.decode(data, (IOracle.RequestInfo));
505
+ }
506
+ }
507
+
262
508
 
263
509
  function getMetadata(Key32 key)
264
510
  public
@@ -269,6 +515,15 @@ contract InstanceReader {
269
515
  }
270
516
 
271
517
 
518
+ function getState(Key32 key)
519
+ public
520
+ view
521
+ returns (StateId state)
522
+ {
523
+ return _store.getMetadata(key).state;
524
+ }
525
+
526
+
272
527
  function toReferralId(
273
528
  NftId distributionNftId,
274
529
  string memory referralCode
@@ -291,36 +546,90 @@ contract InstanceReader {
291
546
  ReferralStatus status
292
547
  )
293
548
  {
294
- IDistribution.ReferralInfo memory info = getReferralInfo(
295
- referralId);
549
+ return IDistributionService(
550
+ _registry.getServiceAddress(
551
+ DISTRIBUTION(),
552
+ _instance.getRelease())).getDiscountPercentage(
553
+ this, // instance reader
554
+ referralId);
555
+ }
296
556
 
297
- if (info.expiryAt.eqz()) {
298
- return (
299
- UFixedLib.zero(),
300
- REFERRAL_ERROR_UNKNOWN());
301
- }
302
557
 
303
- if (info.expiryAt < TimestampLib.blockTimestamp()) {
304
- return (
305
- UFixedLib.zero(),
306
- REFERRAL_ERROR_EXPIRED());
307
- }
558
+ function roles() public view returns (uint256) {
559
+ return _instance.getInstanceAdmin().roles();
560
+ }
561
+
562
+
563
+ function getInstanceOwnerRole() public pure returns (RoleId roleId) {
564
+ return INSTANCE_OWNER_ROLE();
565
+ }
566
+
567
+
568
+ function getRoleId(uint256 idx) public view returns (RoleId roleId) {
569
+ return _instance.getInstanceAdmin().getRoleId(uint64(idx));
570
+ }
571
+
572
+ function roleExists(RoleId roleId) public view returns (bool exists) {
573
+ return _instance.getInstanceAdmin().roleExists(roleId);
574
+ }
575
+
576
+ function getRoleInfo(RoleId roleId) public view returns (IAccess.RoleInfo memory roleInfo) {
577
+ return _instance.getInstanceAdmin().getRoleInfo(roleId);
578
+ }
579
+
580
+
581
+ function isRoleCustom(RoleId roleId) public view returns (bool isCustom) {
582
+ return _instance.getInstanceAdmin().isRoleCustom(roleId);
583
+ }
584
+
585
+
586
+ function isRoleActive(RoleId roleId) public view returns (bool isActive) {
587
+ return _instance.getInstanceAdmin().isRoleActive(roleId);
588
+ }
308
589
 
309
- if (info.usedReferrals >= info.maxReferrals) {
310
- return (
311
- UFixedLib.zero(),
312
- REFERRAL_ERROR_EXHAUSTED());
313
- }
314
590
 
315
- return (
316
- info.discountPercentage,
317
- REFERRAL_OK()
318
- );
591
+ function roleMembers(RoleId roleId) public view returns (uint256 numberOfMembers) {
592
+ return _instance.getInstanceAdmin().roleMembers(roleId);
319
593
  }
320
594
 
321
595
 
322
- function toTreasuryKey(NftId productNftId) public pure returns (Key32) {
323
- return productNftId.toKey32(TREASURY());
596
+ function getRoleMember(RoleId roleId, uint256 idx) public view returns (address account) {
597
+ return _instance.getInstanceAdmin().getRoleMember(roleId, idx);
598
+ }
599
+
600
+
601
+ function isRoleMember(RoleId roleId, address account) public view returns (bool isMember) {
602
+ return _instance.getInstanceAdmin().isRoleMember(roleId, account);
603
+ }
604
+
605
+
606
+ function isRoleAdmin(RoleId roleId, address account) public view returns (bool isMember) {
607
+ return _instance.getInstanceAdmin().isRoleAdmin(roleId, account);
608
+ }
609
+
610
+
611
+ function targets() public view returns (uint256 targetCount) {
612
+ return _instance.getInstanceAdmin().targets();
613
+ }
614
+
615
+
616
+ function getTargetAddress(uint256 idx) public view returns (address target) {
617
+ return _instance.getInstanceAdmin().getTargetAddress(idx);
618
+ }
619
+
620
+
621
+ function targetExists(address target) public view returns (bool exists) {
622
+ return _instance.getInstanceAdmin().targetExists(target);
623
+ }
624
+
625
+
626
+ function getTargetInfo(address target) public view returns (IAccess.TargetInfo memory targetInfo) {
627
+ return _instance.getInstanceAdmin().getTargetInfo(target);
628
+ }
629
+
630
+
631
+ function isLocked(address target) public view returns (bool) {
632
+ return _instance.getInstanceAdmin().isTargetLocked(target);
324
633
  }
325
634
 
326
635
 
@@ -329,39 +638,67 @@ contract InstanceReader {
329
638
  }
330
639
 
331
640
 
641
+ function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
642
+ return policyNftId.toKey32(PREMIUM());
643
+ }
644
+
645
+
332
646
  function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
333
647
  return distributorNftId.toKey32(DISTRIBUTOR());
334
648
  }
335
649
 
336
- function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
337
- return distributionNftId.toKey32(DISTRIBUTION());
338
- }
339
650
 
340
651
  function toBundleKey(NftId poolNftId) public pure returns (Key32) {
341
652
  return poolNftId.toKey32(BUNDLE());
342
653
  }
343
654
 
655
+
656
+ function toComponentKey(NftId componentNftId) public pure returns (Key32) {
657
+ return componentNftId.toKey32(COMPONENT());
658
+ }
659
+
660
+
661
+ function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
662
+ return distributionNftId.toKey32(DISTRIBUTION());
663
+ }
664
+
665
+
344
666
  function toPoolKey(NftId poolNftId) public pure returns (Key32) {
345
667
  return poolNftId.toKey32(POOL());
346
668
  }
347
669
 
670
+
348
671
  function toProductKey(NftId productNftId) public pure returns (Key32) {
349
672
  return productNftId.toKey32(PRODUCT());
350
673
  }
351
674
 
352
- // low level function
353
- function getInstance() external view returns (IInstance instance) {
354
- return _instance;
675
+
676
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
677
+ return productNftId.toKey32(FEE());
355
678
  }
356
679
 
680
+ //--- low level function ----------------------------------------------------//
681
+
357
682
  function getInstanceStore() external view returns (IKeyValueStore store) {
358
683
  return _store;
359
684
  }
360
685
 
686
+
687
+ function getBundleSet() external view returns (BundleSet bundleSet) {
688
+ return _bundleSet;
689
+ }
690
+
691
+
692
+ function getRiskSet() external view returns (RiskSet riskSet) {
693
+ return _riskSet;
694
+ }
695
+
696
+
361
697
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
362
698
  return UFixedLib.toUFixed(value, exp);
363
699
  }
364
700
 
701
+
365
702
  function toInt(UFixed value) public pure returns (uint256) {
366
703
  return UFixedLib.toInt(value);
367
704
  }