@etherisc/gif-next 0.0.2-b312c9a-831 → 0.0.2-b37fa8b-169

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 (520) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +94 -50
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +525 -213
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -153
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -95
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -82
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +157 -114
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +298 -236
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +178 -168
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +183 -141
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +574 -282
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  64. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  67. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  68. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +494 -49
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -12
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +542 -109
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +965 -365
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +327 -64
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +907 -571
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -79
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -57
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +802 -1748
  87. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2835 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -49
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +49 -21
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -55
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -76
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -358
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -74
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +293 -63
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -46
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -150
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +127 -99
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +235 -4
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +176 -133
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
  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 +129 -85
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +103 -75
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +187 -144
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +103 -47
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +54 -19
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/Registry.sol/Registry.json +92 -57
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -466
  198. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +71 -35
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +79 -43
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Component.sol/Component.json +60 -32
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +227 -250
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -69
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +49 -21
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
  240. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
  243. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  245. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  246. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -32
  247. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  248. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
  249. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  253. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  255. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  260. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  267. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1468 -128
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  271. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
  272. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  273. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  274. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/Staking.sol/Staking.json +1623 -254
  276. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +132 -65
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -55
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
  288. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  289. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  290. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
  292. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  293. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  295. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  297. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  338. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  342. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  346. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  348. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  350. package/contracts/accounting/AccountingService.sol +18 -8
  351. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  352. package/contracts/accounting/IAccountingService.sol +4 -2
  353. package/contracts/authorization/AccessAdmin.sol +422 -258
  354. package/contracts/authorization/AccessAdminLib.sol +396 -0
  355. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  356. package/contracts/authorization/Authorization.sol +142 -262
  357. package/contracts/authorization/IAccess.sol +25 -7
  358. package/contracts/authorization/IAccessAdmin.sol +87 -80
  359. package/contracts/authorization/IAuthorization.sol +9 -43
  360. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  361. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  362. package/contracts/distribution/BasicDistribution.sol +13 -11
  363. package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
  364. package/contracts/distribution/Distribution.sol +20 -60
  365. package/contracts/distribution/DistributionService.sol +172 -81
  366. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  367. package/contracts/distribution/IDistributionComponent.sol +3 -10
  368. package/contracts/distribution/IDistributionService.sol +34 -19
  369. package/contracts/examples/fire/FirePool.sol +0 -4
  370. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  371. package/contracts/examples/fire/FireProduct.sol +10 -13
  372. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  373. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  374. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  375. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  376. package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
  377. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  378. package/contracts/examples/unpermissioned/SimpleProduct.sol +112 -27
  379. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  380. package/contracts/instance/BaseStore.sol +93 -0
  381. package/contracts/instance/BundleSet.sol +4 -4
  382. package/contracts/instance/IBaseStore.sol +37 -0
  383. package/contracts/instance/IInstance.sol +103 -18
  384. package/contracts/instance/IInstanceService.sol +55 -6
  385. package/contracts/instance/Instance.sol +176 -64
  386. package/contracts/instance/InstanceAdmin.sol +263 -169
  387. package/contracts/instance/InstanceAuthorizationV3.sol +119 -64
  388. package/contracts/instance/InstanceReader.sol +420 -369
  389. package/contracts/instance/InstanceService.sol +306 -183
  390. package/contracts/instance/InstanceServiceManager.sol +1 -1
  391. package/contracts/instance/InstanceStore.sol +10 -72
  392. package/contracts/instance/ProductStore.sol +235 -0
  393. package/contracts/instance/RiskSet.sol +21 -14
  394. package/contracts/instance/TargetNames.sol +10 -0
  395. package/contracts/instance/base/BalanceStore.sol +4 -6
  396. package/contracts/instance/base/ObjectCounter.sol +1 -2
  397. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  398. package/contracts/instance/base/ObjectSet.sol +7 -8
  399. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  400. package/contracts/instance/module/IBundle.sol +6 -5
  401. package/contracts/instance/module/IComponents.sol +19 -7
  402. package/contracts/instance/module/IDistribution.sol +21 -8
  403. package/contracts/instance/module/IPolicy.sol +28 -8
  404. package/contracts/instance/module/IRisk.sol +4 -0
  405. package/contracts/oracle/BasicOracle.sol +2 -4
  406. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  407. package/contracts/oracle/IOracle.sol +9 -4
  408. package/contracts/oracle/Oracle.sol +3 -5
  409. package/contracts/oracle/OracleService.sol +24 -23
  410. package/contracts/oracle/OracleServiceManager.sol +1 -1
  411. package/contracts/pool/BasicPool.sol +3 -16
  412. package/contracts/pool/BasicPoolAuthorization.sol +29 -16
  413. package/contracts/pool/BundleService.sol +60 -99
  414. package/contracts/pool/BundleServiceManager.sol +1 -1
  415. package/contracts/pool/IBundleService.sol +27 -32
  416. package/contracts/pool/IPoolService.sol +57 -40
  417. package/contracts/pool/Pool.sol +13 -25
  418. package/contracts/pool/PoolLib.sol +341 -0
  419. package/contracts/pool/PoolService.sol +192 -193
  420. package/contracts/pool/PoolServiceManager.sol +1 -1
  421. package/contracts/product/ApplicationService.sol +88 -20
  422. package/contracts/product/ApplicationServiceManager.sol +1 -1
  423. package/contracts/product/BasicProduct.sol +3 -3
  424. package/contracts/product/BasicProductAuthorization.sol +31 -9
  425. package/contracts/product/ClaimService.sol +221 -209
  426. package/contracts/product/ClaimServiceManager.sol +1 -1
  427. package/contracts/product/IApplicationService.sol +24 -2
  428. package/contracts/product/IClaimService.sol +18 -5
  429. package/contracts/product/IPolicyService.sol +20 -8
  430. package/contracts/product/IPricingService.sol +1 -0
  431. package/contracts/product/IProductComponent.sol +4 -1
  432. package/contracts/product/IRiskService.sol +25 -10
  433. package/contracts/product/PolicyService.sol +113 -204
  434. package/contracts/product/PolicyServiceLib.sol +139 -0
  435. package/contracts/product/PolicyServiceManager.sol +1 -1
  436. package/contracts/product/PricingService.sol +52 -46
  437. package/contracts/product/PricingServiceManager.sol +3 -3
  438. package/contracts/product/Product.sol +93 -27
  439. package/contracts/product/RiskService.sol +121 -38
  440. package/contracts/product/RiskServiceManager.sol +1 -1
  441. package/contracts/registry/ChainNft.sol +4 -2
  442. package/contracts/registry/IRegistry.sol +23 -24
  443. package/contracts/registry/IRelease.sol +29 -0
  444. package/contracts/registry/Registry.sol +22 -11
  445. package/contracts/registry/RegistryAdmin.sol +107 -373
  446. package/contracts/registry/RegistryAuthorization.sol +336 -0
  447. package/contracts/registry/RegistryService.sol +4 -4
  448. package/contracts/registry/RegistryServiceManager.sol +1 -1
  449. package/contracts/registry/ReleaseAdmin.sol +195 -0
  450. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  451. package/contracts/registry/ReleaseRegistry.sol +157 -117
  452. package/contracts/registry/ServiceAuthorizationV3.sol +163 -28
  453. package/contracts/registry/TokenRegistry.sol +61 -59
  454. package/contracts/shared/Component.sol +23 -28
  455. package/contracts/shared/ComponentService.sol +317 -317
  456. package/contracts/shared/ComponentServiceManager.sol +1 -1
  457. package/contracts/shared/ContractLib.sol +164 -76
  458. package/contracts/shared/IComponent.sol +1 -5
  459. package/contracts/shared/IComponentService.sol +21 -26
  460. package/contracts/shared/IKeyValueStore.sol +9 -1
  461. package/contracts/shared/INftOwnable.sol +2 -0
  462. package/contracts/shared/IRegisterable.sol +15 -5
  463. package/contracts/shared/IService.sol +3 -5
  464. package/contracts/shared/InitializableERC165.sol +9 -1
  465. package/contracts/shared/InstanceLinkedComponent.sol +6 -9
  466. package/contracts/shared/KeyValueStore.sol +3 -3
  467. package/contracts/shared/NftOwnable.sol +8 -6
  468. package/contracts/shared/PolicyHolder.sol +4 -3
  469. package/contracts/shared/Registerable.sol +42 -19
  470. package/contracts/shared/RegistryLinked.sol +1 -1
  471. package/contracts/shared/Service.sol +13 -30
  472. package/contracts/shared/TokenHandler.sol +45 -92
  473. package/contracts/staking/IStaking.sol +266 -72
  474. package/contracts/staking/IStakingService.sol +45 -75
  475. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  476. package/contracts/staking/Staking.sol +494 -211
  477. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  478. package/contracts/staking/StakingManager.sol +4 -3
  479. package/contracts/staking/StakingReader.sol +58 -77
  480. package/contracts/staking/StakingService.sol +62 -181
  481. package/contracts/staking/StakingServiceManager.sol +6 -4
  482. package/contracts/staking/StakingStore.sol +1093 -330
  483. package/contracts/staking/TargetHandler.sol +132 -0
  484. package/contracts/staking/TargetManagerLib.sol +69 -46
  485. package/contracts/type/Amount.sol +4 -0
  486. package/contracts/type/Blocknumber.sol +15 -15
  487. package/contracts/type/ChainId.sol +101 -0
  488. package/contracts/type/Fee.sol +8 -8
  489. package/contracts/type/NftId.sol +3 -3
  490. package/contracts/type/ObjectType.sol +62 -41
  491. package/contracts/type/RiskId.sol +9 -3
  492. package/contracts/type/RoleId.sol +63 -45
  493. package/contracts/type/Seconds.sol +19 -0
  494. package/contracts/type/Selector.sol +5 -0
  495. package/contracts/type/String.sol +12 -0
  496. package/contracts/type/Timestamp.sol +4 -7
  497. package/contracts/type/UFixed.sol +35 -127
  498. package/contracts/type/Version.sol +54 -5
  499. package/contracts/upgradeability/IVersionable.sol +3 -0
  500. package/contracts/upgradeability/ProxyManager.sol +26 -12
  501. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  502. package/contracts/upgradeability/Versionable.sol +6 -3
  503. package/package.json +2 -2
  504. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  505. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  506. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  507. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  508. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  509. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  510. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
  511. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  512. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  513. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  514. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  515. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  516. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  517. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  518. package/contracts/instance/module/IAccess.sol +0 -46
  519. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  520. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,35 +1,45 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
