@etherisc/gif-next 0.0.2-7e684ab-059 → 0.0.2-7ef1483-704

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 (548) hide show
  1. package/README.md +338 -19
  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 +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +331 -1138
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +463 -1216
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +692 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1570 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1045 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +730 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -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/base/Cloneable.sol/Cloneable.json +190 -0
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  41. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  43. package/artifacts/contracts/instance/{treasury/ITreasury.sol/ITreasury.json → module/IComponents.sol/IComponents.json} +2 -2
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  49. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1097 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +742 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +690 -0
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1050 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1417 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +826 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +718 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1270 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +806 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/product/IProductService.sol/IProductService.json +387 -0
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1138 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +750 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +975 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +774 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +744 -26
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -0
  108. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  110. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.json +1026 -52
  112. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  113. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  114. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
  116. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  118. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  120. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  121. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  124. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  126. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  130. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  131. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  132. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  133. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  134. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  135. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  136. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  137. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  138. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  140. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  141. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  142. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  143. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  144. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  146. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  148. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  150. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  152. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  153. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  154. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +478 -0
  156. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/ILifecycle.sol/ILifecycle.json} +10 -77
  158. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  159. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +42 -77
  160. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  162. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +181 -0
  164. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  166. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IService.sol/IService.json} +168 -134
  168. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  170. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  171. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  172. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  174. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
  176. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  178. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  180. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  182. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  184. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  186. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  188. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  190. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  191. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  193. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  194. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  196. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  198. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  199. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1441 -0
  200. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
  201. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
  202. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  203. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +890 -0
  204. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
  205. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
  206. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
  208. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/Staking.sol/Staking.json +2008 -0
  210. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  212. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +391 -0
  214. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1213 -0
  216. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +722 -0
  218. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1682 -0
  220. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -0
  222. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  223. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  224. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  226. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  228. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  230. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  232. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  234. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  235. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  236. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
  238. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  239. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  240. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  242. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  244. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  246. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  248. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  250. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +174 -0
  252. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  254. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  256. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  258. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  260. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  262. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  264. package/contracts/distribution/Distribution.sol +261 -0
  265. package/contracts/distribution/DistributionService.sol +298 -0
  266. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  267. package/contracts/distribution/IDistributionComponent.sol +66 -0
  268. package/contracts/distribution/IDistributionService.sol +81 -0
  269. package/contracts/instance/BundleManager.sol +126 -0
  270. package/contracts/instance/IInstance.sol +76 -22
  271. package/contracts/instance/IInstanceService.sol +81 -0
  272. package/contracts/instance/Instance.sol +216 -53
  273. package/contracts/instance/InstanceAdmin.sol +331 -0
  274. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  275. package/contracts/instance/InstanceReader.sol +365 -0
  276. package/contracts/instance/InstanceService.sol +362 -0
  277. package/contracts/instance/InstanceServiceManager.sol +44 -0
  278. package/contracts/instance/InstanceStore.sol +260 -0
  279. package/contracts/instance/base/BalanceStore.sol +118 -0
  280. package/contracts/instance/base/Cloneable.sol +51 -0
  281. package/contracts/instance/base/ObjectManager.sol +82 -0
  282. package/contracts/instance/module/IAccess.sol +46 -0
  283. package/contracts/instance/module/IBundle.sol +20 -0
  284. package/contracts/instance/module/IComponents.sol +52 -0
  285. package/contracts/instance/module/IDistribution.sol +42 -0
  286. package/contracts/instance/module/IPolicy.sol +84 -0
  287. package/contracts/instance/module/IRisk.sol +11 -0
  288. package/contracts/mock/Dip.sol +26 -0
  289. package/contracts/pool/BundleService.sol +296 -0
  290. package/contracts/pool/BundleServiceManager.sol +42 -0
  291. package/contracts/pool/IBundleService.sol +106 -0
  292. package/contracts/pool/IPoolComponent.sol +112 -0
  293. package/contracts/pool/IPoolService.sol +147 -0
  294. package/contracts/pool/Pool.sol +299 -0
  295. package/contracts/pool/PoolService.sol +424 -0
  296. package/contracts/pool/PoolServiceManager.sol +42 -0
  297. package/contracts/product/ApplicationService.sol +254 -0
  298. package/contracts/product/ApplicationServiceManager.sol +38 -0
  299. package/contracts/product/ClaimService.sol +437 -0
  300. package/contracts/product/ClaimServiceManager.sol +38 -0
  301. package/contracts/product/IApplicationService.sol +62 -0
  302. package/contracts/product/IClaimService.sol +93 -0
  303. package/contracts/product/IPolicyService.sol +78 -0
  304. package/contracts/product/IPricingService.sol +39 -0
  305. package/contracts/product/IProductComponent.sol +42 -0
  306. package/contracts/product/IProductService.sol +33 -0
  307. package/contracts/product/PolicyService.sol +473 -0
  308. package/contracts/product/PolicyServiceManager.sol +42 -0
  309. package/contracts/product/PricingService.sol +301 -0
  310. package/contracts/product/PricingServiceManager.sol +42 -0
  311. package/contracts/product/Product.sol +377 -0
  312. package/contracts/product/ProductService.sol +124 -0
  313. package/contracts/product/ProductServiceManager.sol +42 -0
  314. package/contracts/registry/ChainNft.sol +143 -62
  315. package/contracts/registry/IRegistry.sol +99 -42
  316. package/contracts/registry/IRegistryService.sol +69 -0
  317. package/contracts/registry/ITransferInterceptor.sol +7 -0
  318. package/contracts/registry/Registry.sol +521 -127
  319. package/contracts/registry/RegistryAdmin.sol +237 -0
  320. package/contracts/registry/RegistryService.sol +266 -0
  321. package/contracts/registry/RegistryServiceManager.sol +58 -0
  322. package/contracts/registry/ReleaseManager.sol +599 -0
  323. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  324. package/contracts/registry/TokenRegistry.sol +361 -0
  325. package/contracts/shared/AccessManagerCustom.sol +736 -0
  326. package/contracts/shared/AccessManagerExtended.sol +470 -0
  327. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  328. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  329. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  330. package/contracts/shared/Component.sol +286 -0
  331. package/contracts/shared/ComponentService.sol +596 -0
  332. package/contracts/shared/ComponentServiceManager.sol +35 -0
  333. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  334. package/contracts/shared/ERC165.sol +27 -0
  335. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  336. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  337. package/contracts/shared/IComponent.sol +74 -0
  338. package/contracts/shared/IComponentService.sol +91 -0
  339. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  340. package/contracts/shared/IKeyValueStore.sol +53 -0
  341. package/contracts/shared/ILifecycle.sol +30 -0
  342. package/contracts/shared/INftOwnable.sol +23 -0
  343. package/contracts/shared/IPolicyHolder.sol +45 -0
  344. package/contracts/shared/IRegisterable.sol +15 -0
  345. package/contracts/shared/IRegistryLinked.sol +11 -0
  346. package/contracts/shared/IService.sol +18 -0
  347. package/contracts/shared/IVersionable.sol +53 -0
  348. package/contracts/shared/InitializableCustom.sol +177 -0
  349. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  350. package/contracts/shared/KeyValueStore.sol +130 -0
  351. package/contracts/shared/Lifecycle.sol +121 -0
  352. package/contracts/shared/NftIdSetManager.sol +65 -0
  353. package/contracts/shared/NftOwnable.sol +107 -0
  354. package/contracts/shared/PolicyHolder.sol +102 -0
  355. package/contracts/shared/ProxyManager.sol +199 -0
  356. package/contracts/shared/Registerable.sol +75 -0
  357. package/contracts/shared/RegistryLinked.sol +43 -0
  358. package/contracts/shared/Service.sol +77 -0
  359. package/contracts/shared/TokenHandler.sol +58 -0
  360. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  361. package/contracts/shared/Versionable.sol +59 -0
  362. package/contracts/staking/IStaking.sol +152 -0
  363. package/contracts/staking/IStakingManager.sol +15 -0
  364. package/contracts/staking/IStakingService.sol +162 -0
  365. package/contracts/staking/IStakingStore.sol +130 -0
  366. package/contracts/staking/StakeManagerLib.sol +156 -0
  367. package/contracts/staking/Staking.sol +497 -0
  368. package/contracts/staking/StakingManager.sol +54 -0
  369. package/contracts/staking/StakingReader.sol +146 -0
  370. package/contracts/staking/StakingService.sol +376 -0
  371. package/contracts/staking/StakingServiceManager.sol +45 -0
  372. package/contracts/staking/StakingStore.sol +331 -0
  373. package/contracts/staking/TargetManagerLib.sol +179 -0
  374. package/contracts/type/AddressSet.sol +58 -0
  375. package/contracts/type/Amount.sol +114 -0
  376. package/contracts/{types → type}/Blocknumber.sol +21 -3
  377. package/contracts/type/ClaimId.sol +75 -0
  378. package/contracts/type/DistributorType.sol +55 -0
  379. package/contracts/type/Fee.sol +66 -0
  380. package/contracts/type/Key32.sol +50 -0
  381. package/contracts/{types → type}/NftId.sol +40 -13
  382. package/contracts/type/NftIdSet.sol +62 -0
  383. package/contracts/{types → type}/ObjectType.sol +77 -15
  384. package/contracts/type/PayoutId.sol +82 -0
  385. package/contracts/type/Referral.sol +89 -0
  386. package/contracts/type/RiskId.sol +43 -0
  387. package/contracts/type/RoleId.sol +143 -0
  388. package/contracts/type/Seconds.sol +71 -0
  389. package/contracts/{types → type}/StateId.sol +38 -6
  390. package/contracts/{types → type}/Timestamp.sol +36 -6
  391. package/contracts/type/UFixed.sol +326 -0
  392. package/contracts/type/Version.sol +108 -0
  393. package/package.json +12 -5
  394. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  395. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  396. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  397. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  398. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  399. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  400. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  401. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  402. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  403. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  404. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  405. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  406. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  407. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  408. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  409. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  410. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  411. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  412. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  413. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  414. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  416. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  417. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  418. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  419. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  420. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  423. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  425. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  427. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  429. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  431. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  433. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  435. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  437. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  439. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  440. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  441. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  442. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  443. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  444. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  445. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  446. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  447. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  448. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  449. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  450. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  451. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  452. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  453. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  454. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  455. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  456. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  457. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  458. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  459. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  460. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  461. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  462. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  463. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  464. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  465. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  466. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  467. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  468. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  469. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  470. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  471. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  472. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  473. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  474. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  475. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  476. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  477. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  478. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  479. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  480. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  481. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  482. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  483. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  484. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  485. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  486. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  487. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  488. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  489. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  490. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  491. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  492. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  493. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  494. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  495. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  496. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  497. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  498. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  499. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  500. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  501. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  502. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  503. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  504. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  505. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  507. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  508. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  510. package/contracts/components/Component.sol +0 -77
  511. package/contracts/components/IPool.sol +0 -15
  512. package/contracts/components/IProduct.sol +0 -16
  513. package/contracts/components/Pool.sol +0 -52
  514. package/contracts/components/Product.sol +0 -89
  515. package/contracts/experiment/errors/Require.sol +0 -38
  516. package/contracts/experiment/errors/Revert.sol +0 -44
  517. package/contracts/experiment/inheritance/A.sol +0 -53
  518. package/contracts/experiment/inheritance/B.sol +0 -28
  519. package/contracts/experiment/inheritance/C.sol +0 -34
  520. package/contracts/experiment/inheritance/IA.sol +0 -13
  521. package/contracts/experiment/inheritance/IB.sol +0 -10
  522. package/contracts/experiment/inheritance/IC.sol +0 -12
  523. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  524. package/contracts/experiment/statemachine/ISM.sol +0 -25
  525. package/contracts/experiment/statemachine/README.md +0 -112
  526. package/contracts/experiment/statemachine/SM.sol +0 -57
  527. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  528. package/contracts/experiment/types/TypeA.sol +0 -47
  529. package/contracts/experiment/types/TypeB.sol +0 -29
  530. package/contracts/instance/access/Access.sol +0 -165
  531. package/contracts/instance/access/IAccess.sol +0 -63
  532. package/contracts/instance/component/ComponentModule.sol +0 -274
  533. package/contracts/instance/component/IComponent.sol +0 -74
  534. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  535. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  536. package/contracts/instance/policy/IPolicy.sol +0 -50
  537. package/contracts/instance/policy/PolicyModule.sol +0 -114
  538. package/contracts/instance/pool/IPoolModule.sol +0 -23
  539. package/contracts/instance/pool/PoolModule.sol +0 -81
  540. package/contracts/instance/product/IProductService.sol +0 -36
  541. package/contracts/instance/product/ProductService.sol +0 -136
  542. package/contracts/instance/treasury/ITreasury.sol +0 -91
  543. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  544. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  545. package/contracts/registry/IChainNft.sol +0 -21
  546. package/contracts/types/ChainId.sol +0 -38
  547. package/contracts/types/Fee.sol +0 -32
  548. package/contracts/types/UFixed.sol +0 -210
