@etherisc/gif-next 0.0.2-7acbd99-227 → 0.0.2-7b09b39-121

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 (736) hide show
  1. package/README.md +224 -17
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -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 +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1518 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1196 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +945 -0
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +344 -1864
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +499 -2174
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1693 -0
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  70. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  71. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  72. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  78. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  79. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  80. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  82. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  84. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  86. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  88. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  90. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
  92. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  94. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  96. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1432 -0
  98. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  100. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1521 -0
  102. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  104. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +938 -0
  106. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +946 -0
  108. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1213 -0
  110. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  112. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1700 -0
  114. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +798 -0
  116. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  117. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
  118. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  120. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  121. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1280 -0
  122. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  124. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  125. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1339 -0
  126. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  128. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +204 -361
  130. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  132. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +816 -0
  134. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +320 -255
  136. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  137. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  138. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +187 -176
  140. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1335 -0
  142. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
  144. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  146. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  148. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  149. package/artifacts/contracts/product/Product.sol/Product.json +1238 -0
  150. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  152. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  154. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  155. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +411 -59
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +457 -185
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +579 -143
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +863 -272
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  179. package/artifacts/contracts/shared/Component.sol/Component.json +858 -0
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +298 -152
  186. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  188. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  190. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  192. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  194. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  196. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  200. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +65 -8
  202. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  204. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  205. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +155 -153
  206. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  208. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +102 -165
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  216. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  217. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  218. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  219. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  220. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  221. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +205 -12
  224. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  225. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  226. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +242 -191
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +197 -0
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  236. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  253. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  290. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  302. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  304. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  306. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  307. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  308. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  310. package/contracts/authorization/AccessAdmin.sol +591 -0
  311. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  312. package/contracts/authorization/Authorization.sol +218 -0
  313. package/contracts/authorization/IAccess.sol +48 -0
  314. package/contracts/authorization/IAccessAdmin.sol +136 -0
  315. package/contracts/authorization/IAuthorization.sol +54 -0
  316. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  317. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  318. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  319. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  320. package/contracts/distribution/BasicDistribution.sol +138 -0
  321. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  322. package/contracts/distribution/Distribution.sol +295 -0
  323. package/contracts/distribution/DistributionService.sol +336 -0
  324. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  325. package/contracts/distribution/IDistributionComponent.sol +52 -0
  326. package/contracts/distribution/IDistributionService.sol +97 -0
  327. package/contracts/instance/BundleSet.sol +126 -0
  328. package/contracts/instance/IInstance.sol +78 -46
  329. package/contracts/instance/IInstanceService.sol +92 -0
  330. package/contracts/instance/Instance.sol +237 -68
  331. package/contracts/instance/InstanceAdmin.sol +266 -0
  332. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  333. package/contracts/instance/InstanceReader.sol +408 -0
  334. package/contracts/instance/InstanceService.sol +443 -0
  335. package/contracts/instance/InstanceServiceManager.sol +40 -0
  336. package/contracts/instance/InstanceStore.sol +277 -0
  337. package/contracts/instance/base/BalanceStore.sol +123 -0
  338. package/contracts/instance/base/Cloneable.sol +28 -0
  339. package/contracts/instance/base/ObjectCounter.sol +21 -0
  340. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  341. package/contracts/instance/base/ObjectSet.sol +79 -0
  342. package/contracts/instance/module/IAccess.sol +46 -0
  343. package/contracts/instance/module/IBundle.sol +20 -0
  344. package/contracts/instance/module/IComponents.sol +46 -0
  345. package/contracts/instance/module/IDistribution.sol +41 -0
  346. package/contracts/instance/module/IPolicy.sol +84 -0
  347. package/contracts/instance/module/IRisk.sol +11 -0
  348. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  349. package/contracts/oracle/BasicOracle.sol +48 -0
  350. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  351. package/contracts/oracle/IOracle.sol +36 -0
  352. package/contracts/oracle/IOracleComponent.sol +33 -0
  353. package/contracts/oracle/IOracleService.sol +65 -0
  354. package/contracts/oracle/Oracle.sol +166 -0
  355. package/contracts/oracle/OracleService.sol +278 -0
  356. package/contracts/oracle/OracleServiceManager.sol +39 -0
  357. package/contracts/pool/BasicPool.sol +166 -0
  358. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  359. package/contracts/pool/BundleService.sol +450 -0
  360. package/contracts/pool/BundleServiceManager.sol +39 -0
  361. package/contracts/pool/IBundleService.sol +135 -0
  362. package/contracts/pool/IPoolComponent.sol +58 -0
  363. package/contracts/pool/IPoolService.sol +149 -0
  364. package/contracts/pool/Pool.sol +328 -0
  365. package/contracts/pool/PoolService.sol +559 -0
  366. package/contracts/pool/PoolServiceManager.sol +39 -0
  367. package/contracts/product/ApplicationService.sol +250 -0
  368. package/contracts/product/ApplicationServiceManager.sol +38 -0
  369. package/contracts/product/BasicProduct.sol +52 -0
  370. package/contracts/product/BasicProductAuthorization.sol +43 -0
  371. package/contracts/product/ClaimService.sol +424 -0
  372. package/contracts/product/ClaimServiceManager.sol +38 -0
  373. package/contracts/product/IApplicationService.sol +63 -0
  374. package/contracts/product/IClaimService.sol +100 -0
  375. package/contracts/product/IPolicyService.sol +85 -0
  376. package/contracts/product/IPricingService.sol +39 -0
  377. package/contracts/product/IProductComponent.sol +40 -0
  378. package/contracts/product/IProductService.sol +33 -0
  379. package/contracts/product/PolicyService.sol +556 -0
  380. package/contracts/product/PolicyServiceManager.sol +39 -0
  381. package/contracts/product/PricingService.sol +304 -0
  382. package/contracts/product/PricingServiceManager.sol +39 -0
  383. package/contracts/product/Product.sol +413 -0
  384. package/contracts/product/ProductService.sol +99 -0
  385. package/contracts/product/ProductServiceManager.sol +39 -0
  386. package/contracts/registry/ChainNft.sol +55 -25
  387. package/contracts/registry/IRegistry.sol +101 -40
  388. package/contracts/registry/IRegistryService.sol +56 -16
  389. package/contracts/registry/ITransferInterceptor.sol +1 -0
  390. package/contracts/registry/Registry.sol +408 -330
  391. package/contracts/registry/RegistryAdmin.sol +365 -0
  392. package/contracts/registry/RegistryService.sol +150 -281
  393. package/contracts/registry/RegistryServiceManager.sol +53 -0
  394. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  395. package/contracts/registry/ReleaseRegistry.sol +485 -0
  396. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  397. package/contracts/registry/TokenRegistry.sol +315 -0
  398. package/contracts/shared/Component.sol +281 -0
  399. package/contracts/shared/ComponentService.sol +650 -0
  400. package/contracts/shared/ComponentServiceManager.sol +35 -0
  401. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  402. package/contracts/shared/IComponent.sol +71 -0
  403. package/contracts/shared/IComponentService.sol +108 -0
  404. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  405. package/contracts/shared/IKeyValueStore.sol +54 -0
  406. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -5
  407. package/contracts/shared/INftOwnable.sol +23 -0
  408. package/contracts/shared/IPolicyHolder.sol +45 -0
  409. package/contracts/shared/IRegisterable.sol +5 -12
  410. package/contracts/shared/IRegistryLinked.sol +11 -0
  411. package/contracts/shared/IService.sol +25 -0
  412. package/contracts/shared/InitializableCustom.sol +177 -0
  413. package/contracts/shared/InitializableERC165.sol +27 -0
  414. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  415. package/contracts/shared/KeyValueStore.sol +131 -0
  416. package/contracts/shared/Lifecycle.sol +77 -0
  417. package/contracts/shared/NftIdSet.sol +65 -0
  418. package/contracts/shared/NftOwnable.sol +107 -0
  419. package/contracts/shared/PolicyHolder.sol +99 -0
  420. package/contracts/shared/Registerable.sol +33 -75
  421. package/contracts/shared/RegistryLinked.sol +43 -0
  422. package/contracts/shared/Service.sol +82 -0
  423. package/contracts/shared/TokenHandler.sol +62 -0
  424. package/contracts/staking/IStaking.sol +167 -0
  425. package/contracts/staking/IStakingService.sol +160 -0
  426. package/contracts/staking/StakeManagerLib.sol +231 -0
  427. package/contracts/staking/Staking.sol +516 -0
  428. package/contracts/staking/StakingLifecycle.sol +23 -0
  429. package/contracts/staking/StakingManager.sol +50 -0
  430. package/contracts/staking/StakingReader.sol +183 -0
  431. package/contracts/staking/StakingService.sol +407 -0
  432. package/contracts/staking/StakingServiceManager.sol +44 -0
  433. package/contracts/staking/StakingStore.sol +605 -0
  434. package/contracts/staking/TargetManagerLib.sol +207 -0
  435. package/contracts/{types → type}/AddressSet.sol +1 -1
  436. package/contracts/type/Amount.sol +135 -0
  437. package/contracts/{types → type}/Blocknumber.sol +27 -3
  438. package/contracts/type/ClaimId.sol +75 -0
  439. package/contracts/type/DistributorType.sol +55 -0
  440. package/contracts/type/Fee.sol +66 -0
  441. package/contracts/{types → type}/Key32.sol +8 -3
  442. package/contracts/{types → type}/NftId.sol +21 -15
  443. package/contracts/type/NftIdSet.sol +62 -0
  444. package/contracts/type/ObjectType.sol +271 -0
  445. package/contracts/type/PayoutId.sol +82 -0
  446. package/contracts/type/Referral.sol +90 -0
  447. package/contracts/type/RequestId.sol +75 -0
  448. package/contracts/{types → type}/RiskId.sol +1 -1
  449. package/contracts/type/RoleId.sol +174 -0
  450. package/contracts/type/Seconds.sol +93 -0
  451. package/contracts/type/Selector.sol +102 -0
  452. package/contracts/{types → type}/StateId.sol +39 -5
  453. package/contracts/type/String.sol +53 -0
  454. package/contracts/{types → type}/Timestamp.sol +38 -15
  455. package/contracts/type/UFixed.sol +351 -0
  456. package/contracts/{types → type}/Version.sol +8 -2
  457. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  458. package/contracts/upgradeability/ProxyManager.sol +198 -0
  459. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  460. package/contracts/upgradeability/Versionable.sol +59 -0
  461. package/package.json +11 -7
  462. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  463. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  464. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  465. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  466. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  467. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  468. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  469. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
  470. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  471. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
  472. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  473. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
  474. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  475. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  476. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  477. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  478. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  480. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  482. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  484. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  486. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  488. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  490. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  492. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  494. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  496. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  497. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  498. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  499. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  500. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  501. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  503. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  505. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  507. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  509. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  511. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  512. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  513. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  514. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  515. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  516. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  518. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  519. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  520. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  521. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  522. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  523. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  524. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  526. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -380
  527. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  529. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  531. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  532. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  533. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  534. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  535. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  536. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  537. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  539. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  541. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  542. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  543. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  544. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  547. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  550. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  552. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  554. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  556. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  558. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  559. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  561. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  562. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  563. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  565. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  567. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  569. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  570. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  571. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  573. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  575. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  578. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  584. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  585. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  586. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  587. package/artifacts/contracts/registry/Registry.sol/RegistryCreationCode.dbg.json +0 -4
  588. package/artifacts/contracts/registry/Registry.sol/RegistryCreationCode.json +0 -150
  589. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
  590. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
  591. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  593. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  594. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  595. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  596. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  597. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  598. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -310
  599. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  600. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  601. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  602. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  603. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  605. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  607. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  609. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  611. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  613. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  615. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  617. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  619. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  621. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  623. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  624. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  625. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  626. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  627. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  629. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  631. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  633. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  635. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  637. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  638. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  639. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  641. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  643. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  645. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  647. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  650. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  652. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  654. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  656. package/contracts/components/BaseComponent.sol +0 -79
  657. package/contracts/components/Distribution.sol +0 -155
  658. package/contracts/components/IBaseComponent.sol +0 -19
  659. package/contracts/components/IDistributionComponent.sol +0 -47
  660. package/contracts/components/IPoolComponent.sol +0 -65
  661. package/contracts/components/IProductComponent.sol +0 -39
  662. package/contracts/components/Pool.sol +0 -246
  663. package/contracts/components/Product.sol +0 -299
  664. package/contracts/experiment/errors/Require.sol +0 -38
  665. package/contracts/experiment/errors/Revert.sol +0 -44
  666. package/contracts/experiment/inheritance/A.sol +0 -53
  667. package/contracts/experiment/inheritance/B.sol +0 -28
  668. package/contracts/experiment/inheritance/C.sol +0 -34
  669. package/contracts/experiment/inheritance/IA.sol +0 -13
  670. package/contracts/experiment/inheritance/IB.sol +0 -10
  671. package/contracts/experiment/inheritance/IC.sol +0 -12
  672. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  673. package/contracts/experiment/statemachine/ISM.sol +0 -25
  674. package/contracts/experiment/statemachine/SM.sol +0 -57
  675. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  676. package/contracts/experiment/types/TypeA.sol +0 -47
  677. package/contracts/experiment/types/TypeB.sol +0 -29
  678. package/contracts/instance/IInstanceLinked.sol +0 -8
  679. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  680. package/contracts/instance/base/IInstanceBase.sol +0 -23
  681. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  682. package/contracts/instance/base/IService.sol +0 -15
  683. package/contracts/instance/base/InstanceBase.sol +0 -89
  684. package/contracts/instance/base/KeyValueStore.sol +0 -161
  685. package/contracts/instance/base/Lifecycle.sol +0 -100
  686. package/contracts/instance/base/ModuleBase.sol +0 -57
  687. package/contracts/instance/base/ServiceBase.sol +0 -43
  688. package/contracts/instance/module/access/Access.sol +0 -149
  689. package/contracts/instance/module/access/IAccess.sol +0 -53
  690. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  691. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  692. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  693. package/contracts/instance/module/component/IComponent.sol +0 -28
  694. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  695. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  696. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  697. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  698. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  699. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  700. package/contracts/instance/module/risk/IRisk.sol +0 -26
  701. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  702. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  703. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  704. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  705. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  706. package/contracts/instance/service/DistributionService.sol +0 -54
  707. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  708. package/contracts/instance/service/IDistributionService.sol +0 -12
  709. package/contracts/instance/service/IPoolService.sol +0 -37
  710. package/contracts/instance/service/IProductService.sol +0 -107
  711. package/contracts/instance/service/PoolService.sol +0 -149
  712. package/contracts/instance/service/ProductService.sol +0 -509
  713. package/contracts/registry/IChainNft.sol +0 -22
  714. package/contracts/registry/IRegistryLinked.sol +0 -8
  715. package/contracts/registry/RegistryInstaller.sol +0 -100
  716. package/contracts/shared/ERC165.sol +0 -21
  717. package/contracts/shared/IOwnable.sol +0 -6
  718. package/contracts/shared/ProxyManager.sol +0 -115
  719. package/contracts/shared/Versionable.sol +0 -147
  720. package/contracts/test/TestDistribution.sol +0 -22
  721. package/contracts/test/TestFee.sol +0 -25
  722. package/contracts/test/TestPool.sol +0 -27
  723. package/contracts/test/TestProduct.sol +0 -74
  724. package/contracts/test/TestRegisterable.sol +0 -18
  725. package/contracts/test/TestRoleId.sol +0 -14
  726. package/contracts/test/TestService.sol +0 -26
  727. package/contracts/test/TestVersion.sol +0 -44
  728. package/contracts/test/TestVersionable.sol +0 -17
  729. package/contracts/test/Usdc.sol +0 -26
  730. package/contracts/types/ChainId.sol +0 -38
  731. package/contracts/types/Fee.sol +0 -56
  732. package/contracts/types/NftIdSet.sol +0 -60
  733. package/contracts/types/ObjectType.sol +0 -131
  734. package/contracts/types/ReferralId.sol +0 -48
  735. package/contracts/types/RoleId.sol +0 -38
  736. package/contracts/types/UFixed.sol +0 -209
