@etherisc/gif-next 0.0.2-f761c0d-394 → 0.0.2-f78f882-351

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 (581) hide show
  1. package/README.md +120 -320
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +760 -278
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -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 +485 -26
  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 +588 -220
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +227 -20
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +275 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +479 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +212 -483
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +475 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -391
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +814 -399
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +246 -122
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +135 -197
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +582 -141
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  65. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  69. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  70. package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +593 -70
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +407 -62
  75. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  76. package/artifacts/contracts/instance/Instance.sol/Instance.json +631 -188
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1154 -380
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +363 -92
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1644 -853
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +421 -233
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +160 -102
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1300 -1852
  89. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  91. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  93. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  95. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  100. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  102. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  104. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  109. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  110. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +152 -360
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +473 -42
  115. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +129 -139
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +128 -328
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  123. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +195 -95
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +198 -443
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +474 -40
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +567 -263
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +234 -102
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  137. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +158 -222
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  140. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  141. package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -402
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  145. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +246 -102
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +177 -97
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  153. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +281 -431
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  155. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +474 -40
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -120
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  169. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +272 -232
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +213 -105
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +177 -129
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  183. package/artifacts/contracts/product/Product.sol/Product.json +273 -423
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +395 -36
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +97 -148
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  198. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/Registry.sol/Registry.json +622 -94
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +913 -404
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -87
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +511 -20
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +624 -560
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +216 -118
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +118 -139
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -328
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  277. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  278. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -465
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +211 -105
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +162 -94
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1646 -786
  293. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +184 -76
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  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 +2 -2
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  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 +23 -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 +33 -31
  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 +2 -2
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  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 +42 -157
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  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 +1 -1
  339. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +24 -5
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
  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 +11 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -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 +11 -1
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +401 -313
  360. package/contracts/authorization/AccessAdminLib.sol +678 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +128 -4
  362. package/contracts/authorization/Authorization.sol +179 -207
  363. package/contracts/authorization/IAccess.sol +29 -11
  364. package/contracts/authorization/IAccessAdmin.sol +89 -83
  365. package/contracts/authorization/IAuthorization.sol +9 -37
  366. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  367. package/contracts/authorization/ServiceAuthorization.sol +235 -25
  368. package/contracts/distribution/BasicDistribution.sol +23 -32
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
  370. package/contracts/distribution/Distribution.sol +50 -88
  371. package/contracts/distribution/DistributionService.sol +276 -130
  372. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  373. package/contracts/distribution/IDistributionComponent.sol +11 -14
  374. package/contracts/distribution/IDistributionService.sol +56 -26
  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 +437 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BaseStore.sol +93 -0
  389. package/contracts/instance/BundleSet.sol +130 -0
  390. package/contracts/instance/IBaseStore.sol +37 -0
  391. package/contracts/instance/IInstance.sol +117 -47
  392. package/contracts/instance/IInstanceService.sol +64 -37
  393. package/contracts/instance/Instance.sol +202 -105
  394. package/contracts/instance/InstanceAdmin.sol +218 -177
  395. package/contracts/instance/InstanceAuthorizationV3.sol +160 -87
  396. package/contracts/instance/InstanceReader.sol +456 -255
  397. package/contracts/instance/InstanceService.sol +335 -264
  398. package/contracts/instance/InstanceServiceManager.sol +8 -13
  399. package/contracts/instance/InstanceStore.sol +154 -107
  400. package/contracts/instance/ProductStore.sol +290 -0
  401. package/contracts/instance/RiskSet.sol +126 -0
  402. package/contracts/instance/TargetNames.sol +10 -0
  403. package/contracts/instance/base/BalanceStore.sol +4 -6
  404. package/contracts/instance/base/ObjectCounter.sol +1 -2
  405. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  406. package/contracts/instance/base/ObjectSet.sol +77 -0
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +6 -5
  409. package/contracts/instance/module/IComponents.sol +29 -21
  410. package/contracts/instance/module/IDistribution.sol +21 -9
  411. package/contracts/instance/module/IPolicy.sol +50 -29
  412. package/contracts/instance/module/IRisk.sol +5 -0
  413. package/contracts/mock/Dip.sol +1 -1
  414. package/contracts/oracle/BasicOracle.sol +3 -7
  415. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  416. package/contracts/oracle/IOracle.sol +9 -4
  417. package/contracts/oracle/IOracleComponent.sol +2 -1
  418. package/contracts/oracle/IOracleService.sol +2 -1
  419. package/contracts/oracle/Oracle.sol +25 -30
  420. package/contracts/oracle/OracleService.sol +119 -87
  421. package/contracts/oracle/OracleServiceManager.sol +8 -11
  422. package/contracts/pool/BasicPool.sol +40 -43
  423. package/contracts/pool/BasicPoolAuthorization.sol +43 -11
  424. package/contracts/pool/BundleService.sol +222 -132
  425. package/contracts/pool/BundleServiceManager.sol +8 -11
  426. package/contracts/pool/IBundleService.sol +43 -33
  427. package/contracts/pool/IPoolComponent.sol +20 -10
  428. package/contracts/pool/IPoolService.sol +97 -77
  429. package/contracts/pool/Pool.sol +148 -128
  430. package/contracts/pool/PoolLib.sol +341 -0
  431. package/contracts/pool/PoolService.sol +419 -257
  432. package/contracts/pool/PoolServiceManager.sol +6 -9
  433. package/contracts/product/ApplicationService.sol +154 -81
  434. package/contracts/product/ApplicationServiceManager.sol +6 -6
  435. package/contracts/product/BasicProduct.sol +13 -47
  436. package/contracts/product/BasicProductAuthorization.sol +33 -10
  437. package/contracts/product/ClaimService.sol +391 -207
  438. package/contracts/product/ClaimServiceManager.sol +6 -6
  439. package/contracts/product/IApplicationService.sol +29 -3
  440. package/contracts/product/IClaimService.sol +48 -11
  441. package/contracts/product/IPolicyService.sol +61 -37
  442. package/contracts/product/IPricingService.sol +11 -10
  443. package/contracts/product/IProductComponent.sol +28 -5
  444. package/contracts/product/IRiskService.sol +48 -0
  445. package/contracts/product/PolicyService.sol +445 -275
  446. package/contracts/product/PolicyServiceLib.sol +139 -0
  447. package/contracts/product/PolicyServiceManager.sol +6 -9
  448. package/contracts/product/PricingService.sol +90 -84
  449. package/contracts/product/PricingServiceManager.sol +6 -9
  450. package/contracts/product/Product.sol +203 -104
  451. package/contracts/product/RiskService.sol +189 -0
  452. package/contracts/product/RiskServiceManager.sol +39 -0
  453. package/contracts/registry/ChainNft.sol +72 -40
  454. package/contracts/registry/IRegistry.sol +84 -33
  455. package/contracts/registry/IRegistryService.sol +3 -10
  456. package/contracts/registry/IRelease.sol +29 -0
  457. package/contracts/registry/ITransferInterceptor.sol +1 -2
  458. package/contracts/registry/Registry.sol +378 -220
  459. package/contracts/registry/RegistryAdmin.sol +101 -293
  460. package/contracts/registry/RegistryAuthorization.sol +337 -0
  461. package/contracts/registry/RegistryService.sol +42 -67
  462. package/contracts/registry/RegistryServiceManager.sol +5 -5
  463. package/contracts/registry/ReleaseAdmin.sol +199 -0
  464. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  465. package/contracts/registry/ReleaseRegistry.sol +525 -0
  466. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  467. package/contracts/registry/TokenRegistry.sol +61 -59
  468. package/contracts/shared/Component.sol +71 -142
  469. package/contracts/shared/ComponentService.sol +457 -347
  470. package/contracts/shared/ComponentServiceManager.sol +10 -7
  471. package/contracts/shared/ContractLib.sol +312 -0
  472. package/contracts/shared/IComponent.sol +6 -18
  473. package/contracts/shared/IComponentService.sol +50 -41
  474. package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
  475. package/contracts/shared/ILifecycle.sol +3 -1
  476. package/contracts/shared/INftOwnable.sol +4 -0
  477. package/contracts/shared/IPolicyHolder.sol +12 -22
  478. package/contracts/shared/IRegisterable.sol +22 -1
  479. package/contracts/shared/IService.sol +4 -6
  480. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  481. package/contracts/shared/InstanceLinkedComponent.sol +84 -43
  482. package/contracts/shared/Lifecycle.sol +15 -4
  483. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  484. package/contracts/shared/NftOwnable.sol +33 -11
  485. package/contracts/shared/PolicyHolder.sol +20 -59
  486. package/contracts/shared/Registerable.sol +52 -21
  487. package/contracts/shared/RegistryLinked.sol +9 -14
  488. package/contracts/shared/Service.sol +22 -38
  489. package/contracts/shared/TokenHandler.sol +310 -26
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +271 -73
  492. package/contracts/staking/IStakingService.sol +48 -74
  493. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  494. package/contracts/staking/Staking.sol +534 -250
  495. package/contracts/staking/StakingLib.sol +195 -0
  496. package/contracts/staking/StakingManager.sol +14 -15
  497. package/contracts/staking/StakingReader.sol +72 -88
  498. package/contracts/staking/StakingService.sol +62 -152
  499. package/contracts/staking/StakingServiceManager.sol +9 -7
  500. package/contracts/staking/StakingStore.sol +1096 -343
  501. package/contracts/staking/TargetHandler.sol +132 -0
  502. package/contracts/staking/TargetManagerLib.sol +73 -46
  503. package/contracts/type/Amount.sol +31 -5
  504. package/contracts/type/Blocknumber.sol +24 -23
  505. package/contracts/type/ChainId.sol +101 -0
  506. package/contracts/type/ClaimId.sol +6 -1
  507. package/contracts/type/Fee.sol +8 -8
  508. package/contracts/type/Key32.sol +2 -2
  509. package/contracts/type/Key32Set.sol +62 -0
  510. package/contracts/type/NftId.sol +7 -0
  511. package/contracts/type/ObjectType.sol +76 -44
  512. package/contracts/type/PayoutId.sol +10 -10
  513. package/contracts/type/Referral.sol +1 -0
  514. package/contracts/type/RiskId.sol +38 -6
  515. package/contracts/type/RoleId.sol +61 -55
  516. package/contracts/type/Seconds.sol +40 -1
  517. package/contracts/type/Selector.sol +5 -0
  518. package/contracts/type/StateId.sol +15 -1
  519. package/contracts/type/String.sol +12 -0
  520. package/contracts/type/Timestamp.sol +14 -7
  521. package/contracts/type/UFixed.sol +57 -126
  522. package/contracts/type/Version.sol +57 -6
  523. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  524. package/contracts/{shared → upgradeability}/ProxyManager.sol +97 -50
  525. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  526. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  527. package/package.json +7 -6
  528. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  529. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  530. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  531. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  532. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  533. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  534. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  536. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  537. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  538. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  539. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  540. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  541. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  542. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  543. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  544. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  545. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  546. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  547. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  548. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  549. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  550. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  551. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  552. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  553. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  554. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  556. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  557. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  558. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  559. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  560. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  561. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  562. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  563. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  564. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  565. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  566. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  567. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  568. package/contracts/instance/BundleManager.sol +0 -126
  569. package/contracts/instance/base/ObjectManager.sol +0 -79
  570. package/contracts/instance/module/IAccess.sol +0 -46
  571. package/contracts/product/IProductService.sol +0 -33
  572. package/contracts/product/ProductService.sol +0 -124
  573. package/contracts/product/ProductServiceManager.sol +0 -42
  574. package/contracts/registry/ReleaseManager.sol +0 -487
  575. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  576. package/contracts/shared/IKeyValueStore.sol +0 -54
  577. package/contracts/shared/InitializableCustom.sol +0 -177
  578. package/contracts/shared/KeyValueStore.sol +0 -131
  579. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  580. package/contracts/staking/StakeManagerLib.sol +0 -231
  581. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,195 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IStaking} from "./IStaking.sol";
