@etherisc/gif-next 0.0.2-7f39e38-904 → 0.0.2-804cdbf-724
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 +32 -3
- 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 +36 -255
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +147 -96
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +86 -59
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +82 -151
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +52 -17
- 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 +77 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +149 -52
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +91 -132
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- 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 +216 -119
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +70 -51
- 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/IAccess.sol/IAccess.json +8 -116
- 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 +102 -59
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +74 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +20 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +18 -207
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +35 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +25 -315
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +84 -42
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -40
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +79 -36
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +68 -37
- 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 +119 -68
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +88 -53
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +20 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +20 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +24 -47
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +20 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +97 -46
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +77 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +105 -62
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +81 -50
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +31 -165
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +61 -26
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +59 -32
- 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 +86 -74
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -184
- 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 +255 -112
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -15
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +51 -35
- 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 +19 -11
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +18 -12
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +96 -70
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +73 -54
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +20 -1
- 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 +11 -5
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +24 -5
- 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/INftOwnable.sol/INftOwnable.json +7 -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/IRegisterable.sol/IRegisterable.json +7 -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 +20 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +31 -65
- 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 +13 -7
- 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/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +35 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +14 -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 +20 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +121 -118
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +222 -71
- 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 +186 -183
- 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 +71 -58
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +263 -39
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +271 -135
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +67 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +734 -187
- 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/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 +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -106
- package/contracts/distribution/DistributionService.sol +13 -9
- package/contracts/distribution/DistributionServiceManager.sol +0 -12
- 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 +25 -16
- package/contracts/instance/IInstanceService.sol +36 -27
- package/contracts/instance/Instance.sol +113 -87
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +52 -13
- package/contracts/instance/InstanceService.sol +175 -99
- 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/IAccess.sol +2 -10
- 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 +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +26 -26
- 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 +38 -11
- package/contracts/product/ApplicationService.sol +5 -5
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +11 -6
- package/contracts/product/IClaimService.sol +6 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyService.sol +8 -6
- package/contracts/product/PricingService.sol +7 -8
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +5 -5
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +33 -24
- package/contracts/registry/IRegistryService.sol +7 -6
- package/contracts/registry/Registry.sol +146 -148
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +8 -8
- package/contracts/registry/RegistryServiceManager.sol +0 -19
- 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 +22 -61
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +50 -64
- 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/INftOwnable.sol +1 -1
- package/contracts/shared/IService.sol +7 -0
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +26 -20
- 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/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +2 -1
- package/contracts/shared/ProxyManager.sol +6 -3
- package/contracts/shared/Service.sol +27 -21
- package/contracts/shared/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/staking/IStaking.sol +40 -25
- package/contracts/staking/IStakingService.sol +42 -44
- package/contracts/staking/StakeManagerLib.sol +101 -26
- package/contracts/staking/Staking.sol +136 -127
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -22
- package/contracts/staking/StakingReader.sol +75 -36
- package/contracts/staking/StakingService.sol +124 -88
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +401 -115
- 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/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/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
- 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/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -322
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1151
- 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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- 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/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
- package/contracts/registry/RegistryAccessManager.sol +0 -196
- package/contracts/registry/ReleaseManager.sol +0 -563
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/staking/IStakingManager.sol +0 -15
- package/contracts/staking/IStakingStore.sol +0 -130
@@ -9,10 +9,7 @@ import {IRegistryService} from "../registry/IRegistryService.sol";
|
|
9
9
|
import {IStaking} from "./IStaking.sol";
|
10
10
|
import {IVersionable} from "../shared/IVersionable.sol";
|
11
11
|
import {Key32} from "../type/Key32.sol";
|
12
|
-
import {KEEP_STATE} from "../type/StateId.sol";
|
13
|
-
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
14
12
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
|
-
import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
|
16
13
|
import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
|
17
14
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
18
15
|
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
@@ -42,12 +39,6 @@ contract Staking is
|
|
42
39
|
TokenRegistry _tokenRegistry;
|
43
40
|
StakingStore _store;
|
44
41
|
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
42
|
NftId _protocolNftId;
|
52
43
|
}
|
53
44
|
|
@@ -61,28 +52,17 @@ contract Staking is
|
|
61
52
|
|
62
53
|
|
63
54
|
modifier onlyTarget(NftId targetNftId) {
|
64
|
-
if (!_getStakingStorage()._store.
|
55
|
+
if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
|
65
56
|
revert ErrorStakingNotTarget(targetNftId);
|
66
57
|
}
|
67
58
|
_;
|
68
59
|
}
|
69
60
|
|
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
61
|
// set/update staking reader
|
82
62
|
function setStakingReader(StakingReader stakingReader)
|
83
63
|
external
|
84
64
|
virtual
|
85
|
-
onlyOwner
|
65
|
+
onlyOwner()
|
86
66
|
{
|
87
67
|
if(stakingReader.getStaking() != IStaking(this)) {
|
88
68
|
revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
|
@@ -96,12 +76,19 @@ contract Staking is
|
|
96
76
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
|
97
77
|
external
|
98
78
|
virtual
|
99
|
-
onlyOwner
|
79
|
+
onlyOwner()
|
100
80
|
{
|
81
|
+
StakingStorage storage $ = _getStakingStorage();
|
82
|
+
|
83
|
+
if (!$._tokenRegistry.isRegistered(chainId, token)) {
|
84
|
+
revert ErrorStakingTokenNotRegistered(chainId, token);
|
85
|
+
}
|
101
86
|
|
102
|
-
|
87
|
+
UFixed oldStakingRate = $._store.getStakingRate(chainId, token);
|
88
|
+
$._store.setStakingRate(chainId, token, stakingRate);
|
103
89
|
|
104
|
-
|
90
|
+
emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
|
91
|
+
}
|
105
92
|
|
106
93
|
// target management
|
107
94
|
|
@@ -114,7 +101,7 @@ contract Staking is
|
|
114
101
|
)
|
115
102
|
external
|
116
103
|
virtual
|
117
|
-
|
104
|
+
restricted()
|
118
105
|
{
|
119
106
|
TargetManagerLib.checkTargetParameters(
|
120
107
|
getRegistry(),
|
@@ -140,8 +127,8 @@ contract Staking is
|
|
140
127
|
)
|
141
128
|
external
|
142
129
|
virtual
|
143
|
-
|
144
|
-
onlyTarget(targetNftId)
|
130
|
+
restricted()
|
131
|
+
onlyTarget(targetNftId)
|
145
132
|
{
|
146
133
|
(
|
147
134
|
Seconds oldLockingPeriod,
|
@@ -162,7 +149,8 @@ contract Staking is
|
|
162
149
|
function setRewardRate(NftId targetNftId, UFixed rewardRate)
|
163
150
|
external
|
164
151
|
virtual
|
165
|
-
|
152
|
+
restricted()
|
153
|
+
onlyTarget(targetNftId)
|
166
154
|
{
|
167
155
|
(
|
168
156
|
UFixed oldRewardRate,
|
@@ -181,39 +169,57 @@ contract Staking is
|
|
181
169
|
function refillRewardReserves(NftId targetNftId, Amount dipAmount)
|
182
170
|
external
|
183
171
|
virtual
|
172
|
+
restricted()
|
173
|
+
returns (Amount newBalance)
|
184
174
|
{
|
185
|
-
|
175
|
+
// update book keeping of reward reserves
|
176
|
+
StakingStorage storage $ = _getStakingStorage();
|
177
|
+
newBalance = $._store.increaseReserves(targetNftId, dipAmount);
|
186
178
|
}
|
187
179
|
|
180
|
+
|
188
181
|
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
|
189
182
|
external
|
190
183
|
virtual
|
191
|
-
|
184
|
+
restricted()
|
185
|
+
returns (Amount newBalance)
|
192
186
|
{
|
193
|
-
|
187
|
+
// update book keeping of reward reserves
|
188
|
+
StakingStorage storage $ = _getStakingStorage();
|
189
|
+
newBalance = $._store.decreaseReserves(targetNftId, dipAmount);
|
194
190
|
}
|
195
191
|
|
196
192
|
|
197
|
-
function
|
193
|
+
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
198
194
|
external
|
199
195
|
virtual
|
200
|
-
|
196
|
+
restricted() // only pool service
|
197
|
+
returns (Amount newBalance)
|
201
198
|
{
|
202
|
-
|
199
|
+
StakingStorage storage $ = _getStakingStorage();
|
200
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
201
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
202
|
+
newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
203
203
|
}
|
204
204
|
|
205
|
-
|
205
|
+
|
206
|
+
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
206
207
|
external
|
207
208
|
virtual
|
208
|
-
|
209
|
+
restricted() // only pool service
|
210
|
+
returns (Amount newBalance)
|
209
211
|
{
|
210
|
-
|
212
|
+
StakingStorage storage $ = _getStakingStorage();
|
213
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
214
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
215
|
+
newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
211
216
|
}
|
212
217
|
|
213
218
|
|
214
219
|
function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
|
215
220
|
external
|
216
221
|
virtual
|
222
|
+
restricted()
|
217
223
|
onlyOwner // or CCIP
|
218
224
|
{
|
219
225
|
|
@@ -222,6 +228,7 @@ contract Staking is
|
|
222
228
|
function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
|
223
229
|
external
|
224
230
|
virtual
|
231
|
+
restricted()
|
225
232
|
onlyOwner // or CCIP
|
226
233
|
{
|
227
234
|
|
@@ -229,68 +236,76 @@ contract Staking is
|
|
229
236
|
|
230
237
|
//--- staking functions -------------------------------------------------//
|
231
238
|
|
232
|
-
function
|
239
|
+
function createStake(
|
233
240
|
NftId stakeNftId,
|
234
241
|
NftId targetNftId,
|
235
|
-
Amount
|
242
|
+
Amount stakeAmount
|
236
243
|
)
|
237
244
|
external
|
238
245
|
virtual
|
239
|
-
|
246
|
+
restricted() // only staking service
|
240
247
|
{
|
241
|
-
|
242
|
-
|
248
|
+
StakingStorage storage $ = _getStakingStorage();
|
249
|
+
Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
|
250
|
+
$._reader,
|
243
251
|
targetNftId,
|
244
|
-
|
252
|
+
stakeAmount);
|
245
253
|
|
246
|
-
|
254
|
+
// create new stake
|
255
|
+
$._store.create(
|
247
256
|
stakeNftId,
|
248
257
|
StakeInfo({
|
249
|
-
lockedUntil: lockedUntil})
|
250
|
-
|
258
|
+
lockedUntil: lockedUntil}));
|
259
|
+
|
260
|
+
// update target stake balance
|
261
|
+
$._store.increaseStake(
|
262
|
+
stakeNftId,
|
263
|
+
targetNftId,
|
264
|
+
stakeAmount);
|
251
265
|
}
|
252
266
|
|
253
267
|
|
254
|
-
function stake(
|
268
|
+
function stake(
|
269
|
+
NftId stakeNftId,
|
270
|
+
Amount stakeAmount
|
271
|
+
)
|
255
272
|
external
|
256
273
|
virtual
|
257
|
-
|
274
|
+
restricted() // only staking service
|
258
275
|
onlyStake(stakeNftId)
|
276
|
+
returns (Amount stakeBalance)
|
259
277
|
{
|
260
278
|
StakingStorage storage $ = _getStakingStorage();
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
dipAmount,
|
268
|
-
rewardIncrement);
|
279
|
+
stakeBalance = StakeManagerLib.stake(
|
280
|
+
getRegistry(),
|
281
|
+
$._reader,
|
282
|
+
$._store,
|
283
|
+
stakeNftId,
|
284
|
+
stakeAmount);
|
269
285
|
}
|
270
286
|
|
271
287
|
|
272
|
-
function restake(
|
288
|
+
function restake(
|
289
|
+
NftId stakeNftId,
|
290
|
+
NftId newTargetNftId
|
291
|
+
)
|
273
292
|
external
|
274
293
|
virtual
|
275
|
-
|
294
|
+
restricted() // only staking service
|
276
295
|
onlyStake(stakeNftId)
|
296
|
+
returns (NftId newStakeNftId)
|
277
297
|
{
|
278
|
-
// TODO add check that
|
298
|
+
// TODO add check that allows additional staking amount
|
279
299
|
StakingStorage storage $ = _getStakingStorage();
|
280
|
-
Amount rewardIncrement = StakeManagerLib.calculateRewardIncrease(
|
281
|
-
$._reader,
|
282
|
-
stakeNftId);
|
283
300
|
|
284
|
-
|
285
|
-
|
286
|
-
rewardIncrement);
|
287
|
-
}
|
301
|
+
// TODO implement
|
302
|
+
}
|
288
303
|
|
289
304
|
|
290
305
|
function updateRewards(NftId stakeNftId)
|
291
306
|
external
|
292
307
|
virtual
|
293
|
-
|
308
|
+
restricted() // only staking service
|
294
309
|
onlyStake(stakeNftId)
|
295
310
|
{
|
296
311
|
StakingStorage storage $ = _getStakingStorage();
|
@@ -301,7 +316,7 @@ contract Staking is
|
|
301
316
|
function claimRewards(NftId stakeNftId)
|
302
317
|
external
|
303
318
|
virtual
|
304
|
-
|
319
|
+
restricted() // only staking service
|
305
320
|
onlyStake(stakeNftId)
|
306
321
|
returns (
|
307
322
|
Amount rewardsClaimedAmount
|
@@ -310,19 +325,23 @@ contract Staking is
|
|
310
325
|
StakingStorage storage $ = _getStakingStorage();
|
311
326
|
|
312
327
|
// update rewards since last update
|
313
|
-
_updateRewards($._reader, $._store, stakeNftId);
|
328
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
314
329
|
|
315
330
|
// unstake all available rewards
|
316
331
|
rewardsClaimedAmount = $._store.claimUpTo(
|
317
332
|
stakeNftId,
|
333
|
+
targetNftId,
|
318
334
|
AmountLib.max());
|
335
|
+
|
336
|
+
// update reward reserves
|
337
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
319
338
|
}
|
320
339
|
|
321
340
|
|
322
341
|
function unstake(NftId stakeNftId)
|
323
342
|
external
|
324
343
|
virtual
|
325
|
-
|
344
|
+
restricted() // only staking service
|
326
345
|
onlyStake(stakeNftId)
|
327
346
|
returns (
|
328
347
|
Amount unstakedAmount,
|
@@ -333,7 +352,7 @@ contract Staking is
|
|
333
352
|
StakingStorage storage $ = _getStakingStorage();
|
334
353
|
|
335
354
|
// update rewards since last update
|
336
|
-
_updateRewards($._reader, $._store, stakeNftId);
|
355
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
337
356
|
|
338
357
|
// unstake all available dips
|
339
358
|
(
|
@@ -341,35 +360,21 @@ contract Staking is
|
|
341
360
|
rewardsClaimedAmount
|
342
361
|
) = $._store.unstakeUpTo(
|
343
362
|
stakeNftId,
|
363
|
+
targetNftId,
|
344
364
|
AmountLib.max(), // unstake all stakes
|
345
365
|
AmountLib.max()); // claim all rewards
|
346
|
-
}
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
function _updateRewards(
|
351
|
-
StakingReader reader,
|
352
|
-
StakingStore store,
|
353
|
-
NftId stakeNftId
|
354
|
-
)
|
355
|
-
internal
|
356
|
-
virtual
|
357
|
-
{
|
358
|
-
Amount rewardIncrement = StakeManagerLib.calculateRewardIncrease(
|
359
|
-
reader,
|
360
|
-
stakeNftId);
|
361
366
|
|
362
|
-
|
363
|
-
|
364
|
-
rewardIncrement);
|
367
|
+
// update reward reserves
|
368
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
365
369
|
}
|
366
370
|
|
367
371
|
|
372
|
+
|
368
373
|
//--- other functions ---------------------------------------------------//
|
369
374
|
|
370
375
|
function collectDipAmount(address from, Amount dipAmount)
|
371
376
|
external
|
372
|
-
|
377
|
+
restricted() // only staking service
|
373
378
|
{
|
374
379
|
TokenHandler tokenHandler = getTokenHandler();
|
375
380
|
address stakingWallet = getWallet();
|
@@ -386,7 +391,7 @@ contract Staking is
|
|
386
391
|
|
387
392
|
function transferDipAmount(address to, Amount dipAmount)
|
388
393
|
external
|
389
|
-
|
394
|
+
restricted() // only staking service
|
390
395
|
{
|
391
396
|
TokenHandler tokenHandler = getTokenHandler();
|
392
397
|
address stakingWallet = getWallet();
|
@@ -411,35 +416,46 @@ contract Staking is
|
|
411
416
|
return _getStakingStorage()._store;
|
412
417
|
}
|
413
418
|
|
414
|
-
function
|
415
|
-
return _getStakingStorage().
|
419
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
420
|
+
return address(_getStakingStorage()._tokenRegistry);
|
416
421
|
}
|
417
422
|
|
418
|
-
function getTvlAmount(NftId targetNftId, address token) external view returns (Amount tvlAmount) {
|
419
|
-
return _getStakingStorage()._tvlAmount[targetNftId][token];
|
420
|
-
}
|
421
423
|
|
422
|
-
|
423
|
-
|
424
|
+
// from Versionable
|
425
|
+
function getVersion()
|
426
|
+
public
|
427
|
+
pure
|
428
|
+
virtual override (IVersionable, Versionable)
|
429
|
+
returns(Version)
|
430
|
+
{
|
431
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
424
432
|
}
|
425
433
|
|
426
|
-
|
427
|
-
return address(_getStakingStorage()._tokenRegistry);
|
428
|
-
}
|
434
|
+
//--- internal functions ------------------------------------------------//
|
429
435
|
|
430
|
-
function
|
431
|
-
|
432
|
-
|
436
|
+
function _updateRewards(
|
437
|
+
StakingReader reader,
|
438
|
+
StakingStore store,
|
439
|
+
NftId stakeNftId
|
433
440
|
)
|
434
|
-
|
441
|
+
internal
|
435
442
|
virtual
|
436
|
-
|
437
|
-
returns (Amount rewardIncrementAmount)
|
443
|
+
returns (NftId targetNftId)
|
438
444
|
{
|
445
|
+
UFixed rewardRate;
|
446
|
+
|
447
|
+
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
448
|
+
(Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
|
449
|
+
reader,
|
450
|
+
stakeNftId,
|
451
|
+
rewardRate);
|
439
452
|
|
453
|
+
store.updateRewards(
|
454
|
+
stakeNftId,
|
455
|
+
targetNftId,
|
456
|
+
rewardIncrement);
|
440
457
|
}
|
441
458
|
|
442
|
-
//--- internal functions ------------------------------------------------//
|
443
459
|
|
444
460
|
function _initialize(
|
445
461
|
address owner,
|
@@ -450,26 +466,27 @@ contract Staking is
|
|
450
466
|
initializer
|
451
467
|
{
|
452
468
|
(
|
453
|
-
address initialAuthority,
|
454
469
|
address registryAddress,
|
455
|
-
address
|
470
|
+
address tokenRegistryAddress,
|
456
471
|
address stakingStoreAddress,
|
457
|
-
address
|
458
|
-
) = abi.decode(data, (address, address, address, address
|
472
|
+
address stakingOwner
|
473
|
+
) = abi.decode(data, (address, address, address, address));
|
459
474
|
|
475
|
+
// only admin(authority) and dip token address are set in registry at this point
|
460
476
|
IRegistry registry = IRegistry(registryAddress);
|
461
|
-
|
462
|
-
|
477
|
+
address authority = registry.getAuthority();
|
478
|
+
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
479
|
+
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
463
480
|
|
464
481
|
initializeComponent(
|
465
|
-
|
482
|
+
authority,
|
466
483
|
registryAddress,
|
467
484
|
registry.getNftId(),
|
468
485
|
CONTRACT_NAME,
|
469
486
|
dipTokenAddress,
|
470
487
|
STAKING(),
|
471
488
|
false, // is interceptor
|
472
|
-
|
489
|
+
stakingOwner,
|
473
490
|
"", // registry data
|
474
491
|
""); // component data
|
475
492
|
|
@@ -479,15 +496,8 @@ contract Staking is
|
|
479
496
|
StakingStorage storage $ = _getStakingStorage();
|
480
497
|
$._protocolNftId = getRegistry().getProtocolNftId();
|
481
498
|
$._store = StakingStore(stakingStoreAddress);
|
482
|
-
$._reader =
|
483
|
-
$._tokenRegistry = TokenRegistry(
|
484
|
-
address(tokenRegistry));
|
485
|
-
|
486
|
-
// wiring to staking
|
487
|
-
$._reader.setStakingDependencies(
|
488
|
-
registryAddress,
|
489
|
-
address(this),
|
490
|
-
stakingStoreAddress);
|
499
|
+
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
500
|
+
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
491
501
|
|
492
502
|
registerInterface(type(IStaking).interfaceId);
|
493
503
|
}
|
@@ -498,5 +508,4 @@ contract Staking is
|
|
498
508
|
$.slot := STAKING_LOCATION_V1
|
499
509
|
}
|
500
510
|
}
|
501
|
-
|
502
511
|
}
|
@@ -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
|
+
}
|
@@ -3,47 +3,35 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IVersionable} from "../shared/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../shared/ProxyManager.sol";
|
6
|
-
import {ReleaseManager} from "../registry/ReleaseManager.sol";
|
7
6
|
import {Staking} from "./Staking.sol";
|
8
7
|
import {StakingReader} from "./StakingReader.sol";
|
9
8
|
import {StakingStore} from "./StakingStore.sol";
|
10
9
|
|
10
|
+
import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
|
11
|
+
|
11
12
|
contract StakingManager is
|
12
13
|
ProxyManager
|
13
14
|
{
|
14
|
-
|
15
|
-
error ErrorStakingManagerNotReleaseManager(address sender);
|
16
|
-
|
17
15
|
Staking private _staking;
|
18
16
|
address private _initialImplementation;
|
19
17
|
bytes private _initializationData;
|
20
18
|
|
21
19
|
/// @dev initializes proxy manager with service implementation
|
22
20
|
constructor(
|
23
|
-
address
|
24
|
-
address
|
21
|
+
address registry,
|
22
|
+
address tokenRegistry,
|
23
|
+
address stakingStore,
|
25
24
|
address initialOwner
|
26
25
|
)
|
27
|
-
ProxyManager(
|
26
|
+
ProxyManager(registry)
|
28
27
|
{
|
29
|
-
// TODO cleanup
|
30
|
-
// ReleaseManager releaseManager = ReleaseManager(
|
31
|
-
// getRegistry().getReleaseManagerAddress());
|
32
|
-
// address authority = releaseManager.authority();
|
33
|
-
|
34
28
|
Staking stakingImplementation = new Staking();
|
35
|
-
// stakingStoreAddress
|
36
|
-
// StakingStore stakingStore = new StakingStore(authority, registryAddress, address(stakingReader));
|
37
|
-
StakingStore stakingStore = StakingStore(stakingStoreAddress);
|
38
|
-
StakingReader stakingReader = stakingStore.getStakingReader();
|
39
|
-
address authority = stakingStore.authority();
|
40
29
|
|
41
30
|
_initialImplementation = address(stakingImplementation);
|
42
31
|
_initializationData = abi.encode(
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
address(stakingStore),
|
32
|
+
registry,
|
33
|
+
tokenRegistry,
|
34
|
+
stakingStore,
|
47
35
|
initialOwner);
|
48
36
|
|
49
37
|
IVersionable versionable = deploy(
|
@@ -62,4 +50,4 @@ contract StakingManager is
|
|
62
50
|
{
|
63
51
|
return _staking;
|
64
52
|
}
|
65
|
-
}
|
53
|
+
}
|