@etherisc/gif-next 0.0.2-fd4931b-974 → 0.0.2-fd9539f-062
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 +20 -3
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +19 -13
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +115 -80
- 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 +11 -5
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +20 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +32 -101
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +83 -71
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +121 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +105 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +125 -29
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +195 -64
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +206 -49
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +79 -36
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +248 -118
- 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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -71
- 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/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +10 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -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 +1146 -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/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +91 -48
- 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 +11 -5
- 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 +18 -12
- 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/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 +11 -5
- 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 +18 -12
- 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 +82 -45
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -1
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- 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 +254 -97
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -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/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +288 -182
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -177
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- 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 +119 -69
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +85 -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/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- 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 +11 -5
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +0 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- 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 +18 -12
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +10 -20
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +6 -6
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +27 -35
- 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 +15 -9
- 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 +247 -579
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +471 -62
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +303 -798
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +81 -164
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -39
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +503 -120
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +67 -43
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +281 -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 +40 -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 +96 -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 +114 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +52 -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 +2 -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 +2 -2
- package/contracts/distribution/Distribution.sol +2 -4
- package/contracts/distribution/DistributionService.sol +5 -6
- package/contracts/distribution/DistributionServiceManager.sol +1 -13
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +1 -1
- package/contracts/instance/BundleManager.sol +1 -1
- package/contracts/instance/IInstance.sol +22 -12
- package/contracts/instance/IInstanceService.sol +27 -13
- package/contracts/instance/Instance.sol +85 -50
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +193 -152
- package/contracts/instance/InstanceReader.sol +33 -7
- package/contracts/instance/InstanceService.sol +120 -48
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +30 -21
- package/contracts/instance/base/BalanceStore.sol +12 -7
- package/contracts/instance/base/Cloneable.sol +3 -26
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectManager.sol +2 -4
- package/contracts/instance/module/IAccess.sol +3 -11
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -1
- package/contracts/instance/module/IDistribution.sol +1 -1
- package/contracts/instance/module/IPolicy.sol +1 -1
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +20 -20
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +1 -1
- package/contracts/pool/IPoolComponent.sol +1 -1
- package/contracts/pool/IPoolService.sol +4 -1
- package/contracts/pool/Pool.sol +1 -1
- package/contracts/pool/PoolService.sol +38 -10
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +6 -6
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/ClaimService.sol +12 -7
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +7 -1
- package/contracts/product/IPolicyService.sol +1 -1
- package/contracts/product/IPricingService.sol +1 -1
- package/contracts/product/IProductComponent.sol +1 -1
- package/contracts/product/IProductService.sol +1 -1
- package/contracts/product/PolicyService.sol +9 -7
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +8 -9
- package/contracts/product/PricingServiceManager.sol +1 -1
- package/contracts/product/Product.sol +1 -1
- package/contracts/product/ProductService.sol +6 -6
- package/contracts/product/ProductServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +2 -1
- package/contracts/registry/IRegistry.sol +21 -15
- package/contracts/registry/IRegistryService.sol +2 -1
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +86 -67
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +9 -71
- package/contracts/registry/RegistryServiceManager.sol +2 -21
- package/contracts/registry/ReleaseManager.sol +219 -222
- package/contracts/registry/ServiceAuthorization.sol +86 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +57 -61
- package/contracts/shared/AccessAdmin.sol +759 -0
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +9 -14
- package/contracts/shared/ComponentService.sol +40 -18
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +14 -8
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessAdmin.sol +168 -0
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +4 -8
- package/contracts/shared/IComponentService.sol +12 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +1 -1
- package/contracts/shared/IKeyValueStore.sol +2 -2
- package/contracts/shared/ILifecycle.sol +1 -1
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +1 -1
- package/contracts/shared/IRegisterable.sol +1 -1
- package/contracts/shared/IRegistryLinked.sol +1 -1
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +2 -3
- package/contracts/shared/KeyValueStore.sol +2 -5
- package/contracts/shared/Lifecycle.sol +12 -3
- package/contracts/shared/NftIdSetManager.sol +3 -7
- package/contracts/shared/NftOwnable.sol +3 -14
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/ProxyManager.sol +7 -3
- package/contracts/shared/Registerable.sol +1 -1
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +28 -22
- package/contracts/shared/TokenHandler.sol +1 -1
- package/contracts/shared/UpgradableProxyWithAdmin.sol +1 -1
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +94 -39
- package/contracts/staking/IStakingService.sol +71 -40
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +303 -138
- package/contracts/staking/StakingManager.sol +23 -21
- package/contracts/staking/StakingReader.sol +120 -25
- package/contracts/staking/StakingService.sol +194 -77
- package/contracts/staking/StakingServiceManager.sol +3 -3
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +77 -11
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +16 -2
- package/contracts/type/Blocknumber.sol +14 -2
- package/contracts/type/ClaimId.sol +1 -1
- package/contracts/type/DistributorType.sol +1 -1
- package/contracts/type/Fee.sol +1 -1
- package/contracts/type/Key32.sol +1 -1
- package/contracts/type/NftId.sol +9 -9
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +140 -68
- package/contracts/type/PayoutId.sol +1 -1
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +79 -21
- package/contracts/type/Seconds.sol +19 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +13 -1
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +7 -3
- package/contracts/type/UFixed.sol +1 -1
- package/contracts/type/Version.sol +1 -1
- package/package.json +6 -3
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -298
- 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/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/registry/RegistryAccessManager.sol +0 -167
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -1,70 +1,101 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.24;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
5
6
|
import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
|
6
7
|
import {IComponent} from "../shared/IComponent.sol";
|
8
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
9
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
10
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
11
|
+
import {IStaking} from "../staking/IStaking.sol";
|
7
12
|
import {IVersionable} from "../shared/IVersionable.sol";
|
8
13
|
import {NftId} from "../type/NftId.sol";
|
14
|
+
import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
|
9
15
|
import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
|
10
16
|
import {Seconds} from "../type/Seconds.sol";
|
11
|
-
import {
|
17
|
+
import {StakingStore} from "./StakingStore.sol";
|
12
18
|
import {Timestamp} from "../type/Timestamp.sol";
|
13
|
-
import {UFixed} from "../type/UFixed.sol";
|
19
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
14
20
|
|
15
|
-
contract StakingReader
|
21
|
+
contract StakingReader is
|
22
|
+
IRegistryLinked,
|
23
|
+
InitializableCustom
|
24
|
+
{
|
16
25
|
|
17
|
-
error
|
26
|
+
error ErrorStakingReaderDependenciesAlreadySet();
|
18
27
|
|
28
|
+
IRegistry private _registry;
|
19
29
|
IStaking private _staking;
|
30
|
+
StakingStore private _store;
|
20
31
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
}
|
32
|
+
constructor(IRegistry registry) InitializableCustom() {
|
33
|
+
_registry = registry;
|
34
|
+
}
|
25
35
|
|
36
|
+
function initialize(
|
37
|
+
address stakingAddress,
|
38
|
+
address stakingStoreAddress
|
39
|
+
)
|
40
|
+
external
|
41
|
+
initializer
|
42
|
+
{
|
26
43
|
_staking = IStaking(stakingAddress);
|
44
|
+
_store = StakingStore(stakingStoreAddress);
|
27
45
|
}
|
28
46
|
|
29
|
-
// view and pure functions
|
47
|
+
// view and pure functions
|
48
|
+
|
49
|
+
function getRegistry() external view returns (IRegistry registry) {
|
50
|
+
return _registry;
|
51
|
+
}
|
30
52
|
|
31
53
|
function getStaking() external view returns (IStaking staking) {
|
32
54
|
return _staking;
|
33
55
|
}
|
34
56
|
|
57
|
+
function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
|
58
|
+
return _store.getStakingRate(chainId, token);
|
59
|
+
}
|
60
|
+
|
35
61
|
|
36
62
|
function isTarget(NftId targetNftId) external view returns (bool) {
|
37
|
-
return
|
63
|
+
return _store.getTargetManager().exists(targetNftId);
|
38
64
|
}
|
39
65
|
|
40
66
|
|
41
67
|
function targets() external view returns (uint256) {
|
42
|
-
return
|
68
|
+
return _store.getTargetManager().nftIds();
|
43
69
|
}
|
44
70
|
|
45
71
|
|
46
72
|
function getTargetNftId(uint256 idx) external view returns (NftId) {
|
47
|
-
return
|
73
|
+
return _store.getTargetManager().getNftId(idx);
|
48
74
|
}
|
49
75
|
|
50
76
|
|
51
77
|
function isActive(NftId targetNftId) external view returns (bool) {
|
52
|
-
return
|
78
|
+
return _store.getTargetManager().isActive(targetNftId);
|
53
79
|
}
|
54
80
|
|
55
81
|
|
56
82
|
function activeTargets() external view returns (uint256) {
|
57
|
-
return
|
83
|
+
return _store.getTargetManager().activeNftIds();
|
58
84
|
}
|
59
85
|
|
60
86
|
|
61
87
|
function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
|
62
|
-
return
|
88
|
+
return _store.getTargetManager().getActiveNftId(idx);
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
|
93
|
+
return _registry.getObjectInfo(stakeNftId).parentNftId;
|
63
94
|
}
|
64
95
|
|
65
96
|
|
66
97
|
function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
|
67
|
-
bytes memory data =
|
98
|
+
bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
|
68
99
|
if (data.length > 0) {
|
69
100
|
return abi.decode(data, (IStaking.TargetInfo));
|
70
101
|
}
|
@@ -72,21 +103,85 @@ contract StakingReader {
|
|
72
103
|
|
73
104
|
|
74
105
|
function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
|
75
|
-
bytes memory data =
|
106
|
+
bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
|
76
107
|
if (data.length > 0) {
|
77
108
|
return abi.decode(data, (IStaking.StakeInfo));
|
78
109
|
}
|
79
110
|
}
|
80
111
|
|
81
112
|
|
82
|
-
|
83
|
-
|
113
|
+
/// @dev get the reward rate that applies to the specified stake nft id.
|
114
|
+
function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
|
115
|
+
targetNftId = getTargetNftId(stakeNftId);
|
116
|
+
rewardRate = getTargetInfo(targetNftId).rewardRate;
|
117
|
+
}
|
118
|
+
|
119
|
+
|
120
|
+
/// @dev get the reward rate for the specified target nft id.
|
121
|
+
function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
|
122
|
+
return getTargetInfo(targetNftId).rewardRate;
|
123
|
+
}
|
124
|
+
|
125
|
+
/// @dev returns the current reward reserve balance for the specified target.
|
126
|
+
function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
|
127
|
+
return _store.getReserveBalance(targetNftId);
|
128
|
+
}
|
129
|
+
|
130
|
+
function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
|
131
|
+
return _store.getStakeBalance(nftId);
|
132
|
+
}
|
133
|
+
|
134
|
+
function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
|
135
|
+
return _store.getRewardBalance(nftId);
|
136
|
+
}
|
84
137
|
|
85
|
-
|
138
|
+
function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
|
139
|
+
return _store.getBalanceUpdatedAt(nftId);
|
140
|
+
}
|
86
141
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
// ) external view returns (Amount rewardIncrementAmount);
|
142
|
+
function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) {
|
143
|
+
return _store.getBalanceUpdatedIn(nftId);
|
144
|
+
}
|
91
145
|
|
146
|
+
function getTotalValueLocked(NftId nftId, address token) external view returns (Amount totalValueLocked) {
|
147
|
+
return _store.getTotalValueLocked(nftId, token);
|
148
|
+
}
|
149
|
+
|
150
|
+
function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredStakedAmount) {
|
151
|
+
return _store.getRequiredStakeBalance(nftId);
|
152
|
+
}
|
153
|
+
|
154
|
+
function getTargetBalances(NftId stakeNftId)
|
155
|
+
public
|
156
|
+
view
|
157
|
+
returns (
|
158
|
+
Amount balanceAmount,
|
159
|
+
Amount stakeAmount,
|
160
|
+
Amount rewardAmount,
|
161
|
+
Blocknumber lastUpdatedIn
|
162
|
+
)
|
163
|
+
{
|
164
|
+
(
|
165
|
+
balanceAmount,
|
166
|
+
stakeAmount,
|
167
|
+
rewardAmount,
|
168
|
+
lastUpdatedIn
|
169
|
+
) = _store.getTargetBalances(stakeNftId);
|
170
|
+
}
|
171
|
+
|
172
|
+
function getStakeBalances(NftId stakeNftId)
|
173
|
+
external
|
174
|
+
view
|
175
|
+
returns (
|
176
|
+
Amount stakeAmount,
|
177
|
+
Amount rewardAmount,
|
178
|
+
Timestamp lastUpdatedAt
|
179
|
+
)
|
180
|
+
{
|
181
|
+
(
|
182
|
+
stakeAmount,
|
183
|
+
rewardAmount,
|
184
|
+
lastUpdatedAt
|
185
|
+
) = _store.getStakeBalances(stakeNftId);
|
186
|
+
}
|
92
187
|
}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.24;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
3
5
|
|
4
6
|
import {Amount} from "../type/Amount.sol";
|
5
7
|
import {ChainNft} from "../registry/ChainNft.sol";
|
@@ -13,9 +15,11 @@ import {NftId, NftIdLib} from "../type/NftId.sol";
|
|
13
15
|
import {ObjectType, INSTANCE, PROTOCOL, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
|
14
16
|
import {Seconds} from "../type/Seconds.sol";
|
15
17
|
import {Service} from "../shared/Service.sol";
|
18
|
+
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
16
19
|
import {StakingReader} from "./StakingReader.sol";
|
17
20
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
18
21
|
import {Timestamp} from "../type/Timestamp.sol";
|
22
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
23
|
import {UFixed} from "../type/UFixed.sol";
|
20
24
|
|
21
25
|
|
@@ -30,31 +34,17 @@ contract StakingService is
|
|
30
34
|
struct StakingServiceStorage {
|
31
35
|
RegistryService _registryService;
|
32
36
|
IStaking _staking;
|
37
|
+
IERC20Metadata _dip;
|
38
|
+
TokenHandler _tokenHandler;
|
33
39
|
}
|
34
40
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
function registerProtocolTarget()
|
41
|
-
external
|
42
|
-
virtual
|
43
|
-
{
|
44
|
-
uint256 protocolId = ChainNft(
|
45
|
-
getRegistry().getChainNftAddress()).PROTOCOL_NFT_ID();
|
46
|
-
|
47
|
-
NftId protocolNftId = NftIdLib.toNftId(protocolId);
|
48
|
-
_getStakingServiceStorage()._staking.registerTarget(
|
49
|
-
protocolNftId,
|
50
|
-
PROTOCOL(),
|
51
|
-
1, // protocol is registered on mainnet
|
52
|
-
TargetManagerLib.getDefaultLockingPeriod(),
|
53
|
-
TargetManagerLib.getDefaultRewardRate());
|
41
|
+
modifier onlyNftOwner(NftId nftId) {
|
42
|
+
if(msg.sender != getRegistry().ownerOf(nftId)) {
|
43
|
+
revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
|
44
|
+
}
|
45
|
+
_;
|
54
46
|
}
|
55
47
|
|
56
|
-
// TODO cleanup
|
57
|
-
event LogDebug(uint256 id, string message);
|
58
48
|
|
59
49
|
function createInstanceTarget(
|
60
50
|
NftId targetNftId,
|
@@ -63,10 +53,8 @@ contract StakingService is
|
|
63
53
|
)
|
64
54
|
external
|
65
55
|
virtual
|
66
|
-
|
56
|
+
restricted()
|
67
57
|
{
|
68
|
-
emit LogDebug(1, "before chainid");
|
69
|
-
|
70
58
|
uint256 chainId = block.chainid;
|
71
59
|
_getStakingServiceStorage()._staking.registerTarget(
|
72
60
|
targetNftId,
|
@@ -74,6 +62,71 @@ contract StakingService is
|
|
74
62
|
chainId,
|
75
63
|
initialLockingPeriod,
|
76
64
|
initialRewardRate);
|
65
|
+
|
66
|
+
emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
|
71
|
+
external
|
72
|
+
virtual
|
73
|
+
restricted()
|
74
|
+
{
|
75
|
+
_getStakingServiceStorage()._staking.setLockingPeriod(
|
76
|
+
instanceNftId,
|
77
|
+
lockingPeriod);
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
|
82
|
+
external
|
83
|
+
virtual
|
84
|
+
restricted()
|
85
|
+
{
|
86
|
+
_getStakingServiceStorage()._staking.setRewardRate(
|
87
|
+
instanceNftId,
|
88
|
+
rewardRate);
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
|
93
|
+
external
|
94
|
+
virtual
|
95
|
+
restricted()
|
96
|
+
returns (Amount newBalance)
|
97
|
+
{
|
98
|
+
return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
|
99
|
+
}
|
100
|
+
|
101
|
+
|
102
|
+
function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount)
|
103
|
+
external
|
104
|
+
virtual
|
105
|
+
restricted()
|
106
|
+
returns (Amount newBalance)
|
107
|
+
{
|
108
|
+
address rewardProvider = msg.sender;
|
109
|
+
return _refillRewardReserves(targetNftId, rewardProvider, dipAmount);
|
110
|
+
}
|
111
|
+
|
112
|
+
|
113
|
+
function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
|
114
|
+
external
|
115
|
+
virtual
|
116
|
+
restricted()
|
117
|
+
returns (Amount newBalance)
|
118
|
+
{
|
119
|
+
// update reward reserve book keeping
|
120
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
121
|
+
newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
|
122
|
+
|
123
|
+
// transfer withdrawal amount to target owner
|
124
|
+
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
125
|
+
$._staking.transferDipAmount(
|
126
|
+
instanceOwner,
|
127
|
+
dipAmount);
|
128
|
+
|
129
|
+
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
77
130
|
}
|
78
131
|
|
79
132
|
|
@@ -89,33 +142,15 @@ contract StakingService is
|
|
89
142
|
)
|
90
143
|
external
|
91
144
|
virtual
|
145
|
+
restricted()
|
92
146
|
returns (
|
93
147
|
NftId stakeNftId
|
94
148
|
)
|
95
149
|
{
|
96
150
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
97
|
-
StakingReader stakingReader = $._staking.getStakingReader();
|
98
151
|
address stakeOwner = msg.sender;
|
99
152
|
|
100
|
-
//
|
101
|
-
if (targetNftId.eqz()) {
|
102
|
-
revert ErrorStakingServiceZeroTargetNftId();
|
103
|
-
}
|
104
|
-
|
105
|
-
if (!stakingReader.isTarget(targetNftId)) {
|
106
|
-
revert ErrorStakingServiceNotTargetNftId(targetNftId);
|
107
|
-
}
|
108
|
-
|
109
|
-
if (!stakingReader.isActive(targetNftId)) {
|
110
|
-
revert ErrorStakingServiceNotActiveTargetNftId(targetNftId);
|
111
|
-
}
|
112
|
-
|
113
|
-
// check balance and allowance
|
114
|
-
//TODO implement
|
115
|
-
|
116
|
-
// collect staked dip amount
|
117
|
-
//TODO implement
|
118
|
-
|
153
|
+
// target nft id checks are performed in $._staking.createStake() below
|
119
154
|
// register new stake object with registry
|
120
155
|
stakeNftId = $._registryService.registerStake(
|
121
156
|
IRegistry.ObjectInfo({
|
@@ -127,97 +162,152 @@ contract StakingService is
|
|
127
162
|
initialOwner: stakeOwner,
|
128
163
|
data: ""
|
129
164
|
}));
|
130
|
-
|
131
|
-
// create stake info
|
132
|
-
$._staking.
|
165
|
+
|
166
|
+
// create stake info with staking
|
167
|
+
$._staking.createStake(
|
133
168
|
stakeNftId,
|
134
169
|
targetNftId,
|
135
170
|
dipAmount);
|
136
171
|
|
137
|
-
|
172
|
+
// collect staked dip by staking
|
173
|
+
$._staking.collectDipAmount(
|
174
|
+
stakeOwner,
|
175
|
+
dipAmount);
|
176
|
+
|
177
|
+
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
138
178
|
}
|
139
179
|
|
140
180
|
|
141
181
|
function stake(
|
142
182
|
NftId stakeNftId,
|
143
|
-
Amount
|
183
|
+
Amount dipAmount
|
144
184
|
)
|
145
185
|
external
|
146
186
|
virtual
|
187
|
+
restricted()
|
188
|
+
onlyNftOwner(stakeNftId)
|
147
189
|
{
|
190
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
191
|
+
address stakeOwner = msg.sender;
|
192
|
+
|
193
|
+
// add additional staked dips by staking
|
194
|
+
Amount stakeBalance = $._staking.stake(
|
195
|
+
stakeNftId,
|
196
|
+
dipAmount);
|
197
|
+
|
198
|
+
// collect staked dip by staking
|
199
|
+
if (dipAmount.gtz()) {
|
200
|
+
$._staking.collectDipAmount(
|
201
|
+
stakeOwner,
|
202
|
+
dipAmount);
|
203
|
+
}
|
148
204
|
|
205
|
+
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
149
206
|
}
|
150
207
|
|
151
208
|
|
152
|
-
function
|
209
|
+
function restakeToNewTarget(
|
153
210
|
NftId stakeNftId,
|
154
|
-
|
211
|
+
NftId newTargetNftId
|
155
212
|
)
|
156
213
|
external
|
157
214
|
virtual
|
215
|
+
restricted()
|
216
|
+
onlyNftOwner(stakeNftId)
|
217
|
+
returns (
|
218
|
+
NftId newStakeNftId
|
219
|
+
)
|
158
220
|
{
|
221
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
222
|
+
// TODO implement
|
223
|
+
}
|
159
224
|
|
160
|
-
}
|
161
225
|
|
162
|
-
function
|
226
|
+
function updateRewards(
|
163
227
|
NftId stakeNftId
|
164
228
|
)
|
165
229
|
external
|
166
230
|
virtual
|
231
|
+
restricted()
|
167
232
|
{
|
233
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
234
|
+
$._staking.updateRewards(stakeNftId);
|
168
235
|
|
236
|
+
emit LogStakingServiceRewardsUpdated(stakeNftId);
|
169
237
|
}
|
170
238
|
|
171
|
-
|
172
|
-
|
173
|
-
NftId newTargetNftId
|
174
|
-
)
|
239
|
+
|
240
|
+
function claimRewards(NftId stakeNftId)
|
175
241
|
external
|
176
242
|
virtual
|
177
|
-
|
178
|
-
|
179
|
-
Timestamp unlockedAt
|
180
|
-
)
|
243
|
+
restricted()
|
244
|
+
onlyNftOwner(stakeNftId)
|
181
245
|
{
|
246
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
247
|
+
address stakeOwner = msg.sender;
|
248
|
+
|
249
|
+
Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
|
250
|
+
$._staking.transferDipAmount(
|
251
|
+
stakeOwner,
|
252
|
+
rewardsClaimedAmount);
|
182
253
|
|
254
|
+
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
183
255
|
}
|
184
256
|
|
185
257
|
|
186
|
-
function
|
187
|
-
NftId targetNftId,
|
188
|
-
address token,
|
189
|
-
Amount amount
|
190
|
-
)
|
258
|
+
function unstake(NftId stakeNftId)
|
191
259
|
external
|
192
260
|
virtual
|
193
|
-
|
261
|
+
restricted()
|
262
|
+
onlyNftOwner(stakeNftId)
|
194
263
|
{
|
264
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
265
|
+
address stakeOwner = msg.sender;
|
266
|
+
|
267
|
+
(
|
268
|
+
Amount unstakedAmount,
|
269
|
+
Amount rewardsClaimedAmount
|
270
|
+
) = $._staking.unstake(stakeNftId);
|
271
|
+
|
272
|
+
Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
|
273
|
+
$._staking.transferDipAmount(
|
274
|
+
stakeOwner,
|
275
|
+
totalAmount);
|
195
276
|
|
277
|
+
emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
|
196
278
|
}
|
197
279
|
|
198
280
|
|
199
|
-
function
|
281
|
+
function setTotalValueLocked(
|
200
282
|
NftId targetNftId,
|
201
283
|
address token,
|
202
284
|
Amount amount
|
203
285
|
)
|
204
286
|
external
|
205
287
|
virtual
|
206
|
-
|
288
|
+
restricted()
|
207
289
|
{
|
290
|
+
// TODO implement
|
208
291
|
|
209
292
|
}
|
210
293
|
|
294
|
+
//--- view functions ----------------------------------------------------//
|
211
295
|
|
212
|
-
function
|
213
|
-
NftId targetNftId,
|
214
|
-
address token,
|
215
|
-
Amount amount
|
216
|
-
)
|
296
|
+
function getDipToken()
|
217
297
|
external
|
218
298
|
virtual
|
299
|
+
returns (IERC20Metadata dip)
|
219
300
|
{
|
301
|
+
return _getStakingServiceStorage()._dip;
|
302
|
+
}
|
303
|
+
|
220
304
|
|
305
|
+
function getTokenHandler()
|
306
|
+
external
|
307
|
+
virtual
|
308
|
+
returns (TokenHandler tokenHandler)
|
309
|
+
{
|
310
|
+
return _getStakingServiceStorage()._tokenHandler;
|
221
311
|
}
|
222
312
|
|
223
313
|
|
@@ -229,6 +319,7 @@ contract StakingService is
|
|
229
319
|
return _getStakingServiceStorage()._staking;
|
230
320
|
}
|
231
321
|
|
322
|
+
//--- internal functions ------------------------------------------------//
|
232
323
|
|
233
324
|
function _initialize(
|
234
325
|
address owner,
|
@@ -239,15 +330,18 @@ contract StakingService is
|
|
239
330
|
initializer()
|
240
331
|
{
|
241
332
|
(
|
333
|
+
address authority,
|
242
334
|
address registryAddress,
|
243
335
|
address stakingAddress
|
244
|
-
) = abi.decode(data, (address, address));
|
336
|
+
) = abi.decode(data, (address, address, address));
|
245
337
|
|
246
|
-
initializeService(registryAddress,
|
338
|
+
initializeService(registryAddress, authority, owner);
|
247
339
|
|
248
340
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
249
341
|
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
250
342
|
$._staking = _registerStaking(stakingAddress);
|
343
|
+
$._dip = $._staking.getToken();
|
344
|
+
$._tokenHandler = $._staking.getTokenHandler();
|
251
345
|
|
252
346
|
registerInterface(type(IStakingService).interfaceId);
|
253
347
|
}
|
@@ -286,9 +380,32 @@ contract StakingService is
|
|
286
380
|
}
|
287
381
|
|
288
382
|
|
383
|
+
function _refillRewardReserves(NftId targetNftId, address rewardProvider, Amount dipAmount)
|
384
|
+
internal
|
385
|
+
virtual
|
386
|
+
returns (Amount newBalance)
|
387
|
+
{
|
388
|
+
// update reward reserve book keeping
|
389
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
390
|
+
newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
|
391
|
+
|
392
|
+
// collect reward dip from provider
|
393
|
+
$._staking.collectDipAmount(
|
394
|
+
rewardProvider,
|
395
|
+
dipAmount);
|
396
|
+
|
397
|
+
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
398
|
+
}
|
399
|
+
|
400
|
+
|
289
401
|
function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
|
290
402
|
assembly {
|
291
403
|
$.slot := STAKING_SERVICE_LOCATION_V1
|
292
404
|
}
|
293
405
|
}
|
406
|
+
|
407
|
+
|
408
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
409
|
+
return STAKING();
|
410
|
+
}
|
294
411
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.24;
|
3
3
|
|
4
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
5
|
import {IVersionable} from "../shared/IVersionable.sol";
|
@@ -14,6 +14,7 @@ contract StakingServiceManager is
|
|
14
14
|
|
15
15
|
/// @dev initializes proxy manager with service implementation
|
16
16
|
constructor(
|
17
|
+
address authority,
|
17
18
|
address registryAddress,
|
18
19
|
bytes32 salt
|
19
20
|
)
|
@@ -21,16 +22,15 @@ contract StakingServiceManager is
|
|
21
22
|
{
|
22
23
|
StakingService svc = new StakingService();
|
23
24
|
bytes memory data = abi.encode(
|
25
|
+
authority,
|
24
26
|
registryAddress,
|
25
27
|
IRegistry(registryAddress).getStakingAddress());
|
26
|
-
|
27
28
|
IVersionable versionable = deployDetermenistic(
|
28
29
|
address(svc),
|
29
30
|
data,
|
30
31
|
salt);
|
31
32
|
|
32
33
|
_stakingService = StakingService(address(versionable));
|
33
|
-
_stakingService.registerProtocolTarget();
|
34
34
|
}
|
35
35
|
|
36
36
|
//--- view functions ----------------------------------------------------//
|