6
+ import {IStakingService} from "./IStakingService.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {ReleaseRegistry} from "../registry/ReleaseRegistry.sol";
11
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
12
+ import {StakingReader} from "./StakingReader.sol";
13
+ import {STAKING} from "../type/ObjectType.sol";
14
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
15
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
16
+ import {VersionPart} from "../type/Version.sol";
17
+
18
+
19
+ library StakingLib {
20
+
21
+ function checkCreateParameters(
22
+ StakingReader stakingReader,
23
+ NftId targetNftId,
24
+ Amount dipAmount
25
+ )
26
+ external
27
+ view
28
+ returns (
29
+ Timestamp lockedUntil
30
+ )
31
+ {
32
+ return _checkCreateParameters(stakingReader, targetNftId, dipAmount);
33
+ }
34
+
35
+
36
+ function _checkCreateParameters(
37
+ StakingReader stakingReader,
38
+ NftId targetNftId,
39
+ Amount dipAmount
40
+ )
41
+ internal view
42
+ returns (
43
+ Timestamp lockedUntil
44
+ )
45
+ {
46
+ Seconds lockingPeriod = checkTarget(stakingReader, targetNftId);
47
+ checkDipAmount(stakingReader, targetNftId, dipAmount);
48
+
49
+ Timestamp currentTime = TimestampLib.current();
50
+ lockedUntil = currentTime.addSeconds(lockingPeriod);
51
+ }
52
+
53
+
54
+ function checkStakeParameters(
55
+ StakingReader stakingReader,
56
+ NftId stakeNftId
57
+ )
58
+ public
59
+ view
60
+ returns (
61
+ UFixed rewardRate,
62
+ Seconds lockingPeriod
63
+ )
64
+ {
65
+ NftId targetNftId = stakingReader.getTargetNftId(stakeNftId);
66
+
67
+ // target nft id must be registered
68
+ if (!stakingReader.isTarget(targetNftId)) {
69
+ revert IStaking.ErrorStakingNotTarget(targetNftId);
70
+ }
71
+
72
+ IStaking.TargetInfo memory info = stakingReader.getTargetInfo(targetNftId);
73
+ rewardRate = info.rewardRate;
74
+ lockingPeriod = info.lockingPeriod;
75
+ }
76
+
77
+
78
+ function checkUnstakeParameters(
79
+ StakingReader stakingReader,
80
+ NftId stakeNftId
81
+ )
82
+ public
83
+ view
84
+ returns (
85
+ Seconds lockingPeriod
86
+ )
87
+ {
88
+ IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
89
+
90
+ if (stakeInfo.lockedUntil > TimestampLib.current()) {
91
+ revert IStaking.ErrorStakingStakeLocked(stakeNftId, stakeInfo.lockedUntil);
92
+ }
93
+ }
94
+
95
+
96
+ function checkTarget(
97
+ StakingReader stakingReader,
98
+ NftId targetNftId
99
+ )
100
+ public
101
+ view
102
+ returns (Seconds lockingPeriod)
103
+ {
104
+ // target nft id must be registered
105
+ if (!stakingReader.isTarget(targetNftId)) {
106
+ revert IStaking.ErrorStakingNotTarget(targetNftId);
107
+ }
108
+
109
+ lockingPeriod = stakingReader.getTargetInfo(targetNftId).lockingPeriod;
110
+ }
111
+
112
+
113
+ function checkAndGetStakingService(
114
+ IRegistry registry,
115
+ VersionPart release
116
+ )
117
+ public
118
+ view
119
+ returns (IStakingService stakingService)
120
+ {
121
+ if (!ReleaseRegistry(registry.getReleaseRegistryAddress()).isActiveRelease(release)) {
122
+ revert IStaking.ErrorStakingReleaseNotActive(release);
123
+ }
124
+
125
+ address stakingServiceAddress = registry.getServiceAddress(STAKING(), release);
126
+ if (stakingServiceAddress == address(0)) {
127
+ revert IStaking.ErrorStakingServiceNotFound(release);
128
+ }
129
+
130
+ return IStakingService(stakingServiceAddress);
131
+ }
132
+
133
+
134
+ function checkDipAmount(
135
+ StakingReader stakingReader,
136
+ NftId targetNftId,
137
+ Amount dipAmount
138
+ )
139
+ public
140
+ view
141
+ {
142
+ // check stake amount > 0
143
+ if (dipAmount.eqz()) {
144
+ revert IStaking.ErrorStakingStakeAmountZero(targetNftId);
145
+ }
146
+
147
+ Amount stakeLimitAmount = stakingReader.getTargetMaxStakedAmount(targetNftId);
148
+ if (dipAmount > stakeLimitAmount) {
149
+ revert IStaking.ErrorStakingTargetMaxStakedAmountExceeded(targetNftId, stakeLimitAmount, dipAmount);
150
+ }
151
+ }
152
+
153
+ function calculateRewardIncrease(
154
+ StakingReader stakingReader,
155
+ NftId stakeNftId,
156
+ UFixed rewardRate
157
+ )
158
+ public
159
+ view
160
+ returns (
161
+ Amount rewardIncreaseAmount
162
+ )
163
+ {
164
+ IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
165
+
166
+ Seconds duration = SecondsLib.toSeconds(
167
+ block.timestamp - stakeInfo.lastUpdateAt.toInt());
168
+
169
+ rewardIncreaseAmount = calculateRewardAmount(
170
+ rewardRate,
171
+ duration,
172
+ stakeInfo.stakedAmount);
173
+ }
174
+
175
+ function calculateRewardAmount(
176
+ UFixed rewardRate,
177
+ Seconds duration,
178
+ Amount stakeAmount
179
+ )
180
+ public
181
+ pure
182
+ returns(
183
+ Amount rewardAmount
184
+ )
185
+ {
186
+ UFixed rewardRateFraction = getYearFraction(duration) * rewardRate;
187
+ rewardAmount = stakeAmount.multiplyWith(rewardRateFraction);
188
+ }
189
+
190
+
191
+ function getYearFraction(Seconds duration) public pure returns (UFixed yearFraction) {
192
+ return UFixedLib.toUFixed(duration.toInt()) / UFixedLib.toUFixed(SecondsLib.oneYear().toInt());
193
+ }
194
+
195
+ }
@@ -1,14 +1,10 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
6
- import {ReleaseManager} from "../registry/ReleaseManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {Staking} from "./Staking.sol";
8
- import {StakingReader} from "./StakingReader.sol";
9
- import {StakingStore} from "./StakingStore.sol";
10
7
 
