@etherisc/gif-next 0.0.2-7e569a6-522 → 0.0.2-7e8dbef-751

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