@etherisc/gif-next 0.0.2-e802d97-251 → 0.0.2-e81f152-917
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 +49 -4
- 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 +1500 -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 +46 -292
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +248 -95
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +81 -57
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -149
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +116 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- 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 +132 -140
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +215 -108
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +90 -263
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -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 +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -26
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -157
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +66 -29
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +44 -32
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1406 -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 +424 -63
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +115 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +218 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -278
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +171 -54
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -417
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +252 -95
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +58 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +67 -49
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -42
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1254 -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 +122 -69
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -52
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +18 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +29 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +201 -108
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -68
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +294 -164
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +69 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +97 -63
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -49
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +32 -217
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +347 -85
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +108 -60
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +166 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -26
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -117
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +52 -109
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +114 -146
- 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 +78 -58
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +201 -148
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
- 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 +37 -8
- 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 +17 -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 +4 -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 +136 -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 +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- 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 +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +60 -36
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +15 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +16 -12
- package/contracts/instance/IInstanceService.sol +34 -23
- package/contracts/instance/Instance.sol +106 -88
- package/contracts/instance/InstanceAdmin.sol +221 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +34 -16
- package/contracts/instance/InstanceService.sol +189 -84
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +16 -20
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectLifecycle.sol +105 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +1 -1
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +72 -51
- package/contracts/oracle/OracleService.sol +5 -4
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +199 -59
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +14 -17
- package/contracts/pool/Pool.sol +166 -137
- package/contracts/pool/PoolService.sol +158 -93
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +54 -58
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +18 -44
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +1 -0
- package/contracts/product/IPolicyService.sol +23 -17
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/IProductService.sol +1 -0
- package/contracts/product/PolicyService.sol +247 -136
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +9 -6
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +128 -92
- package/contracts/product/ProductService.sol +12 -37
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +85 -85
- package/contracts/registry/RegistryAdmin.sol +292 -155
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +24 -37
- package/contracts/shared/ComponentService.sol +99 -76
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +27 -22
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +22 -11
- package/contracts/staking/StakeManagerLib.sol +52 -25
- package/contracts/staking/Staking.sol +77 -132
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +66 -65
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +93 -60
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +167 -64
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +103 -75
- package/contracts/type/Seconds.sol +13 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +6 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/registry/ReleaseManager.sol +0 -600
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -13,12 +13,64 @@ import {NftId} from "../type/NftId.sol";
|
|
13
13
|
import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
|
14
14
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
15
15
|
import {StakingReader} from "./StakingReader.sol";
|
16
|
+
import {StakingStore} from "./StakingStore.sol";
|
16
17
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
17
18
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
18
19
|
|
19
20
|
|
20
21
|
library StakeManagerLib {
|
21
22
|
|
23
|
+
function stake(
|
24
|
+
IRegistry registry,
|
25
|
+
StakingReader stakingReader,
|
26
|
+
StakingStore stakingStore,
|
27
|
+
NftId stakeNftId,
|
28
|
+
Amount stakeAmount
|
29
|
+
)
|
30
|
+
external
|
31
|
+
returns (Amount stakeBalance)
|
32
|
+
{
|
33
|
+
// check that target is active for staking
|
34
|
+
(
|
35
|
+
UFixed rewardRate,
|
36
|
+
Seconds lockingPeriod
|
37
|
+
) = checkStakeParameters(
|
38
|
+
stakingReader,
|
39
|
+
stakeNftId);
|
40
|
+
|
41
|
+
// calculate new rewards (if any)
|
42
|
+
(
|
43
|
+
Amount rewardIncrementAmount,
|
44
|
+
Amount currentTotalDipAmount
|
45
|
+
) = calculateRewardIncrease(
|
46
|
+
stakingReader,
|
47
|
+
stakeNftId,
|
48
|
+
rewardRate);
|
49
|
+
|
50
|
+
stakeBalance = currentTotalDipAmount + stakeAmount;
|
51
|
+
|
52
|
+
// TODO check that additional dip, rewards and rewards increment
|
53
|
+
// are still ok with max target staking amount
|
54
|
+
NftId targetNftId = registry.getObjectInfo(stakeNftId).parentNftId;
|
55
|
+
|
56
|
+
stakingStore.restakeRewards(
|
57
|
+
stakeNftId,
|
58
|
+
targetNftId,
|
59
|
+
rewardIncrementAmount);
|
60
|
+
|
61
|
+
stakingStore.increaseStake(
|
62
|
+
stakeNftId,
|
63
|
+
targetNftId,
|
64
|
+
stakeAmount);
|
65
|
+
|
66
|
+
// update locked until with target locking period
|
67
|
+
stakingStore.update(
|
68
|
+
stakeNftId,
|
69
|
+
IStaking.StakeInfo({
|
70
|
+
lockedUntil: TimestampLib.blockTimestamp().addSeconds(
|
71
|
+
lockingPeriod)}));
|
72
|
+
|
73
|
+
}
|
22
74
|
|
23
75
|
function checkCreateParameters(
|
24
76
|
StakingReader stakingReader,
|
@@ -101,31 +153,6 @@ library StakeManagerLib {
|
|
101
153
|
// TODO add check for target specific max dip amount (min stake + tvl * stake rate + buffer)
|
102
154
|
}
|
103
155
|
|
104
|
-
|
105
|
-
function checkDipBalanceAndAllowance(
|
106
|
-
IERC20Metadata dip,
|
107
|
-
address owner,
|
108
|
-
address tokenHandlerAddress,
|
109
|
-
Amount dipAmount
|
110
|
-
)
|
111
|
-
public
|
112
|
-
view
|
113
|
-
{
|
114
|
-
// check balance
|
115
|
-
uint256 amount = dipAmount.toInt();
|
116
|
-
uint256 dipBalance = dip.balanceOf(owner);
|
117
|
-
if (dipBalance < amount) {
|
118
|
-
revert IStaking.ErrorStakingDipBalanceInsufficient(owner, amount, dipBalance);
|
119
|
-
}
|
120
|
-
|
121
|
-
// check allowance
|
122
|
-
uint256 dipAllowance = dip.allowance(owner, tokenHandlerAddress);
|
123
|
-
if (dipAllowance < amount) {
|
124
|
-
revert IStaking.ErrorStakingDipAllowanceInsufficient(owner, tokenHandlerAddress, amount, dipAllowance);
|
125
|
-
}
|
126
|
-
}
|
127
|
-
|
128
|
-
|
129
156
|
function calculateRewardIncrease(
|
130
157
|
StakingReader stakingReader,
|
131
158
|
NftId stakeNftId,
|
@@ -1,30 +1,27 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
6
|
-
import {Component} from "../shared/Component.sol";
|
7
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
5
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
6
|
import {IStaking} from "./IStaking.sol";
|
10
|
-
import {IVersionable} from "../
|
11
|
-
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {ObjectType,
|
17
|
-
import {Seconds
|
7
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
8
|
+
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
|
+
import {Component} from "../shared/Component.sol";
|
11
|
+
import {IComponent} from "../shared/IComponent.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {ObjectType, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {Seconds} from "../type/Seconds.sol";
|
18
15
|
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
19
16
|
import {StakingReader} from "./StakingReader.sol";
|
20
17
|
import {StakingStore} from "./StakingStore.sol";
|
21
18
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
22
|
-
import {Timestamp
|
19
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
23
20
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
24
21
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
25
|
-
import {UFixed
|
22
|
+
import {UFixed} from "../type/UFixed.sol";
|
26
23
|
import {Version, VersionLib} from "../type/Version.sol";
|
27
|
-
import {Versionable} from "../
|
24
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
28
25
|
|
29
26
|
contract Staking is
|
30
27
|
Component,
|
@@ -40,6 +37,7 @@ contract Staking is
|
|
40
37
|
struct StakingStorage {
|
41
38
|
IRegistryService _registryService;
|
42
39
|
TokenRegistry _tokenRegistry;
|
40
|
+
TokenHandler _tokenHandler;
|
43
41
|
StakingStore _store;
|
44
42
|
StakingReader _reader;
|
45
43
|
NftId _protocolNftId;
|
@@ -55,28 +53,17 @@ contract Staking is
|
|
55
53
|
|
56
54
|
|
57
55
|
modifier onlyTarget(NftId targetNftId) {
|
58
|
-
if (!_getStakingStorage()._store.
|
56
|
+
if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
|
59
57
|
revert ErrorStakingNotTarget(targetNftId);
|
60
58
|
}
|
61
59
|
_;
|
62
60
|
}
|
63
61
|
|
64
|
-
|
65
|
-
// from Versionable
|
66
|
-
function getVersion()
|
67
|
-
public
|
68
|
-
pure
|
69
|
-
virtual override (IVersionable, Versionable)
|
70
|
-
returns(Version)
|
71
|
-
{
|
72
|
-
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
73
|
-
}
|
74
|
-
|
75
62
|
// set/update staking reader
|
76
63
|
function setStakingReader(StakingReader stakingReader)
|
77
64
|
external
|
78
65
|
virtual
|
79
|
-
onlyOwner
|
66
|
+
onlyOwner()
|
80
67
|
{
|
81
68
|
if(stakingReader.getStaking() != IStaking(this)) {
|
82
69
|
revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
|
@@ -90,7 +77,7 @@ contract Staking is
|
|
90
77
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
|
91
78
|
external
|
92
79
|
virtual
|
93
|
-
onlyOwner
|
80
|
+
onlyOwner()
|
94
81
|
{
|
95
82
|
StakingStorage storage $ = _getStakingStorage();
|
96
83
|
|
@@ -104,8 +91,6 @@ contract Staking is
|
|
104
91
|
emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
|
105
92
|
}
|
106
93
|
|
107
|
-
// reward management
|
108
|
-
|
109
94
|
// target management
|
110
95
|
|
111
96
|
function registerTarget(
|
@@ -117,7 +102,7 @@ contract Staking is
|
|
117
102
|
)
|
118
103
|
external
|
119
104
|
virtual
|
120
|
-
|
105
|
+
restricted()
|
121
106
|
{
|
122
107
|
TargetManagerLib.checkTargetParameters(
|
123
108
|
getRegistry(),
|
@@ -143,7 +128,7 @@ contract Staking is
|
|
143
128
|
)
|
144
129
|
external
|
145
130
|
virtual
|
146
|
-
|
131
|
+
restricted()
|
147
132
|
onlyTarget(targetNftId)
|
148
133
|
{
|
149
134
|
(
|
@@ -165,7 +150,7 @@ contract Staking is
|
|
165
150
|
function setRewardRate(NftId targetNftId, UFixed rewardRate)
|
166
151
|
external
|
167
152
|
virtual
|
168
|
-
|
153
|
+
restricted()
|
169
154
|
onlyTarget(targetNftId)
|
170
155
|
{
|
171
156
|
(
|
@@ -185,7 +170,7 @@ contract Staking is
|
|
185
170
|
function refillRewardReserves(NftId targetNftId, Amount dipAmount)
|
186
171
|
external
|
187
172
|
virtual
|
188
|
-
|
173
|
+
restricted()
|
189
174
|
returns (Amount newBalance)
|
190
175
|
{
|
191
176
|
// update book keeping of reward reserves
|
@@ -197,8 +182,7 @@ contract Staking is
|
|
197
182
|
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
|
198
183
|
external
|
199
184
|
virtual
|
200
|
-
|
201
|
-
// onlyNftOwner(targetNftId)
|
185
|
+
restricted()
|
202
186
|
returns (Amount newBalance)
|
203
187
|
{
|
204
188
|
// update book keeping of reward reserves
|
@@ -210,7 +194,7 @@ contract Staking is
|
|
210
194
|
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
211
195
|
external
|
212
196
|
virtual
|
213
|
-
|
197
|
+
restricted() // only pool service
|
214
198
|
returns (Amount newBalance)
|
215
199
|
{
|
216
200
|
StakingStorage storage $ = _getStakingStorage();
|
@@ -223,7 +207,7 @@ contract Staking is
|
|
223
207
|
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
224
208
|
external
|
225
209
|
virtual
|
226
|
-
|
210
|
+
restricted() // only pool service
|
227
211
|
returns (Amount newBalance)
|
228
212
|
{
|
229
213
|
StakingStorage storage $ = _getStakingStorage();
|
@@ -236,6 +220,7 @@ contract Staking is
|
|
236
220
|
function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
|
237
221
|
external
|
238
222
|
virtual
|
223
|
+
restricted()
|
239
224
|
onlyOwner // or CCIP
|
240
225
|
{
|
241
226
|
|
@@ -244,6 +229,7 @@ contract Staking is
|
|
244
229
|
function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
|
245
230
|
external
|
246
231
|
virtual
|
232
|
+
restricted()
|
247
233
|
onlyOwner // or CCIP
|
248
234
|
{
|
249
235
|
|
@@ -258,7 +244,7 @@ contract Staking is
|
|
258
244
|
)
|
259
245
|
external
|
260
246
|
virtual
|
261
|
-
|
247
|
+
restricted() // only staking service
|
262
248
|
{
|
263
249
|
StakingStorage storage $ = _getStakingStorage();
|
264
250
|
Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
|
@@ -286,51 +272,17 @@ contract Staking is
|
|
286
272
|
)
|
287
273
|
external
|
288
274
|
virtual
|
289
|
-
|
275
|
+
restricted() // only staking service
|
290
276
|
onlyStake(stakeNftId)
|
291
277
|
returns (Amount stakeBalance)
|
292
278
|
{
|
293
279
|
StakingStorage storage $ = _getStakingStorage();
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
Seconds lockingPeriod
|
299
|
-
) = StakeManagerLib.checkStakeParameters(
|
300
|
-
$._reader,
|
301
|
-
stakeNftId);
|
302
|
-
|
303
|
-
// calculate new rewards (if any)
|
304
|
-
(
|
305
|
-
Amount rewardIncrementAmount,
|
306
|
-
Amount currentTotalDipAmount
|
307
|
-
) = StakeManagerLib.calculateRewardIncrease(
|
308
|
-
$._reader,
|
280
|
+
stakeBalance = StakeManagerLib.stake(
|
281
|
+
getRegistry(),
|
282
|
+
$._reader,
|
283
|
+
$._store,
|
309
284
|
stakeNftId,
|
310
|
-
rewardRate);
|
311
|
-
|
312
|
-
stakeBalance = currentTotalDipAmount + stakeAmount;
|
313
|
-
|
314
|
-
// TODO check that additional dip, rewards and rewards increment
|
315
|
-
// are still ok with max target staking amount
|
316
|
-
NftId targetNftId = getRegistry().getObjectInfo(stakeNftId).parentNftId;
|
317
|
-
|
318
|
-
$._store.restakeRewards(
|
319
|
-
stakeNftId,
|
320
|
-
targetNftId,
|
321
|
-
rewardIncrementAmount);
|
322
|
-
|
323
|
-
$._store.increaseStake(
|
324
|
-
stakeNftId,
|
325
|
-
targetNftId,
|
326
285
|
stakeAmount);
|
327
|
-
|
328
|
-
// update locked until with target locking period
|
329
|
-
$._store.update(
|
330
|
-
stakeNftId,
|
331
|
-
StakeInfo({
|
332
|
-
lockedUntil: TimestampLib.blockTimestamp().addSeconds(
|
333
|
-
lockingPeriod)}));
|
334
286
|
}
|
335
287
|
|
336
288
|
|
@@ -340,7 +292,7 @@ contract Staking is
|
|
340
292
|
)
|
341
293
|
external
|
342
294
|
virtual
|
343
|
-
|
295
|
+
restricted() // only staking service
|
344
296
|
onlyStake(stakeNftId)
|
345
297
|
returns (NftId newStakeNftId)
|
346
298
|
{
|
@@ -354,7 +306,7 @@ contract Staking is
|
|
354
306
|
function updateRewards(NftId stakeNftId)
|
355
307
|
external
|
356
308
|
virtual
|
357
|
-
|
309
|
+
restricted() // only staking service
|
358
310
|
onlyStake(stakeNftId)
|
359
311
|
{
|
360
312
|
StakingStorage storage $ = _getStakingStorage();
|
@@ -365,7 +317,7 @@ contract Staking is
|
|
365
317
|
function claimRewards(NftId stakeNftId)
|
366
318
|
external
|
367
319
|
virtual
|
368
|
-
|
320
|
+
restricted() // only staking service
|
369
321
|
onlyStake(stakeNftId)
|
370
322
|
returns (
|
371
323
|
Amount rewardsClaimedAmount
|
@@ -390,7 +342,7 @@ contract Staking is
|
|
390
342
|
function unstake(NftId stakeNftId)
|
391
343
|
external
|
392
344
|
virtual
|
393
|
-
|
345
|
+
restricted() // only staking service
|
394
346
|
onlyStake(stakeNftId)
|
395
347
|
returns (
|
396
348
|
Amount unstakedAmount,
|
@@ -419,63 +371,21 @@ contract Staking is
|
|
419
371
|
|
420
372
|
|
421
373
|
|
422
|
-
function _updateRewards(
|
423
|
-
StakingReader reader,
|
424
|
-
StakingStore store,
|
425
|
-
NftId stakeNftId
|
426
|
-
)
|
427
|
-
internal
|
428
|
-
virtual
|
429
|
-
returns (NftId targetNftId)
|
430
|
-
{
|
431
|
-
UFixed rewardRate;
|
432
|
-
|
433
|
-
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
434
|
-
(Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
|
435
|
-
reader,
|
436
|
-
stakeNftId,
|
437
|
-
rewardRate);
|
438
|
-
|
439
|
-
store.updateRewards(
|
440
|
-
stakeNftId,
|
441
|
-
targetNftId,
|
442
|
-
rewardIncrement);
|
443
|
-
}
|
444
|
-
|
445
|
-
|
446
374
|
//--- other functions ---------------------------------------------------//
|
447
375
|
|
448
376
|
function collectDipAmount(address from, Amount dipAmount)
|
449
377
|
external
|
450
|
-
|
378
|
+
restricted() // only staking service
|
451
379
|
{
|
452
|
-
|
453
|
-
address stakingWallet = getWallet();
|
454
|
-
|
455
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
456
|
-
getToken(),
|
457
|
-
from,
|
458
|
-
address(tokenHandler),
|
459
|
-
dipAmount);
|
460
|
-
|
461
|
-
tokenHandler.transfer(from, stakingWallet, dipAmount);
|
380
|
+
getTokenHandler().collectTokens(from, getWallet(), dipAmount);
|
462
381
|
}
|
463
382
|
|
464
383
|
|
465
384
|
function transferDipAmount(address to, Amount dipAmount)
|
466
385
|
external
|
467
|
-
|
386
|
+
restricted() // only staking service
|
468
387
|
{
|
469
|
-
|
470
|
-
address stakingWallet = getWallet();
|
471
|
-
|
472
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
473
|
-
getToken(),
|
474
|
-
stakingWallet,
|
475
|
-
address(tokenHandler),
|
476
|
-
dipAmount);
|
477
|
-
|
478
|
-
tokenHandler.transfer(stakingWallet, to, dipAmount);
|
388
|
+
getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
|
479
389
|
}
|
480
390
|
|
481
391
|
|
@@ -493,8 +403,46 @@ contract Staking is
|
|
493
403
|
return address(_getStakingStorage()._tokenRegistry);
|
494
404
|
}
|
495
405
|
|
406
|
+
function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
|
407
|
+
return _getStakingStorage()._tokenHandler;
|
408
|
+
}
|
409
|
+
|
410
|
+
// from Versionable
|
411
|
+
function getVersion()
|
412
|
+
public
|
413
|
+
pure
|
414
|
+
virtual override (IVersionable, Versionable)
|
415
|
+
returns(Version)
|
416
|
+
{
|
417
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
418
|
+
}
|
419
|
+
|
496
420
|
//--- internal functions ------------------------------------------------//
|
497
421
|
|
422
|
+
function _updateRewards(
|
423
|
+
StakingReader reader,
|
424
|
+
StakingStore store,
|
425
|
+
NftId stakeNftId
|
426
|
+
)
|
427
|
+
internal
|
428
|
+
virtual
|
429
|
+
returns (NftId targetNftId)
|
430
|
+
{
|
431
|
+
UFixed rewardRate;
|
432
|
+
|
433
|
+
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
434
|
+
(Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
|
435
|
+
reader,
|
436
|
+
stakeNftId,
|
437
|
+
rewardRate);
|
438
|
+
|
439
|
+
store.updateRewards(
|
440
|
+
stakeNftId,
|
441
|
+
targetNftId,
|
442
|
+
rewardIncrement);
|
443
|
+
}
|
444
|
+
|
445
|
+
|
498
446
|
function _initialize(
|
499
447
|
address owner,
|
500
448
|
bytes memory data
|
@@ -528,15 +476,13 @@ contract Staking is
|
|
528
476
|
"", // registry data
|
529
477
|
""); // component data
|
530
478
|
|
531
|
-
_createAndSetTokenHandler();
|
532
|
-
|
533
|
-
|
534
479
|
// wiring to external contracts
|
535
480
|
StakingStorage storage $ = _getStakingStorage();
|
536
481
|
$._protocolNftId = getRegistry().getProtocolNftId();
|
537
482
|
$._store = StakingStore(stakingStoreAddress);
|
538
483
|
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
539
484
|
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
485
|
+
$._tokenHandler = new TokenHandler(address(getToken()), authority);
|
540
486
|
|
541
487
|
registerInterface(type(IStaking).interfaceId);
|
542
488
|
}
|
@@ -547,5 +493,4 @@ contract Staking is
|
|
547
493
|
$.slot := STAKING_LOCATION_V1
|
548
494
|
}
|
549
495
|
}
|
550
|
-
|
551
496
|
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {TARGET, COMPONENT, STAKE} from "../type/ObjectType.sol";
|
5
|
+
import {INITIAL} from "../type/StateId.sol";
|
6
|
+
import {Lifecycle} from "../shared/Lifecycle.sol";
|
7
|
+
|
8
|
+
contract StakingLifecycle is
|
9
|
+
Lifecycle
|
10
|
+
{
|
11
|
+
constructor() {
|
12
|
+
_setupLifecycle();
|
13
|
+
}
|
14
|
+
|
15
|
+
function _setupLifecycle()
|
16
|
+
internal
|
17
|
+
override
|
18
|
+
{
|
19
|
+
setInitialState(TARGET(), INITIAL());
|
20
|
+
setInitialState(COMPONENT(), INITIAL());
|
21
|
+
setInitialState(STAKE(), INITIAL());
|
22
|
+
}
|
23
|
+
}
|
@@ -1,14 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
6
|
-
import {ReleaseManager} from "../registry/ReleaseManager.sol";
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
6
|
import {Staking} from "./Staking.sol";
|
8
|
-
import {StakingReader} from "./StakingReader.sol";
|
9
|
-
import {StakingStore} from "./StakingStore.sol";
|
10
7
|
|
11
|
-
import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
|
12
8
|
|
13
9
|
contract StakingManager is
|
14
10
|
ProxyManager
|
@@ -1,22 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {Blocknumber} from "../type/Blocknumber.sol";
|
6
|
-
import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
|
7
|
-
import {IComponent} from "../shared/IComponent.sol";
|
8
|
-
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
9
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
10
5
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
11
6
|
import {IStaking} from "../staking/IStaking.sol";
|
12
|
-
|
7
|
+
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
10
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
13
11
|
import {NftId} from "../type/NftId.sol";
|
14
|
-
import {
|
15
|
-
import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
|
16
|
-
import {Seconds} from "../type/Seconds.sol";
|
12
|
+
import {STAKE, TARGET} from "../type/ObjectType.sol";
|
17
13
|
import {StakingStore} from "./StakingStore.sol";
|
18
14
|
import {Timestamp} from "../type/Timestamp.sol";
|
19
|
-
import {UFixed
|
15
|
+
import {UFixed} from "../type/UFixed.sol";
|
20
16
|
|
21
17
|
contract StakingReader is
|
22
18
|
IRegistryLinked,
|
@@ -60,32 +56,32 @@ contract StakingReader is
|
|
60
56
|
|
61
57
|
|
62
58
|
function isTarget(NftId targetNftId) external view returns (bool) {
|
63
|
-
return _store.
|
59
|
+
return _store.getTargetNftIdSet().exists(targetNftId);
|
64
60
|
}
|
65
61
|
|
66
62
|
|
67
63
|
function targets() external view returns (uint256) {
|
68
|
-
return _store.
|
64
|
+
return _store.getTargetNftIdSet().nftIds();
|
69
65
|
}
|
70
66
|
|
71
67
|
|
72
68
|
function getTargetNftId(uint256 idx) external view returns (NftId) {
|
73
|
-
return _store.
|
69
|
+
return _store.getTargetNftIdSet().getNftId(idx);
|
74
70
|
}
|
75
71
|
|
76
72
|
|
77
73
|
function isActive(NftId targetNftId) external view returns (bool) {
|
78
|
-
return _store.
|
74
|
+
return _store.getTargetNftIdSet().isActive(targetNftId);
|
79
75
|
}
|
80
76
|
|
81
77
|
|
82
78
|
function activeTargets() external view returns (uint256) {
|
83
|
-
return _store.
|
79
|
+
return _store.getTargetNftIdSet().activeNftIds();
|
84
80
|
}
|
85
81
|
|
86
82
|
|
87
83
|
function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
|
88
|
-
return _store.
|
84
|
+
return _store.getTargetNftIdSet().getActiveNftId(idx);
|
89
85
|
}
|
90
86
|
|
91
87
|
|