11
- import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
12
8
 
13
9
  contract StakingManager is
14
10
  ProxyManager
@@ -20,24 +16,27 @@ contract StakingManager is
20
16
  /// @dev initializes proxy manager with service implementation
21
17
  constructor(
22
18
  address registry,
23
- address tokenRegistry,
19
+ address targetHandler,
24
20
  address stakingStore,
25
- address initialOwner
21
+ address tokenRegistry,
22
+ address initialOwner,
23
+ bytes32 salt
26
24
  )
27
- ProxyManager(registry)
28
25
  {
29
26
  Staking stakingImplementation = new Staking();
30
27
 
31
28
  _initialImplementation = address(stakingImplementation);
32
29
  _initializationData = abi.encode(
33
30
  registry,
34
- tokenRegistry,
31
+ targetHandler,
35
32
  stakingStore,
36
- initialOwner);
37
-
38
- IVersionable versionable = deploy(
39
- _initialImplementation,
40
- _initializationData);
33
+ tokenRegistry);
34
+
35
+ IVersionable versionable = initialize(
36
+ registry,
37
+ _initialImplementation,
38
+ _initializationData,
39
+ salt);
41
40
 
42
41
  _staking = Staking(address(versionable));
43
42
  }
@@ -1,35 +1,38 @@
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 {Blocknumber} from "../type/Blocknumber.sol";
6
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
7
- import {IComponent} from "../shared/IComponent.sol";
8
- import {InitializableCustom} from "../shared/InitializableCustom.sol";
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
9
6
  import {IRegistry} from "../registry/IRegistry.sol";
