@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-ea09fbf-195

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 (714) hide show
  1. package/README.md +83 -22
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → accounting/IAccountingService.sol/IAccountingService.json} +327 -380
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1092 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +259 -572
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -312
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +243 -325
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +263 -115
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +228 -123
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +288 -233
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1800 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1610 -560
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -445
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -157
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1780 -739
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  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 +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +228 -284
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +302 -175
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -229
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +318 -442
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +820 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +347 -60
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1309 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +377 -414
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1626 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +792 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +451 -457
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1538 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +860 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +138 -163
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1082 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +968 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +64 -61
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1320 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +464 -29
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  193. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.json +953 -127
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -249
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  212. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +280 -180
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1597 -0
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -0
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +142 -132
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  228. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +152 -125
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1221 -0
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  243. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  245. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -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 +4 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1067 -0
  277. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1272 -0
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  353. package/contracts/accounting/AccountingService.sol +262 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +45 -0
  356. package/contracts/authorization/AccessAdmin.sol +659 -0
  357. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  358. package/contracts/authorization/Authorization.sol +289 -0
  359. package/contracts/authorization/IAccess.sol +49 -0
  360. package/contracts/authorization/IAccessAdmin.sol +140 -0
  361. package/contracts/authorization/IAuthorization.sol +60 -0
  362. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  363. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  364. package/contracts/distribution/BasicDistribution.sol +139 -0
  365. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  366. package/contracts/{components → distribution}/Distribution.sol +170 -163
  367. package/contracts/distribution/DistributionService.sol +357 -0
  368. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  369. package/contracts/distribution/IDistributionComponent.sol +52 -0
  370. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  371. package/contracts/examples/fire/DamageLevel.sol +59 -0
  372. package/contracts/examples/fire/FirePool.sol +90 -0
  373. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  374. package/contracts/examples/fire/FireProduct.sol +438 -0
  375. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  376. package/contracts/examples/fire/FireUSD.sol +26 -0
  377. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  378. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  379. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  380. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  381. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  383. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  384. package/contracts/instance/BundleSet.sol +130 -0
  385. package/contracts/instance/IInstance.sol +43 -37
  386. package/contracts/instance/IInstanceService.sol +37 -49
  387. package/contracts/instance/Instance.sol +142 -106
  388. package/contracts/instance/InstanceAdmin.sol +326 -0
  389. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  390. package/contracts/instance/InstanceReader.sol +363 -60
  391. package/contracts/instance/InstanceService.sol +258 -384
  392. package/contracts/instance/InstanceServiceManager.sol +14 -29
  393. package/contracts/instance/InstanceStore.sol +174 -95
  394. package/contracts/instance/RiskSet.sol +118 -0
  395. package/contracts/instance/base/BalanceStore.sol +123 -0
  396. package/contracts/instance/base/Cloneable.sol +28 -0
  397. package/contracts/instance/base/ObjectCounter.sol +20 -0
  398. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  399. package/contracts/instance/base/ObjectSet.sol +77 -0
  400. package/contracts/instance/base/ObjectSetHelper.sol +30 -0
  401. package/contracts/instance/module/IAccess.sol +4 -12
  402. package/contracts/instance/module/IBundle.sol +6 -9
  403. package/contracts/instance/module/IComponents.sol +28 -18
  404. package/contracts/instance/module/IDistribution.sol +6 -6
  405. package/contracts/instance/module/IPolicy.sol +48 -35
  406. package/contracts/instance/module/IRisk.sol +4 -1
  407. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  408. package/contracts/oracle/BasicOracle.sol +47 -0
  409. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  410. package/contracts/oracle/IOracle.sol +36 -0
  411. package/contracts/oracle/IOracleComponent.sol +33 -0
  412. package/contracts/oracle/IOracleService.sol +66 -0
  413. package/contracts/oracle/Oracle.sol +156 -0
  414. package/contracts/oracle/OracleService.sol +310 -0
  415. package/contracts/oracle/OracleServiceManager.sol +39 -0
  416. package/contracts/pool/BasicPool.sol +175 -0
  417. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  418. package/contracts/pool/BundleService.sol +425 -0
  419. package/contracts/pool/BundleServiceManager.sol +39 -0
  420. package/contracts/pool/IBundleService.sol +121 -0
  421. package/contracts/pool/IPoolComponent.sol +62 -0
  422. package/contracts/pool/IPoolService.sol +153 -0
  423. package/contracts/pool/Pool.sol +345 -0
  424. package/contracts/pool/PoolService.sol +615 -0
  425. package/contracts/pool/PoolServiceManager.sol +39 -0
  426. package/contracts/product/ApplicationService.sol +259 -0
  427. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  428. package/contracts/product/BasicProduct.sol +51 -0
  429. package/contracts/product/BasicProductAuthorization.sol +41 -0
  430. package/contracts/product/ClaimService.sol +708 -0
  431. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  432. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  433. package/contracts/product/IClaimService.sol +136 -0
  434. package/contracts/product/IPolicyService.sol +90 -0
  435. package/contracts/product/IPricingService.sol +39 -0
  436. package/contracts/product/IProductComponent.sol +62 -0
  437. package/contracts/product/IRiskService.sol +33 -0
  438. package/contracts/product/PolicyService.sol +736 -0
  439. package/contracts/product/PolicyServiceManager.sol +39 -0
  440. package/contracts/product/PricingService.sol +304 -0
  441. package/contracts/product/PricingServiceManager.sol +39 -0
  442. package/contracts/product/Product.sol +463 -0
  443. package/contracts/product/RiskService.sol +151 -0
  444. package/contracts/product/RiskServiceManager.sol +39 -0
  445. package/contracts/registry/ChainNft.sol +79 -40
  446. package/contracts/registry/IRegistry.sol +93 -30
  447. package/contracts/registry/IRegistryService.sol +34 -40
  448. package/contracts/registry/IRelease.sol +26 -0
  449. package/contracts/registry/ITransferInterceptor.sol +1 -2
  450. package/contracts/registry/Registry.sol +456 -197
  451. package/contracts/registry/RegistryAdmin.sol +344 -0
  452. package/contracts/registry/RegistryService.sol +89 -130
  453. package/contracts/registry/RegistryServiceManager.sol +23 -32
  454. package/contracts/registry/ReleaseAdmin.sol +245 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  456. package/contracts/registry/ReleaseRegistry.sol +511 -0
  457. package/contracts/registry/ServiceAuthorizationV3.sol +242 -0
  458. package/contracts/registry/TokenRegistry.sol +261 -64
  459. package/contracts/shared/Component.sol +226 -0
  460. package/contracts/shared/ComponentService.sol +700 -0
  461. package/contracts/shared/ComponentServiceManager.sol +38 -0
  462. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  463. package/contracts/shared/ContractLib.sol +252 -0
  464. package/contracts/shared/IComponent.sol +61 -0
  465. package/contracts/shared/IComponentService.sol +116 -0
  466. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  467. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  468. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  469. package/contracts/shared/INftOwnable.sol +4 -2
  470. package/contracts/shared/IPolicyHolder.sol +23 -14
  471. package/contracts/shared/IRegisterable.sol +23 -1
  472. package/contracts/shared/IRegistryLinked.sol +0 -1
  473. package/contracts/shared/IService.sol +12 -5
  474. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  475. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  476. package/contracts/shared/KeyValueStore.sol +131 -0
  477. package/contracts/shared/Lifecycle.sol +88 -0
  478. package/contracts/shared/NftIdSet.sol +65 -0
  479. package/contracts/shared/NftOwnable.sol +34 -27
  480. package/contracts/shared/PolicyHolder.sol +22 -41
  481. package/contracts/shared/Registerable.sol +55 -20
  482. package/contracts/shared/RegistryLinked.sol +9 -19
  483. package/contracts/shared/Service.sol +33 -40
  484. package/contracts/shared/TokenHandler.sol +368 -12
  485. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  486. package/contracts/staking/IStaking.sol +173 -0
  487. package/contracts/staking/IStakingService.sol +157 -0
  488. package/contracts/staking/StakeManagerLib.sol +224 -0
  489. package/contracts/staking/Staking.sol +526 -0
  490. package/contracts/staking/StakingLifecycle.sol +23 -0
  491. package/contracts/staking/StakingManager.sol +52 -0
  492. package/contracts/staking/StakingReader.sol +190 -0
  493. package/contracts/staking/StakingService.sol +439 -0
  494. package/contracts/staking/StakingServiceManager.sol +44 -0
  495. package/contracts/staking/StakingStore.sol +605 -0
  496. package/contracts/staking/TargetManagerLib.sol +211 -0
  497. package/contracts/{types → type}/AddressSet.sol +1 -1
  498. package/contracts/type/Amount.sol +150 -0
  499. package/contracts/{types → type}/Blocknumber.sol +26 -3
  500. package/contracts/{types → type}/ClaimId.sol +31 -3
  501. package/contracts/{types → type}/Fee.sol +24 -22
  502. package/contracts/{types → type}/Key32.sol +2 -2
  503. package/contracts/type/Key32Set.sol +62 -0
  504. package/contracts/{types → type}/NftId.sol +21 -16
  505. package/contracts/{types → type}/NftIdSet.sol +2 -2
  506. package/contracts/type/ObjectType.sol +290 -0
  507. package/contracts/type/PayoutId.sol +82 -0
  508. package/contracts/{types → type}/Referral.sol +2 -1
  509. package/contracts/type/RequestId.sol +75 -0
  510. package/contracts/type/RiskId.sol +74 -0
  511. package/contracts/type/RoleId.sol +165 -0
  512. package/contracts/type/Seconds.sol +101 -0
  513. package/contracts/type/Selector.sol +102 -0
  514. package/contracts/{types → type}/StateId.sol +47 -4
  515. package/contracts/type/String.sol +53 -0
  516. package/contracts/{types → type}/Timestamp.sol +20 -6
  517. package/contracts/{types → type}/UFixed.sol +40 -121
  518. package/contracts/{types → type}/Version.sol +19 -7
  519. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  520. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  521. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  522. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  523. package/package.json +11 -7
  524. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  525. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  526. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  528. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  531. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  532. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  533. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  536. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  539. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  541. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  546. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  548. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  550. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  551. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  553. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  555. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  557. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  559. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  561. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  565. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  567. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  587. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  589. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  591. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  593. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  594. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  596. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  598. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  599. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  602. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  604. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  606. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  608. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  610. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  612. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  614. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  615. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  616. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  617. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  618. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  620. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  622. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  624. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  626. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  636. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  638. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  640. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  642. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  644. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  646. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  648. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  650. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  652. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  654. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  656. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  658. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  660. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  662. package/contracts/components/Component.sol +0 -253
  663. package/contracts/components/IComponent.sol +0 -76
  664. package/contracts/components/IDistributionComponent.sol +0 -71
  665. package/contracts/components/IPoolComponent.sol +0 -113
  666. package/contracts/components/IProductComponent.sol +0 -40
  667. package/contracts/components/Pool.sol +0 -303
  668. package/contracts/components/Product.sol +0 -293
  669. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  670. package/contracts/instance/BundleManager.sol +0 -127
  671. package/contracts/instance/Cloneable.sol +0 -51
  672. package/contracts/instance/InstanceAccessManager.sol +0 -540
  673. package/contracts/instance/ObjectManager.sol +0 -82
  674. package/contracts/instance/base/ComponentService.sol +0 -121
  675. package/contracts/instance/base/KeyValueStore.sol +0 -180
  676. package/contracts/instance/base/Lifecycle.sol +0 -109
  677. package/contracts/instance/module/ISetup.sol +0 -33
  678. package/contracts/instance/module/ITreasury.sol +0 -23
  679. package/contracts/instance/service/ApplicationService.sol +0 -351
  680. package/contracts/instance/service/BundleService.sol +0 -431
  681. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  682. package/contracts/instance/service/ClaimService.sol +0 -151
  683. package/contracts/instance/service/DistributionService.sol +0 -437
  684. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  685. package/contracts/instance/service/IBundleService.sol +0 -93
  686. package/contracts/instance/service/IClaimService.sol +0 -61
  687. package/contracts/instance/service/IPolicyService.sol +0 -72
  688. package/contracts/instance/service/IPoolService.sol +0 -99
  689. package/contracts/instance/service/IProductService.sol +0 -40
  690. package/contracts/instance/service/PolicyService.sol +0 -362
  691. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  692. package/contracts/instance/service/PoolService.sol +0 -303
  693. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  694. package/contracts/instance/service/ProductService.sol +0 -209
  695. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  696. package/contracts/registry/RegistryAccessManager.sol +0 -216
  697. package/contracts/registry/ReleaseManager.sol +0 -324
  698. package/contracts/shared/ContractDeployerLib.sol +0 -72
  699. package/contracts/test/TestFee.sol +0 -25
  700. package/contracts/test/TestRegisterable.sol +0 -18
  701. package/contracts/test/TestRoleId.sol +0 -14
  702. package/contracts/test/TestService.sol +0 -25
  703. package/contracts/test/TestToken.sol +0 -26
  704. package/contracts/test/TestVersion.sol +0 -44
  705. package/contracts/test/TestVersionable.sol +0 -17
  706. package/contracts/types/Amount.sol +0 -60
  707. package/contracts/types/ChainId.sol +0 -38
  708. package/contracts/types/NumberId.sol +0 -52
  709. package/contracts/types/ObjectType.sol +0 -157
  710. package/contracts/types/PayoutId.sol +0 -54
  711. package/contracts/types/RiskId.sol +0 -43
  712. package/contracts/types/RoleId.sol +0 -97
  713. package/contracts/types/Seconds.sol +0 -54
  714. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,605 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