6
- import {DistributorType} from "../type/DistributorType.sol";
7
- import {Key32} from "../type/Key32.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
- import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
11
- import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
12
- import {RequestId} from "../type/RequestId.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {RoleId} from "../type/RoleId.sol";
15
- import {StateId} from "../type/StateId.sol";
16
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
17
5
 
6
+ import {IAccess} from "../authorization/IAccess.sol";
18
7
  import {IBundle} from "../instance/module/IBundle.sol";
19
8
  import {IComponents} from "../instance/module/IComponents.sol";
20
9
  import {IDistribution} from "../instance/module/IDistribution.sol";
10
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
21
11
  import {IInstance} from "./IInstance.sol";
22
12
  import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
23
13
  import {IOracle} from "../oracle/IOracle.sol";
24
14
  import {IPolicy} from "../instance/module/IPolicy.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
25
16
  import {IRisk} from "../instance/module/IRisk.sol";
26
- import {TimestampLib} from "../type/Timestamp.sol";
27
17
 
28
- import {InstanceStore} from "./InstanceStore.sol";
18
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
19
+ import {Amount} from "../type/Amount.sol";
29
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";
24
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
25
+ import {InstanceStore} from "./InstanceStore.sol";
26
+ import {Key32} from "../type/Key32.sol";
27
+ import {NftId} from "../type/NftId.sol";
28
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
29
+ import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
30
+ import {ProductStore} from "./ProductStore.sol";
31
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
32
+ import {RequestId} from "../type/RequestId.sol";
33
+ import {RiskId} from "../type/RiskId.sol";
30
34
  import {RiskSet} from "./RiskSet.sol";