10
7
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
11
8
  import {IStaking} from "../staking/IStaking.sol";
12
- import {IVersionable} from "../shared/IVersionable.sol";
9
+
10
+ import {Amount, AmountLib} from "../type/Amount.sol";
11
+ import {Blocknumber} from "../type/Blocknumber.sol";
12
+ import {ChainId} from "../type/ChainId.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
15
- import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
14
+ import {ObjectType} from "../type/ObjectType.sol";
16
15
  import {Seconds} from "../type/Seconds.sol";
17
16
  import {StakingStore} from "./StakingStore.sol";
17
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
18
18
  import {Timestamp} from "../type/Timestamp.sol";
19
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
19
+ import {UFixed} from "../type/UFixed.sol";
20
+
20
21
 
21
22
  contract StakingReader is
22
23
  IRegistryLinked,
23
- InitializableCustom
24
+ Initializable
24
25
  {
25
26
 
26
- error ErrorStakingReaderDependenciesAlreadySet();
27
+ error ErrorStakingReaderUnauthorizedCaler();
27
28
 
29
+ address private _initializeOwner;
28
30
  IRegistry private _registry;
29
31
  IStaking private _staking;
30
32
  StakingStore private _store;
31
33
 
32
- constructor(IRegistry registry) InitializableCustom() {
34
+ constructor(IRegistry registry) {
35
+ _initializeOwner = msg.sender;
33
36
  _registry = registry;
34
37
  }
35
38
 
@@ -38,8 +41,12 @@ contract StakingReader is
38
41
  address stakingStoreAddress
39
42
  )
40
43
  external
41
- initializer
44
+ initializer()
42
45
  {
46
+ if (msg.sender != _initializeOwner) {
47
+ revert ErrorStakingReaderUnauthorizedCaler();
48
+ }
49
+
43
50
  _staking = IStaking(stakingAddress);
44
51
  _store = StakingStore(stakingStoreAddress);
45
52
  }
@@ -54,134 +61,111 @@ contract StakingReader is
54
61
  return _staking;
55
62
  }
