@etherisc/gif-next 0.0.2-a105567-464 → 0.0.2-a221fa7-461
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.
- package/README.md +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -239
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +317 -95
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +97 -57
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +104 -136
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +158 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +227 -62
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +52 -48
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1496 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -58
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -41
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +30 -206
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +37 -314
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +47 -35
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +112 -67
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -51
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +36 -46
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +56 -40
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -48
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +43 -164
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -59
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -104
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +22 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +242 -77
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +80 -56
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +117 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -64
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +43 -43
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +41 -45
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +80 -26
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +18 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +20 -13
- package/contracts/instance/IInstanceService.sol +34 -23
- package/contracts/instance/Instance.sol +108 -89
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +49 -9
- package/contracts/instance/InstanceService.sol +159 -78
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +38 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IComponents.sol +0 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +52 -0
- package/contracts/pool/BundleService.sol +32 -44
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -61
- package/contracts/pool/IPoolService.sol +3 -0
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +45 -33
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +17 -41
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +16 -37
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IClaimService.sol +6 -0
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/PolicyService.sol +7 -5
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +5 -6
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +12 -37
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +26 -18
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +86 -95
- package/contracts/registry/RegistryAdmin.sol +283 -155
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +487 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +9 -52
- package/contracts/shared/Component.sol +19 -25
- package/contracts/shared/ComponentService.sol +94 -68
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +21 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +27 -22
- package/contracts/staking/IStaking.sol +41 -26
- package/contracts/staking/IStakingService.sol +42 -44
- package/contracts/staking/StakeManagerLib.sol +101 -26
- package/contracts/staking/Staking.sol +144 -126
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +73 -36
- package/contracts/staking/StakingService.sol +121 -86
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +401 -127
- package/contracts/staking/TargetManagerLib.sol +28 -0
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/NftId.sol +8 -8
- package/contracts/type/ObjectType.sol +171 -69
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RoleId.sol +103 -72
- package/contracts/type/Seconds.sol +10 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +12 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
- package/contracts/registry/ReleaseManager.sol +0 -599
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/staking/IStakingManager.sol +0 -15
- package/contracts/staking/IStakingStore.sol +0 -130
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -3,38 +3,35 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
5
5
|
|
6
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
-
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
8
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
9
|
-
import {Component} from "../shared/Component.sol";
|
10
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
7
|
import {IStaking} from "./IStaking.sol";
|
13
|
-
|
14
|
-
import {
|
8
|
+
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
|
+
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
15
11
|
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
16
12
|
import {KEEP_STATE} from "../type/StateId.sol";
|
17
|
-
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
18
13
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
|
-
import {
|
20
|
-
import {
|
21
|
-
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
14
|
+
import {NftIdSet} from "../shared/NftIdSet.sol";
|
15
|
+
import {PROTOCOL, STAKE, TARGET} from "../type/ObjectType.sol";
|
22
16
|
import {StakingReader} from "./StakingReader.sol";
|
23
17
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
24
18
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
25
|
-
import {
|
26
|
-
import {UFixed
|
27
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
-
import {Versionable} from "../shared/Versionable.sol";
|
29
|
-
|
30
|
-
import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
|
19
|
+
import {StakingLifecycle} from "./StakingLifecycle.sol";
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
31
21
|
|
32
22
|
|
33
23
|
contract StakingStore is
|
34
24
|
AccessManaged,
|
35
|
-
KeyValueStore
|
25
|
+
KeyValueStore,
|
26
|
+
StakingLifecycle
|
36
27
|
{
|
37
28
|
|
29
|
+
event LogStakingStoreReserveBalanceIncreased(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdatedIn);
|
30
|
+
event LogStakingStoreReserveBalanceDecreased(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdatedIn);
|
31
|
+
|
32
|
+
event LogStakingStoreTotalValueLockedIncreased(NftId targetNftId, address token, Amount amount, Amount newBalance, Blocknumber lastUpdatedIn);
|
33
|
+
event LogStakingStoreTotalValueLockedDecreased(NftId targetNftId, address token, Amount amount, Amount newBalance, Blocknumber lastUpdatedIn);
|
34
|
+
|
38
35
|
event LogStakingStoreStakesIncreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
39
36
|
event LogStakingStoreStakesDecreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
40
37
|
|
@@ -43,50 +40,84 @@ contract StakingStore is
|
|
43
40
|
|
44
41
|
event LogStakingStoreRewardsRestaked(NftId nftId, Amount amount, Amount rewardAmount, Amount rewardIncrementAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
45
42
|
|
43
|
+
// in/decreasing reward reserves
|
44
|
+
error ErrorStakingStoreNotTarget(NftId targetNftId);
|
45
|
+
error ErrorStakingStoreRewardReservesInsufficient(NftId targetNftId, Amount dipAmount, Amount reservesBalanceAmount);
|
46
|
+
|
46
47
|
// creating and updating of balance
|
47
48
|
error ErrorStakingStoreBalanceAlreadyInitialized(NftId nftId);
|
48
49
|
error ErrorStakingStoreBalanceNotInitialized(NftId nftId);
|
49
50
|
|
50
51
|
// update balance
|
51
|
-
|
52
|
+
error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId);
|
53
|
+
|
52
54
|
IRegistry private _registry;
|
53
|
-
|
55
|
+
NftIdSet private _targetNftIdSet;
|
54
56
|
StakingReader private _reader;
|
55
57
|
|
58
|
+
// staking rate
|
59
|
+
mapping(uint256 chainId => mapping(address token => UFixed stakingRate)) private _stakingRate;
|
60
|
+
|
61
|
+
// total, stake and reward balances
|
56
62
|
mapping(NftId nftId => Amount stakes) private _stakeBalance;
|
57
63
|
mapping(NftId nftId => Amount rewards) private _rewardBalance;
|
64
|
+
mapping(NftId nftId => Amount reserves) private _reserveBalance;
|
58
65
|
|
59
|
-
// TODO check if this is made redundant by *Info struct updates
|
60
66
|
mapping(NftId nftId => Timestamp lastUpdatedAt) private _lastUpdatedAt;
|
61
67
|
mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
|
62
68
|
|
69
|
+
// total value locked balance
|
70
|
+
mapping(NftId nftId => mapping(address token => Amount tvl)) private _tvlBalance;
|
71
|
+
mapping(NftId nftId => mapping(address token => Amount tvlInDip)) private _tvlInDip;
|
72
|
+
mapping(NftId nftId => Amount tvlRequiredDip) private _tvlRequiredDip;
|
73
|
+
mapping(NftId nftId => Blocknumber lastUpdatedIn) private _tvlLastUpdatedIn;
|
74
|
+
|
63
75
|
|
64
76
|
constructor(IRegistry registry, StakingReader reader)
|
65
77
|
AccessManaged(msg.sender)
|
66
78
|
{
|
79
|
+
// set final authority
|
80
|
+
setAuthority(registry.getAuthority());
|
81
|
+
|
82
|
+
// set internal variables
|
67
83
|
_registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
|
68
|
-
address authority = _registry.getAuthority();
|
69
|
-
setAuthority(authority);
|
70
|
-
|
71
84
|
_reader = reader;
|
72
|
-
|
85
|
+
_targetNftIdSet = new NftIdSet();
|
86
|
+
|
87
|
+
// register protocol target
|
88
|
+
_createTarget(
|
89
|
+
NftIdLib.toNftId(1101),
|
90
|
+
IStaking.TargetInfo({
|
91
|
+
objectType: PROTOCOL(),
|
92
|
+
chainId: 1,
|
93
|
+
lockingPeriod: TargetManagerLib.getDefaultLockingPeriod(),
|
94
|
+
rewardRate: TargetManagerLib.getDefaultRewardRate()}));
|
73
95
|
}
|
74
96
|
|
75
97
|
|
76
|
-
//---
|
98
|
+
//--- staking rate specific functions -----------------------------------//
|
99
|
+
|
100
|
+
function setStakingRate(
|
101
|
+
uint256 chainId,
|
102
|
+
address token,
|
103
|
+
UFixed stakingRate
|
104
|
+
)
|
105
|
+
external
|
106
|
+
restricted()
|
107
|
+
{
|
108
|
+
_stakingRate[chainId][token] = stakingRate;
|
109
|
+
}
|
110
|
+
|
111
|
+
//--- target specific functions -----------------------------------------//
|
77
112
|
|
78
113
|
function createTarget(
|
79
114
|
NftId targetNftId,
|
80
115
|
IStaking.TargetInfo memory targetInfo
|
81
116
|
)
|
82
117
|
external
|
118
|
+
restricted()
|
83
119
|
{
|
84
|
-
|
85
|
-
targetNftId.toKey32(TARGET()),
|
86
|
-
abi.encode(targetInfo));
|
87
|
-
|
88
|
-
_createBalance(targetNftId, AmountLib.zero());
|
89
|
-
_targetManager.add(targetNftId);
|
120
|
+
_createTarget(targetNftId, targetInfo);
|
90
121
|
}
|
91
122
|
|
92
123
|
|
@@ -95,26 +126,134 @@ contract StakingStore is
|
|
95
126
|
IStaking.TargetInfo memory targetInfo
|
96
127
|
)
|
97
128
|
external
|
129
|
+
restricted()
|
98
130
|
{
|
99
131
|
_update(
|
100
132
|
targetNftId.toKey32(TARGET()),
|
101
133
|
abi.encode(targetInfo), KEEP_STATE());
|
102
134
|
}
|
103
135
|
|
136
|
+
|
137
|
+
function increaseReserves(
|
138
|
+
NftId targetNftId,
|
139
|
+
Amount dipAmount
|
140
|
+
)
|
141
|
+
external
|
142
|
+
restricted()
|
143
|
+
returns (Amount newReserveBalance)
|
144
|
+
{
|
145
|
+
newReserveBalance = _reserveBalance[targetNftId] + dipAmount;
|
146
|
+
Blocknumber lastUpdatedIn = _updateReserves(targetNftId, newReserveBalance);
|
147
|
+
|
148
|
+
emit LogStakingStoreReserveBalanceIncreased(targetNftId, dipAmount, newReserveBalance, lastUpdatedIn);
|
149
|
+
}
|
150
|
+
|
151
|
+
|
152
|
+
function decreaseReserves(
|
153
|
+
NftId targetNftId,
|
154
|
+
Amount dipAmount
|
155
|
+
)
|
156
|
+
external
|
157
|
+
restricted()
|
158
|
+
returns (Amount newReserveBalance)
|
159
|
+
{
|
160
|
+
Amount reserveAmount = _reserveBalance[targetNftId];
|
161
|
+
if (dipAmount > reserveAmount) {
|
162
|
+
revert ErrorStakingStoreRewardReservesInsufficient(
|
163
|
+
targetNftId,
|
164
|
+
dipAmount,
|
165
|
+
reserveAmount);
|
166
|
+
}
|
167
|
+
|
168
|
+
newReserveBalance = _reserveBalance[targetNftId] - dipAmount;
|
169
|
+
Blocknumber lastUpdatedIn = _updateReserves(targetNftId, newReserveBalance);
|
170
|
+
|
171
|
+
emit LogStakingStoreReserveBalanceDecreased(targetNftId, dipAmount, newReserveBalance, lastUpdatedIn);
|
172
|
+
}
|
173
|
+
|
174
|
+
|
175
|
+
//--- tvl specific functions -------------------------------------//
|
176
|
+
|
177
|
+
function increaseTotalValueLocked(
|
178
|
+
NftId targetNftId,
|
179
|
+
UFixed stakingRate,
|
180
|
+
address token,
|
181
|
+
Amount amount
|
182
|
+
)
|
183
|
+
external
|
184
|
+
restricted()
|
185
|
+
returns (Amount newBalance)
|
186
|
+
{
|
187
|
+
(
|
188
|
+
Blocknumber tvlLastUpdatedIn,
|
189
|
+
Amount oldBalance,
|
190
|
+
Amount oldDipBalance
|
191
|
+
) = _getAndVerifyTvl(targetNftId, token);
|
192
|
+
|
193
|
+
newBalance = oldBalance + amount;
|
194
|
+
Amount newDipBalance = newBalance.multiplyWith(stakingRate);
|
195
|
+
|
196
|
+
// update new tvl balances
|
197
|
+
_tvlBalance[targetNftId][token] = newBalance;
|
198
|
+
_tvlInDip[targetNftId][token] = newDipBalance;
|
199
|
+
|
200
|
+
// update new amount of required dip
|
201
|
+
_tvlRequiredDip[targetNftId] = _tvlRequiredDip[targetNftId] - oldDipBalance + newDipBalance;
|
202
|
+
|
203
|
+
// update last updated in
|
204
|
+
_tvlLastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
205
|
+
|
206
|
+
emit LogStakingStoreTotalValueLockedIncreased(targetNftId, token, amount, newBalance, tvlLastUpdatedIn);
|
207
|
+
}
|
208
|
+
|
209
|
+
|
210
|
+
function decreaseTotalValueLocked(
|
211
|
+
NftId targetNftId,
|
212
|
+
UFixed stakingRate,
|
213
|
+
address token,
|
214
|
+
Amount amount
|
215
|
+
)
|
216
|
+
external
|
217
|
+
restricted()
|
218
|
+
returns (Amount newBalance)
|
219
|
+
{
|
220
|
+
(
|
221
|
+
Blocknumber tvlLastUpdatedIn,
|
222
|
+
Amount oldBalance,
|
223
|
+
Amount oldDipBalance
|
224
|
+
) = _getAndVerifyTvl(targetNftId, token);
|
225
|
+
|
226
|
+
newBalance = oldBalance - amount;
|
227
|
+
Amount newDipBalance = AmountLib.toAmount((
|
228
|
+
stakingRate * newBalance.toUFixed()).toInt());
|
229
|
+
|
230
|
+
// update new tvl balances
|
231
|
+
_tvlBalance[targetNftId][token] = newBalance;
|
232
|
+
_tvlInDip[targetNftId][token] = newDipBalance;
|
233
|
+
|
234
|
+
// update new amount of required dip
|
235
|
+
_tvlRequiredDip[targetNftId] = _tvlRequiredDip[targetNftId] - oldDipBalance + newDipBalance;
|
236
|
+
|
237
|
+
// update last updated in
|
238
|
+
_tvlLastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
239
|
+
|
240
|
+
emit LogStakingStoreTotalValueLockedDecreased(targetNftId, token, amount, newBalance, tvlLastUpdatedIn);
|
241
|
+
}
|
242
|
+
|
104
243
|
//--- stake specific functions -------------------------------------//
|
105
244
|
|
106
245
|
function create(
|
107
246
|
NftId stakeNftId,
|
108
|
-
IStaking.StakeInfo memory stakeInfo
|
109
|
-
Amount stakeAmount
|
247
|
+
IStaking.StakeInfo memory stakeInfo
|
110
248
|
)
|
111
249
|
external
|
250
|
+
restricted()
|
112
251
|
{
|
113
252
|
_create(
|
114
253
|
stakeNftId.toKey32(STAKE()),
|
115
254
|
abi.encode(stakeInfo));
|
116
255
|
|
117
|
-
|
256
|
+
_createStakeBalance(stakeNftId);
|
118
257
|
}
|
119
258
|
|
120
259
|
function update(
|
@@ -122,6 +261,7 @@ contract StakingStore is
|
|
122
261
|
IStaking.StakeInfo memory stakeInfo
|
123
262
|
)
|
124
263
|
external
|
264
|
+
restricted()
|
125
265
|
{
|
126
266
|
_update(
|
127
267
|
stakeNftId.toKey32(STAKE()),
|
@@ -132,57 +272,52 @@ contract StakingStore is
|
|
132
272
|
//--- general functions --------------------------------------------//
|
133
273
|
|
134
274
|
|
135
|
-
function
|
275
|
+
function increaseStake(
|
276
|
+
NftId nftId,
|
277
|
+
NftId targetNftId,
|
278
|
+
Amount amount
|
279
|
+
)
|
136
280
|
external
|
281
|
+
restricted()
|
137
282
|
{
|
138
|
-
Blocknumber lastUpdatedIn =
|
139
|
-
bool updated = false;
|
140
|
-
|
141
|
-
if (lastUpdatedIn.eqz()) {
|
142
|
-
revert ErrorStakingStoreBalanceNotInitialized(nftId);
|
143
|
-
}
|
283
|
+
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
144
284
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
emit LogStakingStoreStakesIncreased(nftId, amount, _stakeBalance[nftId], lastUpdatedIn);
|
150
|
-
}
|
285
|
+
_updateStakeBalance(
|
286
|
+
nftId,
|
287
|
+
_stakeBalance[nftId] + amount, // new stake balance
|
288
|
+
_rewardBalance[nftId]); // unchanged reward balance
|
151
289
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
_rewardBalance[
|
156
|
-
emit LogStakingStoreRewardsIncreased(nftId, rewardIncrementAmount, _rewardBalance[nftId], lastUpdatedIn);
|
157
|
-
}
|
290
|
+
_updateTargetBalance(
|
291
|
+
targetNftId,
|
292
|
+
_stakeBalance[targetNftId] + amount,
|
293
|
+
_rewardBalance[targetNftId]);
|
158
294
|
|
159
|
-
|
160
|
-
_lastUpdatedAt[nftId] = TimestampLib.blockTimestamp();
|
161
|
-
_lastUpdatedIn[nftId] = BlocknumberLib.currentBlocknumber();
|
162
|
-
}
|
295
|
+
emit LogStakingStoreStakesIncreased(nftId, amount, _stakeBalance[nftId], lastUpdatedIn);
|
163
296
|
}
|
164
297
|
|
165
298
|
|
166
299
|
function restakeRewards(
|
167
300
|
NftId nftId,
|
301
|
+
NftId targetNftId,
|
168
302
|
Amount rewardIncrementAmount
|
169
303
|
)
|
170
304
|
external
|
305
|
+
restricted()
|
171
306
|
{
|
172
|
-
Blocknumber lastUpdatedIn =
|
307
|
+
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
173
308
|
Amount stakeAmount = _stakeBalance[nftId];
|
174
309
|
Amount rewardAmount = _rewardBalance[nftId];
|
175
310
|
|
176
|
-
if (lastUpdatedIn.eqz()) {
|
177
|
-
revert ErrorStakingStoreBalanceNotInitialized(nftId);
|
178
|
-
}
|
179
|
-
|
180
311
|
// move all rewards to stake balance
|
181
|
-
|
182
|
-
|
312
|
+
_updateStakeBalance(
|
313
|
+
nftId,
|
314
|
+
stakeAmount + rewardAmount + rewardIncrementAmount, // new stake balance
|
315
|
+
AmountLib.zero()); // new reward balance
|
183
316
|
|
184
|
-
|
185
|
-
|
317
|
+
_updateTargetBalance(
|
318
|
+
targetNftId,
|
319
|
+
_stakeBalance[targetNftId] + rewardAmount + rewardIncrementAmount,
|
320
|
+
_rewardBalance[targetNftId] - rewardAmount);
|
186
321
|
|
187
322
|
emit LogStakingStoreRewardsRestaked(nftId, stakeAmount, rewardAmount, rewardIncrementAmount, _stakeBalance[nftId], lastUpdatedIn);
|
188
323
|
}
|
@@ -190,22 +325,24 @@ contract StakingStore is
|
|
190
325
|
|
191
326
|
function updateRewards(
|
192
327
|
NftId nftId,
|
328
|
+
NftId targetNftId,
|
193
329
|
Amount rewardIncrementAmount
|
194
330
|
)
|
195
331
|
external
|
332
|
+
restricted()
|
196
333
|
{
|
197
|
-
Blocknumber lastUpdatedIn =
|
198
|
-
Amount rewardAmount = _rewardBalance[nftId];
|
199
|
-
|
200
|
-
if (lastUpdatedIn.eqz()) {
|
201
|
-
revert ErrorStakingStoreBalanceNotInitialized(nftId);
|
202
|
-
}
|
334
|
+
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
203
335
|
|
204
|
-
//
|
205
|
-
|
336
|
+
// increse rewards by increment
|
337
|
+
_updateStakeBalance(
|
338
|
+
nftId,
|
339
|
+
_stakeBalance[nftId], // unchanged stake balance
|
340
|
+
_rewardBalance[nftId] + rewardIncrementAmount); // new reward balance
|
206
341
|
|
207
|
-
|
208
|
-
|
342
|
+
_updateTargetBalance(
|
343
|
+
targetNftId,
|
344
|
+
_stakeBalance[targetNftId],
|
345
|
+
_rewardBalance[targetNftId] + rewardIncrementAmount);
|
209
346
|
|
210
347
|
emit LogStakingStoreRewardsIncreased(nftId, rewardIncrementAmount, _rewardBalance[nftId], lastUpdatedIn);
|
211
348
|
}
|
@@ -213,73 +350,62 @@ contract StakingStore is
|
|
213
350
|
|
214
351
|
function claimUpTo(
|
215
352
|
NftId nftId,
|
216
|
-
|
353
|
+
NftId targetNftId,
|
354
|
+
Amount maxClaimAmount
|
217
355
|
)
|
218
356
|
external
|
219
|
-
|
357
|
+
restricted()
|
358
|
+
returns (Amount claimedAmount)
|
220
359
|
{
|
221
|
-
Blocknumber lastUpdatedIn =
|
222
|
-
bool updated = false;
|
223
|
-
|
224
|
-
if (lastUpdatedIn.eqz()) {
|
225
|
-
revert ErrorStakingStoreBalanceNotInitialized(nftId);
|
226
|
-
}
|
360
|
+
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
227
361
|
|
228
362
|
// determine the claimable rewards amount
|
229
|
-
|
230
|
-
rewardsClaimedAmount = _rewardBalance[nftId];
|
231
|
-
} else {
|
232
|
-
rewardsClaimedAmount = maxRewardAmount;
|
233
|
-
}
|
363
|
+
claimedAmount = AmountLib.min(maxClaimAmount, _rewardBalance[nftId]);
|
234
364
|
|
235
|
-
// decrease
|
236
|
-
|
365
|
+
// decrease rewards by claimed amount
|
366
|
+
_updateStakeBalance(
|
367
|
+
nftId,
|
368
|
+
_stakeBalance[nftId], // unchanged stake balance
|
369
|
+
_rewardBalance[nftId] - claimedAmount); // new reward balance
|
237
370
|
|
238
|
-
|
239
|
-
|
371
|
+
_updateTargetBalance(
|
372
|
+
targetNftId,
|
373
|
+
_stakeBalance[targetNftId],
|
374
|
+
_rewardBalance[targetNftId] - claimedAmount);
|
240
375
|
|
241
|
-
emit LogStakingStoreRewardsDecreased(nftId,
|
376
|
+
emit LogStakingStoreRewardsDecreased(nftId, claimedAmount, _rewardBalance[nftId], lastUpdatedIn);
|
242
377
|
}
|
243
378
|
|
244
379
|
|
245
380
|
function unstakeUpTo(
|
246
381
|
NftId nftId,
|
382
|
+
NftId targetNftId,
|
247
383
|
Amount maxUnstakeAmount,
|
248
384
|
Amount maxClaimAmount
|
249
385
|
)
|
250
386
|
external
|
387
|
+
restricted()
|
251
388
|
returns (
|
252
389
|
Amount unstakedAmount,
|
253
390
|
Amount claimedAmount
|
254
391
|
)
|
255
392
|
{
|
256
|
-
Blocknumber lastUpdatedIn =
|
257
|
-
bool updated = false;
|
393
|
+
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
258
394
|
|
259
|
-
|
260
|
-
|
261
|
-
|
395
|
+
// determine amounts
|
396
|
+
unstakedAmount = AmountLib.min(maxUnstakeAmount, _stakeBalance[nftId]);
|
397
|
+
claimedAmount = AmountLib.min(maxClaimAmount, _rewardBalance[nftId]);
|
262
398
|
|
263
|
-
//
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
}
|
399
|
+
// decrease stakes and rewards as determined
|
400
|
+
_updateStakeBalance(
|
401
|
+
nftId,
|
402
|
+
_stakeBalance[nftId] - unstakedAmount, // unchanged stake balance
|
403
|
+
_rewardBalance[nftId] - claimedAmount); // new reward balance
|
269
404
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
claimedAmount = maxClaimAmount;
|
275
|
-
}
|
276
|
-
|
277
|
-
// decrease amounts
|
278
|
-
_stakeBalance[nftId] = _stakeBalance[nftId] - unstakedAmount;
|
279
|
-
_rewardBalance[nftId] = _rewardBalance[nftId] - claimedAmount;
|
280
|
-
|
281
|
-
_lastUpdatedAt[nftId] = TimestampLib.blockTimestamp();
|
282
|
-
_lastUpdatedIn[nftId] = BlocknumberLib.currentBlocknumber();
|
405
|
+
_updateTargetBalance(
|
406
|
+
targetNftId,
|
407
|
+
_stakeBalance[targetNftId] - unstakedAmount,
|
408
|
+
_rewardBalance[targetNftId] - claimedAmount);
|
283
409
|
|
284
410
|
emit LogStakingStoreStakesDecreased(nftId, unstakedAmount, _stakeBalance[nftId], lastUpdatedIn);
|
285
411
|
emit LogStakingStoreRewardsDecreased(nftId, claimedAmount, _rewardBalance[nftId], lastUpdatedIn);
|
@@ -291,41 +417,189 @@ contract StakingStore is
|
|
291
417
|
return _reader;
|
292
418
|
}
|
293
419
|
|
294
|
-
|
295
|
-
|
420
|
+
// TODO rename
|
421
|
+
function getTargetNftIdSet() external view returns (NftIdSet targetNftIdSet){
|
422
|
+
return _targetNftIdSet;
|
296
423
|
}
|
297
424
|
|
298
|
-
function
|
299
|
-
return exists(stakeNftId.toKey32(STAKE()));
|
300
|
-
}
|
425
|
+
function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) { return _stakingRate[chainId][token]; }
|
301
426
|
|
427
|
+
function exists(NftId stakeNftId) external view returns (bool) { return exists(stakeNftId.toKey32(STAKE())); }
|
428
|
+
|
429
|
+
function getTotalValueLocked(NftId nftId, address token) external view returns (Amount tvlBalanceAmount) { return _tvlBalance[nftId][token]; }
|
430
|
+
function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredAmount) { return _tvlRequiredDip[nftId]; }
|
431
|
+
|
432
|
+
function getReserveBalance(NftId nftId) external view returns (Amount balanceAmount) { return _reserveBalance[nftId]; }
|
302
433
|
function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) { return _stakeBalance[nftId]; }
|
303
434
|
function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) { return _rewardBalance[nftId]; }
|
304
435
|
function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) { return _lastUpdatedAt[nftId]; }
|
436
|
+
function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) { return _lastUpdatedIn[nftId]; }
|
437
|
+
|
305
438
|
|
306
|
-
function
|
439
|
+
function getTargetBalances(NftId nftId)
|
307
440
|
external
|
308
441
|
view
|
309
442
|
returns (
|
310
443
|
Amount stakeBalance,
|
444
|
+
Amount rewardBalance,
|
445
|
+
Amount reserveBalance,
|
446
|
+
Blocknumber lastUpdatedIn
|
447
|
+
)
|
448
|
+
{
|
449
|
+
stakeBalance = _stakeBalance[nftId];
|
450
|
+
rewardBalance = _rewardBalance[nftId];
|
451
|
+
reserveBalance = _reserveBalance[nftId];
|
452
|
+
lastUpdatedIn = _lastUpdatedIn[nftId];
|
453
|
+
}
|
454
|
+
|
455
|
+
|
456
|
+
function getStakeBalances(NftId nftId)
|
457
|
+
external
|
458
|
+
view
|
459
|
+
returns (
|
460
|
+
Amount stakeBalance,
|
461
|
+
Amount rewardBalance,
|
311
462
|
Timestamp lastUpdatedAt
|
312
463
|
)
|
313
464
|
{
|
314
465
|
stakeBalance = _stakeBalance[nftId];
|
466
|
+
rewardBalance = _rewardBalance[nftId];
|
315
467
|
lastUpdatedAt = _lastUpdatedAt[nftId];
|
316
468
|
}
|
317
469
|
|
318
470
|
//--- private functions -------------------------------------------//
|
319
471
|
|
320
|
-
function
|
472
|
+
function _createTarget(
|
473
|
+
NftId targetNftId,
|
474
|
+
IStaking.TargetInfo memory targetInfo
|
475
|
+
)
|
476
|
+
private
|
477
|
+
{
|
478
|
+
_create(
|
479
|
+
targetNftId.toKey32(TARGET()),
|
480
|
+
abi.encode(targetInfo));
|
481
|
+
|
482
|
+
// initialize tvl and stake balance
|
483
|
+
_tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
|
484
|
+
_createTargetBalance(targetNftId);
|
485
|
+
|
486
|
+
_targetNftIdSet.add(targetNftId);
|
487
|
+
}
|
488
|
+
|
489
|
+
function _updateReserves(
|
490
|
+
NftId targetNftId,
|
491
|
+
Amount newRewardBalance
|
492
|
+
)
|
493
|
+
private
|
494
|
+
returns (Blocknumber lastUpdatedIn)
|
495
|
+
{
|
496
|
+
if (_lastUpdatedIn[targetNftId].eqz()) {
|
497
|
+
revert ErrorStakingStoreNotTarget(targetNftId);
|
498
|
+
}
|
499
|
+
|
500
|
+
lastUpdatedIn = _lastUpdatedIn[targetNftId];
|
501
|
+
|
502
|
+
_reserveBalance[targetNftId] = newRewardBalance;
|
503
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
504
|
+
}
|
505
|
+
|
506
|
+
|
507
|
+
function _createTargetBalance(NftId nftId)
|
508
|
+
private
|
509
|
+
{
|
510
|
+
if (_lastUpdatedIn[nftId].gtz()) {
|
511
|
+
revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
|
512
|
+
}
|
513
|
+
|
514
|
+
// set target balances to 0
|
515
|
+
_stakeBalance[nftId] = AmountLib.zero();
|
516
|
+
_rewardBalance[nftId] = AmountLib.zero();
|
517
|
+
_reserveBalance[nftId] = AmountLib.zero();
|
518
|
+
|
519
|
+
// set last updated in to current block number
|
520
|
+
// we don't need last updated at timestamp for targets
|
521
|
+
_lastUpdatedIn[nftId] = BlocknumberLib.currentBlocknumber();
|
522
|
+
}
|
523
|
+
|
524
|
+
|
525
|
+
function _createStakeBalance(NftId nftId)
|
526
|
+
private
|
527
|
+
{
|
321
528
|
if (_lastUpdatedIn[nftId].gtz()) {
|
322
529
|
revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
|
323
530
|
}
|
324
531
|
|
325
|
-
|
532
|
+
// set stake balances to 0
|
533
|
+
_stakeBalance[nftId] = AmountLib.zero();
|
326
534
|
_rewardBalance[nftId] = AmountLib.zero();
|
327
535
|
|
536
|
+
// set last updated at/in to current timestamp/block number
|
328
537
|
_lastUpdatedAt[nftId] = TimestampLib.blockTimestamp();
|
329
538
|
_lastUpdatedIn[nftId] = BlocknumberLib.currentBlocknumber();
|
330
539
|
}
|
540
|
+
|
541
|
+
|
542
|
+
function _updateStakeBalance(
|
543
|
+
NftId stakeNftId,
|
544
|
+
Amount newStakeAmount,
|
545
|
+
Amount newRewardAmount
|
546
|
+
)
|
547
|
+
private
|
548
|
+
{
|
549
|
+
_stakeBalance[stakeNftId] = newStakeAmount;
|
550
|
+
_rewardBalance[stakeNftId] = newRewardAmount;
|
551
|
+
|
552
|
+
_lastUpdatedAt[stakeNftId] = TimestampLib.blockTimestamp();
|
553
|
+
_lastUpdatedIn[stakeNftId] = BlocknumberLib.currentBlocknumber();
|
554
|
+
}
|
555
|
+
|
556
|
+
|
557
|
+
function _updateTargetBalance(
|
558
|
+
NftId targetNftId,
|
559
|
+
Amount newStakeAmount,
|
560
|
+
Amount newRewardAmount
|
561
|
+
)
|
562
|
+
private
|
563
|
+
{
|
564
|
+
_stakeBalance[targetNftId] = newStakeAmount;
|
565
|
+
_rewardBalance[targetNftId] = newRewardAmount;
|
566
|
+
|
567
|
+
// for targets we don't need the timestamp, just the blocknumber
|
568
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
569
|
+
}
|
570
|
+
|
571
|
+
function _checkBalanceExists(NftId nftId)
|
572
|
+
private
|
573
|
+
view
|
574
|
+
returns (Blocknumber lastUpdatedIn)
|
575
|
+
{
|
576
|
+
lastUpdatedIn = _lastUpdatedIn[nftId];
|
577
|
+
|
578
|
+
if (lastUpdatedIn.eqz()) {
|
579
|
+
revert ErrorStakingStoreBalanceNotInitialized(nftId);
|
580
|
+
}
|
581
|
+
}
|
582
|
+
|
583
|
+
|
584
|
+
function _getAndVerifyTvl(
|
585
|
+
NftId targetNftId,
|
586
|
+
address token
|
587
|
+
)
|
588
|
+
private
|
589
|
+
view
|
590
|
+
returns (
|
591
|
+
Blocknumber tvlLastUpdatedIn,
|
592
|
+
Amount oldBalance,
|
593
|
+
Amount oldDipBalance
|
594
|
+
)
|
595
|
+
{
|
596
|
+
tvlLastUpdatedIn = _tvlLastUpdatedIn[targetNftId];
|
597
|
+
|
598
|
+
if (tvlLastUpdatedIn.eqz()) {
|
599
|
+
revert ErrorStakingStoreTvlBalanceNotInitialized(targetNftId);
|
600
|
+
}
|
601
|
+
|
602
|
+
oldBalance = _tvlBalance[targetNftId][token];
|
603
|
+
oldDipBalance = _tvlInDip[targetNftId][token];
|
604
|
+
}
|
331
605
|
}
|