@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
|
@@ -1,30 +1,26 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
|
5
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
|
6
|
-
import {Component} from "../shared/Component.sol";
|
|
7
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
|
8
5
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
|
9
6
|
import {IStaking} from "./IStaking.sol";
|
|
10
|
-
import {IVersionable} from "../
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {NftId
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
|
7
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
|
8
|
+
|
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
|
10
|
+
import {Component} from "../shared/Component.sol";
|
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
|
12
|
+
import {ObjectType, STAKING} from "../type/ObjectType.sol";
|
|
13
|
+
import {Seconds} from "../type/Seconds.sol";
|
|
18
14
|
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
|
19
15
|
import {StakingReader} from "./StakingReader.sol";
|
|
20
16
|
import {StakingStore} from "./StakingStore.sol";
|
|
21
17
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
|
22
|
-
import {Timestamp
|
|
18
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
|
23
19
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
24
20
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
|
25
|
-
import {UFixed
|
|
21
|
+
import {UFixed} from "../type/UFixed.sol";
|
|
26
22
|
import {Version, VersionLib} from "../type/Version.sol";
|
|
27
|
-
import {Versionable} from "../
|
|
23
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
|
28
24
|
|
|
29
25
|
contract Staking is
|
|
30
26
|
Component,
|
|
@@ -42,12 +38,6 @@ contract Staking is
|
|
|
42
38
|
TokenRegistry _tokenRegistry;
|
|
43
39
|
StakingStore _store;
|
|
44
40
|
StakingReader _reader;
|
|
45
|
-
|
|
46
|
-
mapping(uint256 chainId => mapping(address token => UFixed stakingRate)) _stakingRate;
|
|
47
|
-
|
|
48
|
-
mapping(NftId targetNftId => Amount stakedAmount) _stakedAmount;
|
|
49
|
-
mapping(NftId targetNftId => mapping(address token => Amount tvlAmount)) _tvlAmount;
|
|
50
|
-
|
|
51
41
|
NftId _protocolNftId;
|
|
52
42
|
}
|
|
53
43
|
|
|
@@ -61,28 +51,17 @@ contract Staking is
|
|
|
61
51
|
|
|
62
52
|
|
|
63
53
|
modifier onlyTarget(NftId targetNftId) {
|
|
64
|
-
if (!_getStakingStorage()._store.
|
|
54
|
+
if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
|
|
65
55
|
revert ErrorStakingNotTarget(targetNftId);
|
|
66
56
|
}
|
|
67
57
|
_;
|
|
68
58
|
}
|
|
69
59
|
|
|
70
|
-
|
|
71
|
-
// from Versionable
|
|
72
|
-
function getVersion()
|
|
73
|
-
public
|
|
74
|
-
pure
|
|
75
|
-
virtual override (IVersionable, Versionable)
|
|
76
|
-
returns(Version)
|
|
77
|
-
{
|
|
78
|
-
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
60
|
// set/update staking reader
|
|
82
61
|
function setStakingReader(StakingReader stakingReader)
|
|
83
62
|
external
|
|
84
63
|
virtual
|
|
85
|
-
onlyOwner
|
|
64
|
+
onlyOwner()
|
|
86
65
|
{
|
|
87
66
|
if(stakingReader.getStaking() != IStaking(this)) {
|
|
88
67
|
revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
|
|
@@ -96,12 +75,19 @@ contract Staking is
|
|
|
96
75
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
|
|
97
76
|
external
|
|
98
77
|
virtual
|
|
99
|
-
onlyOwner
|
|
78
|
+
onlyOwner()
|
|
100
79
|
{
|
|
80
|
+
StakingStorage storage $ = _getStakingStorage();
|
|
81
|
+
|
|
82
|
+
if (!$._tokenRegistry.isRegistered(chainId, token)) {
|
|
83
|
+
revert ErrorStakingTokenNotRegistered(chainId, token);
|
|
84
|
+
}
|
|
101
85
|
|
|
102
|
-
|
|
86
|
+
UFixed oldStakingRate = $._store.getStakingRate(chainId, token);
|
|
87
|
+
$._store.setStakingRate(chainId, token, stakingRate);
|
|
103
88
|
|
|
104
|
-
|
|
89
|
+
emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
|
|
90
|
+
}
|
|
105
91
|
|
|
106
92
|
// target management
|
|
107
93
|
|
|
@@ -114,7 +100,7 @@ contract Staking is
|
|
|
114
100
|
)
|
|
115
101
|
external
|
|
116
102
|
virtual
|
|
117
|
-
|
|
103
|
+
restricted()
|
|
118
104
|
{
|
|
119
105
|
TargetManagerLib.checkTargetParameters(
|
|
120
106
|
getRegistry(),
|
|
@@ -140,8 +126,8 @@ contract Staking is
|
|
|
140
126
|
)
|
|
141
127
|
external
|
|
142
128
|
virtual
|
|
143
|
-
|
|
144
|
-
onlyTarget(targetNftId)
|
|
129
|
+
restricted()
|
|
130
|
+
onlyTarget(targetNftId)
|
|
145
131
|
{
|
|
146
132
|
(
|
|
147
133
|
Seconds oldLockingPeriod,
|
|
@@ -162,7 +148,8 @@ contract Staking is
|
|
|
162
148
|
function setRewardRate(NftId targetNftId, UFixed rewardRate)
|
|
163
149
|
external
|
|
164
150
|
virtual
|
|
165
|
-
|
|
151
|
+
restricted()
|
|
152
|
+
onlyTarget(targetNftId)
|
|
166
153
|
{
|
|
167
154
|
(
|
|
168
155
|
UFixed oldRewardRate,
|
|
@@ -181,39 +168,57 @@ contract Staking is
|
|
|
181
168
|
function refillRewardReserves(NftId targetNftId, Amount dipAmount)
|
|
182
169
|
external
|
|
183
170
|
virtual
|
|
171
|
+
restricted()
|
|
172
|
+
returns (Amount newBalance)
|
|
184
173
|
{
|
|
185
|
-
|
|
174
|
+
// update book keeping of reward reserves
|
|
175
|
+
StakingStorage storage $ = _getStakingStorage();
|
|
176
|
+
newBalance = $._store.increaseReserves(targetNftId, dipAmount);
|
|
186
177
|
}
|
|
187
178
|
|
|
179
|
+
|
|
188
180
|
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
|
|
189
181
|
external
|
|
190
182
|
virtual
|
|
191
|
-
|
|
183
|
+
restricted()
|
|
184
|
+
returns (Amount newBalance)
|
|
192
185
|
{
|
|
193
|
-
|
|
186
|
+
// update book keeping of reward reserves
|
|
187
|
+
StakingStorage storage $ = _getStakingStorage();
|
|
188
|
+
newBalance = $._store.decreaseReserves(targetNftId, dipAmount);
|
|
194
189
|
}
|
|
195
190
|
|
|
196
191
|
|
|
197
|
-
function
|
|
192
|
+
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
|
198
193
|
external
|
|
199
194
|
virtual
|
|
200
|
-
|
|
195
|
+
restricted() // only pool service
|
|
196
|
+
returns (Amount newBalance)
|
|
201
197
|
{
|
|
202
|
-
|
|
198
|
+
StakingStorage storage $ = _getStakingStorage();
|
|
199
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
|
200
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
|
201
|
+
newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
|
203
202
|
}
|
|
204
203
|
|
|
205
|
-
|
|
204
|
+
|
|
205
|
+
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
|
206
206
|
external
|
|
207
207
|
virtual
|
|
208
|
-
|
|
208
|
+
restricted() // only pool service
|
|
209
|
+
returns (Amount newBalance)
|
|
209
210
|
{
|
|
210
|
-
|
|
211
|
+
StakingStorage storage $ = _getStakingStorage();
|
|
212
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
|
213
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
|
214
|
+
newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
|
211
215
|
}
|
|
212
216
|
|
|
213
217
|
|
|
214
218
|
function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
|
|
215
219
|
external
|
|
216
220
|
virtual
|
|
221
|
+
restricted()
|
|
217
222
|
onlyOwner // or CCIP
|
|
218
223
|
{
|
|
219
224
|
|
|
@@ -222,6 +227,7 @@ contract Staking is
|
|
|
222
227
|
function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
|
|
223
228
|
external
|
|
224
229
|
virtual
|
|
230
|
+
restricted()
|
|
225
231
|
onlyOwner // or CCIP
|
|
226
232
|
{
|
|
227
233
|
|
|
@@ -229,68 +235,76 @@ contract Staking is
|
|
|
229
235
|
|
|
230
236
|
//--- staking functions -------------------------------------------------//
|
|
231
237
|
|
|
232
|
-
function
|
|
238
|
+
function createStake(
|
|
233
239
|
NftId stakeNftId,
|
|
234
240
|
NftId targetNftId,
|
|
235
|
-
Amount
|
|
241
|
+
Amount stakeAmount
|
|
236
242
|
)
|
|
237
243
|
external
|
|
238
244
|
virtual
|
|
239
|
-
|
|
245
|
+
restricted() // only staking service
|
|
240
246
|
{
|
|
241
|
-
|
|
242
|
-
|
|
247
|
+
StakingStorage storage $ = _getStakingStorage();
|
|
248
|
+
Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
|
|
249
|
+
$._reader,
|
|
243
250
|
targetNftId,
|
|
244
|
-
|
|
251
|
+
stakeAmount);
|
|
245
252
|
|
|
246
|
-
|
|
253
|
+
// create new stake
|
|
254
|
+
$._store.create(
|
|
247
255
|
stakeNftId,
|
|
248
256
|
StakeInfo({
|
|
249
|
-
lockedUntil: lockedUntil})
|
|
250
|
-
|
|
257
|
+
lockedUntil: lockedUntil}));
|
|
258
|
+
|
|
259
|
+
// update target stake balance
|
|
260
|
+
$._store.increaseStake(
|
|
261
|
+
stakeNftId,
|
|
262
|
+
targetNftId,
|
|
263
|
+
stakeAmount);
|
|
251
264
|
}
|
|
252
265
|
|
|
253
266
|
|
|
254
|
-
function stake(
|
|
267
|
+
function stake(
|
|
268
|
+
NftId stakeNftId,
|
|
269
|
+
Amount stakeAmount
|
|
270
|
+
)
|
|
255
271
|
external
|
|
256
272
|
virtual
|
|
257
|
-
|
|
273
|
+
restricted() // only staking service
|
|
258
274
|
onlyStake(stakeNftId)
|
|
275
|
+
returns (Amount stakeBalance)
|
|
259
276
|
{
|
|
260
277
|
StakingStorage storage $ = _getStakingStorage();
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
dipAmount,
|
|
268
|
-
rewardIncrement);
|
|
278
|
+
stakeBalance = StakeManagerLib.stake(
|
|
279
|
+
getRegistry(),
|
|
280
|
+
$._reader,
|
|
281
|
+
$._store,
|
|
282
|
+
stakeNftId,
|
|
283
|
+
stakeAmount);
|
|
269
284
|
}
|
|
270
285
|
|
|
271
286
|
|
|
272
|
-
function restake(
|
|
287
|
+
function restake(
|
|
288
|
+
NftId stakeNftId,
|
|
289
|
+
NftId newTargetNftId
|
|
290
|
+
)
|
|
273
291
|
external
|
|
274
292
|
virtual
|
|
275
|
-
|
|
293
|
+
restricted() // only staking service
|
|
276
294
|
onlyStake(stakeNftId)
|
|
295
|
+
returns (NftId newStakeNftId)
|
|
277
296
|
{
|
|
278
|
-
// TODO add check that
|
|
297
|
+
// TODO add check that allows additional staking amount
|
|
279
298
|
StakingStorage storage $ = _getStakingStorage();
|
|
280
|
-
Amount rewardIncrement = StakeManagerLib.calculateRewardIncrease(
|
|
281
|
-
$._reader,
|
|
282
|
-
stakeNftId);
|
|
283
299
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
rewardIncrement);
|
|
287
|
-
}
|
|
300
|
+
// TODO implement
|
|
301
|
+
}
|
|
288
302
|
|
|
289
303
|
|
|
290
304
|
function updateRewards(NftId stakeNftId)
|
|
291
305
|
external
|
|
292
306
|
virtual
|
|
293
|
-
|
|
307
|
+
restricted() // only staking service
|
|
294
308
|
onlyStake(stakeNftId)
|
|
295
309
|
{
|
|
296
310
|
StakingStorage storage $ = _getStakingStorage();
|
|
@@ -301,7 +315,7 @@ contract Staking is
|
|
|
301
315
|
function claimRewards(NftId stakeNftId)
|
|
302
316
|
external
|
|
303
317
|
virtual
|
|
304
|
-
|
|
318
|
+
restricted() // only staking service
|
|
305
319
|
onlyStake(stakeNftId)
|
|
306
320
|
returns (
|
|
307
321
|
Amount rewardsClaimedAmount
|
|
@@ -310,19 +324,23 @@ contract Staking is
|
|
|
310
324
|
StakingStorage storage $ = _getStakingStorage();
|
|
311
325
|
|
|
312
326
|
// update rewards since last update
|
|
313
|
-
_updateRewards($._reader, $._store, stakeNftId);
|
|
327
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
|
314
328
|
|
|
315
329
|
// unstake all available rewards
|
|
316
330
|
rewardsClaimedAmount = $._store.claimUpTo(
|
|
317
331
|
stakeNftId,
|
|
332
|
+
targetNftId,
|
|
318
333
|
AmountLib.max());
|
|
334
|
+
|
|
335
|
+
// update reward reserves
|
|
336
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
|
319
337
|
}
|
|
320
338
|
|
|
321
339
|
|
|
322
340
|
function unstake(NftId stakeNftId)
|
|
323
341
|
external
|
|
324
342
|
virtual
|
|
325
|
-
|
|
343
|
+
restricted() // only staking service
|
|
326
344
|
onlyStake(stakeNftId)
|
|
327
345
|
returns (
|
|
328
346
|
Amount unstakedAmount,
|
|
@@ -333,7 +351,7 @@ contract Staking is
|
|
|
333
351
|
StakingStorage storage $ = _getStakingStorage();
|
|
334
352
|
|
|
335
353
|
// update rewards since last update
|
|
336
|
-
_updateRewards($._reader, $._store, stakeNftId);
|
|
354
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
|
337
355
|
|
|
338
356
|
// unstake all available dips
|
|
339
357
|
(
|
|
@@ -341,35 +359,21 @@ contract Staking is
|
|
|
341
359
|
rewardsClaimedAmount
|
|
342
360
|
) = $._store.unstakeUpTo(
|
|
343
361
|
stakeNftId,
|
|
362
|
+
targetNftId,
|
|
344
363
|
AmountLib.max(), // unstake all stakes
|
|
345
364
|
AmountLib.max()); // claim all rewards
|
|
346
|
-
}
|
|
347
365
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
function _updateRewards(
|
|
351
|
-
StakingReader reader,
|
|
352
|
-
StakingStore store,
|
|
353
|
-
NftId stakeNftId
|
|
354
|
-
)
|
|
355
|
-
internal
|
|
356
|
-
virtual
|
|
357
|
-
{
|
|
358
|
-
Amount rewardIncrement = StakeManagerLib.calculateRewardIncrease(
|
|
359
|
-
reader,
|
|
360
|
-
stakeNftId);
|
|
361
|
-
|
|
362
|
-
store.updateRewards(
|
|
363
|
-
stakeNftId,
|
|
364
|
-
rewardIncrement);
|
|
366
|
+
// update reward reserves
|
|
367
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
|
365
368
|
}
|
|
366
369
|
|
|
367
370
|
|
|
371
|
+
|
|
368
372
|
//--- other functions ---------------------------------------------------//
|
|
369
373
|
|
|
370
374
|
function collectDipAmount(address from, Amount dipAmount)
|
|
371
375
|
external
|
|
372
|
-
|
|
376
|
+
restricted() // only staking service
|
|
373
377
|
{
|
|
374
378
|
TokenHandler tokenHandler = getTokenHandler();
|
|
375
379
|
address stakingWallet = getWallet();
|
|
@@ -386,7 +390,7 @@ contract Staking is
|
|
|
386
390
|
|
|
387
391
|
function transferDipAmount(address to, Amount dipAmount)
|
|
388
392
|
external
|
|
389
|
-
|
|
393
|
+
restricted() // only staking service
|
|
390
394
|
{
|
|
391
395
|
TokenHandler tokenHandler = getTokenHandler();
|
|
392
396
|
address stakingWallet = getWallet();
|
|
@@ -411,35 +415,46 @@ contract Staking is
|
|
|
411
415
|
return _getStakingStorage()._store;
|
|
412
416
|
}
|
|
413
417
|
|
|
414
|
-
function
|
|
415
|
-
return _getStakingStorage().
|
|
418
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
|
419
|
+
return address(_getStakingStorage()._tokenRegistry);
|
|
416
420
|
}
|
|
417
421
|
|
|
418
|
-
function getTvlAmount(NftId targetNftId, address token) external view returns (Amount tvlAmount) {
|
|
419
|
-
return _getStakingStorage()._tvlAmount[targetNftId][token];
|
|
420
|
-
}
|
|
421
422
|
|
|
422
|
-
|
|
423
|
-
|
|
423
|
+
// from Versionable
|
|
424
|
+
function getVersion()
|
|
425
|
+
public
|
|
426
|
+
pure
|
|
427
|
+
virtual override (IVersionable, Versionable)
|
|
428
|
+
returns(Version)
|
|
429
|
+
{
|
|
430
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
|
424
431
|
}
|
|
425
432
|
|
|
426
|
-
|
|
427
|
-
return address(_getStakingStorage()._tokenRegistry);
|
|
428
|
-
}
|
|
433
|
+
//--- internal functions ------------------------------------------------//
|
|
429
434
|
|
|
430
|
-
function
|
|
431
|
-
|
|
432
|
-
|
|
435
|
+
function _updateRewards(
|
|
436
|
+
StakingReader reader,
|
|
437
|
+
StakingStore store,
|
|
438
|
+
NftId stakeNftId
|
|
433
439
|
)
|
|
434
|
-
|
|
440
|
+
internal
|
|
435
441
|
virtual
|
|
436
|
-
|
|
437
|
-
returns (Amount rewardIncrementAmount)
|
|
442
|
+
returns (NftId targetNftId)
|
|
438
443
|
{
|
|
444
|
+
UFixed rewardRate;
|
|
439
445
|
|
|
446
|
+
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
|
447
|
+
(Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
|
|
448
|
+
reader,
|
|
449
|
+
stakeNftId,
|
|
450
|
+
rewardRate);
|
|
451
|
+
|
|
452
|
+
store.updateRewards(
|
|
453
|
+
stakeNftId,
|
|
454
|
+
targetNftId,
|
|
455
|
+
rewardIncrement);
|
|
440
456
|
}
|
|
441
457
|
|
|
442
|
-
//--- internal functions ------------------------------------------------//
|
|
443
458
|
|
|
444
459
|
function _initialize(
|
|
445
460
|
address owner,
|
|
@@ -453,13 +468,14 @@ contract Staking is
|
|
|
453
468
|
address registryAddress,
|
|
454
469
|
address tokenRegistryAddress,
|
|
455
470
|
address stakingStoreAddress,
|
|
456
|
-
address
|
|
471
|
+
address stakingOwner
|
|
457
472
|
) = abi.decode(data, (address, address, address, address));
|
|
458
473
|
|
|
459
474
|
// only admin(authority) and dip token address are set in registry at this point
|
|
460
475
|
IRegistry registry = IRegistry(registryAddress);
|
|
461
|
-
address dipTokenAddress = registry.getDipTokenAddress();
|
|
462
476
|
address authority = registry.getAuthority();
|
|
477
|
+
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
|
478
|
+
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
|
463
479
|
|
|
464
480
|
initializeComponent(
|
|
465
481
|
authority,
|
|
@@ -469,13 +485,12 @@ contract Staking is
|
|
|
469
485
|
dipTokenAddress,
|
|
470
486
|
STAKING(),
|
|
471
487
|
false, // is interceptor
|
|
472
|
-
|
|
488
|
+
stakingOwner,
|
|
473
489
|
"", // registry data
|
|
474
490
|
""); // component data
|
|
475
491
|
|
|
476
492
|
_createAndSetTokenHandler();
|
|
477
493
|
|
|
478
|
-
|
|
479
494
|
// wiring to external contracts
|
|
480
495
|
StakingStorage storage $ = _getStakingStorage();
|
|
481
496
|
$._protocolNftId = getRegistry().getProtocolNftId();
|
|
@@ -492,5 +507,4 @@ contract Staking is
|
|
|
492
507
|
$.slot := STAKING_LOCATION_V1
|
|
493
508
|
}
|
|
494
509
|
}
|
|
495
|
-
|
|
496
510
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {TARGET, COMPONENT, STAKE} from "../type/ObjectType.sol";
|
|
5
|
+
import {INITIAL} from "../type/StateId.sol";
|
|
6
|
+
import {Lifecycle} from "../shared/Lifecycle.sol";
|
|
7
|
+
|
|
8
|
+
contract StakingLifecycle is
|
|
9
|
+
Lifecycle
|
|
10
|
+
{
|
|
11
|
+
constructor() {
|
|
12
|
+
_setupLifecycle();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function _setupLifecycle()
|
|
16
|
+
internal
|
|
17
|
+
override
|
|
18
|
+
{
|
|
19
|
+
setInitialState(TARGET(), INITIAL());
|
|
20
|
+
setInitialState(COMPONENT(), INITIAL());
|
|
21
|
+
setInitialState(STAKE(), INITIAL());
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
import {IVersionable} from "../
|
|
5
|
-
import {ProxyManager} from "../
|
|
6
|
-
import {ReleaseManager} from "../registry/ReleaseManager.sol";
|
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
|
7
6
|
import {Staking} from "./Staking.sol";
|
|
8
|
-
import {StakingReader} from "./StakingReader.sol";
|
|
9
|
-
import {StakingStore} from "./StakingStore.sol";
|
|
10
7
|
|
|
11
|
-
import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
|
|
12
8
|
|
|
13
9
|
contract StakingManager is
|
|
14
10
|
ProxyManager
|