@etherisc/gif-next 0.0.2-e94f4c7-084 → 0.0.2-e987ccf-894

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 (637) hide show
  1. package/README.md +51 -5
  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 +1500 -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 +209 -384
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1512 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +200 -252
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +178 -336
  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 +227 -2186
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +198 -74
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +433 -2805
  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 +783 -355
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -243
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3712 -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 +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 +1137 -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 +776 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → oracle/IOracleService.sol/IOracleService.json} +259 -186
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1029 -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} +295 -265
  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 +1474 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +250 -52
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +220 -364
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +451 -203
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1192 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1591 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +746 -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/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +360 -273
  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 → product}/IApplicationService.sol/IApplicationService.json +29 -139
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +99 -280
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +795 -0
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +311 -182
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1239 -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 +972 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +766 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/product/Product.sol/Product.json +1212 -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 +183 -29
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -125
  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 +444 -44
  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 +367 -73
  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 +135 -145
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -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} +27 -95
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  181. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +107 -107
  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/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  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 +17 -6
  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 +951 -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 +17 -6
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  223. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  224. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +217 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +138 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  318. package/contracts/{components → distribution}/Distribution.sol +172 -161
  319. package/contracts/distribution/DistributionService.sol +336 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  321. package/contracts/distribution/IDistributionComponent.sol +52 -0
  322. package/contracts/{instance/service → distribution}/IDistributionService.sol +40 -38
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  324. package/contracts/instance/IInstance.sol +54 -70
  325. package/contracts/instance/IInstanceService.sol +51 -27
  326. package/contracts/instance/Instance.sol +151 -207
  327. package/contracts/instance/InstanceAdmin.sol +285 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
  329. package/contracts/instance/InstanceReader.sol +169 -64
  330. package/contracts/instance/InstanceService.sol +310 -321
  331. package/contracts/instance/InstanceServiceManager.sol +12 -26
  332. package/contracts/instance/InstanceStore.sol +291 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/base/Cloneable.sol +28 -0
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +110 -0
  337. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  338. package/contracts/instance/module/IAccess.sol +4 -12
  339. package/contracts/instance/module/IBundle.sol +6 -9
  340. package/contracts/instance/module/IComponents.sol +20 -15
  341. package/contracts/instance/module/IDistribution.sol +6 -6
  342. package/contracts/instance/module/IPolicy.sol +39 -32
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +33 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +166 -0
  351. package/contracts/oracle/OracleService.sol +278 -0
  352. package/contracts/oracle/OracleServiceManager.sol +39 -0
  353. package/contracts/pool/BasicPool.sol +166 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  355. package/contracts/pool/BundleService.sol +438 -0
  356. package/contracts/pool/BundleServiceManager.sol +39 -0
  357. package/contracts/pool/IBundleService.sol +134 -0
  358. package/contracts/pool/IPoolComponent.sol +58 -0
  359. package/contracts/pool/IPoolService.sol +160 -0
  360. package/contracts/pool/Pool.sol +326 -0
  361. package/contracts/pool/PoolService.sol +509 -0
  362. package/contracts/pool/PoolServiceManager.sol +39 -0
  363. package/contracts/product/ApplicationService.sol +249 -0
  364. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  365. package/contracts/product/BasicProduct.sol +52 -0
  366. package/contracts/product/BasicProductAuthorization.sol +43 -0
  367. package/contracts/product/ClaimService.sol +416 -0
  368. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  369. package/contracts/{instance/service → product}/IApplicationService.sol +14 -29
  370. package/contracts/product/IClaimService.sol +100 -0
  371. package/contracts/product/IPolicyService.sol +73 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +39 -0
  374. package/contracts/product/IProductService.sol +34 -0
  375. package/contracts/product/PolicyService.sol +576 -0
  376. package/contracts/product/PolicyServiceManager.sol +39 -0
  377. package/contracts/product/PricingService.sol +301 -0
  378. package/contracts/product/PricingServiceManager.sol +39 -0
  379. package/contracts/{components → product}/Product.sol +180 -145
  380. package/contracts/product/ProductService.sol +99 -0
  381. package/contracts/product/ProductServiceManager.sol +39 -0
  382. package/contracts/registry/ChainNft.sol +8 -1
  383. package/contracts/registry/IRegistry.sol +60 -27
  384. package/contracts/registry/IRegistryService.sol +42 -41
  385. package/contracts/registry/Registry.sol +235 -126
  386. package/contracts/registry/RegistryAdmin.sol +374 -0
  387. package/contracts/registry/RegistryService.sol +69 -99
  388. package/contracts/registry/RegistryServiceManager.sol +23 -32
  389. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  390. package/contracts/registry/ReleaseRegistry.sol +485 -0
  391. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  392. package/contracts/registry/TokenRegistry.sol +261 -62
  393. package/contracts/shared/Component.sol +268 -0
  394. package/contracts/shared/ComponentService.sol +641 -0
  395. package/contracts/shared/ComponentServiceManager.sol +35 -0
  396. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  397. package/contracts/shared/IComponent.sol +70 -0
  398. package/contracts/shared/IComponentService.sol +108 -0
  399. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  400. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  401. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  402. package/contracts/shared/INftOwnable.sol +2 -2
  403. package/contracts/shared/IPolicyHolder.sol +29 -10
  404. package/contracts/shared/IRegistryLinked.sol +0 -1
  405. package/contracts/shared/IService.sol +12 -3
  406. package/contracts/shared/InitializableCustom.sol +177 -0
  407. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  408. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  409. package/contracts/shared/KeyValueStore.sol +131 -0
  410. package/contracts/shared/Lifecycle.sol +77 -0
  411. package/contracts/shared/NftIdSet.sol +65 -0
  412. package/contracts/shared/NftOwnable.sol +6 -19
  413. package/contracts/shared/PolicyHolder.sol +41 -23
  414. package/contracts/shared/Registerable.sol +13 -12
  415. package/contracts/shared/RegistryLinked.sol +0 -5
  416. package/contracts/shared/Service.sol +32 -22
  417. package/contracts/shared/TokenHandler.sol +115 -9
  418. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  419. package/contracts/staking/IStaking.sol +167 -0
  420. package/contracts/staking/IStakingService.sol +160 -0
  421. package/contracts/staking/StakeManagerLib.sol +206 -0
  422. package/contracts/staking/Staking.sol +497 -0
  423. package/contracts/staking/StakingLifecycle.sol +23 -0
  424. package/contracts/staking/StakingManager.sol +50 -0
  425. package/contracts/staking/StakingReader.sol +183 -0
  426. package/contracts/staking/StakingService.sol +407 -0
  427. package/contracts/staking/StakingServiceManager.sol +44 -0
  428. package/contracts/staking/StakingStore.sol +605 -0
  429. package/contracts/staking/TargetManagerLib.sol +207 -0
  430. package/contracts/{types → type}/AddressSet.sol +1 -1
  431. package/contracts/{types → type}/Amount.sol +66 -1
  432. package/contracts/{types → type}/Blocknumber.sol +26 -3
  433. package/contracts/{types → type}/Fee.sol +24 -22
  434. package/contracts/{types → type}/NftId.sol +14 -16
  435. package/contracts/{types → type}/NftIdSet.sol +2 -2
  436. package/contracts/type/ObjectType.sol +275 -0
  437. package/contracts/{types → type}/Referral.sol +2 -1
  438. package/contracts/type/RequestId.sol +75 -0
  439. package/contracts/{types → type}/RiskId.sol +1 -1
  440. package/contracts/type/RoleId.sol +174 -0
  441. package/contracts/{types → type}/Seconds.sol +40 -1
  442. package/contracts/type/Selector.sol +102 -0
  443. package/contracts/{types → type}/StateId.sol +27 -2
  444. package/contracts/type/String.sol +53 -0
  445. package/contracts/{types → type}/Timestamp.sol +17 -3
  446. package/contracts/{types → type}/UFixed.sol +34 -9
  447. package/contracts/{types → type}/Version.sol +4 -2
  448. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  449. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  450. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  451. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  452. package/package.json +8 -5
  453. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  454. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  455. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  456. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  457. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  460. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  461. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  462. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  463. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  464. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  465. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  466. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  467. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  468. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  469. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  470. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  475. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  476. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  477. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  479. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  480. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  482. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  484. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
  486. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  488. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  490. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  492. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  494. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  496. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  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/IProductService.sol/IProductService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1543
  505. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  507. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1449
  509. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
  511. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  513. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  515. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  516. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  517. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  518. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  519. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  520. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  521. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  522. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  523. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  524. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  525. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  526. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  527. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  528. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  529. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  531. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  533. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  535. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  537. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  539. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  540. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  541. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  542. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  543. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  544. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  545. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  546. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  547. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  549. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  551. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  553. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  555. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  557. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  559. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  561. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  563. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  564. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  565. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  567. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  569. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  571. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  573. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  575. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  577. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  579. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  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 -253
  590. package/contracts/components/IComponent.sol +0 -76
  591. package/contracts/components/IDistributionComponent.sol +0 -71
  592. package/contracts/components/IPoolComponent.sol +0 -113
  593. package/contracts/components/IProductComponent.sol +0 -40
  594. package/contracts/components/Pool.sol +0 -302
  595. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  596. package/contracts/instance/Cloneable.sol +0 -51
  597. package/contracts/instance/InstanceAccessManager.sol +0 -527
  598. package/contracts/instance/base/ComponentService.sol +0 -121
  599. package/contracts/instance/base/KeyValueStore.sol +0 -180
  600. package/contracts/instance/base/Lifecycle.sol +0 -117
  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 -355
  604. package/contracts/instance/service/BundleService.sol +0 -443
  605. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  606. package/contracts/instance/service/ClaimService.sol +0 -239
  607. package/contracts/instance/service/DistributionService.sol +0 -431
  608. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  609. package/contracts/instance/service/IBundleService.sol +0 -102
  610. package/contracts/instance/service/IClaimService.sol +0 -92
  611. package/contracts/instance/service/IPolicyService.sol +0 -139
  612. package/contracts/instance/service/IPoolService.sol +0 -102
  613. package/contracts/instance/service/IProductService.sol +0 -40
  614. package/contracts/instance/service/PolicyService.sol +0 -571
  615. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  616. package/contracts/instance/service/PoolService.sol +0 -336
  617. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  618. package/contracts/instance/service/ProductService.sol +0 -210
  619. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  620. package/contracts/registry/RegistryAccessManager.sol +0 -216
  621. package/contracts/registry/ReleaseManager.sol +0 -324
  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}/ClaimId.sol +0 -0
  635. /package/contracts/{types → type}/DistributorType.sol +0 -0
  636. /package/contracts/{types → type}/Key32.sol +0 -0
  637. /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -0,0 +1,497 @@
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 {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
22
+ import {TokenRegistry} from "../registry/TokenRegistry.sol";
23
+ import {UFixed} from "../type/UFixed.sol";
24
+ import {Version, VersionLib} from "../type/Version.sol";
25
+ import {Versionable} from "../upgradeability/Versionable.sol";
26
+
27
+ contract Staking is
28
+ Component,
29
+ Versionable,
30
+ IStaking
31
+ {
32
+ string public constant CONTRACT_NAME = "Staking";
33
+ uint8 private constant GIF_MAJOR_VERSION = 3;
34
+
35
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
36
+ bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
37
+
38
+ struct StakingStorage {
39
+ IRegistryService _registryService;
40
+ TokenRegistry _tokenRegistry;
41
+ TokenHandler _tokenHandler;
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.getTargetNftIdSet().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
+ getTokenHandler().collectTokens(from, getWallet(), dipAmount);
382
+ }
383
+
384
+
385
+ function transferDipAmount(address to, Amount dipAmount)
386
+ external
387
+ restricted() // only staking service
388
+ {
389
+ getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
390
+ }
391
+
392
+
393
+ //--- view functions ----------------------------------------------------//
394
+
395
+ function getStakingReader() public view returns (StakingReader reader) {
396
+ return _getStakingStorage()._reader;
397
+ }
398
+
399
+ function getStakingStore() external view returns (StakingStore stakingStore) {
400
+ return _getStakingStorage()._store;
401
+ }
402
+
403
+ function getTokenRegistryAddress() external view returns (address tokenRegistry) {
404
+ return address(_getStakingStorage()._tokenRegistry);
405
+ }
406
+
407
+ function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
408
+ return _getStakingStorage()._tokenHandler;
409
+ }
410
+
411
+ // from Versionable
412
+ function getVersion()
413
+ public
414
+ pure
415
+ virtual override (IVersionable, Versionable)
416
+ returns(Version)
417
+ {
418
+ return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
419
+ }
420
+
421
+ //--- internal functions ------------------------------------------------//
422
+
423
+ function _updateRewards(
424
+ StakingReader reader,
425
+ StakingStore store,
426
+ NftId stakeNftId
427
+ )
428
+ internal
429
+ virtual
430
+ returns (NftId targetNftId)
431
+ {
432
+ UFixed rewardRate;
433
+
434
+ (targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
435
+ (Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
436
+ reader,
437
+ stakeNftId,
438
+ rewardRate);
439
+
440
+ store.updateRewards(
441
+ stakeNftId,
442
+ targetNftId,
443
+ rewardIncrement);
444
+ }
445
+
446
+
447
+ function _initialize(
448
+ address owner,
449
+ bytes memory data
450
+ )
451
+ internal
452
+ virtual override
453
+ initializer
454
+ {
455
+ (
456
+ address registryAddress,
457
+ address tokenRegistryAddress,
458
+ address stakingStoreAddress,
459
+ address stakingOwner
460
+ ) = abi.decode(data, (address, address, address, address));
461
+
462
+ // only admin(authority) and dip token address are set in registry at this point
463
+ IRegistry registry = IRegistry(registryAddress);
464
+ address authority = registry.getAuthority();
465
+ TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
466
+ address dipTokenAddress = tokenRegistry.getDipTokenAddress();
467
+
468
+ initializeComponent(
469
+ authority,
470
+ registryAddress,
471
+ registry.getNftId(),
472
+ CONTRACT_NAME,
473
+ dipTokenAddress,
474
+ STAKING(),
475
+ false, // is interceptor
476
+ stakingOwner,
477
+ "", // registry data
478
+ ""); // component data
479
+
480
+ // wiring to external contracts
481
+ StakingStorage storage $ = _getStakingStorage();
482
+ $._protocolNftId = getRegistry().getProtocolNftId();
483
+ $._store = StakingStore(stakingStoreAddress);
484
+ $._reader = StakingStore(stakingStoreAddress).getStakingReader();
485
+ $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
486
+ $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(dipTokenAddress, authority);
487
+
488
+ registerInterface(type(IStaking).interfaceId);
489
+ }
490
+
491
+
492
+ function _getStakingStorage() private pure returns (StakingStorage storage $) {
493
+ assembly {
494
+ $.slot := STAKING_LOCATION_V1
495
+ }
496
+ }
497
+ }
@@ -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
+ }