56
63
 
57
- function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
58
- return _store.getStakingRate(chainId, token);
64
+ function getProtocolNftId() external view returns (NftId protocolNftId) {
65
+ return _registry.getProtocolNftId();
59
66
  }
60
67
 
61
68
 
62
69
  function isTarget(NftId targetNftId) external view returns (bool) {
63
- return _store.getTargetManager().exists(targetNftId);
70
+ return _store.getTargetSet().exists(targetNftId);
64
71
  }
65
72
 
66
73
 
67
74
  function targets() external view returns (uint256) {
68
- return _store.getTargetManager().nftIds();
75
+ return _store.getTargetSet().nftIds();
69
76
  }
70
77
 
71
78
 
72
79
  function getTargetNftId(uint256 idx) external view returns (NftId) {
73
- return _store.getTargetManager().getNftId(idx);
80
+ return _store.getTargetSet().getNftId(idx);
74
81
  }
75
82
 
76
83
 
77
- function isActive(NftId targetNftId) external view returns (bool) {
78
- return _store.getTargetManager().isActive(targetNftId);
84
+ function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
85
+ return _registry.getParentNftId(stakeNftId);
79
86
  }
80
87
 
81
88
 
82
- function activeTargets() external view returns (uint256) {
83
- return _store.getTargetManager().activeNftIds();
89
+ function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
90
+ return _store.getStakeInfo(stakeNftId);
84
91
  }
