@etherisc/gif-next 0.0.2-c96ba91-007 → 0.0.2-c96eaf8-757

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 (635) hide show
  1. package/README.md +54 -88
  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/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  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 +1526 -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/{components/Product.sol/Product.json → distribution/Distribution.sol/Distribution.json} +361 -322
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1502 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +842 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +282 -208
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +206 -305
  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 +272 -1967
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +269 -79
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2762
  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 +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +773 -359
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +352 -225
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -82
  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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  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 +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +10 -118
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1163 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +301 -256
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +298 -222
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1466 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +818 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +294 -302
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1182 -0
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1589 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → product/BasicProduct.sol/BasicProduct.json} +347 -386
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1331 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +179 -202
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +800 -0
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +146 -153
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +80 -64
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1300 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/product/Product.sol/Product.json +1238 -0
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +182 -28
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -149
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +443 -43
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -97
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -117
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1704 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +100 -113
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  181. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +180 -54
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  185. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +205 -198
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  190. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  192. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  194. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  196. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  198. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
  200. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  201. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  202. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  211. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  216. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  218. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  219. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  220. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  221. package/artifacts/contracts/shared/Service.sol/Service.json +103 -21
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  223. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +148 -13
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
  230. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  284. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  286. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  292. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  296. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  297. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  298. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  299. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  300. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  302. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  303. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  304. package/contracts/authorization/AccessAdmin.sol +591 -0
  305. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  306. package/contracts/authorization/Authorization.sol +218 -0
  307. package/contracts/authorization/IAccess.sol +48 -0
  308. package/contracts/authorization/IAccessAdmin.sol +136 -0
  309. package/contracts/authorization/IAuthorization.sol +54 -0
  310. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  311. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  312. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  313. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  314. package/contracts/distribution/BasicDistribution.sol +138 -0
  315. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  316. package/contracts/{components → distribution}/Distribution.sol +177 -162
  317. package/contracts/distribution/DistributionService.sol +322 -0
  318. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  319. package/contracts/distribution/IDistributionComponent.sol +52 -0
  320. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -38
  321. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  322. package/contracts/instance/IInstance.sol +55 -67
  323. package/contracts/instance/IInstanceService.sol +50 -30
  324. package/contracts/instance/Instance.sol +160 -233
  325. package/contracts/instance/InstanceAdmin.sol +266 -0
  326. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  327. package/contracts/instance/InstanceReader.sol +180 -62
  328. package/contracts/instance/InstanceService.sol +307 -335
  329. package/contracts/instance/InstanceServiceManager.sol +12 -26
  330. package/contracts/instance/InstanceStore.sol +277 -0
  331. package/contracts/instance/base/BalanceStore.sol +123 -0
  332. package/contracts/instance/base/Cloneable.sol +28 -0
  333. package/contracts/instance/base/ObjectCounter.sol +21 -0
  334. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  335. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  336. package/contracts/instance/module/IAccess.sol +5 -13
  337. package/contracts/instance/module/IBundle.sol +8 -9
  338. package/contracts/instance/module/IComponents.sol +20 -9
  339. package/contracts/instance/module/IDistribution.sol +6 -6
  340. package/contracts/instance/module/IPolicy.sol +29 -17
  341. package/contracts/instance/module/IRisk.sol +1 -1
  342. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  343. package/contracts/oracle/BasicOracle.sol +48 -0
  344. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  345. package/contracts/oracle/IOracle.sol +36 -0
  346. package/contracts/oracle/IOracleComponent.sol +33 -0
  347. package/contracts/oracle/IOracleService.sol +65 -0
  348. package/contracts/oracle/Oracle.sol +166 -0
  349. package/contracts/oracle/OracleService.sol +278 -0
  350. package/contracts/oracle/OracleServiceManager.sol +39 -0
  351. package/contracts/pool/BasicPool.sol +166 -0
  352. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  353. package/contracts/pool/BundleService.sol +436 -0
  354. package/contracts/pool/BundleServiceManager.sol +39 -0
  355. package/contracts/pool/IBundleService.sol +133 -0
  356. package/contracts/pool/IPoolComponent.sol +58 -0
  357. package/contracts/pool/IPoolService.sol +147 -0
  358. package/contracts/pool/Pool.sol +328 -0
  359. package/contracts/pool/PoolService.sol +518 -0
  360. package/contracts/pool/PoolServiceManager.sol +39 -0
  361. package/contracts/product/ApplicationService.sol +250 -0
  362. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  363. package/contracts/product/BasicProduct.sol +52 -0
  364. package/contracts/product/BasicProductAuthorization.sol +43 -0
  365. package/contracts/product/ClaimService.sol +416 -0
  366. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  367. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  368. package/contracts/product/IClaimService.sol +100 -0
  369. package/contracts/product/IPolicyService.sol +84 -0
  370. package/contracts/product/IPricingService.sol +39 -0
  371. package/contracts/product/IProductComponent.sol +40 -0
  372. package/contracts/product/IProductService.sol +34 -0
  373. package/contracts/product/PolicyService.sol +597 -0
  374. package/contracts/product/PolicyServiceManager.sol +39 -0
  375. package/contracts/product/PricingService.sol +304 -0
  376. package/contracts/product/PricingServiceManager.sol +39 -0
  377. package/contracts/product/Product.sol +413 -0
  378. package/contracts/product/ProductService.sol +99 -0
  379. package/contracts/product/ProductServiceManager.sol +39 -0
  380. package/contracts/registry/ChainNft.sol +8 -1
  381. package/contracts/registry/IRegistry.sol +59 -26
  382. package/contracts/registry/IRegistryService.sol +44 -42
  383. package/contracts/registry/Registry.sol +234 -125
  384. package/contracts/registry/RegistryAdmin.sol +365 -0
  385. package/contracts/registry/RegistryService.sol +70 -101
  386. package/contracts/registry/RegistryServiceManager.sol +23 -32
  387. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  388. package/contracts/registry/ReleaseRegistry.sol +485 -0
  389. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  390. package/contracts/registry/TokenRegistry.sol +261 -62
  391. package/contracts/shared/Component.sol +287 -0
  392. package/contracts/shared/ComponentService.sol +639 -0
  393. package/contracts/shared/ComponentServiceManager.sol +35 -0
  394. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  395. package/contracts/{components → shared}/IComponent.sol +27 -30
  396. package/contracts/shared/IComponentService.sol +108 -0
  397. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  398. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  399. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  400. package/contracts/shared/INftOwnable.sol +2 -2
  401. package/contracts/shared/IPolicyHolder.sol +29 -10
  402. package/contracts/shared/IRegistryLinked.sol +0 -1
  403. package/contracts/shared/IService.sol +15 -8
  404. package/contracts/shared/InitializableCustom.sol +177 -0
  405. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  406. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  407. package/contracts/shared/KeyValueStore.sol +131 -0
  408. package/contracts/shared/Lifecycle.sol +77 -0
  409. package/contracts/shared/NftIdSet.sol +65 -0
  410. package/contracts/shared/NftOwnable.sol +5 -18
  411. package/contracts/shared/PolicyHolder.sol +41 -23
  412. package/contracts/shared/Registerable.sol +13 -12
  413. package/contracts/shared/RegistryLinked.sol +0 -5
  414. package/contracts/shared/Service.sol +47 -23
  415. package/contracts/shared/TokenHandler.sol +54 -7
  416. package/contracts/staking/IStaking.sol +167 -0
  417. package/contracts/staking/IStakingService.sol +160 -0
  418. package/contracts/staking/StakeManagerLib.sol +206 -0
  419. package/contracts/staking/Staking.sol +496 -0
  420. package/contracts/staking/StakingLifecycle.sol +23 -0
  421. package/contracts/staking/StakingManager.sol +50 -0
  422. package/contracts/staking/StakingReader.sol +183 -0
  423. package/contracts/staking/StakingService.sol +407 -0
  424. package/contracts/staking/StakingServiceManager.sol +44 -0
  425. package/contracts/staking/StakingStore.sol +605 -0
  426. package/contracts/staking/TargetManagerLib.sol +207 -0
  427. package/contracts/{types → type}/AddressSet.sol +1 -1
  428. package/contracts/type/Amount.sol +135 -0
  429. package/contracts/{types → type}/Blocknumber.sol +26 -3
  430. package/contracts/{types → type}/ClaimId.sol +25 -2
  431. package/contracts/{types → type}/Fee.sol +33 -24
  432. package/contracts/{types → type}/NftId.sol +14 -16
  433. package/contracts/{types → type}/NftIdSet.sol +2 -2
  434. package/contracts/type/ObjectType.sol +271 -0
  435. package/contracts/{types → type}/PayoutId.sol +33 -5
  436. package/contracts/{types → type}/Referral.sol +2 -1
  437. package/contracts/type/RequestId.sol +75 -0
  438. package/contracts/{types → type}/RiskId.sol +1 -1
  439. package/contracts/type/RoleId.sol +174 -0
  440. package/contracts/{types → type}/Seconds.sol +40 -1
  441. package/contracts/type/Selector.sol +102 -0
  442. package/contracts/{types → type}/StateId.sol +33 -4
  443. package/contracts/type/String.sol +53 -0
  444. package/contracts/{types → type}/Timestamp.sol +21 -2
  445. package/contracts/{types → type}/UFixed.sol +34 -9
  446. package/contracts/{types → type}/Version.sol +4 -2
  447. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  448. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  449. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  450. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  451. package/package.json +8 -5
  452. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  453. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  454. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  455. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  456. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  457. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  459. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  460. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  461. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  462. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  463. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  464. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  465. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  466. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1311
  467. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  468. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  469. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  474. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  475. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  476. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  477. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  479. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  481. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  483. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  485. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  487. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  489. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  491. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
  493. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  495. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  499. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  503. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  506. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  507. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  508. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
  510. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  511. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  512. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  513. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  514. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  516. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  517. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  518. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  519. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  520. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  521. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  522. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  523. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  524. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  525. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  526. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  527. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  528. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  529. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  531. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  532. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  533. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  534. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  535. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  536. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  537. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  538. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  539. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  540. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  541. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  542. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  543. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  544. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  545. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  546. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  547. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  548. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  550. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  552. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  554. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  556. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  557. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  558. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  559. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  560. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  562. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  563. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  564. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  566. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  568. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  570. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  572. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  574. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  576. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  577. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  578. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  581. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  583. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  584. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  585. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  587. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  589. package/contracts/components/Component.sol +0 -251
  590. package/contracts/components/IDistributionComponent.sol +0 -71
  591. package/contracts/components/IPoolComponent.sol +0 -113
  592. package/contracts/components/IProductComponent.sol +0 -40
  593. package/contracts/components/Pool.sol +0 -299
  594. package/contracts/components/Product.sol +0 -293
  595. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  596. package/contracts/instance/Cloneable.sol +0 -51
  597. package/contracts/instance/InstanceAccessManager.sol +0 -522
  598. package/contracts/instance/base/ComponentService.sol +0 -134
  599. package/contracts/instance/base/KeyValueStore.sol +0 -175
  600. package/contracts/instance/base/Lifecycle.sol +0 -109
  601. package/contracts/instance/module/ISetup.sol +0 -33
  602. package/contracts/instance/module/ITreasury.sol +0 -23
  603. package/contracts/instance/service/ApplicationService.sol +0 -350
  604. package/contracts/instance/service/BundleService.sol +0 -336
  605. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  606. package/contracts/instance/service/ClaimService.sol +0 -151
  607. package/contracts/instance/service/DistributionService.sol +0 -467
  608. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  609. package/contracts/instance/service/IBundleService.sol +0 -62
  610. package/contracts/instance/service/IClaimService.sol +0 -61
  611. package/contracts/instance/service/IPolicyService.sol +0 -72
  612. package/contracts/instance/service/IPoolService.sol +0 -35
  613. package/contracts/instance/service/IProductService.sol +0 -40
  614. package/contracts/instance/service/PolicyService.sol +0 -403
  615. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  616. package/contracts/instance/service/PoolService.sol +0 -220
  617. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  618. package/contracts/instance/service/ProductService.sol +0 -241
  619. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  620. package/contracts/registry/RegistryAccessManager.sol +0 -216
  621. package/contracts/registry/ReleaseManager.sol +0 -322
  622. package/contracts/shared/ContractDeployerLib.sol +0 -72
  623. package/contracts/test/TestFee.sol +0 -25
  624. package/contracts/test/TestRegisterable.sol +0 -18
  625. package/contracts/test/TestRoleId.sol +0 -14
  626. package/contracts/test/TestService.sol +0 -25
  627. package/contracts/test/TestToken.sol +0 -26
  628. package/contracts/test/TestVersion.sol +0 -44
  629. package/contracts/test/TestVersionable.sol +0 -17
  630. package/contracts/types/ChainId.sol +0 -38
  631. package/contracts/types/NumberId.sol +0 -52
  632. package/contracts/types/ObjectType.sol +0 -157
  633. package/contracts/types/RoleId.sol +0 -97
  634. /package/contracts/{types → type}/DistributorType.sol +0 -0
  635. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,496 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IRegistryService} from "../registry/IRegistryService.sol";
