@etherisc/gif-next 0.0.2-b44ae3c-205 → 0.0.2-b4c471d-236

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