85
92
 
86
93
 
87
- function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
88
- return _store.getTargetManager().getActiveNftId(idx);
94
+ function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
95
+ return _store.getTargetInfo(targetNftId);
89
96
  }
90
97
 
91
98
 
92
- function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
93
- return _registry.getObjectInfo(stakeNftId).parentNftId;
99
+ function getLimitInfo(NftId targetNftId) public view returns (IStaking.LimitInfo memory info) {
100
+ return _store.getLimitInfo(targetNftId);
94
101
  }
95
102
 
96
103
 
97
- function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
98
- bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
99
- if (data.length > 0) {
100
- return abi.decode(data, (IStaking.TargetInfo));
101
- }
104
+ function getTvlInfo(NftId targetNftId, address token) public view returns (IStaking.TvlInfo memory info) {
105
+ return _store.getTvlInfo(targetNftId, token);
102
106
  }
103
107
 
104
108
 
105
- function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
106
- bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
107
- if (data.length > 0) {
108
- return abi.decode(data, (IStaking.StakeInfo));
109
- }
109
+ function getTokenInfo(ChainId chainId, address token) public view returns (IStaking.TokenInfo memory info) {
110
+ return _store.getTokenInfo(chainId, token);
110
111
  }
111
112
 
112
113
 
113
- /// @dev get the reward rate that applies to the specified stake nft id.
114
- function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
115
- targetNftId = getTargetNftId(stakeNftId);
116
- rewardRate = getTargetInfo(targetNftId).rewardRate;
114
+ function isSupportedTargetType(ObjectType targetType) public view returns (bool) {
115
+ return _store.getSupportInfo(targetType).isSupported;
117
116
  }
118
117
 
119
118
 
