@etherisc/gif-next 0.0.2-676522f-203 → 0.0.2-683d8b2-607
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 +1505 -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 +29 -254
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -58
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -150
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -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 +230 -65
- 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 +53 -49
- 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 +1155 -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 +772 -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 +1063 -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 +1477 -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 +54 -42
- 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 +11 -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 +18 -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 +43 -39
- 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 +48 -36
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -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 +68 -52
- 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 +17 -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 +57 -41
- 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 +61 -49
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +24 -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 +39 -31
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1487 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1876 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -60
- 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 +182 -88
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1599 -153
- 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 +38 -26
- 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 +1140 -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 +89 -77
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +53 -57
- 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 +20 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +17 -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 +24 -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/MainnetContract.sol/MainnetContract.dbg.json +4 -0
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +34 -0
- 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 +44 -44
- 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 +42 -46
- 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 +590 -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 +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -104
- package/contracts/distribution/DistributionService.sol +15 -25
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -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 -266
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +52 -12
- 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/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -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 +49 -0
- package/contracts/pool/BundleService.sol +32 -44
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -60
- 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 +40 -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 +6 -9
- package/contracts/product/PolicyService.sol +8 -6
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +7 -8
- 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 +37 -22
- package/contracts/registry/GlobalRegistry.sol +89 -0
- package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
- package/contracts/registry/IGlobalRegistry.sol +17 -0
- package/contracts/registry/IRegistry.sol +25 -18
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +129 -150
- package/contracts/registry/RegistryAdmin.sol +358 -150
- 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 +533 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +9 -52
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +45 -60
- 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 +11 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -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 +26 -19
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/MainnetContract.sol +15 -0
- 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 +139 -125
- 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 +4 -5
- 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 -596
- 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
|
@@ -22,9 +22,15 @@ interface IStakingService is IService
|
|
|
22
22
|
event LogStakingServiceLockingPeriodSet(NftId targetNftId, Seconds oldLockingDuration, Seconds lockingDuration);
|
|
23
23
|
event LogStakingServiceRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
|
|
24
24
|
|
|
25
|
+
event LogStakingServiceRewardReservesIncreased(NftId targetNftId, address rewardProvider, Amount dipAmount, Amount newBalance);
|
|
26
|
+
event LogStakingServiceRewardReservesDecreased(NftId targetNftId, address targetOwner, Amount dipAmount, Amount newBalance);
|
|
27
|
+
|
|
25
28
|
event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
|
|
26
|
-
event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount);
|
|
29
|
+
event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount, Amount stakeBalance);
|
|
30
|
+
event LogStakingServiceUnstaked(NftId stakeNftId, address stakeOwner, Amount totalAmount);
|
|
31
|
+
|
|
27
32
|
event LogStakingServiceRewardsUpdated(NftId stakeNftId);
|
|
33
|
+
event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
|
|
28
34
|
|
|
29
35
|
// modifiers
|
|
30
36
|
error ErrorStakingServiceNotNftOwner(NftId nftId, address expectedOwner, address owner);
|
|
@@ -38,6 +44,13 @@ interface IStakingService is IService
|
|
|
38
44
|
error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
|
|
39
45
|
error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
|
|
40
46
|
|
|
47
|
+
/// @dev Set the protocol reward rate stake locking period to the specified duration.
|
|
48
|
+
/// Permissioned: only staking owner
|
|
49
|
+
// TODO implement
|
|
50
|
+
// function setProtocolRewardRate(UFixed rewardRate) external;
|
|
51
|
+
// function setProtocolLockingPeriod(Seconds lockingPeriod) external;
|
|
52
|
+
// TODO also make sure that protocol rewards can be refilled and withdrawn
|
|
53
|
+
|
|
41
54
|
/// @dev creates/registers an on-chain instance staking target.
|
|
42
55
|
/// function granted to instance service
|
|
43
56
|
function createInstanceTarget(
|
|
@@ -46,13 +59,25 @@ interface IStakingService is IService
|
|
|
46
59
|
UFixed initialRewardRate
|
|
47
60
|
) external;
|
|
48
61
|
|
|
49
|
-
/// @dev
|
|
50
|
-
///
|
|
51
|
-
function
|
|
62
|
+
/// @dev Set the instance stake locking period to the specified duration.
|
|
63
|
+
/// Permissioned: Only owner of the specified target.
|
|
64
|
+
function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod) external;
|
|
65
|
+
|
|
66
|
+
/// @dev Set the instance reward rate to the specified value.
|
|
67
|
+
/// Permissioned: Only owner of the specified target.
|
|
68
|
+
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
|
|
69
|
+
|
|
70
|
+
/// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
|
|
71
|
+
/// unpermissioned: anybody may fill up staking reward reserves
|
|
72
|
+
function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
|
|
52
73
|
|
|
53
|
-
/// @dev
|
|
54
|
-
///
|
|
55
|
-
function
|
|
74
|
+
/// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the sender
|
|
75
|
+
/// unpermissioned: anybody may fill up staking reward reserves
|
|
76
|
+
function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
|
77
|
+
|
|
78
|
+
/// @dev Defunds the staking reward reserves for the specified target
|
|
79
|
+
/// Permissioned: only the target owner may call this function
|
|
80
|
+
function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount) external returns (Amount newBalance);
|
|
56
81
|
|
|
57
82
|
/// @dev create a new stake with amount DIP to the specified target
|
|
58
83
|
/// returns the id of the newly minted stake nft
|
|
@@ -68,7 +93,7 @@ interface IStakingService is IService
|
|
|
68
93
|
|
|
69
94
|
|
|
70
95
|
/// @dev increase an existing stake by amount DIP
|
|
71
|
-
/// updates the staking reward amount
|
|
96
|
+
/// updates and restakes the staking reward amount
|
|
72
97
|
/// function restricted to the current stake owner
|
|
73
98
|
function stake(
|
|
74
99
|
NftId stakeNftId,
|
|
@@ -77,15 +102,6 @@ interface IStakingService is IService
|
|
|
77
102
|
external;
|
|
78
103
|
|
|
79
104
|
|
|
80
|
-
/// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
|
|
81
|
-
/// all related stakes and all accumulated reward DIP are transferred to the current stake holder
|
|
82
|
-
/// function restricted to the current stake owner
|
|
83
|
-
function restake(
|
|
84
|
-
NftId stakeNftId
|
|
85
|
-
)
|
|
86
|
-
external;
|
|
87
|
-
|
|
88
|
-
|
|
89
105
|
/// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
|
|
90
106
|
/// all related stakes and all accumulated reward DIP are transferred to the current stake holder
|
|
91
107
|
/// function restricted to the current stake owner
|
|
@@ -99,15 +115,6 @@ interface IStakingService is IService
|
|
|
99
115
|
);
|
|
100
116
|
|
|
101
117
|
|
|
102
|
-
/// @dev decrease an existing stake by amount DIP
|
|
103
|
-
/// updates the staking reward amount
|
|
104
|
-
/// function restricted to the current stake owner
|
|
105
|
-
function unstake(
|
|
106
|
-
NftId stakeNftId,
|
|
107
|
-
Amount amount
|
|
108
|
-
)
|
|
109
|
-
external;
|
|
110
|
-
|
|
111
118
|
/// @dev updates the reward balance of the stake using the current reward rate.
|
|
112
119
|
function updateRewards(
|
|
113
120
|
NftId stakeNftId
|
|
@@ -115,28 +122,19 @@ interface IStakingService is IService
|
|
|
115
122
|
external;
|
|
116
123
|
|
|
117
124
|
|
|
118
|
-
/// @dev
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
function increaseTotalValueLocked(
|
|
122
|
-
NftId targetNftId,
|
|
123
|
-
address token,
|
|
124
|
-
Amount amount
|
|
125
|
+
/// @dev claims all available rewards.
|
|
126
|
+
function claimRewards(
|
|
127
|
+
NftId stakeNftId
|
|
125
128
|
)
|
|
126
|
-
external
|
|
127
|
-
returns (Amount totalValueLocked);
|
|
129
|
+
external;
|
|
128
130
|
|
|
129
131
|
|
|
130
|
-
/// @dev
|
|
131
|
-
/// function
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
NftId targetNftId,
|
|
135
|
-
address token,
|
|
136
|
-
Amount amount
|
|
132
|
+
/// @dev unstakes all dips (stakes and rewards) of an existing stake.
|
|
133
|
+
/// function restricted to the current stake owner
|
|
134
|
+
function unstake(
|
|
135
|
+
NftId stakeNftId
|
|
137
136
|
)
|
|
138
|
-
external
|
|
139
|
-
returns (Amount totalValueLocked);
|
|
137
|
+
external;
|
|
140
138
|
|
|
141
139
|
|
|
142
140
|
/// @dev sets total value locked data for a target contract on a different chain.
|
|
@@ -13,41 +13,115 @@ import {NftId} from "../type/NftId.sol";
|
|
|
13
13
|
import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
|
|
14
14
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
|
15
15
|
import {StakingReader} from "./StakingReader.sol";
|
|
16
|
+
import {StakingStore} from "./StakingStore.sol";
|
|
16
17
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
|
17
18
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
library StakeManagerLib {
|
|
21
22
|
|
|
22
|
-
function
|
|
23
|
+
function stake(
|
|
24
|
+
IRegistry registry,
|
|
23
25
|
StakingReader stakingReader,
|
|
24
|
-
|
|
26
|
+
StakingStore stakingStore,
|
|
27
|
+
NftId stakeNftId,
|
|
28
|
+
Amount stakeAmount
|
|
29
|
+
)
|
|
30
|
+
external
|
|
31
|
+
returns (Amount stakeBalance)
|
|
32
|
+
{
|
|
33
|
+
// check that target is active for staking
|
|
34
|
+
(
|
|
35
|
+
UFixed rewardRate,
|
|
36
|
+
Seconds lockingPeriod
|
|
37
|
+
) = checkStakeParameters(
|
|
38
|
+
stakingReader,
|
|
39
|
+
stakeNftId);
|
|
40
|
+
|
|
41
|
+
// calculate new rewards (if any)
|
|
42
|
+
(
|
|
43
|
+
Amount rewardIncrementAmount,
|
|
44
|
+
Amount currentTotalDipAmount
|
|
45
|
+
) = calculateRewardIncrease(
|
|
46
|
+
stakingReader,
|
|
47
|
+
stakeNftId,
|
|
48
|
+
rewardRate);
|
|
49
|
+
|
|
50
|
+
stakeBalance = currentTotalDipAmount + stakeAmount;
|
|
51
|
+
|
|
52
|
+
// TODO check that additional dip, rewards and rewards increment
|
|
53
|
+
// are still ok with max target staking amount
|
|
54
|
+
NftId targetNftId = registry.getObjectInfo(stakeNftId).parentNftId;
|
|
55
|
+
|
|
56
|
+
stakingStore.restakeRewards(
|
|
57
|
+
stakeNftId,
|
|
58
|
+
targetNftId,
|
|
59
|
+
rewardIncrementAmount);
|
|
60
|
+
|
|
61
|
+
stakingStore.increaseStake(
|
|
62
|
+
stakeNftId,
|
|
63
|
+
targetNftId,
|
|
64
|
+
stakeAmount);
|
|
65
|
+
|
|
66
|
+
// update locked until with target locking period
|
|
67
|
+
stakingStore.update(
|
|
68
|
+
stakeNftId,
|
|
69
|
+
IStaking.StakeInfo({
|
|
70
|
+
lockedUntil: TimestampLib.blockTimestamp().addSeconds(
|
|
71
|
+
lockingPeriod)}));
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function checkCreateParameters(
|
|
76
|
+
StakingReader stakingReader,
|
|
77
|
+
NftId targetNftId,
|
|
78
|
+
Amount dipAmount
|
|
79
|
+
)
|
|
80
|
+
external
|
|
81
|
+
view
|
|
82
|
+
returns (
|
|
83
|
+
Timestamp lockedUntil
|
|
84
|
+
)
|
|
85
|
+
{
|
|
86
|
+
Seconds lockingPeriod = checkTarget(stakingReader, targetNftId);
|
|
87
|
+
checkDipAmount(stakingReader, targetNftId, dipAmount);
|
|
88
|
+
|
|
89
|
+
Timestamp currentTime = TimestampLib.blockTimestamp();
|
|
90
|
+
lockedUntil = currentTime.addSeconds(lockingPeriod);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
function checkStakeParameters(
|
|
95
|
+
StakingReader stakingReader,
|
|
96
|
+
NftId stakeNftId
|
|
25
97
|
)
|
|
26
98
|
public
|
|
27
99
|
view
|
|
100
|
+
returns (
|
|
101
|
+
UFixed rewardRate,
|
|
102
|
+
Seconds lockingPeriod
|
|
103
|
+
)
|
|
28
104
|
{
|
|
29
|
-
|
|
30
|
-
if (!stakingReader.isTarget(targetNftId)) {
|
|
31
|
-
revert IStaking.ErrorStakingNotTarget(targetNftId);
|
|
32
|
-
}
|
|
105
|
+
NftId targetNftId = stakingReader.getTargetNftId(stakeNftId);
|
|
33
106
|
|
|
34
107
|
// only accept stakes for active targets
|
|
35
108
|
if (!stakingReader.isActive(targetNftId)) {
|
|
36
109
|
revert IStaking.ErrorStakingTargetNotActive(targetNftId);
|
|
37
110
|
}
|
|
111
|
+
|
|
112
|
+
IStaking.TargetInfo memory info = stakingReader.getTargetInfo(targetNftId);
|
|
113
|
+
rewardRate = info.rewardRate;
|
|
114
|
+
lockingPeriod = info.lockingPeriod;
|
|
38
115
|
}
|
|
39
116
|
|
|
40
117
|
|
|
41
|
-
function
|
|
118
|
+
function checkTarget(
|
|
42
119
|
StakingReader stakingReader,
|
|
43
|
-
NftId targetNftId
|
|
44
|
-
Amount dipAmount
|
|
120
|
+
NftId targetNftId
|
|
45
121
|
)
|
|
46
|
-
|
|
122
|
+
public
|
|
47
123
|
view
|
|
48
|
-
returns (
|
|
49
|
-
Timestamp lockedUntil
|
|
50
|
-
)
|
|
124
|
+
returns (Seconds lockingPeriod)
|
|
51
125
|
{
|
|
52
126
|
// target nft id must be registered
|
|
53
127
|
if (!stakingReader.isTarget(targetNftId)) {
|
|
@@ -59,15 +133,12 @@ library StakeManagerLib {
|
|
|
59
133
|
revert IStaking.ErrorStakingTargetNotActive(targetNftId);
|
|
60
134
|
}
|
|
61
135
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
Timestamp currentTime = TimestampLib.blockTimestamp();
|
|
65
|
-
lockedUntil = currentTime.addSeconds(
|
|
66
|
-
stakingReader.getTargetInfo(targetNftId).lockingPeriod);
|
|
136
|
+
lockingPeriod = stakingReader.getTargetInfo(targetNftId).lockingPeriod;
|
|
67
137
|
}
|
|
68
138
|
|
|
69
139
|
|
|
70
140
|
function checkDipAmount(
|
|
141
|
+
StakingReader stakingReader,
|
|
71
142
|
NftId targetNftId,
|
|
72
143
|
Amount dipAmount
|
|
73
144
|
)
|
|
@@ -109,17 +180,21 @@ library StakeManagerLib {
|
|
|
109
180
|
|
|
110
181
|
function calculateRewardIncrease(
|
|
111
182
|
StakingReader stakingReader,
|
|
112
|
-
NftId stakeNftId
|
|
183
|
+
NftId stakeNftId,
|
|
184
|
+
UFixed rewardRate
|
|
113
185
|
)
|
|
114
186
|
public
|
|
115
187
|
view
|
|
116
|
-
returns (
|
|
188
|
+
returns (
|
|
189
|
+
Amount rewardIncreaseAmount,
|
|
190
|
+
Amount totalDipAmount
|
|
191
|
+
)
|
|
117
192
|
{
|
|
118
193
|
(
|
|
119
|
-
UFixed rewardRate,
|
|
120
194
|
Amount stakeAmount,
|
|
195
|
+
Amount rewardAmount,
|
|
121
196
|
Timestamp lastUpdatedAt
|
|
122
|
-
) = stakingReader.
|
|
197
|
+
) = stakingReader.getStakeBalances(stakeNftId);
|
|
123
198
|
|
|
124
199
|
Seconds duration = SecondsLib.toSeconds(
|
|
125
200
|
block.timestamp - lastUpdatedAt.toInt());
|
|
@@ -128,6 +203,8 @@ library StakeManagerLib {
|
|
|
128
203
|
rewardRate,
|
|
129
204
|
duration,
|
|
130
205
|
stakeAmount);
|
|
206
|
+
|
|
207
|
+
totalDipAmount = stakeAmount + rewardAmount + rewardIncreaseAmount;
|
|
131
208
|
}
|
|
132
209
|
|
|
133
210
|
|
|
@@ -142,10 +219,8 @@ library StakeManagerLib {
|
|
|
142
219
|
Amount rewardAmount
|
|
143
220
|
)
|
|
144
221
|
{
|
|
145
|
-
UFixed
|
|
146
|
-
|
|
147
|
-
UFixed amountUFixed = rewardRateFraction * stakeAmount.toUFixed();
|
|
148
|
-
rewardAmount = AmountLib.toAmount(amountUFixed.toInt());
|
|
222
|
+
UFixed rewardRateFraction = getYearFraction(duration) * rewardRate;
|
|
223
|
+
rewardAmount = stakeAmount.multiplyWith(rewardRateFraction);
|
|
149
224
|
}
|
|
150
225
|
|
|
151
226
|
|