@etherisc/gif-next 0.0.2-b51dcb9-674 → 0.0.2-b5d2efe-928

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 (605) hide show
  1. package/README.md +20 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/{shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json → authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json} +4 -4
  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 +1621 -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 +1173 -370
  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 +1741 -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/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  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/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  259. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  260. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  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/{types → type}/Key32.sol/Key32Lib.json +3 -3
  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/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  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/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  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/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  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/{types → type}/UFixed.sol/MathLib.json +3 -3
  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/{types → type}/Version.sol/VersionLib.json +3 -3
  299. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  300. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  301. package/contracts/authorization/AccessAdmin.sol +588 -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/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  514. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  515. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  516. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  517. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  518. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  519. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  520. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  521. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  522. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  523. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  524. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  525. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  526. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  527. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  528. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  529. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  530. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  531. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
  533. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  535. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  537. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
  541. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  542. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  544. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  549. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  552. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  555. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  557. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  562. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  564. package/contracts/components/Component.sol +0 -272
  565. package/contracts/components/IDistributionComponent.sol +0 -71
  566. package/contracts/components/IPoolComponent.sol +0 -114
  567. package/contracts/components/Pool.sol +0 -302
  568. package/contracts/instance/Cloneable.sol +0 -51
  569. package/contracts/instance/InstanceAccessManager.sol +0 -541
  570. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  571. package/contracts/instance/base/ComponentService.sol +0 -148
  572. package/contracts/instance/base/KeyValueStore.sol +0 -149
  573. package/contracts/instance/base/Lifecycle.sol +0 -120
  574. package/contracts/instance/module/ISetup.sol +0 -33
  575. package/contracts/instance/module/ITreasury.sol +0 -23
  576. package/contracts/instance/service/ApplicationService.sol +0 -186
  577. package/contracts/instance/service/BundleService.sol +0 -382
  578. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  579. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  580. package/contracts/instance/service/IProductService.sol +0 -40
  581. package/contracts/instance/service/PolicyService.sol +0 -376
  582. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  583. package/contracts/instance/service/PoolService.sol +0 -403
  584. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  585. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  586. package/contracts/instance/service/ProductService.sol +0 -210
  587. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  588. package/contracts/registry/RegistryAccessManager.sol +0 -216
  589. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  590. package/contracts/shared/ContractDeployerLib.sol +0 -72
  591. package/contracts/test/TestFee.sol +0 -25
  592. package/contracts/test/TestRegisterable.sol +0 -18
  593. package/contracts/test/TestRoleId.sol +0 -14
  594. package/contracts/test/TestService.sol +0 -25
  595. package/contracts/test/TestToken.sol +0 -26
  596. package/contracts/test/TestVersion.sol +0 -44
  597. package/contracts/test/TestVersionable.sol +0 -17
  598. package/contracts/types/ChainId.sol +0 -38
  599. package/contracts/types/NumberId.sol +0 -52
  600. package/contracts/types/ObjectType.sol +0 -161
  601. package/contracts/types/RoleId.sol +0 -97
  602. /package/contracts/{types → type}/ClaimId.sol +0 -0
  603. /package/contracts/{types → type}/DistributorType.sol +0 -0
  604. /package/contracts/{types → type}/Key32.sol +0 -0
  605. /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
+ }