@@ -0,0 +1,183 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
6
+ import {IStaking} from "../staking/IStaking.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {Blocknumber} from "../type/Blocknumber.sol";
10
+ import {InitializableCustom} from "../shared/InitializableCustom.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
13
+ import {StakingStore} from "./StakingStore.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
15
+ import {UFixed} from "../type/UFixed.sol";
16
+
17
+ contract StakingReader is
18
+ IRegistryLinked,
19
+ InitializableCustom
20
+ {
21
+
22
+ error ErrorStakingReaderDependenciesAlreadySet();
23
+
24
+ IRegistry private _registry;
25
+ IStaking private _staking;
26
+ StakingStore private _store;
27
+
28
+ constructor(IRegistry registry) InitializableCustom() {
29
+ _registry = registry;
30
+ }
31
+
32
+ function initialize(
33
+ address stakingAddress,
34
+ address stakingStoreAddress
35
+ )
36
+ external
37
+ initializer
38
+ {
39
+ _staking = IStaking(stakingAddress);
40
+ _store = StakingStore(stakingStoreAddress);
41
+ }
42
+
43
+ // view and pure functions
44
+
45
+ function getRegistry() external view returns (IRegistry registry) {
46
+ return _registry;
47
+ }
48
+
49
+ function getStaking() external view returns (IStaking staking) {
50
+ return _staking;
51
+ }
52
+
53
+ function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
54
+ return _store.getStakingRate(chainId, token);
55
+ }
56
+
57
+
58
+ function isTarget(NftId targetNftId) external view returns (bool) {
59
+ return _store.getTargetNftIdSet().exists(targetNftId);
60
+ }
61
+
62
+
63
+ function targets() external view returns (uint256) {
64
+ return _store.getTargetNftIdSet().nftIds();
65
+ }
66
+
67
+
68
+ function getTargetNftId(uint256 idx) external view returns (NftId) {
69
+ return _store.getTargetNftIdSet().getNftId(idx);
70
+ }
71
+
72
+
73
+ function isActive(NftId targetNftId) external view returns (bool) {
74
+ return _store.getTargetNftIdSet().isActive(targetNftId);
75
+ }
76
+
77
+
78
+ function activeTargets() external view returns (uint256) {
79
+ return _store.getTargetNftIdSet().activeNftIds();
80
+ }
81
+
82
+
83
+ function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
84
+ return _store.getTargetNftIdSet().getActiveNftId(idx);
85
+ }
86
+
87
+
88
+ function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
89
+ return _registry.getObjectInfo(stakeNftId).parentNftId;
90
+ }
91
+
92
+
93
+ function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
94
+ bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
95
+ if (data.length > 0) {
96
+ return abi.decode(data, (IStaking.TargetInfo));
97
+ }
98
+ }
99
+
100
+
101
+ function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
102
+ bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
103
+ if (data.length > 0) {
104
+ return abi.decode(data, (IStaking.StakeInfo));
105
+ }
106
+ }
107
+
108
+
109
+ /// @dev get the reward rate that applies to the specified stake nft id.
110
+ function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
111
+ targetNftId = getTargetNftId(stakeNftId);
112
+ rewardRate = getTargetInfo(targetNftId).rewardRate;
113
+ }
114
+
115
+
116
+ /// @dev get the reward rate for the specified target nft id.
117
+ function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
118
+ return getTargetInfo(targetNftId).rewardRate;
119
+ }
120
+
121
+ /// @dev returns the current reward reserve balance for the specified target.
122
+ function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
123
+ return _store.getReserveBalance(targetNftId);
124
+ }
125
+
126
+ function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
127
+ return _store.getStakeBalance(nftId);
128
+ }
129
+
130
+ function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
131
+ return _store.getRewardBalance(nftId);
132
+ }
133
+
134
+ function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
135
+ return _store.getBalanceUpdatedAt(nftId);
136
+ }
137
+
138
+ function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) {
139
+ return _store.getBalanceUpdatedIn(nftId);
140
+ }
141
+
142
+ function getTotalValueLocked(NftId nftId, address token) external view returns (Amount totalValueLocked) {
143
+ return _store.getTotalValueLocked(nftId, token);
144
+ }
145
+
146
+ function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredStakedAmount) {
147
+ return _store.getRequiredStakeBalance(nftId);
148
+ }
149
+
150
+ function getTargetBalances(NftId stakeNftId)
151
+ public
152
+ view
153
+ returns (
154
+ Amount balanceAmount,
155
+ Amount stakeAmount,
156
+ Amount rewardAmount,
157
+ Blocknumber lastUpdatedIn
158
+ )
159
+ {
160
+ (
161
+ balanceAmount,
162
+ stakeAmount,
163
+ rewardAmount,
164
+ lastUpdatedIn
165
+ ) = _store.getTargetBalances(stakeNftId);
166
+ }
167
+
168
+ function getStakeBalances(NftId stakeNftId)
169
+ external
170
+ view
171
+ returns (
172
+ Amount stakeAmount,
173
+ Amount rewardAmount,
174
+ Timestamp lastUpdatedAt
175
+ )
176
+ {
177
+ (
178
+ stakeAmount,
179
+ rewardAmount,
180
+ lastUpdatedAt
181
+ ) = _store.getStakeBalances(stakeNftId);
182
+ }
183
+ }
@@ -0,0 +1,407 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {ChainNft} from "../registry/ChainNft.sol";
8
+ import {IPoolService} from "../pool/IPoolService.sol";
9
+ import {IRegisterable} from "../shared/IRegisterable.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {RegistryService} from "../registry/RegistryService.sol";
12
+ import {IStaking} from "./IStaking.sol";
13
+ import {IStakingService} from "./IStakingService.sol";
14
+ import {NftId, NftIdLib} from "../type/NftId.sol";
15
+ import {ObjectType, INSTANCE, PROTOCOL, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
17
+ import {Service} from "../shared/Service.sol";
18
+ import {StakeManagerLib} from "./StakeManagerLib.sol";
19
+ import {StakingReader} from "./StakingReader.sol";
20
+ import {TargetManagerLib} from "./TargetManagerLib.sol";
21
+ import {Timestamp} from "../type/Timestamp.sol";
22
+ import {TokenHandler} from "../shared/TokenHandler.sol";
23
+ import {UFixed} from "../type/UFixed.sol";
24
+
25
+
26
+ contract StakingService is
27
+ Service,
28
+ IStakingService
29
+ {
30
+ // TODO decide and implement string spec for location calculation
31
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.StakingService.sol")) - 1)) & ~bytes32(uint256(0xff));
32
+ bytes32 public constant STAKING_SERVICE_LOCATION_V1 = 0x6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300;
33
+
34
+ struct StakingServiceStorage {
35
+ RegistryService _registryService;
36
+ IStaking _staking;
37
+ IERC20Metadata _dip;
38
+ TokenHandler _tokenHandler;
39
+ }
40
+
41
+ modifier onlyNftOwner(NftId nftId) {
42
+ if(msg.sender != getRegistry().ownerOf(nftId)) {
43
+ revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
44
+ }
45
+ _;
46
+ }
47
+
48
+
49
+ function createInstanceTarget(
50
+ NftId targetNftId,
51
+ Seconds initialLockingPeriod,
52
+ UFixed initialRewardRate
53
+ )
54
+ external
55
+ virtual
56
+ restricted()
57
+ {
58
+ uint256 chainId = block.chainid;
59
+ _getStakingServiceStorage()._staking.registerTarget(
60
+ targetNftId,
61
+ INSTANCE(),
62
+ chainId,
63
+ initialLockingPeriod,
64
+ initialRewardRate);
65
+
66
+ emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
67
+ }
68
+
69
+
70
+ function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
71
+ external
72
+ virtual
73
+ restricted()
74
+ {
75
+ _getStakingServiceStorage()._staking.setLockingPeriod(
76
+ instanceNftId,
77
+ lockingPeriod);
78
+ }
79
+
80
+
81
+ function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
82
+ external
83
+ virtual
84
+ restricted()
85
+ {
86
+ _getStakingServiceStorage()._staking.setRewardRate(
87
+ instanceNftId,
88
+ rewardRate);
89
+ }
90
+
91
+
92
+ function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
93
+ external
94
+ virtual
95
+ restricted()
96
+ returns (Amount newBalance)
97
+ {
98
+ return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
99
+ }
100
+
101
+
102
+ function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount)
103
+ external
104
+ virtual
105
+ restricted()
106
+ returns (Amount newBalance)
107
+ {
108
+ address rewardProvider = msg.sender;
109
+ return _refillRewardReserves(targetNftId, rewardProvider, dipAmount);
110
+ }
111
+
112
+
113
+ function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
114
+ external
115
+ virtual
116
+ restricted()
117
+ returns (Amount newBalance)
118
+ {
119
+ // update reward reserve book keeping
120
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
121
+ newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
122
+
123
+ // transfer withdrawal amount to target owner
124
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
125
+ emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
126
+ $._staking.transferDipAmount(
127
+ instanceOwner,
128
+ dipAmount);
129
+ }
130
+
131
+
132
+ /// @dev creates a new stake to the specified target nft id with the provided dip amount
133
+ /// the target nft id must have been registered as an active staking target prior to this call
134
+ /// the sender of this transaction becomes the stake owner via the minted nft.
135
+ /// to create the new stake balance and allowance of the staker need to cover the dip amount
136
+ /// the allowance needs to be on the token handler of the staking contract (getTokenHandler())
137
+ /// this is a permissionless function.
138
+ function create(
139
+ NftId targetNftId,
140
+ Amount dipAmount
141
+ )
142
+ external
143
+ virtual
144
+ restricted()
145
+ returns (
146
+ NftId stakeNftId
147
+ )
148
+ {
149
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
150
+ address stakeOwner = msg.sender;
151
+
152
+ // target nft id checks are performed in $._staking.createStake() below
153
+ // register new stake object with registry
154
+ stakeNftId = $._registryService.registerStake(
155
+ IRegistry.ObjectInfo({
156
+ nftId: NftIdLib.zero(),
157
+ parentNftId: targetNftId,
158
+ objectType: STAKE(),
159
+ isInterceptor: false,
160
+ objectAddress: address(0),
161
+ initialOwner: stakeOwner,
162
+ data: ""
163
+ }));
164
+
165
+ // create stake info with staking
166
+ $._staking.createStake(
167
+ stakeNftId,
168
+ targetNftId,
169
+ dipAmount);
170
+
171
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
172
+
173
+ // collect staked dip by staking
174
+ $._staking.collectDipAmount(
175
+ stakeOwner,
176
+ dipAmount);
177
+ }
178
+
179
+
180
+ function stake(
181
+ NftId stakeNftId,
182
+ Amount dipAmount
183
+ )
184
+ external
185
+ virtual
186
+ restricted()
187
+ onlyNftOwner(stakeNftId)
188
+ {
189
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
190
+ address stakeOwner = msg.sender;
191
+
192
+ // add additional staked dips by staking
193
+ Amount stakeBalance = $._staking.stake(
194
+ stakeNftId,
195
+ dipAmount);
196
+
197
+ // collect staked dip by staking
198
+ if (dipAmount.gtz()) {
199
+ emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
200
+ $._staking.collectDipAmount(
201
+ stakeOwner,
202
+ dipAmount);
203
+ }
204
+ }
205
+
206
+
207
+ function restakeToNewTarget(
208
+ NftId stakeNftId,
209
+ NftId newTargetNftId
210
+ )
211
+ external
212
+ virtual
213
+ restricted()
214
+ onlyNftOwner(stakeNftId)
215
+ returns (
216
+ NftId newStakeNftId
217
+ )
218
+ {
219
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
220
+ // TODO implement
221
+ }
222
+
223
+
224
+ function updateRewards(
225
+ NftId stakeNftId
226
+ )
227
+ external
228
+ virtual
229
+ restricted()
230
+ {
231
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
232
+ $._staking.updateRewards(stakeNftId);
233
+
234
+ emit LogStakingServiceRewardsUpdated(stakeNftId);
235
+ }
236
+
237
+
238
+ function claimRewards(NftId stakeNftId)
239
+ external
240
+ virtual
241
+ restricted()
242
+ onlyNftOwner(stakeNftId)
243
+ {
244
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
245
+ address stakeOwner = msg.sender;
246
+
247
+ Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
248
+ emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
249
+ $._staking.transferDipAmount(
250
+ stakeOwner,
251
+ rewardsClaimedAmount);
252
+ }
253
+
254
+
255
+ function unstake(NftId stakeNftId)
256
+ external
257
+ virtual
258
+ restricted()
259
+ onlyNftOwner(stakeNftId)
260
+ {
261
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
262
+ address stakeOwner = msg.sender;
263
+
264
+ (
265
+ Amount unstakedAmount,
266
+ Amount rewardsClaimedAmount
267
+ ) = $._staking.unstake(stakeNftId);
268
+
269
+ Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
270
+ emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
271
+ $._staking.transferDipAmount(
272
+ stakeOwner,
273
+ totalAmount);
274
+ }
275
+
276
+
277
+ function setTotalValueLocked(
278
+ NftId targetNftId,
279
+ address token,
280
+ Amount amount
281
+ )
282
+ external
283
+ virtual
284
+ restricted()
285
+ {
286
+ // TODO implement
287
+
288
+ }
289
+
290
+ //--- view functions ----------------------------------------------------//
291
+
292
+ function getDipToken()
293
+ external
294
+ virtual
295
+ returns (IERC20Metadata dip)
296
+ {
297
+ return _getStakingServiceStorage()._dip;
298
+ }
299
+
300
+
301
+ function getTokenHandler()
302
+ external
303
+ virtual
304
+ returns (TokenHandler tokenHandler)
305
+ {
306
+ return _getStakingServiceStorage()._tokenHandler;
307
+ }
308
+
309
+
310
+ function getStaking()
311
+ external
312
+ virtual
313
+ returns (IStaking staking)
314
+ {
315
+ return _getStakingServiceStorage()._staking;
316
+ }
317
+
318
+ //--- internal functions ------------------------------------------------//
319
+
320
+ function _initialize(
321
+ address owner,
322
+ bytes memory data
323
+ )
324
+ internal
325
+ virtual override
326
+ initializer()
327
+ {
328
+ (
329
+ address authority,
330
+ address registryAddress,
331
+ address stakingAddress
332
+ ) = abi.decode(data, (address, address, address));
333
+
334
+ initializeService(registryAddress, authority, owner);
335
+
336
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
337
+ $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
338
+ $._staking = _registerStaking(stakingAddress);
339
+ $._dip = $._staking.getToken();
340
+ $._tokenHandler = $._staking.getTokenHandler();
341
+
342
+ registerInterface(type(IStakingService).interfaceId);
343
+ }
344
+
345
+
346
+ function _registerStaking(
347
+ address stakingAddress
348
+ )
349
+ internal
350
+ returns (IStaking staking)
351
+ {
352
+ // check if provided staking contract is already registred
353
+ // staking contract may have been already registered by a previous major relase
354
+ IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
355
+ if (stakingInfo.nftId.gtz()) {
356
+ // registered object but wrong type
357
+ if (stakingInfo.objectType != STAKING()) {
358
+ revert ErrorStakingServiceNotStaking(stakingAddress);
359
+ }
360
+
361
+ // return correctly registered staking contract
362
+ return IStaking(stakingAddress);
363
+ }
364
+
365
+ // check that contract implements IStaking
366
+ if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
367
+ revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
368
+ }
369
+
370
+ address owner = msg.sender;
371
+ _getStakingServiceStorage()._registryService.registerStaking(
372
+ IRegisterable(stakingAddress),
373
+ owner);
374
+
375
+ return IStaking(stakingAddress);
376
+ }
377
+
378
+
379
+ function _refillRewardReserves(NftId targetNftId, address rewardProvider, Amount dipAmount)
380
+ internal
381
+ virtual
382
+ returns (Amount newBalance)
383
+ {
384
+ // update reward reserve book keeping
385
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
386
+ newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
387
+
388
+ emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
389
+
390
+ // collect reward dip from provider
391
+ $._staking.collectDipAmount(
392
+ rewardProvider,
393
+ dipAmount);
394
+ }
395
+
396
+
397
+ function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
398
+ assembly {
399
+ $.slot := STAKING_SERVICE_LOCATION_V1
400
+ }
401
+ }
402
+
403
+
404
+ function _getDomain() internal pure override returns(ObjectType) {
405
+ return STAKING();
406
+ }
407
+ }
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
+ import {StakingService} from "./StakingService.sol";
8
+
9
+ contract StakingServiceManager is
10
+ ProxyManager
11
+ {
12
+
13
+ StakingService private _stakingService;
14
+
15
+ /// @dev initializes proxy manager with service implementation
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ StakingService svc = new StakingService();
24
+ bytes memory data = abi.encode(
25
+ authority,
26
+ registryAddress,
27
+ IRegistry(registryAddress).getStakingAddress());
28
+ IVersionable versionable = deployDetermenistic(
29
+ address(svc),
30
+ data,
31
+ salt);
32
+
33
+ _stakingService = StakingService(address(versionable));
34
+ }
35
+
36
+ //--- view functions ----------------------------------------------------//
37
+ function getStakingService()
38
+ external
39
+ view
40
+ returns (StakingService)
41
+ {
42
+ return _stakingService;
43
+ }
44
+ }