35
+ import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
36
+ import {StateId} from "../type/StateId.sol";
37
+ import {TokenHandler} from "../shared/TokenHandler.sol";
38
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
31
39
 
32
40
 
41
+ /// @dev Central reader contract for a specific instance.
42
+ /// Provides reading functions for all instance data and related component data.
33
43
  contract InstanceReader {
34
44
 
35
45
  error ErrorInstanceReaderAlreadyInitialized();
@@ -37,10 +47,15 @@ contract InstanceReader {
37
47
 
38
48
  bool private _initialized = false;
39
49
 
50
+ IRegistry internal _registry;
40
51
  IInstance internal _instance;
52
+ InstanceAdmin internal _instanceAdmin;
53
+
41
54
  InstanceStore internal _store;
55
+ ProductStore internal _productStore;
42
56
  BundleSet internal _bundleSet;
43
57
  RiskSet internal _riskSet;
58
+ IDistributionService internal _distributionService;
44
59
 
45
60
  /// @dev This initializer needs to be called from the instance itself.
46
61
  function initialize() public {
@@ -51,422 +66,364 @@ contract InstanceReader {
51
66
  initializeWithInstance(msg.sender);
52
67
  }
53
68
 
54
- /// @dev This initializer needs to be called from the instance itself.
55
- function initializeWithInstance(address instanceAddress) public {
69
+
70
+ /// @dev Initializer to upgrade instance reader via instance service
71
+ function initializeWithInstance(address instanceAddress)
72
+ public
73
+ {
56
74
  if(_initialized) {
57
75
  revert ErrorInstanceReaderAlreadyInitialized();
58
76
  }
59
77
 
60
78
  _initialized = true;
61
79
  _instance = IInstance(instanceAddress);
80
+ _instanceAdmin = _instance.getInstanceAdmin();
81
+ _registry = _instance.getRegistry();
82
+
62
83
  _store = _instance.getInstanceStore();
84
+ _productStore = _instance.getProductStore();
63
85
  _bundleSet = _instance.getBundleSet();
64
86
  _riskSet = _instance.getRiskSet();
87
+ _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
65
88
  }
66
89
 
67
90
 
68
- // module specific functions
91
+ //--- instance functions ---------------------------------------------------------//
69
92
 
70
- function getPolicyInfo(NftId policyNftId)
71
- public
72
- view
73
- returns (IPolicy.PolicyInfo memory info)
74
- {
75
- bytes memory data = _store.getData(toPolicyKey(policyNftId));
76
- if (data.length > 0) {
77
- return abi.decode(data, (IPolicy.PolicyInfo));
78
- }
93
+ /// @dev Returns the registry this instance is registered in.
94
+ function getRegistry() public view returns (IRegistry registry) {
95
+ return _registry;
79
96
  }
80
97
 
81
- function getPolicyState(NftId policyNftId)
82
- public
83
- view
84
- returns (StateId state)
85
- {
86
- return _store.getState(toPolicyKey(policyNftId));
98
+
99
+ /// @dev Returns the instance NFT ID.
100
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
101
+ return _registry.getNftIdForAddress(address(_instance));
87
102
  }
88
103
 
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
- }
104
+
105
+ /// @dev Returns the instance contract.
106
+ function getInstance() public view returns (IInstance instance) {
107
+ return _instance;
98
108
  }
99
109
 
100
- function getPremiumInfoState(NftId policyNftId)
101
- public
102
- view
103
- returns (StateId state)
104
- {
105
- return _store.getState(toPremiumKey(policyNftId));
110
+
111
+ //--- component functions ------------------------------------------------------//
112
+
113
+ /// @dev Returns the number of registered components.
114
+ /// Components may be products, distributions, oracles or pools.
115
+ function components() public view returns (uint256 componentCount) {
116
+ return _instanceAdmin.components();
106
117
  }
107
118
 
108
- function bundles(NftId poolNftId)
109
- public
110
- view
111
- returns (uint256 bundles)
112
- {
113
- return _bundleSet.bundles(poolNftId);
119
+
120
+ /// @dev Returns the component info for the given component NFT ID.
121
+ function getComponentInfo(NftId componentNftId) public view returns (IComponents.ComponentInfo memory info) {
122
+ (bytes memory data, bool success) = _getData(_toComponentKey(componentNftId));
123
+ if (success) { return abi.decode(data, (IComponents.ComponentInfo)); }
114
124
  }
115
125
 
116
- function activeBundles(NftId poolNftId)
117
- public
118
- view
119
- returns (uint256 bundles)
120
- {
121
- return _bundleSet.activeBundles(poolNftId);
126
+
127
+ /// @dev Returns the registered token for the given component NFT ID.
128
+ function getToken(NftId componentNftId) public view returns (IERC20Metadata token) {
129
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
130
+ if (address(tokenHandler) != address(0)) { return tokenHandler.TOKEN(); }
122
131
  }
123
132
 
124
- function getActiveBundleNftId(NftId poolNftId, uint256 idx)
125
- public
126
- view
127
- returns (NftId bundleNftId)
128
- {
129
- return _bundleSet.getActiveBundleNftId(poolNftId, idx);
133
+
134
+ /// @dev Returns the current wallet address for the given component NFT ID.
135
+ /// The wallet address is either the component's own address or any other wallet address specified by the component owner.
136
+ /// The wallet holds the component's funds. Tokens collected by the component are transferred to the wallet and
137
+ /// Tokens distributed from the component are transferred from this wallet.
138
+ function getWallet(NftId componentNftId) public view returns (address wallet) {
139
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
140
+ if (address(tokenHandler) != address(0)) { return tokenHandler.getWallet(); }
130
141
  }
131
142
 
132
- function getBundleNftId(NftId poolNftId, uint256 idx)
133
- public
134
- view
135
- returns (NftId bundleNftId)
136
- {
137
- return _bundleSet.getBundleNftId(poolNftId, idx);
143
+
144
+ /// @dev Returns the token handler for the given component NFT ID.
145
+ /// The token handler manages all transfers from/to the component's wallet.
146
+ /// To allow a component to collect funds from an account, it has to create a corresponding allowance from the
147
+ /// account to the address of the component's token handler.
148
+ function getTokenHandler(NftId componentNftId) public view returns (TokenHandler tokenHandler) {
149
+ (bytes memory data, bool success) = _getData(_toComponentKey(componentNftId));
150
+ if (success) { return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler; }
138
151
  }
139
152
 
140
- function getBundleState(NftId bundleNftId)
141
- public
142
- view
143
- returns (StateId state)
144
- {
145
- return _store.getState(toBundleKey(bundleNftId));
153
+
154
+ /// @dev Returns the current token balance amount for the given component NFT ID.
155
+ /// The balance amount includes the fee amount.
156
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
157
+ return _store.getBalanceAmount(targetNftId);
146
158
  }
147
159
 
148
- /// @dev Returns true iff policy is active.
149
- function policyIsActive(NftId policyNftId)
150
- public
151
- view
152
- returns (bool isCloseable)
153
- {
154
- IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
155
160
 
156
- if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
157
- if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
158
- if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
159
- if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
161
+ /// @dev Returns the current fee amount for the given NFT ID.
162
+ /// The target NFT ID may reference a component, a distributor or a bundle.
163
+ function getFeeAmount(NftId targetNftId) external view returns (Amount) {
164
+ return _store.getFeeAmount(targetNftId);
165
+ }
166
+
160
167
 
161
- return true;
168
+ /// @dev Returns the currently locked amount for the given NFT ID.
169
+ /// The target NFT ID may reference a pool or a bundle.
170
+ function getLockedAmount(NftId targetNftId) external view returns (Amount) {
171
+ return _store.getLockedAmount(targetNftId);
162
172
  }
163
173
 
164
- function claims(NftId policyNftId)
165
- public
166
- view
167
- returns (uint16 claims)
168
- {
169
- return getPolicyInfo(policyNftId).claimsCount;
174
+ //--- product functions ------------------------------------------------------//
175
+
176
+ /// @dev Returns the number of registered products.
177
+ function products() public view returns (uint256 productCount) {
178
+ return _instance.products();
170
179
  }
171
180
 
172
181
 
173
- function getClaimId(uint idx)
174
- public
175
- view
176
- returns (ClaimId claimId)
177
- {
178
- return ClaimIdLib.toClaimId(idx + 1);
182
+ /// @dev Returns th product NFT ID for the given index.
183
+ function getProductNftId(uint256 idx) public view returns (NftId productNftId) {
184
+ return _instance.getProductNftId(idx);
179
185
  }
180
186
 
181
- function getClaimInfo(NftId policyNftId, ClaimId claimId)
182
- public
183
- view
184
- returns (IPolicy.ClaimInfo memory info)
185
- {
186
- bytes memory data = _store.getData(claimId.toKey32(policyNftId));
187
- if (data.length > 0) {
188
- return abi.decode(data, (IPolicy.ClaimInfo));
189
- }
187
+
188
+ /// @dev Returns the product info for the given product NFT ID.
189
+ function getProductInfo(NftId productNftId) public view returns (IComponents.ProductInfo memory info) {
190
+ return _productStore.getProductInfo(productNftId);
190
191
  }
191
192
 
192
193
 
193
- function getClaimState(NftId policyNftId, ClaimId claimId)
194
- public
195
- view
196
- returns (StateId state)
197
- {
198
- return _store.getState(claimId.toKey32(policyNftId));
194
+ /// @dev Returns the current fee settings for the given product NFT ID.
195
+ function getFeeInfo(NftId productNftId) public view returns (IComponents.FeeInfo memory feeInfo) {
196
+ return _productStore.getFeeInfo(productNftId);
199
197
  }
200
198
 
199
+ //--- risk functions ---------------------------------------------------------//
201
200
 
202
- function payouts(NftId policyNftId, ClaimId claimId)
203
- public
204
- view
205
- returns (uint24 payouts)
206
- {
207
- return getClaimInfo(policyNftId, claimId).payoutsCount;
201
+ /// @dev Returns the total number of registered risks for the specified product.
202
+ function risks(NftId productNftId) public view returns (uint256 riskCount) {
203
+ return _riskSet.risks(productNftId);
208
204
  }
209
205
 
210
206
 
211
- function getPayoutId(ClaimId claimId, uint24 idx)
212
- public
213
- view
214
- returns (PayoutId payoutId)
215
- {
216
- return PayoutIdLib.toPayoutId(claimId, idx + 1);
207
+ /// @dev Returns the number of active risks for the specified product.
208
+ function activeRisks(NftId productNftId) public view returns (uint256 activeRiskCount) {
209
+ return _riskSet.activeRisks(productNftId);
217
210
  }
218
211
 
219
212
 
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;
213
+ /// @dev Returns the risk ID for the given product NFT ID and (registered) risk index.
214
+ function getRiskId(NftId productNftId, uint256 idx) public view returns (RiskId riskId) {
215
+ return _riskSet.getRiskId(productNftId, idx);
227
216
  }
228
217
 
229
- function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
230
- public
231
- view
232
- returns (IPolicy.PayoutInfo memory info)
233
- {
234
- bytes memory data = _store.getData(payoutId.toKey32(policyNftId));
235
- if (data.length > 0) {
236
- return abi.decode(data, (IPolicy.PayoutInfo));
237
- }
218
+
219
+ /// @dev Returns the active risk ID for the given product NFT ID and (active) risk index.
220
+ function getActiveRiskId(NftId productNftId, uint256 idx) public view returns (RiskId riskId) {
221
+ return _riskSet.getActiveRiskId(productNftId, idx);
238
222
  }
239
223
 
240
- function getPayoutState(NftId policyNftId, PayoutId payoutId)
241
- public
242
- view
243
- returns (StateId state)
244
- {
245
- return _store.getState(payoutId.toKey32(policyNftId));
224
+
225
+ /// @dev Returns the risk info for the given risk ID.
226
+ function getRiskInfo(RiskId riskId) public view returns (IRisk.RiskInfo memory info) {
227
+ return _productStore.getRiskInfo(riskId);
246
228
  }
247
229
 
248
- function risks(NftId productNftId)
249
- public
250
- view
251
- returns (uint256 activeRisks)
252
- {
253
- return _riskSet.risks(productNftId);
230
+
231
+ /// @dev Returns the risk state for the given risk ID.
232
+ function getRiskState(RiskId riskId) public view returns (StateId stateId) {
233
+ return _productStore.getState(riskId.toKey32());
254
234
  }
255
235
 
256
- function getRiskId(NftId productNftId, uint256 idx)
257
- public
258
- view
259
- returns (RiskId riskId)
260
- {
261
- return _riskSet.getRiskId(productNftId, idx);
236
+
237
+ //--- policy functions -------------------------------------------------------//
238
+
239
+ /// @dev Returns the number of linked policies for the given risk ID.
240
+ function policiesForRisk(RiskId riskId) public view returns (uint256 linkedPolicies) {
241
+ return _riskSet.linkedPolicies(riskId);
262
242
  }
263
243
 
264
- function activeRisks(NftId productNftId)
265
- public
266
- view
267
- returns (uint256 activeRisks)
268
- {
269
- return _riskSet.activeRisks(productNftId);
244
+
245
+ /// @dev Returns the linked policy NFT ID for the given risk ID and index.
246
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
247
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
270
248
  }
271
249
 
272
- function getActiveRiskId(NftId productNftId, uint256 idx)
273
- public
274
- view
275
- returns (RiskId riskId)
276
- {
277
- return _riskSet.getActiveRiskId(productNftId, idx);
250
+
251
+ /// @dev Returns the info for the given policy NFT ID.
252
+ function getPolicyInfo(NftId policyNftId) public view returns (IPolicy.PolicyInfo memory info) {
253
+ return _productStore.getPolicyInfo(policyNftId);
278
254
  }
279
255
 
280
- function getRiskInfo(RiskId riskId)
281
- public
282
- view
283
- returns (IRisk.RiskInfo memory info)
284
- {
285
- bytes memory data = _store.getData(riskId.toKey32());
286
- if (data.length > 0) {
287
- return abi.decode(data, (IRisk.RiskInfo));
288
- }
256
+
257
+ /// @dev Returns the state for the given policy NFT ID.
258
+ function getPolicyState(NftId policyNftId) public view returns (StateId state) {
259
+ return _productStore.getState(_toPolicyKey(policyNftId));
289
260
  }
290
261
 
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());
262
+
263
+ /// @dev Returns true iff policy is active.
264
+ function policyIsActive(NftId policyNftId) public view returns (bool isCloseable) {
265
+ return PolicyServiceLib.policyIsActive(this, policyNftId);
298
266
  }
299
267
 
300
- function policiesForRisk(RiskId riskId)
301
- public
302
- view
303
- returns (uint256 linkedPolicies)
304
- {
305
- return _riskSet.linkedPolicies(riskId);
268
+ //--- claim functions -------------------------------------------------------//
269
+
270
+ /// @dev Returns the number of claims for the given policy NFT ID.
271
+ function claims(NftId policyNftId) public view returns (uint16 claimCount) {
272
+ return getPolicyInfo(policyNftId).claimsCount;
306
273
  }
307
274
 
308
- function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
309
- public
310
- view
311
- returns (NftId linkedPolicyNftId)
312
- {
313
- return _riskSet.getLinkedPolicyNftId(riskId, idx);
275
+
276
+ /// @dev Returns the claim ID for the given policy NFT ID and index.
277
+ function getClaimId(uint256 idx) public pure returns (ClaimId claimId) {
278
+ return ClaimIdLib.toClaimId(idx + 1);
314
279
  }
315
280
 
316
- function getWallet(NftId componentNftId)
317
- public
318
- view
319
- returns (address tokenHandler)
320
- {
321
- bytes memory data = _store.getData(toComponentKey(componentNftId));
322
281
 
323
- if (data.length > 0) {
324
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
325
- return info.tokenHandler.getWallet();
282
+ /// @dev Returns the claim info for the given policy NFT ID and claim ID.
283
+ function getClaimInfo(NftId policyNftId, ClaimId claimId) public view returns (IPolicy.ClaimInfo memory info) {
284
+ (bytes memory data, bool success) = _getData(claimId.toKey32(policyNftId));
285
+ if (success) {
286
+ return abi.decode(data, (IPolicy.ClaimInfo));
326
287
  }
327
288
  }
328
289
 
329
- function getTokenHandler(NftId componentNftId)
330
- public
331
- view
332
- returns (address tokenHandler)
333
- {
334
- bytes memory data = _store.getData(toComponentKey(componentNftId));
335
290
 
336
- if (data.length > 0) {
337
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
338
- return address(info.tokenHandler);
339
- }
291
+ /// @dev Returns the current claim state for the given policy NFT ID and claim ID.
292
+ function getClaimState(NftId policyNftId, ClaimId claimId) public view returns (StateId state) {
293
+ return getState(claimId.toKey32(policyNftId));
340
294
  }
341
295
 
342
- function getBundleInfo(NftId bundleNftId)
343
- public
344
- view
345
- returns (IBundle.BundleInfo memory info)
346
- {
347
- bytes memory data = _store.getData(toBundleKey(bundleNftId));
348
- if (data.length > 0) {
349
- return abi.decode(data, (IBundle.BundleInfo));
350
- }
296
+
297
+ /// @dev Returns the remaining claimable amount for the given policy NFT ID.
298
+ /// The remaining claimable amount is the difference between the sum insured amount and total approved claim amounts so far.
299
+ function getRemainingClaimableAmount(NftId policyNftId)
300
+ public view returns (Amount remainingClaimableAmount) {
301
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
302
+ return info.sumInsuredAmount - info.claimAmount;
351
303
  }
352
304
 
353
- function getDistributorTypeInfo(DistributorType distributorType)
354
- public
355
- view
356
- returns (IDistribution.DistributorTypeInfo memory info)
357
- {
358
- bytes memory data = _store.getData(distributorType.toKey32());
359
- if (data.length > 0) {
360
- return abi.decode(data, (IDistribution.DistributorTypeInfo));
361
- }
305
+ //--- payout functions -------------------------------------------------------//
306
+
307
+ /// @dev Returns the number of payouts for the given policy NFT ID and claim ID.
308
+ function payouts(NftId policyNftId, ClaimId claimId) public view returns (uint24 payoutCount) {
309
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
362
310
  }
363
311
 
364
- function getDistributorInfo(NftId distributorNftId)
365
- public
366
- view
367
- returns (IDistribution.DistributorInfo memory info)
368
- {
369
- bytes memory data = _store.getData(toDistributorKey(distributorNftId));
370
- if (data.length > 0) {
371
- return abi.decode(data, (IDistribution.DistributorInfo));
372
- }
312
+
313
+ /// @dev Returns the payout ID for the given claim ID and index.
314
+ function getPayoutId(ClaimId claimId, uint24 idx) public pure returns (PayoutId payoutId) {
315
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
373
316
  }
374
317
 
375
- function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
376
- return _store.getBalanceAmount(targetNftId);
318
+
319
+ /// @dev Returns the payout info for the given policy NFT ID and payout ID.
320
+ function getPayoutInfo(NftId policyNftId, PayoutId payoutId) public view returns (IPolicy.PayoutInfo memory info) {
321
+ (bytes memory data, bool success) = _getData(payoutId.toKey32(policyNftId));
322
+ if (success) { return abi.decode(data, (IPolicy.PayoutInfo)); }
377
323
  }
378
324
 
379
- function getLockedAmount(NftId targetNftId) external view returns (Amount) {
380
- return _store.getLockedAmount(targetNftId);
325
+
326
+ /// @dev Returns the payout state for the given policy NFT ID and payout ID.
327
+ function getPayoutState(NftId policyNftId, PayoutId payoutId) public view returns (StateId state) {
328
+ return getState(payoutId.toKey32(policyNftId));
381
329
  }
382
330
 
383
- function getFeeAmount(NftId targetNftId) external view returns (Amount) {
384
- return _store.getFeeAmount(targetNftId);
331
+ //--- premium functions -------------------------------------------------------//
332
+
333
+ /// @dev Returns the premium info for the given policy NFT ID.
334
+ function getPremiumInfo(NftId policyNftId) public view returns (IPolicy.PremiumInfo memory info) {
335
+ return _productStore.getPremiumInfo(policyNftId);
385
336
  }
386
337
 
387
- function getComponentInfo(NftId componentNftId)
388
- public
389
- view
390
- returns (IComponents.ComponentInfo memory info)
391
- {
392
- bytes memory data = _store.getData(toComponentKey(componentNftId));
393
- if (data.length > 0) {
394
- return abi.decode(data, (IComponents.ComponentInfo));
395
- }
338
+
339
+ /// @dev Returns the premium state for the given policy NFT ID.
340
+ function getPremiumState(NftId policyNftId) public view returns (StateId state) {
341
+ return _productStore.getState(_toPremiumKey(policyNftId));
396
342
  }
397
343
 
398
- function getProductInfo(NftId productNftId)
399
- public
400
- view
401
- returns (IComponents.ProductInfo memory info)
402
- {
403
- bytes memory data = _store.getData(toProductKey(productNftId));
404
- if (data.length > 0) {
405
- return abi.decode(data, (IComponents.ProductInfo));
406
- }
344
+ //--- oracle functions ---------------------------------------------------------//
345
+
346
+ /// @dev Returns the request info for the given oracle request ID.
347
+ function getRequestInfo(RequestId requestId) public view returns (IOracle.RequestInfo memory requestInfo) {
348
+ (bytes memory data, bool success) = _getData(requestId.toKey32());
349
+ if (success) { return abi.decode(data, (IOracle.RequestInfo)); }
407
350
  }
408
351
 
409
- function getPoolInfo(NftId poolNftId)
410
- public
411
- view
412
- returns (IComponents.PoolInfo memory info)
413
- {
414
- bytes memory data = _store.getData(toPoolKey(poolNftId));
415
- if (data.length > 0) {
416
- return abi.decode(data, (IComponents.PoolInfo));
417
- }
352
+ //--- pool functions -----------------------------------------------------------//
353
+
354
+ /// @dev Returns the pool info for the given pool NFT ID.
355
+ function getPoolInfo(NftId poolNftId) public view returns (IComponents.PoolInfo memory info) {
356
+ (bytes memory data, bool success) = _getData(poolNftId.toKey32(POOL()));
357
+ if (success) { return abi.decode(data, (IComponents.PoolInfo)); }
418
358
  }
419
359
 
420
- function getReferralInfo(ReferralId referralId)
421
- public
422
- view
423
- returns (IDistribution.ReferralInfo memory info)
424
- {
425
- bytes memory data = _store.getData(referralId.toKey32());
426
- if (data.length > 0) {
427
- return abi.decode(data, (IDistribution.ReferralInfo));
428
- }
360
+ //--- bundle functions -------------------------------------------------------//
361
+
362
+ /// @dev Returns the total number of registered bundles for the given pool.
363
+ function bundles(NftId poolNftId) public view returns (uint256 bundleCount) {
364
+ return _bundleSet.bundles(poolNftId);
429
365
  }
430
366
 
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
- }
367
+
368
+ /// @dev Returns the number of active bundles for the given pool.
369
+ function activeBundles(NftId poolNftId) public view returns (uint256 bundleCount) {
370
+ return _bundleSet.activeBundles(poolNftId);
440
371
  }
441
372
 
442
- function getMetadata(Key32 key)
443
- public
444
- view
445
- returns (IKeyValueStore.Metadata memory metadata)
446
- {
447
- return _store.getMetadata(key);
373
+
374
+ /// @dev Returns the bunde NFT ID for the given pool and index.
375
+ function getBundleNftId(NftId poolNftId, uint256 idx) public view returns (NftId bundleNftId) {
376
+ return _bundleSet.getBundleNftId(poolNftId, idx);
448
377
  }
449
378
 
450
- function getState(Key32 key)
451
- public
452
- view
453
- returns (StateId state)
454
- {
455
- return _store.getMetadata(key).state;
379
+
380
+ /// @dev Returns the active bunde NFT ID for the given pool and index.
381
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) public view returns (NftId bundleNftId) {
382
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
456
383
  }
457
384
 
458
385
 
459
- function toReferralId(
460
- NftId distributionNftId,
461
- string memory referralCode
462
- )
463
- public
464
- pure
465
- returns (ReferralId referralId)
466
- {
467
- return ReferralLib.toReferralId(
468
- distributionNftId,
469
- referralCode);
386
+ /// @dev Returns the bundle info for the given bundle NFT ID.
387
+ function getBundleInfo(NftId bundleNftId) public view returns (IBundle.BundleInfo memory info) {
388
+ (bytes memory data, bool success) = _getData(_toBundleKey(bundleNftId));
389
+ if (success) { return abi.decode(data, (IBundle.BundleInfo)); }
390
+ }
391
+
392
+
393
+ /// @dev Returns the bundle state for the given bundle NFT ID.
394
+ function getBundleState(NftId bundleNftId) public view returns (StateId state) {
395
+ return getState(_toBundleKey(bundleNftId));
396
+ }
397
+
398
+ //--- distribution functions -------------------------------------------------------//
399
+
400
+ function getDistributorTypeInfo(DistributorType distributorType) public view returns (IDistribution.DistributorTypeInfo memory info) {
401
+ (bytes memory data, bool success) = _getData(distributorType.toKey32());
402
+ if (success) { return abi.decode(data, (IDistribution.DistributorTypeInfo)); }
403
+ }
404
+
405
+
406
+ function getDistributorInfo(NftId distributorNftId) public view returns (IDistribution.DistributorInfo memory info) {
407
+ (bytes memory data, bool success) = _getData(distributorNftId.toKey32(DISTRIBUTOR()));
408
+ if (success) { return abi.decode(data, (IDistribution.DistributorInfo)); }
409
+ }
410
+
411
+
412
+ //--- referral functions -------------------------------------------------------//
413
+
414
+ function toReferralId(NftId distributionNftId, string memory referralCode) public pure returns (ReferralId referralId) {
415
+ return ReferralLib.toReferralId(distributionNftId, referralCode);
416
+ }
417
+
418
+
419
+ function isReferralValid(NftId distributionNftId, ReferralId referralId) external view returns (bool isValid) {
420
+ return _distributionService.referralIsValid(distributionNftId, referralId);
421
+ }
422
+
423
+
424
+ function getReferralInfo(ReferralId referralId) public view returns (IDistribution.ReferralInfo memory info) {
425
+ (bytes memory data, bool success) = _getData(referralId.toKey32());
426
+ if (success) { return abi.decode(data, (IDistribution.ReferralInfo)); }
470
427
  }
471
428
 
472
429
 
@@ -478,102 +435,196 @@ contract InstanceReader {
478
435
  ReferralStatus status
479
436
  )
480
437
  {
481
- IDistribution.ReferralInfo memory info = getReferralInfo(
482
- referralId);
438
+ return IDistributionService(
439
+ _registry.getServiceAddress(
440
+ DISTRIBUTION(),
441
+ _instance.getRelease())).getDiscountPercentage(
442
+ this, // instance reader
443
+ referralId);
444
+ }
483
445
 
484
- if (info.expiryAt.eqz()) {
485
- return (
486
- UFixedLib.zero(),
487
- REFERRAL_ERROR_UNKNOWN());
488
- }
446
+ //--- authorization functions -------------------------------------------------------//
489
447
 
490
- if (info.expiryAt < TimestampLib.blockTimestamp()) {
491
- return (
492
- UFixedLib.zero(),
493
- REFERRAL_ERROR_EXPIRED());
494
- }
448
+ /// @dev Returns the number of defined roles.
449
+ function roles() public view returns (uint256) {
450
+ return _instanceAdmin.roles();
451
+ }
495
452
 
496
- if (info.usedReferrals >= info.maxReferrals) {
497
- return (
498
- UFixedLib.zero(),
499
- REFERRAL_ERROR_EXHAUSTED());
500
- }
501
453
 
502
- return (
503
- info.discountPercentage,
504
- REFERRAL_OK()
505
- );
454
+ /// @dev Returns the role ID for the given index.
455
+ function getRoleId(uint256 idx) public view returns (RoleId roleId) {
456
+ return _instanceAdmin.getRoleId(uint64(idx));
506
457
  }
507
458
 
508
459
 
509
- function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
510
- return _instance.getInstanceAdmin().hasRole(account, roleId);
460
+ /// @dev Returns the role ID for the instance owner role.
461
+ /// This role may be used as a "root" admin role for other custom roles defined for this instance.
462
+ function getInstanceOwnerRole() public pure returns (RoleId roleId) {
463
+ return INSTANCE_OWNER_ROLE();
511
464
  }
512
465
 
513
466
 
514
- function hasAdminRole(address account, RoleId roleId) public view returns (bool isMember) {
515
- return _instance.getInstanceAdmin().hasAdminRole(account, roleId);
467
+ /// @dev Returns the role info for the given role ID.
468
+ function getRoleInfo(RoleId roleId) public view returns (IAccess.RoleInfo memory roleInfo) {
469
+ return _instanceAdmin.getRoleInfo(roleId);
516
470
  }
517
471
 
518
472
 
519
- function isLocked(address target) public view returns (bool) {
520
- return _instance.getInstanceAdmin().isTargetLocked(target);
473
+ /// @dev Returns true iff the provided role ID is defined for this instance.
474
+ function roleExists(RoleId roleId) public view returns (bool exists) {
475
+ return _instanceAdmin.roleExists(roleId);
521
476
  }
522
477
 
523
- function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
524
- return policyNftId.toKey32(POLICY());
478
+
479
+ /// @dev Returns true iff the provided role ID represents a custom role ID.
480
+ function isRoleCustom(RoleId roleId) public view returns (bool isCustom) {
481
+ return _instanceAdmin.isRoleCustom(roleId);
525
482
  }
526
483
 
527
- function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
528
- return policyNftId.toKey32(PREMIUM());
484
+
485
+ /// @dev Returns true iff the provided role ID is active.
486
+ function isRoleActive(RoleId roleId) public view returns (bool isActive) {
487
+ return _instanceAdmin.isRoleActive(roleId);
529
488
  }
530
489
 
531
- function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
532
- return distributorNftId.toKey32(DISTRIBUTOR());
490
+
491
+ /// @dev Returns the number of members (accounts) for the given role ID.
492
+ function roleMembers(RoleId roleId) public view returns (uint256 numberOfMembers) {
493
+ return _instanceAdmin.roleMembers(roleId);
533
494
  }
534
495
 
535
- function toBundleKey(NftId poolNftId) public pure returns (Key32) {
536
- return poolNftId.toKey32(BUNDLE());
496
+
497
+ /// @dev Returns the member (account address) for the given role ID and index.
498
+ function getRoleMember(RoleId roleId, uint256 idx) public view returns (address account) {
499
+ return _instanceAdmin.getRoleMember(roleId, idx);
537
500
  }
538
501
 
539
- function toComponentKey(NftId componentNftId) public pure returns (Key32) {
540
- return componentNftId.toKey32(COMPONENT());
502
+
503
+ /// @dev Returns true iff the given account is a member of the specified role ID.
504
+ function isRoleMember(RoleId roleId, address account) public view returns (bool isMember) {
505
+ return _instanceAdmin.isRoleMember(roleId, account);
541
506
  }
542
507
 
543
- function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
544
- return distributionNftId.toKey32(DISTRIBUTION());
508
+
509
+ /// @dev Returns true iff the given account is an admin of the specified role ID.
510
+ /// Role admins may grant and revoke the role to other accounts.
511
+ function isRoleAdmin(RoleId roleId, address account) public view returns (bool isMember) {
512
+ return _instanceAdmin.isRoleAdmin(roleId, account);
545
513
  }
546
514
 
547
- function toPoolKey(NftId poolNftId) public pure returns (Key32) {
548
- return poolNftId.toKey32(POOL());
515
+
516
+ /// @dev Returns the number of targets (contracts) defined for this instance.
517
+ function targets() public view returns (uint256 targetCount) {
518
+ return _instanceAdmin.targets();
549
519
  }
550
520
 
551
- function toProductKey(NftId productNftId) public pure returns (Key32) {
552
- return productNftId.toKey32(PRODUCT());
521
+
522
+ /// @dev Returns the target address for the given index.
523
+ function getTargetAddress(uint256 idx) public view returns (address target) {
524
+ return _instanceAdmin.getTargetAddress(idx);
553
525
  }
554
526
 
555
- // low level function
556
- function getInstance() external view returns (IInstance instance) {
557
- return _instance;
527
+
528
+ /// @dev Returns the target info for the given target address.
529
+ function getTargetInfo(address target) public view returns (IAccess.TargetInfo memory targetInfo) {
530
+ return _instanceAdmin.getTargetInfo(target);
531
+ }
532
+
533
+
534
+ /// @dev Returns true iff the given target is defined for this instance.
535
+ function targetExists(address target) public view returns (bool exists) {
536
+ return _instanceAdmin.targetExists(target);
537
+ }
538
+
539
+
540
+ /// @dev Returns true iff the given target is locked.
541
+ function isLocked(address target) public view returns (bool) {
542
+ return _instanceAdmin.isTargetLocked(target);
543
+ }
544
+
545
+
546
+ /// @dev Returns the number of authorized functions for the given target.
547
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
548
+ return _instanceAdmin.authorizedFunctions(target);
549
+ }
550
+
551
+
552
+ /// @dev Returns the authorized function info for the given target and index.
553
+ function getAuthorizedFunction(address target, uint256 idx) external view returns (IAccess.FunctionInfo memory func, RoleId roleId) {
554
+ return _instanceAdmin.getAuthorizedFunction(target, idx);
555
+ }
556
+
557
+
558
+ /// @dev Returns a function info for the given function signature and function name.
559
+ /// The function signature must not be zero and the function name must not be empty.
560
+ function toFunction(bytes4 signature, string memory name) public view returns (IAccess.FunctionInfo memory) {
561
+ return AccessAdminLib.toFunction(signature, name);
562
+ }
563
+
564
+ //--- low level function ----------------------------------------------------//
565
+
566
+ function getInstanceAdmin() external view returns (InstanceAdmin instanceAdmin) {
567
+ return _instanceAdmin;
558
568
  }
559
569
 
560
570
  function getInstanceStore() external view returns (IKeyValueStore store) {
561
571
  return _store;
562
572
  }
563
573
 
574
+
564
575
  function getBundleSet() external view returns (BundleSet bundleSet) {
565
576
  return _bundleSet;
566
577
  }
567
578
 
579
+
568
580
  function getRiskSet() external view returns (RiskSet riskSet) {
569
581
  return _riskSet;
570
582
  }
571
583
 
584
+
585
+ function getMetadata(Key32 key) public view returns (IKeyValueStore.Metadata memory metadata) {
586
+ return _store.getMetadata(key);
587
+ }
588
+
589
+
590
+ function getState(Key32 key) public view returns (StateId state) {
591
+ return _store.getState(key);
592
+ }
593
+
594
+
572
595
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
573
596
  return UFixedLib.toUFixed(value, exp);
574
597
  }
575
598
 
599
+
576
600
  function toInt(UFixed value) public pure returns (uint256) {
577
601
  return UFixedLib.toInt(value);
578
602
  }
603
+
604
+ //--- internal functions ----------------------------------------------------//
605
+
606
+ function _getData(Key32 key) internal view returns (bytes memory data, bool success) {
607
+ data = _store.getData(key);
608
+ return (data, data.length > 0);
609
+ }
610
+
611
+
612
+ function _toPolicyKey(NftId policyNftId) internal pure returns (Key32) {
613
+ return policyNftId.toKey32(POLICY());
614
+ }
615
+
616
+
617
+ function _toPremiumKey(NftId policyNftId) internal pure returns (Key32) {
618
+ return policyNftId.toKey32(PREMIUM());
619
+ }
620
+
621
+
622
+ function _toBundleKey(NftId poolNftId) internal pure returns (Key32) {
623
+ return poolNftId.toKey32(BUNDLE());
624
+ }
625
+
626
+
627
+ function _toComponentKey(NftId componentNftId) internal pure returns (Key32) {
628
+ return componentNftId.toKey32(COMPONENT());
629
+ }
579
630
  }