+
6
+ import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {IStaking} from "./IStaking.sol";
8
+
9
+ import {Amount, AmountLib} from "../type/Amount.sol";
10
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
11
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
12
+ import {KEEP_STATE} from "../type/StateId.sol";
13
+ import {NftId, NftIdLib} from "../type/NftId.sol";
14
+ import {NftIdSet} from "../shared/NftIdSet.sol";
15
+ import {PROTOCOL, STAKE, TARGET} from "../type/ObjectType.sol";
16
+ import {StakingReader} from "./StakingReader.sol";
17
+ import {TargetManagerLib} from "./TargetManagerLib.sol";
18
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
19
+ import {StakingLifecycle} from "./StakingLifecycle.sol";
20
+ import {UFixed} from "../type/UFixed.sol";
21
+
22
+
23
+ contract StakingStore is
24
+ AccessManaged,
25
+ KeyValueStore,
26
+ StakingLifecycle
27
+ {
28
+
29
+ event LogStakingStoreReserveBalanceIncreased(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdatedIn);
30
+ event LogStakingStoreReserveBalanceDecreased(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdatedIn);
31
+
32
+ event LogStakingStoreTotalValueLockedIncreased(NftId targetNftId, address token, Amount amount, Amount newBalance, Blocknumber lastUpdatedIn);
33
+ event LogStakingStoreTotalValueLockedDecreased(NftId targetNftId, address token, Amount amount, Amount newBalance, Blocknumber lastUpdatedIn);
34
+
35
+ event LogStakingStoreStakesIncreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
36
+ event LogStakingStoreStakesDecreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
37
+
38
+ event LogStakingStoreRewardsIncreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
39
+ event LogStakingStoreRewardsDecreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
40
+
41
+ event LogStakingStoreRewardsRestaked(NftId nftId, Amount amount, Amount rewardAmount, Amount rewardIncrementAmount, Amount newBalance, Blocknumber lastUpdatedIn);
42
+
43
+ // in/decreasing reward reserves
44
+ error ErrorStakingStoreNotTarget(NftId targetNftId);
45
+ error ErrorStakingStoreRewardReservesInsufficient(NftId targetNftId, Amount dipAmount, Amount reservesBalanceAmount);
46
+
47
+ // creating and updating of balance
48
+ error ErrorStakingStoreBalanceAlreadyInitialized(NftId nftId);
49
+ error ErrorStakingStoreBalanceNotInitialized(NftId nftId);
50
+
51
+ // update balance
52
+ error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId);
53
+
54
+ IRegistry private _registry;
55
+ NftIdSet private _targetNftIdSet;
56
+ StakingReader private _reader;
57
+
58
+ // staking rate
59
+ mapping(uint256 chainId => mapping(address token => UFixed stakingRate)) private _stakingRate;
60
+
61
+ // total, stake and reward balances
62
+ mapping(NftId nftId => Amount stakes) private _stakeBalance;
63
+ mapping(NftId nftId => Amount rewards) private _rewardBalance;
64
+ mapping(NftId nftId => Amount reserves) private _reserveBalance;
65
+
66
+ mapping(NftId nftId => Timestamp lastUpdatedAt) private _lastUpdatedAt;
67
+ mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
68
+
69
+ // total value locked balance
70
+ mapping(NftId nftId => mapping(address token => Amount tvl)) private _tvlBalance;
71
+ mapping(NftId nftId => mapping(address token => Amount tvlInDip)) private _tvlInDip;
72
+ mapping(NftId nftId => Amount tvlRequiredDip) private _tvlRequiredDip;
73
+ mapping(NftId nftId => Blocknumber lastUpdatedIn) private _tvlLastUpdatedIn;
74
+
75
+
76
+ constructor(IRegistry registry, StakingReader reader)
77
+ AccessManaged(msg.sender)
78
+ {
79
+ // set final authority
80
+ setAuthority(registry.getAuthority());
81
+
82
+ // set internal variables
83
+ _registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
84
+ _reader = reader;
85
+ _targetNftIdSet = new NftIdSet();
86
+
87
+ // register protocol target
88
+ _createTarget(
89
+ NftIdLib.toNftId(1101),
90
+ IStaking.TargetInfo({
91
+ objectType: PROTOCOL(),
92
+ chainId: 1,
93
+ lockingPeriod: TargetManagerLib.getDefaultLockingPeriod(),
94
+ rewardRate: TargetManagerLib.getDefaultRewardRate()}));
95
+ }
96
+
97
+
98
+ //--- staking rate specific functions -----------------------------------//
99
+
100
+ function setStakingRate(
101
+ uint256 chainId,
102
+ address token,
103
+ UFixed stakingRate
104
+ )
105
+ external
106
+ restricted()
107
+ {
108
+ _stakingRate[chainId][token] = stakingRate;
109
+ }
110
+
111
+ //--- target specific functions -----------------------------------------//
112
+
113
+ function createTarget(
114
+ NftId targetNftId,
115
+ IStaking.TargetInfo memory targetInfo
116
+ )
117
+ external
118
+ restricted()
119
+ {
120
+ _createTarget(targetNftId, targetInfo);
121
+ }
122
+
123
+
124
+ function updateTarget(
125
+ NftId targetNftId,
126
+ IStaking.TargetInfo memory targetInfo
127
+ )
128
+ external
129
+ restricted()
130
+ {
131
+ _update(
132
+ targetNftId.toKey32(TARGET()),
133
+ abi.encode(targetInfo), KEEP_STATE());
134
+ }
135
+
136
+
137
+ function increaseReserves(
138
+ NftId targetNftId,
139
+ Amount dipAmount
140
+ )
141
+ external
142
+ restricted()
143
+ returns (Amount newReserveBalance)
144
+ {
145
+ newReserveBalance = _reserveBalance[targetNftId] + dipAmount;
146
+ Blocknumber lastUpdatedIn = _updateReserves(targetNftId, newReserveBalance);
147
+
148
+ emit LogStakingStoreReserveBalanceIncreased(targetNftId, dipAmount, newReserveBalance, lastUpdatedIn);
149
+ }
150
+
151
+
152
+ function decreaseReserves(
153
+ NftId targetNftId,
154
+ Amount dipAmount
155
+ )
156
+ external
157
+ restricted()
158
+ returns (Amount newReserveBalance)
159
+ {
160
+ Amount reserveAmount = _reserveBalance[targetNftId];
161
+ if (dipAmount > reserveAmount) {
162
+ revert ErrorStakingStoreRewardReservesInsufficient(
163
+ targetNftId,
164
+ dipAmount,
165
+ reserveAmount);
166
+ }
167
+
168
+ newReserveBalance = _reserveBalance[targetNftId] - dipAmount;
169
+ Blocknumber lastUpdatedIn = _updateReserves(targetNftId, newReserveBalance);
170
+
171
+ emit LogStakingStoreReserveBalanceDecreased(targetNftId, dipAmount, newReserveBalance, lastUpdatedIn);
172
+ }
173
+
174
+
175
+ //--- tvl specific functions -------------------------------------//
176
+
177
+ function increaseTotalValueLocked(
178
+ NftId targetNftId,
179
+ UFixed stakingRate,
180
+ address token,
181
+ Amount amount
182
+ )
183
+ external
184
+ restricted()
185
+ returns (Amount newBalance)
186
+ {
187
+ (
188
+ Blocknumber tvlLastUpdatedIn,
189
+ Amount oldBalance,
190
+ Amount oldDipBalance
191
+ ) = _getAndVerifyTvl(targetNftId, token);
192
+
193
+ newBalance = oldBalance + amount;
194
+ Amount newDipBalance = newBalance.multiplyWith(stakingRate);
195
+
196
+ // update new tvl balances
197
+ _tvlBalance[targetNftId][token] = newBalance;
198
+ _tvlInDip[targetNftId][token] = newDipBalance;
199
+
200
+ // update new amount of required dip
201
+ _tvlRequiredDip[targetNftId] = _tvlRequiredDip[targetNftId] - oldDipBalance + newDipBalance;
202
+
203
+ // update last updated in
204
+ _tvlLastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
205
+
206
+ emit LogStakingStoreTotalValueLockedIncreased(targetNftId, token, amount, newBalance, tvlLastUpdatedIn);
207
+ }
208
+
209
+
210
+ function decreaseTotalValueLocked(
211
+ NftId targetNftId,
212
+ UFixed stakingRate,
213
+ address token,
214
+ Amount amount
215
+ )
216
+ external
217
+ restricted()
218
+ returns (Amount newBalance)
219
+ {
220
+ (
221
+ Blocknumber tvlLastUpdatedIn,
222
+ Amount oldBalance,
223
+ Amount oldDipBalance
224
+ ) = _getAndVerifyTvl(targetNftId, token);
225
+
226
+ newBalance = oldBalance - amount;
227
+ Amount newDipBalance = AmountLib.toAmount((
228
+ stakingRate * newBalance.toUFixed()).toInt());
229
+
230
+ // update new tvl balances
231
+ _tvlBalance[targetNftId][token] = newBalance;
232
+ _tvlInDip[targetNftId][token] = newDipBalance;
233
+
234
+ // update new amount of required dip
235
+ _tvlRequiredDip[targetNftId] = _tvlRequiredDip[targetNftId] - oldDipBalance + newDipBalance;
236
+
237
+ // update last updated in
238
+ _tvlLastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
239
+
240
+ emit LogStakingStoreTotalValueLockedDecreased(targetNftId, token, amount, newBalance, tvlLastUpdatedIn);
241
+ }
242
+
243
+ //--- stake specific functions -------------------------------------//
244
+
245
+ function create(
246
+ NftId stakeNftId,
247
+ IStaking.StakeInfo memory stakeInfo
248
+ )
249
+ external
250
+ restricted()
251
+ {
252
+ _create(
253
+ stakeNftId.toKey32(STAKE()),
254
+ abi.encode(stakeInfo));
255
+
256
+ _createStakeBalance(stakeNftId);
257
+ }
258
+
259
+ function update(
260
+ NftId stakeNftId,
261
+ IStaking.StakeInfo memory stakeInfo
262
+ )
263
+ external
264
+ restricted()
265
+ {
266
+ _update(
267
+ stakeNftId.toKey32(STAKE()),
268
+ abi.encode(stakeInfo),
269
+ KEEP_STATE());
270
+ }
271
+
272
+ //--- general functions --------------------------------------------//
273
+
274
+
275
+ function increaseStake(
276
+ NftId nftId,
277
+ NftId targetNftId,
278
+ Amount amount
279
+ )
280
+ external
281
+ restricted()
282
+ {
283
+ Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
284
+
285
+ _updateStakeBalance(
286
+ nftId,
287
+ _stakeBalance[nftId] + amount, // new stake balance
288
+ _rewardBalance[nftId]); // unchanged reward balance
289
+
290
+ _updateTargetBalance(
291
+ targetNftId,
292
+ _stakeBalance[targetNftId] + amount,
293
+ _rewardBalance[targetNftId]);
294
+
295
+ emit LogStakingStoreStakesIncreased(nftId, amount, _stakeBalance[nftId], lastUpdatedIn);
296
+ }
297
+
298
+
299
+ function restakeRewards(
300
+ NftId nftId,
301
+ NftId targetNftId,
302
+ Amount rewardIncrementAmount
303
+ )
304
+ external
305
+ restricted()
306
+ {
307
+ Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
308
+ Amount stakeAmount = _stakeBalance[nftId];
309
+ Amount rewardAmount = _rewardBalance[nftId];
310
+
311
+ // move all rewards to stake balance
312
+ _updateStakeBalance(
313
+ nftId,
314
+ stakeAmount + rewardAmount + rewardIncrementAmount, // new stake balance
315
+ AmountLib.zero()); // new reward balance
316
+
317
+ _updateTargetBalance(
318
+ targetNftId,
319
+ _stakeBalance[targetNftId] + rewardAmount + rewardIncrementAmount,
320
+ _rewardBalance[targetNftId] - rewardAmount);
321
+
322
+ emit LogStakingStoreRewardsRestaked(nftId, stakeAmount, rewardAmount, rewardIncrementAmount, _stakeBalance[nftId], lastUpdatedIn);
323
+ }
324
+
325
+
326
+ function updateRewards(
327
+ NftId nftId,
328
+ NftId targetNftId,
329
+ Amount rewardIncrementAmount
330
+ )
331
+ external
332
+ restricted()
333
+ {
334
+ Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
335
+
336
+ // increse rewards by increment
337
+ _updateStakeBalance(
338
+ nftId,
339
+ _stakeBalance[nftId], // unchanged stake balance
340
+ _rewardBalance[nftId] + rewardIncrementAmount); // new reward balance
341
+
342
+ _updateTargetBalance(
343
+ targetNftId,
344
+ _stakeBalance[targetNftId],
345
+ _rewardBalance[targetNftId] + rewardIncrementAmount);
346
+
347
+ emit LogStakingStoreRewardsIncreased(nftId, rewardIncrementAmount, _rewardBalance[nftId], lastUpdatedIn);
348
+ }
349
+
350
+
351
+ function claimUpTo(
352
+ NftId nftId,
353
+ NftId targetNftId,
354
+ Amount maxClaimAmount
355
+ )
356
+ external
357
+ restricted()
358
+ returns (Amount claimedAmount)
359
+ {
360
+ Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
361
+
362
+ // determine the claimable rewards amount
363
+ claimedAmount = AmountLib.min(maxClaimAmount, _rewardBalance[nftId]);
364
+
365
+ // decrease rewards by claimed amount
366
+ _updateStakeBalance(
367
+ nftId,
368
+ _stakeBalance[nftId], // unchanged stake balance
369
+ _rewardBalance[nftId] - claimedAmount); // new reward balance
370
+
371
+ _updateTargetBalance(
372
+ targetNftId,
373
+ _stakeBalance[targetNftId],
374
+ _rewardBalance[targetNftId] - claimedAmount);
375
+
376
+ emit LogStakingStoreRewardsDecreased(nftId, claimedAmount, _rewardBalance[nftId], lastUpdatedIn);
377
+ }
378
+
379
+
380
+ function unstakeUpTo(
381
+ NftId nftId,
382
+ NftId targetNftId,
383
+ Amount maxUnstakeAmount,
384
+ Amount maxClaimAmount
385
+ )
386
+ external
387
+ restricted()
388
+ returns (
389
+ Amount unstakedAmount,
390
+ Amount claimedAmount
391
+ )
392
+ {
393
+ Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
394
+
395
+ // determine amounts
396
+ unstakedAmount = AmountLib.min(maxUnstakeAmount, _stakeBalance[nftId]);
397
+ claimedAmount = AmountLib.min(maxClaimAmount, _rewardBalance[nftId]);
398
+
399
+ // decrease stakes and rewards as determined
400
+ _updateStakeBalance(
401
+ nftId,
402
+ _stakeBalance[nftId] - unstakedAmount, // unchanged stake balance
403
+ _rewardBalance[nftId] - claimedAmount); // new reward balance
404
+
405
+ _updateTargetBalance(
406
+ targetNftId,
407
+ _stakeBalance[targetNftId] - unstakedAmount,
408
+ _rewardBalance[targetNftId] - claimedAmount);
409
+
410
+ emit LogStakingStoreStakesDecreased(nftId, unstakedAmount, _stakeBalance[nftId], lastUpdatedIn);
411
+ emit LogStakingStoreRewardsDecreased(nftId, claimedAmount, _rewardBalance[nftId], lastUpdatedIn);
412
+ }
413
+
414
+ //--- view functions -----------------------------------------------//
415
+
416
+ function getStakingReader() external view returns (StakingReader stakingReader){
417
+ return _reader;
418
+ }
419
+
420
+ // TODO rename
421
+ function getTargetNftIdSet() external view returns (NftIdSet targetNftIdSet){
422
+ return _targetNftIdSet;
423
+ }
424
+
425
+ function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) { return _stakingRate[chainId][token]; }
426
+
427
+ function exists(NftId stakeNftId) external view returns (bool) { return exists(stakeNftId.toKey32(STAKE())); }
428
+
429
+ function getTotalValueLocked(NftId nftId, address token) external view returns (Amount tvlBalanceAmount) { return _tvlBalance[nftId][token]; }
430
+ function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredAmount) { return _tvlRequiredDip[nftId]; }
431
+
432
+ function getReserveBalance(NftId nftId) external view returns (Amount balanceAmount) { return _reserveBalance[nftId]; }
433
+ function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) { return _stakeBalance[nftId]; }
434
+ function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) { return _rewardBalance[nftId]; }
435
+ function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) { return _lastUpdatedAt[nftId]; }
436
+ function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) { return _lastUpdatedIn[nftId]; }
437
+
438
+
439
+ function getTargetBalances(NftId nftId)
440
+ external
441
+ view
442
+ returns (
443
+ Amount stakeBalance,
444
+ Amount rewardBalance,
445
+ Amount reserveBalance,
446
+ Blocknumber lastUpdatedIn
447
+ )
448
+ {
449
+ stakeBalance = _stakeBalance[nftId];
450
+ rewardBalance = _rewardBalance[nftId];
451
+ reserveBalance = _reserveBalance[nftId];
452
+ lastUpdatedIn = _lastUpdatedIn[nftId];
453
+ }
454
+
455
+
456
+ function getStakeBalances(NftId nftId)
457
+ external
458
+ view
459
+ returns (
460
+ Amount stakeBalance,
461
+ Amount rewardBalance,
462
+ Timestamp lastUpdatedAt
463
+ )
464
+ {
465
+ stakeBalance = _stakeBalance[nftId];
466
+ rewardBalance = _rewardBalance[nftId];
467
+ lastUpdatedAt = _lastUpdatedAt[nftId];
468
+ }
469
+
470
+ //--- private functions -------------------------------------------//
471
+
472
+ function _createTarget(
473
+ NftId targetNftId,
474
+ IStaking.TargetInfo memory targetInfo
475
+ )
476
+ private
477
+ {
478
+ _create(
479
+ targetNftId.toKey32(TARGET()),
480
+ abi.encode(targetInfo));
481
+
482
+ // initialize tvl and stake balance
483
+ _tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
484
+ _createTargetBalance(targetNftId);
485
+
486
+ _targetNftIdSet.add(targetNftId);
487
+ }
488
+
489
+ function _updateReserves(
490
+ NftId targetNftId,
491
+ Amount newRewardBalance
492
+ )
493
+ private
494
+ returns (Blocknumber lastUpdatedIn)
495
+ {
496
+ if (_lastUpdatedIn[targetNftId].eqz()) {
497
+ revert ErrorStakingStoreNotTarget(targetNftId);
498
+ }
499
+
500
+ lastUpdatedIn = _lastUpdatedIn[targetNftId];
501
+
502
+ _reserveBalance[targetNftId] = newRewardBalance;
503
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
504
+ }
505
+
506
+
507
+ function _createTargetBalance(NftId nftId)
508
+ private
509
+ {
510
+ if (_lastUpdatedIn[nftId].gtz()) {
511
+ revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
512
+ }
513
+
514
+ // set target balances to 0
515
+ _stakeBalance[nftId] = AmountLib.zero();
516
+ _rewardBalance[nftId] = AmountLib.zero();
517
+ _reserveBalance[nftId] = AmountLib.zero();
518
+
519
+ // set last updated in to current block number
520
+ // we don't need last updated at timestamp for targets
521
+ _lastUpdatedIn[nftId] = BlocknumberLib.currentBlocknumber();
522
+ }
523
+
524
+
525
+ function _createStakeBalance(NftId nftId)
526
+ private
527
+ {
528
+ if (_lastUpdatedIn[nftId].gtz()) {
529
+ revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
530
+ }
531
+
532
+ // set stake balances to 0
533
+ _stakeBalance[nftId] = AmountLib.zero();
534
+ _rewardBalance[nftId] = AmountLib.zero();
535
+
536
+ // set last updated at/in to current timestamp/block number
537
+ _lastUpdatedAt[nftId] = TimestampLib.blockTimestamp();
538
+ _lastUpdatedIn[nftId] = BlocknumberLib.currentBlocknumber();
539
+ }
540
+
541
+
542
+ function _updateStakeBalance(
543
+ NftId stakeNftId,
544
+ Amount newStakeAmount,
545
+ Amount newRewardAmount
546
+ )
547
+ private
548
+ {
549
+ _stakeBalance[stakeNftId] = newStakeAmount;
550
+ _rewardBalance[stakeNftId] = newRewardAmount;
551
+
552
+ _lastUpdatedAt[stakeNftId] = TimestampLib.blockTimestamp();
553
+ _lastUpdatedIn[stakeNftId] = BlocknumberLib.currentBlocknumber();
554
+ }
555
+
556
+
557
+ function _updateTargetBalance(
558
+ NftId targetNftId,
559
+ Amount newStakeAmount,
560
+ Amount newRewardAmount
561
+ )
562
+ private
563
+ {
564
+ _stakeBalance[targetNftId] = newStakeAmount;
565
+ _rewardBalance[targetNftId] = newRewardAmount;
566
+
567
+ // for targets we don't need the timestamp, just the blocknumber
568
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
569
+ }
570
+
571
+ function _checkBalanceExists(NftId nftId)
572
+ private
573
+ view
574
+ returns (Blocknumber lastUpdatedIn)
575
+ {
576
+ lastUpdatedIn = _lastUpdatedIn[nftId];
577
+
578
+ if (lastUpdatedIn.eqz()) {
579
+ revert ErrorStakingStoreBalanceNotInitialized(nftId);
580
+ }
581
+ }
582
+
583
+
584
+ function _getAndVerifyTvl(
585
+ NftId targetNftId,
586
+ address token
587
+ )
588
+ private
589
+ view
590
+ returns (
591
+ Blocknumber tvlLastUpdatedIn,
592
+ Amount oldBalance,
593
+ Amount oldDipBalance
594
+ )
595
+ {
596
+ tvlLastUpdatedIn = _tvlLastUpdatedIn[targetNftId];
597
+
598
+ if (tvlLastUpdatedIn.eqz()) {
599
+ revert ErrorStakingStoreTvlBalanceNotInitialized(targetNftId);
600
+ }
601
+
602
+ oldBalance = _tvlBalance[targetNftId][token];
603
+ oldDipBalance = _tvlInDip[targetNftId][token];
604
+ }
605
+ }