@@ -0,0 +1,497 @@
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
+
46
+ mapping(uint256 chainId => mapping(address token => UFixed stakingRate)) _stakingRate;
47
+
48
+ mapping(NftId targetNftId => Amount stakedAmount) _stakedAmount;
49
+ mapping(NftId targetNftId => mapping(address token => Amount tvlAmount)) _tvlAmount;
50
+
51
+ NftId _protocolNftId;
52
+ }
53
+
54
+
55
+ modifier onlyStake(NftId stakeNftId) {
56
+ if (!_getStakingStorage()._store.exists(stakeNftId)) {
57
+ revert ErrorStakingNotStake(stakeNftId);
58
+ }
59
+ _;
60
+ }
61
+
62
+
63
+ modifier onlyTarget(NftId targetNftId) {
64
+ if (!_getStakingStorage()._store.getTargetManager().exists(targetNftId)) {
65
+ revert ErrorStakingNotTarget(targetNftId);
66
+ }
67
+ _;
68
+ }
69
+
70
+
71
+ // from Versionable
72
+ function getVersion()
73
+ public
74
+ pure
75
+ virtual override (IVersionable, Versionable)
76
+ returns(Version)
77
+ {
78
+ return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
79
+ }
80
+
81
+ // set/update staking reader
82
+ function setStakingReader(StakingReader stakingReader)
83
+ external
84
+ virtual
85
+ onlyOwner
86
+ {
87
+ if(stakingReader.getStaking() != IStaking(this)) {
88
+ revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
89
+ }
90
+
91
+ _getStakingStorage()._reader = stakingReader;
92
+ }
93
+
94
+
95
+ // rate management
96
+ function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
97
+ external
98
+ virtual
99
+ onlyOwner
100
+ {
101
+
102
+ }
103
+
104
+ // reward management
105
+
106
+ // target management
107
+
108
+ function registerTarget(
109
+ NftId targetNftId,
110
+ ObjectType expectedObjectType,
111
+ uint256 chainId,
112
+ Seconds initialLockingPeriod,
113
+ UFixed initialRewardRate
114
+ )
115
+ external
116
+ virtual
117
+ // restricted // staking service access
118
+ {
119
+ TargetManagerLib.checkTargetParameters(
120
+ getRegistry(),
121
+ _getStakingStorage()._reader,
122
+ targetNftId,
123
+ expectedObjectType,
124
+ initialLockingPeriod,
125
+ initialRewardRate);
126
+
127
+ _getStakingStorage()._store.createTarget(
128
+ targetNftId,
129
+ TargetInfo({
130
+ objectType: expectedObjectType,
131
+ chainId: chainId,
132
+ lockingPeriod: initialLockingPeriod,
133
+ rewardRate: initialRewardRate}));
134
+ }
135
+
136
+
137
+ function setLockingPeriod(
138
+ NftId targetNftId,
139
+ Seconds lockingPeriod
140
+ )
141
+ external
142
+ virtual
143
+ // TODO add restricted // only staking service
144
+ onlyTarget(targetNftId) // maybe duplicate check
145
+ {
146
+ (
147
+ Seconds oldLockingPeriod,
148
+ TargetInfo memory targetInfo
149
+ ) = TargetManagerLib.updateLockingPeriod(
150
+ this,
151
+ targetNftId,
152
+ lockingPeriod);
153
+
154
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
155
+
156
+ emit LogStakingLockingPeriodSet(targetNftId, oldLockingPeriod, lockingPeriod);
157
+ }
158
+
159
+ // TODO add function to set protocol reward rate: onlyOwner
160
+ // get protocol nft id (from where)
161
+
162
+ function setRewardRate(NftId targetNftId, UFixed rewardRate)
163
+ external
164
+ virtual
165
+ onlyTarget(targetNftId) // maybe duplicate check
166
+ {
167
+ (
168
+ UFixed oldRewardRate,
169
+ TargetInfo memory targetInfo
170
+ ) = TargetManagerLib.updateRewardRate(
171
+ this,
172
+ targetNftId,
173
+ rewardRate);
174
+
175
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
176
+
177
+ emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
178
+ }
179
+
180
+
181
+ function refillRewardReserves(NftId targetNftId, Amount dipAmount)
182
+ external
183
+ virtual
184
+ {
185
+
186
+ }
187
+
188
+ function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
189
+ external
190
+ virtual
191
+ // onlyNftOwner(targetNftId)
192
+ {
193
+
194
+ }
195
+
196
+
197
+ function increaseTvl(NftId targetNftId, address token, Amount amount)
198
+ external
199
+ virtual
200
+ // restricted // service to service access
201
+ {
202
+
203
+ }
204
+
205
+ function decreaseTvl(NftId targetNftId, address token, Amount amount)
206
+ external
207
+ virtual
208
+ // restricted // service to service access
209
+ {
210
+
211
+ }
212
+
213
+
214
+ function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
215
+ external
216
+ virtual
217
+ onlyOwner // or CCIP
218
+ {
219
+
220
+ }
221
+
222
+ function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
223
+ external
224
+ virtual
225
+ onlyOwner // or CCIP
226
+ {
227
+
228
+ }
229
+
230
+ //--- staking functions -------------------------------------------------//
231
+
232
+ function registerStake(
233
+ NftId stakeNftId,
234
+ NftId targetNftId,
235
+ Amount dipAmount
236
+ )
237
+ external
238
+ virtual
239
+ // TODO add restricted() // only staking service
240
+ {
241
+ Timestamp lockedUntil = StakeManagerLib.checkStakeParameters(
242
+ _getStakingStorage()._reader,
243
+ targetNftId,
244
+ dipAmount);
245
+
246
+ _getStakingStorage()._store.create(
247
+ stakeNftId,
248
+ StakeInfo({
249
+ lockedUntil: lockedUntil}),
250
+ dipAmount);
251
+ }
252
+
253
+
254
+ function stake(NftId stakeNftId, Amount dipAmount)
255
+ external
256
+ virtual
257
+ // TODO add restricted() // only staking service
258
+ onlyStake(stakeNftId)
259
+ {
260
+ StakingStorage storage $ = _getStakingStorage();
261
+ Amount rewardIncrement = StakeManagerLib.calculateRewardIncrease(
262
+ $._reader,
263
+ stakeNftId);
264
+
265
+ $._store.increaseBalance(
266
+ stakeNftId,
267
+ dipAmount,
268
+ rewardIncrement);
269
+ }
270
+
271
+
272
+ function restake(NftId stakeNftId)
273
+ external
274
+ virtual
275
+ // TODO add restricted() // only staking service
276
+ onlyStake(stakeNftId)
277
+ {
278
+ // TODO add check that target is active and allows additional staking amount
279
+ StakingStorage storage $ = _getStakingStorage();
280
+ Amount rewardIncrement = StakeManagerLib.calculateRewardIncrease(
281
+ $._reader,
282
+ stakeNftId);
283
+
284
+ $._store.restakeRewards(
285
+ stakeNftId,
286
+ rewardIncrement);
287
+ }
288
+
289
+
290
+ function updateRewards(NftId stakeNftId)
291
+ external
292
+ virtual
293
+ // TODO add restricted() // only staking service
294
+ onlyStake(stakeNftId)
295
+ {
296
+ StakingStorage storage $ = _getStakingStorage();
297
+ _updateRewards($._reader, $._store, stakeNftId);
298
+ }
299
+
300
+
301
+ function claimRewards(NftId stakeNftId)
302
+ external
303
+ virtual
304
+ // TODO add restricted() // only staking service
305
+ onlyStake(stakeNftId)
306
+ returns (
307
+ Amount rewardsClaimedAmount
308
+ )
309
+ {
310
+ StakingStorage storage $ = _getStakingStorage();
311
+
312
+ // update rewards since last update
313
+ _updateRewards($._reader, $._store, stakeNftId);
314
+
315
+ // unstake all available rewards
316
+ rewardsClaimedAmount = $._store.claimUpTo(
317
+ stakeNftId,
318
+ AmountLib.max());
319
+ }
320
+
321
+
322
+ function unstake(NftId stakeNftId)
323
+ external
324
+ virtual
325
+ // TODO add restricted() // only staking service
326
+ onlyStake(stakeNftId)
327
+ returns (
328
+ Amount unstakedAmount,
329
+ Amount rewardsClaimedAmount
330
+ )
331
+ {
332
+ // TODO add check that stake locking is in the past
333
+ StakingStorage storage $ = _getStakingStorage();
334
+
335
+ // update rewards since last update
336
+ _updateRewards($._reader, $._store, stakeNftId);
337
+
338
+ // unstake all available dips
339
+ (
340
+ unstakedAmount,
341
+ rewardsClaimedAmount
342
+ ) = $._store.unstakeUpTo(
343
+ stakeNftId,
344
+ AmountLib.max(), // unstake all stakes
345
+ AmountLib.max()); // claim all rewards
346
+ }
347
+
348
+
349
+
350
+ function _updateRewards(
351
+ StakingReader reader,
352
+ StakingStore store,
353
+ NftId stakeNftId
354
+ )
355
+ internal
356
+ virtual
357
+ {
358
+ Amount rewardIncrement = StakeManagerLib.calculateRewardIncrease(
359
+ reader,
360
+ stakeNftId);
361
+
362
+ store.updateRewards(
363
+ stakeNftId,
364
+ rewardIncrement);
365
+ }
366
+
367
+
368
+ //--- other functions ---------------------------------------------------//
369
+
370
+ function collectDipAmount(address from, Amount dipAmount)
371
+ external
372
+ // TODO add restricted() // only staking service
373
+ {
374
+ TokenHandler tokenHandler = getTokenHandler();
375
+ address stakingWallet = getWallet();
376
+
377
+ StakeManagerLib.checkDipBalanceAndAllowance(
378
+ getToken(),
379
+ from,
380
+ address(tokenHandler),
381
+ dipAmount);
382
+
383
+ tokenHandler.transfer(from, stakingWallet, dipAmount);
384
+ }
385
+
386
+
387
+ function transferDipAmount(address to, Amount dipAmount)
388
+ external
389
+ // TODO add restricted() // only staking service
390
+ {
391
+ TokenHandler tokenHandler = getTokenHandler();
392
+ address stakingWallet = getWallet();
393
+
394
+ StakeManagerLib.checkDipBalanceAndAllowance(
395
+ getToken(),
396
+ stakingWallet,
397
+ address(tokenHandler),
398
+ dipAmount);
399
+
400
+ tokenHandler.transfer(stakingWallet, to, dipAmount);
401
+ }
402
+
403
+
404
+ //--- view functions ----------------------------------------------------//
405
+
406
+ function getStakingReader() public view returns (StakingReader reader) {
407
+ return _getStakingStorage()._reader;
408
+ }
409
+
410
+ function getStakingStore() external view returns (StakingStore stakingStore) {
411
+ return _getStakingStorage()._store;
412
+ }
413
+
414
+ function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
415
+ return _getStakingStorage()._stakingRate[chainId][token];
416
+ }
417
+
418
+ function getTvlAmount(NftId targetNftId, address token) external view returns (Amount tvlAmount) {
419
+ return _getStakingStorage()._tvlAmount[targetNftId][token];
420
+ }
421
+
422
+ function getStakedAmount(NftId targetNftId) external view returns (Amount stakeAmount) {
423
+ return _getStakingStorage()._stakedAmount[targetNftId];
424
+ }
425
+
426
+ function getTokenRegistryAddress() external view returns (address tokenRegistry) {
427
+ return address(_getStakingStorage()._tokenRegistry);
428
+ }
429
+
430
+ function calculateRewardIncrementAmount(
431
+ NftId targetNftId,
432
+ Timestamp rewardsLastUpdatedAt
433
+ )
434
+ public
435
+ virtual
436
+ view
437
+ returns (Amount rewardIncrementAmount)
438
+ {
439
+
440
+ }
441
+
442
+ //--- internal functions ------------------------------------------------//
443
+
444
+ function _initialize(
445
+ address owner,
446
+ bytes memory data
447
+ )
448
+ internal
449
+ virtual override
450
+ initializer
451
+ {
452
+ (
453
+ address registryAddress,
454
+ address tokenRegistryAddress,
455
+ address stakingStoreAddress,
456
+ address stakingOwner
457
+ ) = abi.decode(data, (address, address, address, address));
458
+
459
+ // only admin(authority) and dip token address are set in registry at this point
460
+ IRegistry registry = IRegistry(registryAddress);
461
+ address authority = registry.getAuthority();
462
+ TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
463
+ address dipTokenAddress = tokenRegistry.getDipTokenAddress();
464
+
465
+ initializeComponent(
466
+ authority,
467
+ registryAddress,
468
+ registry.getNftId(),
469
+ CONTRACT_NAME,
470
+ dipTokenAddress,
471
+ STAKING(),
472
+ false, // is interceptor
473
+ stakingOwner,
474
+ "", // registry data
475
+ ""); // component data
476
+
477
+ _createAndSetTokenHandler();
478
+
479
+
480
+ // wiring to external contracts
481
+ StakingStorage storage $ = _getStakingStorage();
482
+ $._protocolNftId = getRegistry().getProtocolNftId();
483
+ $._store = StakingStore(stakingStoreAddress);
484
+ $._reader = StakingStore(stakingStoreAddress).getStakingReader();
485
+ $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
486
+
487
+ registerInterface(type(IStaking).interfaceId);
488
+ }
489
+
490
+
491
+ function _getStakingStorage() private pure returns (StakingStorage storage $) {
492
+ assembly {
493
+ $.slot := STAKING_LOCATION_V1
494
+ }
495
+ }
496
+
497
+ }
@@ -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
+ }
@@ -0,0 +1,146 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
6
+ import {IComponent} from "../shared/IComponent.sol";
7
+ import {InitializableCustom} from "../shared/InitializableCustom.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
10
+ import {IStaking} from "../staking/IStaking.sol";
11
+ import {IVersionable} from "../shared/IVersionable.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
14
+ import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
15
+ import {Seconds} from "../type/Seconds.sol";
16
+ import {StakingStore} from "./StakingStore.sol";
17
+ import {Timestamp} from "../type/Timestamp.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
19
+
20
+ contract StakingReader is
21
+ IRegistryLinked,
22
+ InitializableCustom
23
+ {
24
+
25
+ error ErrorStakingReaderDependenciesAlreadySet();
26
+
27
+ IRegistry private _registry;
28
+ IStaking private _staking;
29
+ StakingStore private _store;
30
+
31
+ constructor(IRegistry registry) InitializableCustom() {
32
+ _registry = registry;
33
+ }
34
+
35
+ function initialize(
36
+ address stakingAddress,
37
+ address stakingStoreAddress
38
+ )
39
+ external
40
+ initializer
41
+ {
42
+ _staking = IStaking(stakingAddress);
43
+ _store = StakingStore(stakingStoreAddress);
44
+ }
45
+
46
+ // view and pure functions
47
+
48
+ function getRegistry() external view returns (IRegistry registry) {
49
+ return _registry;
50
+ }
51
+
52
+ function getStaking() external view returns (IStaking staking) {
53
+ return _staking;
54
+ }
55
+
56
+
57
+ function isTarget(NftId targetNftId) external view returns (bool) {
58
+ return _store.getTargetManager().exists(targetNftId);
59
+ }
60
+
61
+
62
+ function targets() external view returns (uint256) {
63
+ return _store.getTargetManager().nftIds();
64
+ }
65
+
66
+
67
+ function getTargetNftId(uint256 idx) external view returns (NftId) {
68
+ return _store.getTargetManager().getNftId(idx);
69
+ }
70
+
71
+
72
+ function isActive(NftId targetNftId) external view returns (bool) {
73
+ return _store.getTargetManager().isActive(targetNftId);
74
+ }
75
+
76
+
77
+ function activeTargets() external view returns (uint256) {
78
+ return _store.getTargetManager().activeNftIds();
79
+ }
80
+
81
+
82
+ function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
83
+ return _store.getTargetManager().getActiveNftId(idx);
84
+ }
85
+
86
+
87
+ function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
88
+ bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
89
+ if (data.length > 0) {
90
+ return abi.decode(data, (IStaking.TargetInfo));
91
+ }
92
+ }
93
+
94
+
95
+ function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
96
+ bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
97
+ if (data.length > 0) {
98
+ return abi.decode(data, (IStaking.StakeInfo));
99
+ }
100
+ }
101
+
102
+
103
+ function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
104
+ return _store.getStakeBalance(nftId);
105
+ }
106
+
107
+
108
+ function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
109
+ return _store.getRewardBalance(nftId);
110
+ }
111
+
112
+
113
+ function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
114
+ return _store.getBalanceUpdatedAt(nftId);
115
+ }
116
+
117
+
118
+ function getRewardCalculationInput(NftId stakeNftId)
119
+ external
120
+ view
121
+ returns (
122
+ UFixed rewardRate,
123
+ Amount stakeAmount,
124
+ Timestamp lastUpdatedAt
125
+ )
126
+ {
127
+ NftId targetNftId = _registry.getObjectInfo(stakeNftId).parentNftId;
128
+ rewardRate = getTargetInfo(targetNftId).rewardRate;
129
+
130
+ (
131
+ stakeAmount,
132
+ lastUpdatedAt
133
+ ) = _store.getBalanceAndLastUpdatedAt(stakeNftId);
134
+ }
135
+
136
+ // function getTvlAmount(NftId targetNftId, address token) external view returns (Amount tvlAmount);
137
+ // function getStakedAmount(NftId targetNftId) external view returns (Amount stakeAmount);
138
+
139
+ // function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate);
140
+
141
+ // function calculateRewardIncrementAmount(
142
+ // NftId targetNftId,
143
+ // Timestamp rewardsLastUpdatedAt
144
+ // ) external view returns (Amount rewardIncrementAmount);
145
+
146
+ }