6
+ import {IStaking} from "./IStaking.sol";
7
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
8
+
9
+ import {Amount, AmountLib} from "../type/Amount.sol";
10
+ import {Component} from "../shared/Component.sol";
11
+ import {IComponent} from "../shared/IComponent.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, STAKING} from "../type/ObjectType.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
15
+ import {StakeManagerLib} from "./StakeManagerLib.sol";
16
+ import {StakingReader} from "./StakingReader.sol";
17
+ import {StakingStore} from "./StakingStore.sol";
18
+ import {TargetManagerLib} from "./TargetManagerLib.sol";
19
+ import {Timestamp} from "../type/Timestamp.sol";
20
+ import {TokenHandler} from "../shared/TokenHandler.sol";
21
+ import {TokenRegistry} from "../registry/TokenRegistry.sol";
22
+ import {UFixed} from "../type/UFixed.sol";
23
+ import {Version, VersionLib} from "../type/Version.sol";
24
+ import {Versionable} from "../upgradeability/Versionable.sol";
25
+
26
+ contract Staking is
27
+ Component,
28
+ Versionable,
29
+ IStaking
30
+ {
31
+ string public constant CONTRACT_NAME = "Staking";
32
+ uint8 private constant GIF_MAJOR_VERSION = 3;
33
+
34
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
35
+ bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
36
+
37
+ struct StakingStorage {
38
+ IRegistryService _registryService;
39
+ TokenRegistry _tokenRegistry;
40
+ TokenHandler _tokenHandler;
41
+ StakingStore _store;
42
+ StakingReader _reader;
43
+ NftId _protocolNftId;
44
+ }
45
+
46
+
47
+ modifier onlyStake(NftId stakeNftId) {
48
+ if (!_getStakingStorage()._store.exists(stakeNftId)) {
49
+ revert ErrorStakingNotStake(stakeNftId);
50
+ }
51
+ _;
52
+ }
53
+
54
+
55
+ modifier onlyTarget(NftId targetNftId) {
56
+ if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
57
+ revert ErrorStakingNotTarget(targetNftId);
58
+ }
59
+ _;
60
+ }
61
+
62
+ // set/update staking reader
63
+ function setStakingReader(StakingReader stakingReader)
64
+ external
65
+ virtual
66
+ onlyOwner()
67
+ {
68
+ if(stakingReader.getStaking() != IStaking(this)) {
69
+ revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
70
+ }
71
+
72
+ _getStakingStorage()._reader = stakingReader;
73
+ }
74
+
75
+
76
+ // rate management
77
+ function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
78
+ external
79
+ virtual
80
+ onlyOwner()
81
+ {
82
+ StakingStorage storage $ = _getStakingStorage();
83
+
84
+ if (!$._tokenRegistry.isRegistered(chainId, token)) {
85
+ revert ErrorStakingTokenNotRegistered(chainId, token);
86
+ }
87
+
88
+ UFixed oldStakingRate = $._store.getStakingRate(chainId, token);
89
+ $._store.setStakingRate(chainId, token, stakingRate);
90
+
91
+ emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
92
+ }
93
+
94
+ // target management
95
+
96
+ function registerTarget(
97
+ NftId targetNftId,
98
+ ObjectType expectedObjectType,
99
+ uint256 chainId,
100
+ Seconds initialLockingPeriod,
101
+ UFixed initialRewardRate
102
+ )
103
+ external
104
+ virtual
105
+ restricted()
106
+ {
107
+ TargetManagerLib.checkTargetParameters(
108
+ getRegistry(),
109
+ _getStakingStorage()._reader,
110
+ targetNftId,
111
+ expectedObjectType,
112
+ initialLockingPeriod,
113
+ initialRewardRate);
114
+
115
+ _getStakingStorage()._store.createTarget(
116
+ targetNftId,
117
+ TargetInfo({
118
+ objectType: expectedObjectType,
119
+ chainId: chainId,
120
+ lockingPeriod: initialLockingPeriod,
121
+ rewardRate: initialRewardRate}));
122
+ }
123
+
124
+
125
+ function setLockingPeriod(
126
+ NftId targetNftId,
127
+ Seconds lockingPeriod
128
+ )
129
+ external
130
+ virtual
131
+ restricted()
132
+ onlyTarget(targetNftId)
133
+ {
134
+ (
135
+ Seconds oldLockingPeriod,
136
+ TargetInfo memory targetInfo
137
+ ) = TargetManagerLib.updateLockingPeriod(
138
+ this,
139
+ targetNftId,
140
+ lockingPeriod);
141
+
142
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
143
+
144
+ emit LogStakingLockingPeriodSet(targetNftId, oldLockingPeriod, lockingPeriod);
145
+ }
146
+
147
+ // TODO add function to set protocol reward rate: onlyOwner
148
+ // get protocol nft id (from where)
149
+
150
+ function setRewardRate(NftId targetNftId, UFixed rewardRate)
151
+ external
152
+ virtual
153
+ restricted()
154
+ onlyTarget(targetNftId)
155
+ {
156
+ (
157
+ UFixed oldRewardRate,
158
+ TargetInfo memory targetInfo
159
+ ) = TargetManagerLib.updateRewardRate(
160
+ this,
161
+ targetNftId,
162
+ rewardRate);
163
+
164
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
165
+
166
+ emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
167
+ }
168
+
169
+
170
+ function refillRewardReserves(NftId targetNftId, Amount dipAmount)
171
+ external
172
+ virtual
173
+ restricted()
174
+ returns (Amount newBalance)
175
+ {
176
+ // update book keeping of reward reserves
177
+ StakingStorage storage $ = _getStakingStorage();
178
+ newBalance = $._store.increaseReserves(targetNftId, dipAmount);
179
+ }
180
+
181
+
182
+ function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
183
+ external
184
+ virtual
185
+ restricted()
186
+ returns (Amount newBalance)
187
+ {
188
+ // update book keeping of reward reserves
189
+ StakingStorage storage $ = _getStakingStorage();
190
+ newBalance = $._store.decreaseReserves(targetNftId, dipAmount);
191
+ }
192
+
193
+
194
+ function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
195
+ external
196
+ virtual
197
+ restricted() // only pool service
198
+ returns (Amount newBalance)
199
+ {
200
+ StakingStorage storage $ = _getStakingStorage();
201
+ uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
202
+ UFixed stakingRate = $._reader.getStakingRate(chainId, token);
203
+ newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
204
+ }
205
+
206
+
207
+ function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
208
+ external
209
+ virtual
210
+ restricted() // only pool service
211
+ returns (Amount newBalance)
212
+ {
213
+ StakingStorage storage $ = _getStakingStorage();
214
+ uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
215
+ UFixed stakingRate = $._reader.getStakingRate(chainId, token);
216
+ newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
217
+ }
218
+
219
+
220
+ function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
221
+ external
222
+ virtual
223
+ restricted()
224
+ onlyOwner // or CCIP
225
+ {
226
+
227
+ }
228
+
229
+ function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
230
+ external
231
+ virtual
232
+ restricted()
233
+ onlyOwner // or CCIP
234
+ {
235
+
236
+ }
237
+
238
+ //--- staking functions -------------------------------------------------//
239
+
240
+ function createStake(
241
+ NftId stakeNftId,
242
+ NftId targetNftId,
243
+ Amount stakeAmount
244
+ )
245
+ external
246
+ virtual
247
+ restricted() // only staking service
248
+ {
249
+ StakingStorage storage $ = _getStakingStorage();
250
+ Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
251
+ $._reader,
252
+ targetNftId,
253
+ stakeAmount);
254
+
255
+ // create new stake
256
+ $._store.create(
257
+ stakeNftId,
258
+ StakeInfo({
259
+ lockedUntil: lockedUntil}));
260
+
261
+ // update target stake balance
262
+ $._store.increaseStake(
263
+ stakeNftId,
264
+ targetNftId,
265
+ stakeAmount);
266
+ }
267
+
268
+
269
+ function stake(
270
+ NftId stakeNftId,
271
+ Amount stakeAmount
272
+ )
273
+ external
274
+ virtual
275
+ restricted() // only staking service
276
+ onlyStake(stakeNftId)
277
+ returns (Amount stakeBalance)
278
+ {
279
+ StakingStorage storage $ = _getStakingStorage();
280
+ stakeBalance = StakeManagerLib.stake(
281
+ getRegistry(),
282
+ $._reader,
283
+ $._store,
284
+ stakeNftId,
285
+ stakeAmount);
286
+ }
287
+
288
+
289
+ function restake(
290
+ NftId stakeNftId,
291
+ NftId newTargetNftId
292
+ )
293
+ external
294
+ virtual
295
+ restricted() // only staking service
296
+ onlyStake(stakeNftId)
297
+ returns (NftId newStakeNftId)
298
+ {
299
+ // TODO add check that allows additional staking amount
300
+ StakingStorage storage $ = _getStakingStorage();
301
+
302
+ // TODO implement
303
+ }
304
+
305
+
306
+ function updateRewards(NftId stakeNftId)
307
+ external
308
+ virtual
309
+ restricted() // only staking service
310
+ onlyStake(stakeNftId)
311
+ {
312
+ StakingStorage storage $ = _getStakingStorage();
313
+ _updateRewards($._reader, $._store, stakeNftId);
314
+ }
315
+
316
+
317
+ function claimRewards(NftId stakeNftId)
318
+ external
319
+ virtual
320
+ restricted() // only staking service
321
+ onlyStake(stakeNftId)
322
+ returns (
323
+ Amount rewardsClaimedAmount
324
+ )
325
+ {
326
+ StakingStorage storage $ = _getStakingStorage();
327
+
328
+ // update rewards since last update
329
+ NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
330
+
331
+ // unstake all available rewards
332
+ rewardsClaimedAmount = $._store.claimUpTo(
333
+ stakeNftId,
334
+ targetNftId,
335
+ AmountLib.max());
336
+
337
+ // update reward reserves
338
+ $._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
339
+ }
340
+
341
+
342
+ function unstake(NftId stakeNftId)
343
+ external
344
+ virtual
345
+ restricted() // only staking service
346
+ onlyStake(stakeNftId)
347
+ returns (
348
+ Amount unstakedAmount,
349
+ Amount rewardsClaimedAmount
350
+ )
351
+ {
352
+ // TODO add check that stake locking is in the past
353
+ StakingStorage storage $ = _getStakingStorage();
354
+
355
+ // update rewards since last update
356
+ NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
357
+
358
+ // unstake all available dips
359
+ (
360
+ unstakedAmount,
361
+ rewardsClaimedAmount
362
+ ) = $._store.unstakeUpTo(
363
+ stakeNftId,
364
+ targetNftId,
365
+ AmountLib.max(), // unstake all stakes
366
+ AmountLib.max()); // claim all rewards
367
+
368
+ // update reward reserves
369
+ $._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
370
+ }
371
+
372
+
373
+
374
+ //--- other functions ---------------------------------------------------//
375
+
376
+ function collectDipAmount(address from, Amount dipAmount)
377
+ external
378
+ restricted() // only staking service
379
+ {
380
+ getTokenHandler().collectTokens(from, getWallet(), dipAmount);
381
+ }
382
+
383
+
384
+ function transferDipAmount(address to, Amount dipAmount)
385
+ external
386
+ restricted() // only staking service
387
+ {
388
+ getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
389
+ }
390
+
391
+
392
+ //--- view functions ----------------------------------------------------//
393
+
394
+ function getStakingReader() public view returns (StakingReader reader) {
395
+ return _getStakingStorage()._reader;
396
+ }
397
+
398
+ function getStakingStore() external view returns (StakingStore stakingStore) {
399
+ return _getStakingStorage()._store;
400
+ }
401
+
402
+ function getTokenRegistryAddress() external view returns (address tokenRegistry) {
403
+ return address(_getStakingStorage()._tokenRegistry);
404
+ }
405
+
406
+ function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
407
+ return _getStakingStorage()._tokenHandler;
408
+ }
409
+
410
+ // from Versionable
411
+ function getVersion()
412
+ public
413
+ pure
414
+ virtual override (IVersionable, Versionable)
415
+ returns(Version)
416
+ {
417
+ return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
418
+ }
419
+
420
+ //--- internal functions ------------------------------------------------//
421
+
422
+ function _updateRewards(
423
+ StakingReader reader,
424
+ StakingStore store,
425
+ NftId stakeNftId
426
+ )
427
+ internal
428
+ virtual
429
+ returns (NftId targetNftId)
430
+ {
431
+ UFixed rewardRate;
432
+
433
+ (targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
434
+ (Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
435
+ reader,
436
+ stakeNftId,
437
+ rewardRate);
438
+
439
+ store.updateRewards(
440
+ stakeNftId,
441
+ targetNftId,
442
+ rewardIncrement);
443
+ }
444
+
445
+
446
+ function _initialize(
447
+ address owner,
448
+ bytes memory data
449
+ )
450
+ internal
451
+ virtual override
452
+ initializer
453
+ {
454
+ (
455
+ address registryAddress,
456
+ address tokenRegistryAddress,
457
+ address stakingStoreAddress,
458
+ address stakingOwner
459
+ ) = abi.decode(data, (address, address, address, address));
460
+
461
+ // only admin(authority) and dip token address are set in registry at this point
462
+ IRegistry registry = IRegistry(registryAddress);
463
+ address authority = registry.getAuthority();
464
+ TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
465
+ address dipTokenAddress = tokenRegistry.getDipTokenAddress();
466
+
467
+ initializeComponent(
468
+ authority,
469
+ registryAddress,
470
+ registry.getNftId(),
471
+ CONTRACT_NAME,
472
+ dipTokenAddress,
473
+ STAKING(),
474
+ false, // is interceptor
475
+ stakingOwner,
476
+ "", // registry data
477
+ ""); // component data
478
+
479
+ // wiring to external contracts
480
+ StakingStorage storage $ = _getStakingStorage();
481
+ $._protocolNftId = getRegistry().getProtocolNftId();
482
+ $._store = StakingStore(stakingStoreAddress);
483
+ $._reader = StakingStore(stakingStoreAddress).getStakingReader();
484
+ $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
485
+ $._tokenHandler = new TokenHandler(address(getToken()));
486
+
487
+ registerInterface(type(IStaking).interfaceId);
488
+ }
489
+
490
+
491
+ function _getStakingStorage() private pure returns (StakingStorage storage $) {
492
+ assembly {
493
+ $.slot := STAKING_LOCATION_V1
494
+ }
495
+ }
496
+ }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {TARGET, COMPONENT, STAKE} from "../type/ObjectType.sol";
5
+ import {INITIAL} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ contract StakingLifecycle is
9
+ Lifecycle
10
+ {
11
+ constructor() {
12
+ _setupLifecycle();
13
+ }
14
+
15
+ function _setupLifecycle()
16
+ internal
17
+ override
18
+ {
19
+ setInitialState(TARGET(), INITIAL());
20
+ setInitialState(COMPONENT(), INITIAL());
21
+ setInitialState(STAKE(), INITIAL());
22
+ }
23
+ }
@@ -0,0 +1,50 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {Staking} from "./Staking.sol";
7
+
8
+
9
+ contract StakingManager is
10
+ ProxyManager
11
+ {
12
+ Staking private _staking;
13
+ address private _initialImplementation;
14
+ bytes private _initializationData;
15
+
16
+ /// @dev initializes proxy manager with service implementation
17
+ constructor(
18
+ address registry,
19
+ address tokenRegistry,
20
+ address stakingStore,
21
+ address initialOwner
22
+ )
23
+ ProxyManager(registry)
24
+ {
25
+ Staking stakingImplementation = new Staking();
26
+
27
+ _initialImplementation = address(stakingImplementation);
28
+ _initializationData = abi.encode(
29
+ registry,
30
+ tokenRegistry,
31
+ stakingStore,
32
+ initialOwner);
33
+
34
+ IVersionable versionable = deploy(
35
+ _initialImplementation,
36
+ _initializationData);
37
+
38
+ _staking = Staking(address(versionable));
39
+ }
40
+
41
+ //--- view functions ----------------------------------------------------//
42
+
43
+ function getStaking()
44
+ external
45
+ view
46
+ returns (Staking)
47
+ {
48
+ return _staking;
49
+ }
50
+ }