@etherisc/gif-next 0.0.2-a105567-464 → 0.0.2-a221fa7-461
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -239
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +317 -95
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +97 -57
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +104 -136
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +158 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +227 -62
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +52 -48
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1496 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -58
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -41
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +30 -206
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +37 -314
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +47 -35
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +112 -67
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -51
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +36 -46
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +56 -40
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -48
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +43 -164
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -59
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -104
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +22 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +242 -77
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +80 -56
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +117 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -64
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +43 -43
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +41 -45
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +80 -26
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +18 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +20 -13
- package/contracts/instance/IInstanceService.sol +34 -23
- package/contracts/instance/Instance.sol +108 -89
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +49 -9
- package/contracts/instance/InstanceService.sol +159 -78
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +38 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IComponents.sol +0 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +52 -0
- package/contracts/pool/BundleService.sol +32 -44
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -61
- package/contracts/pool/IPoolService.sol +3 -0
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +45 -33
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +17 -41
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +16 -37
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IClaimService.sol +6 -0
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/PolicyService.sol +7 -5
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +5 -6
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +12 -37
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +26 -18
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +86 -95
- package/contracts/registry/RegistryAdmin.sol +283 -155
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +487 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +9 -52
- package/contracts/shared/Component.sol +19 -25
- package/contracts/shared/ComponentService.sol +94 -68
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +21 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +27 -22
- package/contracts/staking/IStaking.sol +41 -26
- package/contracts/staking/IStakingService.sol +42 -44
- package/contracts/staking/StakeManagerLib.sol +101 -26
- package/contracts/staking/Staking.sol +144 -126
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +73 -36
- package/contracts/staking/StakingService.sol +121 -86
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +401 -127
- package/contracts/staking/TargetManagerLib.sol +28 -0
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/NftId.sol +8 -8
- package/contracts/type/ObjectType.sol +171 -69
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RoleId.sol +103 -72
- package/contracts/type/Seconds.sol +10 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +12 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
- package/contracts/registry/ReleaseManager.sol +0 -599
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/staking/IStakingManager.sol +0 -15
- package/contracts/staking/IStakingStore.sol +0 -130
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,30 +1,27 @@
|
|
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 {
|
15
|
-
import {
|
16
|
-
import {ObjectType,
|
17
|
-
import {Seconds
|
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 {IComponent} from "../shared/IComponent.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {ObjectType, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {Seconds} from "../type/Seconds.sol";
|
18
15
|
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
19
16
|
import {StakingReader} from "./StakingReader.sol";
|
20
17
|
import {StakingStore} from "./StakingStore.sol";
|
21
18
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
22
|
-
import {Timestamp
|
19
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
23
20
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
24
21
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
25
|
-
import {UFixed
|
22
|
+
import {UFixed} from "../type/UFixed.sol";
|
26
23
|
import {Version, VersionLib} from "../type/Version.sol";
|
27
|
-
import {Versionable} from "../
|
24
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
28
25
|
|
29
26
|
contract Staking is
|
30
27
|
Component,
|
@@ -40,14 +37,9 @@ contract Staking is
|
|
40
37
|
struct StakingStorage {
|
41
38
|
IRegistryService _registryService;
|
42
39
|
TokenRegistry _tokenRegistry;
|
40
|
+
TokenHandler _tokenHandler;
|
43
41
|
StakingStore _store;
|
44
42
|
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
43
|
NftId _protocolNftId;
|
52
44
|
}
|
53
45
|
|
@@ -61,28 +53,17 @@ contract Staking is
|
|
61
53
|
|
62
54
|
|
63
55
|
modifier onlyTarget(NftId targetNftId) {
|
64
|
-
if (!_getStakingStorage()._store.
|
56
|
+
if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
|
65
57
|
revert ErrorStakingNotTarget(targetNftId);
|
66
58
|
}
|
67
59
|
_;
|
68
60
|
}
|
69
61
|
|
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
62
|
// set/update staking reader
|
82
63
|
function setStakingReader(StakingReader stakingReader)
|
83
64
|
external
|
84
65
|
virtual
|
85
|
-
onlyOwner
|
66
|
+
onlyOwner()
|
86
67
|
{
|
87
68
|
if(stakingReader.getStaking() != IStaking(this)) {
|
88
69
|
revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
|
@@ -96,12 +77,19 @@ contract Staking is
|
|
96
77
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
|
97
78
|
external
|
98
79
|
virtual
|
99
|
-
onlyOwner
|
80
|
+
onlyOwner()
|
100
81
|
{
|
82
|
+
StakingStorage storage $ = _getStakingStorage();
|
83
|
+
|
84
|
+
if (!$._tokenRegistry.isRegistered(chainId, token)) {
|
85
|
+
revert ErrorStakingTokenNotRegistered(chainId, token);
|
86
|
+
}
|
101
87
|
|
102
|
-
|
88
|
+
UFixed oldStakingRate = $._store.getStakingRate(chainId, token);
|
89
|
+
$._store.setStakingRate(chainId, token, stakingRate);
|
103
90
|
|
104
|
-
|
91
|
+
emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
|
92
|
+
}
|
105
93
|
|
106
94
|
// target management
|
107
95
|
|
@@ -114,7 +102,7 @@ contract Staking is
|
|
114
102
|
)
|
115
103
|
external
|
116
104
|
virtual
|
117
|
-
|
105
|
+
restricted()
|
118
106
|
{
|
119
107
|
TargetManagerLib.checkTargetParameters(
|
120
108
|
getRegistry(),
|
@@ -140,8 +128,8 @@ contract Staking is
|
|
140
128
|
)
|
141
129
|
external
|
142
130
|
virtual
|
143
|
-
|
144
|
-
onlyTarget(targetNftId)
|
131
|
+
restricted()
|
132
|
+
onlyTarget(targetNftId)
|
145
133
|
{
|
146
134
|
(
|
147
135
|
Seconds oldLockingPeriod,
|
@@ -162,7 +150,8 @@ contract Staking is
|
|
162
150
|
function setRewardRate(NftId targetNftId, UFixed rewardRate)
|
163
151
|
external
|
164
152
|
virtual
|
165
|
-
|
153
|
+
restricted()
|
154
|
+
onlyTarget(targetNftId)
|
166
155
|
{
|
167
156
|
(
|
168
157
|
UFixed oldRewardRate,
|
@@ -181,39 +170,57 @@ contract Staking is
|
|
181
170
|
function refillRewardReserves(NftId targetNftId, Amount dipAmount)
|
182
171
|
external
|
183
172
|
virtual
|
173
|
+
restricted()
|
174
|
+
returns (Amount newBalance)
|
184
175
|
{
|
185
|
-
|
176
|
+
// update book keeping of reward reserves
|
177
|
+
StakingStorage storage $ = _getStakingStorage();
|
178
|
+
newBalance = $._store.increaseReserves(targetNftId, dipAmount);
|
186
179
|
}
|
187
180
|
|
181
|
+
|
188
182
|
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
|
189
183
|
external
|
190
184
|
virtual
|
191
|
-
|
185
|
+
restricted()
|
186
|
+
returns (Amount newBalance)
|
192
187
|
{
|
193
|
-
|
188
|
+
// update book keeping of reward reserves
|
189
|
+
StakingStorage storage $ = _getStakingStorage();
|
190
|
+
newBalance = $._store.decreaseReserves(targetNftId, dipAmount);
|
194
191
|
}
|
195
192
|
|
196
193
|
|
197
|
-
function
|
194
|
+
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
198
195
|
external
|
199
196
|
virtual
|
200
|
-
|
197
|
+
restricted() // only pool service
|
198
|
+
returns (Amount newBalance)
|
201
199
|
{
|
202
|
-
|
200
|
+
StakingStorage storage $ = _getStakingStorage();
|
201
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
202
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
203
|
+
newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
203
204
|
}
|
204
205
|
|
205
|
-
|
206
|
+
|
207
|
+
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
206
208
|
external
|
207
209
|
virtual
|
208
|
-
|
210
|
+
restricted() // only pool service
|
211
|
+
returns (Amount newBalance)
|
209
212
|
{
|
210
|
-
|
213
|
+
StakingStorage storage $ = _getStakingStorage();
|
214
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
215
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
216
|
+
newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
211
217
|
}
|
212
218
|
|
213
219
|
|
214
220
|
function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
|
215
221
|
external
|
216
222
|
virtual
|
223
|
+
restricted()
|
217
224
|
onlyOwner // or CCIP
|
218
225
|
{
|
219
226
|
|
@@ -222,6 +229,7 @@ contract Staking is
|
|
222
229
|
function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
|
223
230
|
external
|
224
231
|
virtual
|
232
|
+
restricted()
|
225
233
|
onlyOwner // or CCIP
|
226
234
|
{
|
227
235
|
|
@@ -229,68 +237,76 @@ contract Staking is
|
|
229
237
|
|
230
238
|
//--- staking functions -------------------------------------------------//
|
231
239
|
|
232
|
-
function
|
240
|
+
function createStake(
|
233
241
|
NftId stakeNftId,
|
234
242
|
NftId targetNftId,
|
235
|
-
Amount
|
243
|
+
Amount stakeAmount
|
236
244
|
)
|
237
245
|
external
|
238
246
|
virtual
|
239
|
-
|
247
|
+
restricted() // only staking service
|
240
248
|
{
|
241
|
-
|
242
|
-
|
249
|
+
StakingStorage storage $ = _getStakingStorage();
|
250
|
+
Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
|
251
|
+
$._reader,
|
243
252
|
targetNftId,
|
244
|
-
|
253
|
+
stakeAmount);
|
245
254
|
|
246
|
-
|
255
|
+
// create new stake
|
256
|
+
$._store.create(
|
247
257
|
stakeNftId,
|
248
258
|
StakeInfo({
|
249
|
-
lockedUntil: lockedUntil})
|
250
|
-
|
259
|
+
lockedUntil: lockedUntil}));
|
260
|
+
|
261
|
+
// update target stake balance
|
262
|
+
$._store.increaseStake(
|
263
|
+
stakeNftId,
|
264
|
+
targetNftId,
|
265
|
+
stakeAmount);
|
251
266
|
}
|
252
267
|
|
253
268
|
|
254
|
-
function stake(
|
269
|
+
function stake(
|
270
|
+
NftId stakeNftId,
|
271
|
+
Amount stakeAmount
|
272
|
+
)
|
255
273
|
external
|
256
274
|
virtual
|
257
|
-
|
275
|
+
restricted() // only staking service
|
258
276
|
onlyStake(stakeNftId)
|
277
|
+
returns (Amount stakeBalance)
|
259
278
|
{
|
260
279
|
StakingStorage storage $ = _getStakingStorage();
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
dipAmount,
|
268
|
-
rewardIncrement);
|
280
|
+
stakeBalance = StakeManagerLib.stake(
|
281
|
+
getRegistry(),
|
282
|
+
$._reader,
|
283
|
+
$._store,
|
284
|
+
stakeNftId,
|
285
|
+
stakeAmount);
|
269
286
|
}
|
270
287
|
|
271
288
|
|
272
|
-
function restake(
|
289
|
+
function restake(
|
290
|
+
NftId stakeNftId,
|
291
|
+
NftId newTargetNftId
|
292
|
+
)
|
273
293
|
external
|
274
294
|
virtual
|
275
|
-
|
295
|
+
restricted() // only staking service
|
276
296
|
onlyStake(stakeNftId)
|
297
|
+
returns (NftId newStakeNftId)
|
277
298
|
{
|
278
|
-
// TODO add check that
|
299
|
+
// TODO add check that allows additional staking amount
|
279
300
|
StakingStorage storage $ = _getStakingStorage();
|
280
|
-
Amount rewardIncrement = StakeManagerLib.calculateRewardIncrease(
|
281
|
-
$._reader,
|
282
|
-
stakeNftId);
|
283
301
|
|
284
|
-
|
285
|
-
|
286
|
-
rewardIncrement);
|
287
|
-
}
|
302
|
+
// TODO implement
|
303
|
+
}
|
288
304
|
|
289
305
|
|
290
306
|
function updateRewards(NftId stakeNftId)
|
291
307
|
external
|
292
308
|
virtual
|
293
|
-
|
309
|
+
restricted() // only staking service
|
294
310
|
onlyStake(stakeNftId)
|
295
311
|
{
|
296
312
|
StakingStorage storage $ = _getStakingStorage();
|
@@ -301,7 +317,7 @@ contract Staking is
|
|
301
317
|
function claimRewards(NftId stakeNftId)
|
302
318
|
external
|
303
319
|
virtual
|
304
|
-
|
320
|
+
restricted() // only staking service
|
305
321
|
onlyStake(stakeNftId)
|
306
322
|
returns (
|
307
323
|
Amount rewardsClaimedAmount
|
@@ -310,19 +326,23 @@ contract Staking is
|
|
310
326
|
StakingStorage storage $ = _getStakingStorage();
|
311
327
|
|
312
328
|
// update rewards since last update
|
313
|
-
_updateRewards($._reader, $._store, stakeNftId);
|
329
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
314
330
|
|
315
331
|
// unstake all available rewards
|
316
332
|
rewardsClaimedAmount = $._store.claimUpTo(
|
317
333
|
stakeNftId,
|
334
|
+
targetNftId,
|
318
335
|
AmountLib.max());
|
336
|
+
|
337
|
+
// update reward reserves
|
338
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
319
339
|
}
|
320
340
|
|
321
341
|
|
322
342
|
function unstake(NftId stakeNftId)
|
323
343
|
external
|
324
344
|
virtual
|
325
|
-
|
345
|
+
restricted() // only staking service
|
326
346
|
onlyStake(stakeNftId)
|
327
347
|
returns (
|
328
348
|
Amount unstakedAmount,
|
@@ -333,7 +353,7 @@ contract Staking is
|
|
333
353
|
StakingStorage storage $ = _getStakingStorage();
|
334
354
|
|
335
355
|
// update rewards since last update
|
336
|
-
_updateRewards($._reader, $._store, stakeNftId);
|
356
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
337
357
|
|
338
358
|
// unstake all available dips
|
339
359
|
(
|
@@ -341,35 +361,21 @@ contract Staking is
|
|
341
361
|
rewardsClaimedAmount
|
342
362
|
) = $._store.unstakeUpTo(
|
343
363
|
stakeNftId,
|
364
|
+
targetNftId,
|
344
365
|
AmountLib.max(), // unstake all stakes
|
345
366
|
AmountLib.max()); // claim all rewards
|
346
|
-
}
|
347
367
|
|
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);
|
368
|
+
// update reward reserves
|
369
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
365
370
|
}
|
366
371
|
|
367
372
|
|
373
|
+
|
368
374
|
//--- other functions ---------------------------------------------------//
|
369
375
|
|
370
376
|
function collectDipAmount(address from, Amount dipAmount)
|
371
377
|
external
|
372
|
-
|
378
|
+
restricted() // only staking service
|
373
379
|
{
|
374
380
|
TokenHandler tokenHandler = getTokenHandler();
|
375
381
|
address stakingWallet = getWallet();
|
@@ -386,7 +392,7 @@ contract Staking is
|
|
386
392
|
|
387
393
|
function transferDipAmount(address to, Amount dipAmount)
|
388
394
|
external
|
389
|
-
|
395
|
+
restricted() // only staking service
|
390
396
|
{
|
391
397
|
TokenHandler tokenHandler = getTokenHandler();
|
392
398
|
address stakingWallet = getWallet();
|
@@ -411,35 +417,49 @@ contract Staking is
|
|
411
417
|
return _getStakingStorage()._store;
|
412
418
|
}
|
413
419
|
|
414
|
-
function
|
415
|
-
return _getStakingStorage().
|
420
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
421
|
+
return address(_getStakingStorage()._tokenRegistry);
|
416
422
|
}
|
417
423
|
|
418
|
-
function
|
419
|
-
return _getStakingStorage().
|
424
|
+
function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
|
425
|
+
return _getStakingStorage()._tokenHandler;
|
420
426
|
}
|
421
427
|
|
422
|
-
|
423
|
-
|
428
|
+
// from Versionable
|
429
|
+
function getVersion()
|
430
|
+
public
|
431
|
+
pure
|
432
|
+
virtual override (IVersionable, Versionable)
|
433
|
+
returns(Version)
|
434
|
+
{
|
435
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
424
436
|
}
|
425
437
|
|
426
|
-
|
427
|
-
return address(_getStakingStorage()._tokenRegistry);
|
428
|
-
}
|
438
|
+
//--- internal functions ------------------------------------------------//
|
429
439
|
|
430
|
-
function
|
431
|
-
|
432
|
-
|
440
|
+
function _updateRewards(
|
441
|
+
StakingReader reader,
|
442
|
+
StakingStore store,
|
443
|
+
NftId stakeNftId
|
433
444
|
)
|
434
|
-
|
445
|
+
internal
|
435
446
|
virtual
|
436
|
-
|
437
|
-
returns (Amount rewardIncrementAmount)
|
447
|
+
returns (NftId targetNftId)
|
438
448
|
{
|
449
|
+
UFixed rewardRate;
|
439
450
|
|
451
|
+
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
452
|
+
(Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
|
453
|
+
reader,
|
454
|
+
stakeNftId,
|
455
|
+
rewardRate);
|
456
|
+
|
457
|
+
store.updateRewards(
|
458
|
+
stakeNftId,
|
459
|
+
targetNftId,
|
460
|
+
rewardIncrement);
|
440
461
|
}
|
441
462
|
|
442
|
-
//--- internal functions ------------------------------------------------//
|
443
463
|
|
444
464
|
function _initialize(
|
445
465
|
address owner,
|
@@ -453,13 +473,14 @@ contract Staking is
|
|
453
473
|
address registryAddress,
|
454
474
|
address tokenRegistryAddress,
|
455
475
|
address stakingStoreAddress,
|
456
|
-
address
|
476
|
+
address stakingOwner
|
457
477
|
) = abi.decode(data, (address, address, address, address));
|
458
478
|
|
459
479
|
// only admin(authority) and dip token address are set in registry at this point
|
460
480
|
IRegistry registry = IRegistry(registryAddress);
|
461
|
-
address dipTokenAddress = registry.getDipTokenAddress();
|
462
481
|
address authority = registry.getAuthority();
|
482
|
+
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
483
|
+
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
463
484
|
|
464
485
|
initializeComponent(
|
465
486
|
authority,
|
@@ -469,19 +490,17 @@ contract Staking is
|
|
469
490
|
dipTokenAddress,
|
470
491
|
STAKING(),
|
471
492
|
false, // is interceptor
|
472
|
-
|
493
|
+
stakingOwner,
|
473
494
|
"", // registry data
|
474
495
|
""); // component data
|
475
496
|
|
476
|
-
_createAndSetTokenHandler();
|
477
|
-
|
478
|
-
|
479
497
|
// wiring to external contracts
|
480
498
|
StakingStorage storage $ = _getStakingStorage();
|
481
499
|
$._protocolNftId = getRegistry().getProtocolNftId();
|
482
500
|
$._store = StakingStore(stakingStoreAddress);
|
483
501
|
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
484
502
|
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
503
|
+
$._tokenHandler = new TokenHandler(address(getToken()));
|
485
504
|
|
486
505
|
registerInterface(type(IStaking).interfaceId);
|
487
506
|
}
|
@@ -492,5 +511,4 @@ contract Staking is
|
|
492
511
|
$.slot := STAKING_LOCATION_V1
|
493
512
|
}
|
494
513
|
}
|
495
|
-
|
496
514
|
}
|
@@ -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
|