@etherisc/gif-next 0.0.2-719a8f1-103 → 0.0.2-71cf987-554

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 (764) hide show
  1. package/README.md +227 -17
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1304 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1325 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1055 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1455 -0
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  33. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  53. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +311 -1809
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +702 -0
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +466 -2208
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1710 -0
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2058 -0
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1003 -0
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +726 -0
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -0
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  74. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  76. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  78. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  80. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  83. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  84. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  86. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  87. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  92. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  93. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  94. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  95. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  96. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  98. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  100. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  104. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  120. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +960 -0
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
  126. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
  128. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  130. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
  132. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
  134. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
  136. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  138. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  140. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
  142. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
  144. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  145. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +223 -351
  146. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  148. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
  150. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  152. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1012 -0
  154. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → product/IRiskService.sol/IRiskService.json} +202 -153
  156. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
  158. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  160. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
  162. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
  164. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  165. package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
  166. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  168. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  170. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +103 -2
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +774 -165
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +539 -188
  176. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  178. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.json +967 -142
  180. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1799 -0
  182. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +580 -219
  184. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +365 -112
  186. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1696 -0
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1301 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  196. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Component.sol/Component.json +725 -0
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  202. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +223 -205
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  206. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  208. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  209. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  210. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  212. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  214. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  216. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +82 -52
  218. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  219. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  220. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +94 -8
  222. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  223. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  224. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  225. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +168 -182
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  229. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  230. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  231. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  232. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  234. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  236. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +101 -24
  238. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  239. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +174 -12
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  245. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +215 -166
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +469 -0
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  256. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  257. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  276. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  278. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  280. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  282. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  286. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  288. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  290. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  292. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  294. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  296. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  298. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  300. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  302. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  320. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  322. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  328. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  330. package/contracts/authorization/AccessAdmin.sol +601 -0
  331. package/contracts/authorization/AccessManagerCloneable.sol +80 -0
  332. package/contracts/authorization/Authorization.sol +289 -0
  333. package/contracts/authorization/IAccess.sol +49 -0
  334. package/contracts/authorization/IAccessAdmin.sol +136 -0
  335. package/contracts/authorization/IAuthorization.sol +60 -0
  336. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  337. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  338. package/contracts/distribution/BasicDistribution.sol +139 -0
  339. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  340. package/contracts/distribution/Distribution.sol +285 -0
  341. package/contracts/distribution/DistributionService.sol +355 -0
  342. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  343. package/contracts/distribution/IDistributionComponent.sol +52 -0
  344. package/contracts/distribution/IDistributionService.sol +101 -0
  345. package/contracts/examples/fire/DamageLevel.sol +59 -0
  346. package/contracts/examples/fire/FirePool.sol +73 -0
  347. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  348. package/contracts/examples/fire/FireProduct.sol +415 -0
  349. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  350. package/contracts/examples/fire/FireUSD.sol +26 -0
  351. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  352. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  353. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  354. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  355. package/contracts/instance/BundleSet.sol +126 -0
  356. package/contracts/instance/IInstance.sol +58 -46
  357. package/contracts/instance/IInstanceService.sol +72 -0
  358. package/contracts/instance/Instance.sol +217 -70
  359. package/contracts/instance/InstanceAdmin.sol +295 -0
  360. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  361. package/contracts/instance/InstanceReader.sol +495 -0
  362. package/contracts/instance/InstanceService.sol +412 -0
  363. package/contracts/instance/InstanceServiceManager.sol +39 -0
  364. package/contracts/instance/InstanceStore.sol +287 -0
  365. package/contracts/instance/base/BalanceStore.sol +123 -0
  366. package/contracts/instance/base/Cloneable.sol +28 -0
  367. package/contracts/instance/base/ObjectCounter.sol +21 -0
  368. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  369. package/contracts/instance/base/ObjectSet.sol +79 -0
  370. package/contracts/instance/module/IAccess.sol +46 -0
  371. package/contracts/instance/module/IBundle.sol +20 -0
  372. package/contracts/instance/module/IComponents.sol +51 -0
  373. package/contracts/instance/module/IDistribution.sol +41 -0
  374. package/contracts/instance/module/IPolicy.sol +84 -0
  375. package/contracts/instance/module/IRisk.sol +11 -0
  376. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  377. package/contracts/oracle/BasicOracle.sol +47 -0
  378. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  379. package/contracts/oracle/IOracle.sol +36 -0
  380. package/contracts/oracle/IOracleComponent.sol +33 -0
  381. package/contracts/oracle/IOracleService.sol +66 -0
  382. package/contracts/oracle/Oracle.sol +156 -0
  383. package/contracts/oracle/OracleService.sol +291 -0
  384. package/contracts/oracle/OracleServiceManager.sol +39 -0
  385. package/contracts/pool/BasicPool.sol +154 -0
  386. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  387. package/contracts/pool/BundleService.sol +493 -0
  388. package/contracts/pool/BundleServiceManager.sol +39 -0
  389. package/contracts/pool/IBundleService.sol +143 -0
  390. package/contracts/pool/IPoolComponent.sol +68 -0
  391. package/contracts/pool/IPoolService.sol +167 -0
  392. package/contracts/pool/Pool.sol +335 -0
  393. package/contracts/pool/PoolService.sol +544 -0
  394. package/contracts/pool/PoolServiceManager.sol +39 -0
  395. package/contracts/product/ApplicationService.sol +259 -0
  396. package/contracts/product/ApplicationServiceManager.sol +38 -0
  397. package/contracts/product/BasicProduct.sol +53 -0
  398. package/contracts/product/BasicProductAuthorization.sol +42 -0
  399. package/contracts/product/ClaimService.sol +612 -0
  400. package/contracts/product/ClaimServiceManager.sol +38 -0
  401. package/contracts/product/IApplicationService.sol +63 -0
  402. package/contracts/product/IClaimService.sol +123 -0
  403. package/contracts/product/IPolicyService.sol +80 -0
  404. package/contracts/product/IPricingService.sol +39 -0
  405. package/contracts/product/IProductComponent.sol +59 -0
  406. package/contracts/product/IRiskService.sol +33 -0
  407. package/contracts/product/PolicyService.sol +691 -0
  408. package/contracts/product/PolicyServiceManager.sol +39 -0
  409. package/contracts/product/PricingService.sol +300 -0
  410. package/contracts/product/PricingServiceManager.sol +39 -0
  411. package/contracts/product/Product.sol +455 -0
  412. package/contracts/product/RiskService.sol +96 -0
  413. package/contracts/product/RiskServiceManager.sol +39 -0
  414. package/contracts/registry/ChainNft.sol +95 -35
  415. package/contracts/registry/IRegistry.sol +139 -39
  416. package/contracts/registry/IRegistryService.sol +49 -16
  417. package/contracts/registry/ITransferInterceptor.sol +1 -1
  418. package/contracts/registry/Registry.sol +560 -333
  419. package/contracts/registry/RegistryAdmin.sol +333 -0
  420. package/contracts/registry/RegistryService.sol +144 -278
  421. package/contracts/registry/RegistryServiceManager.sol +28 -27
  422. package/contracts/registry/ReleaseAdmin.sol +248 -0
  423. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  424. package/contracts/registry/ReleaseRegistry.sol +505 -0
  425. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  426. package/contracts/registry/TokenRegistry.sol +315 -0
  427. package/contracts/shared/Component.sol +265 -0
  428. package/contracts/shared/ComponentService.sol +745 -0
  429. package/contracts/shared/ComponentServiceManager.sol +38 -0
  430. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  431. package/contracts/shared/ContractLib.sol +38 -0
  432. package/contracts/shared/IComponent.sol +74 -0
  433. package/contracts/shared/IComponentService.sol +120 -0
  434. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  435. package/contracts/shared/IKeyValueStore.sol +54 -0
  436. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  437. package/contracts/shared/INftOwnable.sol +25 -0
  438. package/contracts/shared/IPolicyHolder.sol +35 -0
  439. package/contracts/shared/IRegisterable.sol +16 -12
  440. package/contracts/shared/IRegistryLinked.sol +11 -0
  441. package/contracts/shared/IService.sol +25 -0
  442. package/contracts/shared/InitializableERC165.sol +27 -0
  443. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  444. package/contracts/shared/KeyValueStore.sol +131 -0
  445. package/contracts/shared/Lifecycle.sol +88 -0
  446. package/contracts/shared/NftIdSet.sol +65 -0
  447. package/contracts/shared/NftOwnable.sol +90 -50
  448. package/contracts/shared/PolicyHolder.sol +62 -0
  449. package/contracts/shared/Registerable.sol +38 -70
  450. package/contracts/shared/RegistryLinked.sol +44 -0
  451. package/contracts/shared/Service.sol +84 -0
  452. package/contracts/shared/TokenHandler.sol +139 -0
  453. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  454. package/contracts/staking/IStaking.sol +168 -0
  455. package/contracts/staking/IStakingService.sol +157 -0
  456. package/contracts/staking/StakeManagerLib.sol +224 -0
  457. package/contracts/staking/Staking.sol +497 -0
  458. package/contracts/staking/StakingLifecycle.sol +23 -0
  459. package/contracts/staking/StakingManager.sol +52 -0
  460. package/contracts/staking/StakingReader.sol +190 -0
  461. package/contracts/staking/StakingService.sol +407 -0
  462. package/contracts/staking/StakingServiceManager.sol +44 -0
  463. package/contracts/staking/StakingStore.sol +605 -0
  464. package/contracts/staking/TargetManagerLib.sol +211 -0
  465. package/contracts/{types → type}/AddressSet.sol +1 -1
  466. package/contracts/type/Amount.sol +150 -0
  467. package/contracts/{types → type}/Blocknumber.sol +27 -3
  468. package/contracts/type/ClaimId.sol +80 -0
  469. package/contracts/type/DistributorType.sol +55 -0
  470. package/contracts/type/Fee.sol +66 -0
  471. package/contracts/{types → type}/Key32.sol +8 -3
  472. package/contracts/{types → type}/NftId.sol +22 -15
  473. package/contracts/type/NftIdSet.sol +62 -0
  474. package/contracts/type/ObjectType.sol +276 -0
  475. package/contracts/type/PayoutId.sol +82 -0
  476. package/contracts/type/Referral.sol +90 -0
  477. package/contracts/type/RequestId.sol +75 -0
  478. package/contracts/{types → type}/RiskId.sol +16 -2
  479. package/contracts/type/RoleId.sol +165 -0
  480. package/contracts/type/Seconds.sol +101 -0
  481. package/contracts/type/Selector.sol +102 -0
  482. package/contracts/{types → type}/StateId.sol +53 -5
  483. package/contracts/type/String.sol +53 -0
  484. package/contracts/{types → type}/Timestamp.sol +38 -15
  485. package/contracts/type/UFixed.sol +355 -0
  486. package/contracts/{types → type}/Version.sol +8 -2
  487. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  488. package/contracts/upgradeability/ProxyManager.sol +232 -0
  489. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  490. package/contracts/upgradeability/Versionable.sol +59 -0
  491. package/package.json +12 -7
  492. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  494. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  495. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  496. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  497. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  498. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  499. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -177
  500. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  501. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -308
  502. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  503. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -207
  504. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  505. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  506. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  507. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  508. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  510. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  512. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  514. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  516. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  518. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  520. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  522. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  525. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  527. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  529. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  531. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  532. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  533. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  534. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  535. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  536. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  537. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  539. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  541. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  542. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  543. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  546. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -344
  550. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  553. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  555. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  559. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  562. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  564. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  567. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  570. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  572. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  573. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  574. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  575. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  576. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  577. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  578. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  579. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  580. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  581. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  582. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  583. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  584. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  585. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  586. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  587. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  588. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  589. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  590. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  591. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  592. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  593. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  594. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  595. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  597. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  598. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  599. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  600. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  601. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  602. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  603. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  604. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  605. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  608. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -484
  610. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  613. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  615. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  616. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  617. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  618. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  619. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  620. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  621. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  622. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  623. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  624. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  625. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  626. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -344
  627. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  628. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  629. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  630. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  631. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  632. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  633. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  634. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  635. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  636. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  637. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  638. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  639. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  640. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  641. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  643. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  645. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  647. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  649. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  651. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  652. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  653. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  654. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  655. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  657. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  659. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  661. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  663. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  665. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  666. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  667. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  669. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  671. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  673. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  675. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  677. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  679. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  681. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  683. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  685. package/contracts/components/BaseComponent.sol +0 -79
  686. package/contracts/components/Distribution.sol +0 -155
  687. package/contracts/components/IBaseComponent.sol +0 -19
  688. package/contracts/components/IDistributionComponent.sol +0 -46
  689. package/contracts/components/IPoolComponent.sol +0 -64
  690. package/contracts/components/IProductComponent.sol +0 -37
  691. package/contracts/components/Pool.sol +0 -246
  692. package/contracts/components/Product.sol +0 -299
  693. package/contracts/experiment/errors/Require.sol +0 -38
  694. package/contracts/experiment/errors/Revert.sol +0 -44
  695. package/contracts/experiment/inheritance/A.sol +0 -53
  696. package/contracts/experiment/inheritance/B.sol +0 -28
  697. package/contracts/experiment/inheritance/C.sol +0 -34
  698. package/contracts/experiment/inheritance/IA.sol +0 -13
  699. package/contracts/experiment/inheritance/IB.sol +0 -10
  700. package/contracts/experiment/inheritance/IC.sol +0 -12
  701. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  702. package/contracts/experiment/statemachine/ISM.sol +0 -25
  703. package/contracts/experiment/statemachine/SM.sol +0 -57
  704. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  705. package/contracts/experiment/types/TypeA.sol +0 -47
  706. package/contracts/experiment/types/TypeB.sol +0 -29
  707. package/contracts/instance/IInstanceLinked.sol +0 -8
  708. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  709. package/contracts/instance/base/IInstanceBase.sol +0 -23
  710. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  711. package/contracts/instance/base/IService.sol +0 -15
  712. package/contracts/instance/base/InstanceBase.sol +0 -89
  713. package/contracts/instance/base/KeyValueStore.sol +0 -161
  714. package/contracts/instance/base/Lifecycle.sol +0 -100
  715. package/contracts/instance/base/ModuleBase.sol +0 -57
  716. package/contracts/instance/base/ServiceBase.sol +0 -43
  717. package/contracts/instance/module/access/Access.sol +0 -149
  718. package/contracts/instance/module/access/IAccess.sol +0 -53
  719. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  720. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  721. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  722. package/contracts/instance/module/component/IComponent.sol +0 -28
  723. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  724. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  725. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  726. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  727. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  728. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  729. package/contracts/instance/module/risk/IRisk.sol +0 -26
  730. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  731. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  732. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  733. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  734. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  735. package/contracts/instance/service/DistributionService.sol +0 -54
  736. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  737. package/contracts/instance/service/IDistributionService.sol +0 -12
  738. package/contracts/instance/service/IPoolService.sol +0 -37
  739. package/contracts/instance/service/IProductService.sol +0 -107
  740. package/contracts/instance/service/PoolService.sol +0 -149
  741. package/contracts/instance/service/ProductService.sol +0 -510
  742. package/contracts/registry/IChainNft.sol +0 -22
  743. package/contracts/shared/ContractDeployerLib.sol +0 -72
  744. package/contracts/shared/ERC165.sol +0 -21
  745. package/contracts/shared/IOwnable.sol +0 -6
  746. package/contracts/shared/ProxyManager.sol +0 -103
  747. package/contracts/shared/Versionable.sol +0 -147
  748. package/contracts/test/TestDistribution.sol +0 -22
  749. package/contracts/test/TestFee.sol +0 -25
  750. package/contracts/test/TestPool.sol +0 -27
  751. package/contracts/test/TestProduct.sol +0 -74
  752. package/contracts/test/TestRegisterable.sol +0 -18
  753. package/contracts/test/TestRoleId.sol +0 -14
  754. package/contracts/test/TestService.sol +0 -26
  755. package/contracts/test/TestVersion.sol +0 -44
  756. package/contracts/test/TestVersionable.sol +0 -17
  757. package/contracts/test/Usdc.sol +0 -26
  758. package/contracts/types/ChainId.sol +0 -38
  759. package/contracts/types/Fee.sol +0 -56
  760. package/contracts/types/NftIdSet.sol +0 -60
  761. package/contracts/types/ObjectType.sol +0 -131
  762. package/contracts/types/ReferralId.sol +0 -48
  763. package/contracts/types/RoleId.sol +0 -38
  764. package/contracts/types/UFixed.sol +0 -209
@@ -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
+ }