120
- /// @dev get the reward rate for the specified target nft id.
121
- function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
122
- return getTargetInfo(targetNftId).rewardRate;
119
+ function getSupportInfo(ObjectType targetType) public view returns (IStaking.SupportInfo memory info) {
120
+ return _store.getSupportInfo(targetType);
123
121
  }
124
122
 
125
- /// @dev returns the current reward reserve balance for the specified target.
126
- function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
127
- return _store.getReserveBalance(targetNftId);
123
+
124
+ /// @dev Get the locking period that applies to the specified stake NFT ID.
125
+ function getTargetLockingPeriod(NftId stakeNftId) external view returns (NftId targetNftId, Seconds lockingPeriod) {
126
+ targetNftId = getTargetNftId(stakeNftId);
127
+ lockingPeriod = getTargetInfo(targetNftId).lockingPeriod;
128
128
  }
129
129
 
130
- function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
131
- return _store.getStakeBalance(nftId);
130
+
131
+ /// @dev Get the reward rate that applies to the specified stake NFT ID.
132
+ function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
133
+ targetNftId = getTargetNftId(stakeNftId);
134
+ rewardRate = getTargetInfo(targetNftId).rewardRate;
132
135
  }
133
136
 
134
- function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
135
- return _store.getRewardBalance(nftId);
137
+
138
+ /// @dev Get the max staked amount allowed for the specified target NFT ID.
139
+ function getTargetMaxStakedAmount(NftId targetNftId) external view returns (Amount maxStakedAmount) {
140
+ return getTargetInfo(targetNftId).limitAmount;
136
141
  }
137
142
 
138
- function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
139
- return _store.getBalanceUpdatedAt(nftId);
143
+
144
+ /// @dev Get the reward rate for the specified target NFT ID.
145
+ function getLockingPeriod(NftId targetNftId) external view returns (Seconds lockingPeriod) {
146
+ return getTargetInfo(targetNftId).lockingPeriod;
140
147
  }
141
148
 
142
- function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) {
143
- return _store.getBalanceUpdatedIn(nftId);
149
+
150
+ /// @dev Get the reward rate for the specified target NFT ID.
151
+ function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
152
+ return getTargetInfo(targetNftId).rewardRate;
144
153
  }
145
154
 
146
- function getTotalValueLocked(NftId nftId, address token) external view returns (Amount totalValueLocked) {
147
- return _store.getTotalValueLocked(nftId, token);
155
+ /// @dev returns the current reward reserve balance for the specified target.
156
+ function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
157
+ return getTargetInfo(targetNftId).reserveAmount;
148
158
  }
149
159
 
150
- function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredStakedAmount) {
151
- return _store.getRequiredStakeBalance(nftId);
160
+ function getTotalValueLocked(NftId targetNftId, address token) external view returns (Amount totalValueLocked) {
161
+ return _store.getTvlInfo(targetNftId, token).tvlAmount;
152
162
  }
153
163
 
154
- function getTargetBalances(NftId stakeNftId)
155
- public
156
- view
157
- returns (
158
- Amount balanceAmount,
159
- Amount stakeAmount,
160
- Amount rewardAmount,
161
- Blocknumber lastUpdatedIn
162
- )
163
- {
164
- (
165
- balanceAmount,
166
- stakeAmount,
167
- rewardAmount,
168
- lastUpdatedIn
169
- ) = _store.getTargetBalances(stakeNftId);
164
+ function getRequiredStakeBalance(NftId targetNftId) external view returns (Amount requiredStakedAmount) {
165
+ return _store.getRequiredStakeBalance(targetNftId, true);
170
166
  }
171
167
 
172
- function getStakeBalances(NftId stakeNftId)
173
- external
174
- view
175
- returns (
176
- Amount stakeAmount,
177
- Amount rewardAmount,
178
- Timestamp lastUpdatedAt
179
- )
180
- {
181
- (
182
- stakeAmount,
183
- rewardAmount,
184
- lastUpdatedAt
185
- ) = _store.getStakeBalances(stakeNftId);
168
+ function getRequiredStakeBalance(NftId targetNftId, bool includeTargetTypeRequirements) external view returns (Amount requiredStakedAmount) {
169
+ return _store.getRequiredStakeBalance(targetNftId, includeTargetTypeRequirements);
186
170
  }
187
171
  }