@etherisc/gif-next 0.0.2-bad23b9-954 → 0.0.2-baec8d5-329
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -228
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +306 -95
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +97 -57
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +147 -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 +110 -76
- 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 +84 -135
- 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 +1185 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +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 -0
- 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 +43 -96
- 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 +1520 -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 +254 -59
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +82 -42
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +115 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -195
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +13 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -296
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -41
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -37
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -36
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -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 +13 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -42
- 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 +84 -47
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +53 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +92 -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 -153
- 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/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +235 -85
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +80 -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/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +110 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -0
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -53
- 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 +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- 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 +44 -28
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -84
- 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 +40 -56
- 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 +200 -152
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -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 +32 -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 +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 +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 +2 -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 +4 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +142 -102
- package/contracts/distribution/DistributionService.sol +73 -26
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +17 -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 +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +24 -9
- package/contracts/instance/InstanceService.sol +159 -78
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +15 -20
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IComponents.sol +0 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +72 -47
- package/contracts/oracle/OracleService.sol +5 -4
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +55 -0
- package/contracts/pool/BundleService.sol +89 -43
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +14 -0
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/Pool.sol +160 -131
- package/contracts/pool/PoolService.sol +17 -34
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +17 -41
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +10 -36
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/PolicyService.sol +5 -5
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +4 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +12 -37
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +85 -85
- package/contracts/registry/RegistryAdmin.sol +283 -155
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +487 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +13 -14
- package/contracts/shared/ComponentService.sol +76 -72
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponentService.sol +10 -0
- 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/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/Service.sol +27 -22
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +22 -11
- package/contracts/staking/StakeManagerLib.sol +52 -0
- package/contracts/staking/Staking.sol +75 -112
- 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 +61 -56
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +93 -60
- package/contracts/type/Amount.sol +7 -2
- package/contracts/type/ObjectType.sol +167 -64
- package/contracts/type/RoleId.sol +103 -75
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +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/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
@@ -45,29 +45,6 @@ contract StakingService is
|
|
45
45
|
_;
|
46
46
|
}
|
47
47
|
|
48
|
-
function getDomain() public pure override returns(ObjectType) {
|
49
|
-
return STAKING();
|
50
|
-
}
|
51
|
-
|
52
|
-
|
53
|
-
function registerProtocolTarget()
|
54
|
-
external
|
55
|
-
virtual
|
56
|
-
{
|
57
|
-
uint256 protocolId = ChainNft(
|
58
|
-
getRegistry().getChainNftAddress()).PROTOCOL_NFT_ID();
|
59
|
-
|
60
|
-
NftId protocolNftId = NftIdLib.toNftId(protocolId);
|
61
|
-
_getStakingServiceStorage()._staking.registerTarget(
|
62
|
-
protocolNftId,
|
63
|
-
PROTOCOL(),
|
64
|
-
1, // protocol is registered on mainnet
|
65
|
-
TargetManagerLib.getDefaultLockingPeriod(),
|
66
|
-
TargetManagerLib.getDefaultRewardRate());
|
67
|
-
|
68
|
-
emit LogStakingServiceProtocolTargetRegistered(protocolNftId);
|
69
|
-
}
|
70
|
-
|
71
48
|
|
72
49
|
function createInstanceTarget(
|
73
50
|
NftId targetNftId,
|
@@ -76,7 +53,7 @@ contract StakingService is
|
|
76
53
|
)
|
77
54
|
external
|
78
55
|
virtual
|
79
|
-
|
56
|
+
restricted()
|
80
57
|
{
|
81
58
|
uint256 chainId = block.chainid;
|
82
59
|
_getStakingServiceStorage()._staking.registerTarget(
|
@@ -90,66 +67,66 @@ contract StakingService is
|
|
90
67
|
}
|
91
68
|
|
92
69
|
|
93
|
-
function
|
70
|
+
function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
|
94
71
|
external
|
95
72
|
virtual
|
96
|
-
|
73
|
+
restricted()
|
97
74
|
{
|
98
75
|
_getStakingServiceStorage()._staking.setLockingPeriod(
|
99
|
-
|
76
|
+
instanceNftId,
|
77
|
+
lockingPeriod);
|
100
78
|
}
|
101
79
|
|
102
80
|
|
103
|
-
function
|
81
|
+
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
|
104
82
|
external
|
105
83
|
virtual
|
106
|
-
|
84
|
+
restricted()
|
107
85
|
{
|
108
86
|
_getStakingServiceStorage()._staking.setRewardRate(
|
109
|
-
|
110
|
-
|
87
|
+
instanceNftId,
|
88
|
+
rewardRate);
|
111
89
|
}
|
112
90
|
|
113
91
|
|
114
|
-
function
|
92
|
+
function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
|
115
93
|
external
|
116
94
|
virtual
|
95
|
+
restricted()
|
117
96
|
returns (Amount newBalance)
|
118
97
|
{
|
119
|
-
|
98
|
+
return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
|
99
|
+
}
|
120
100
|
|
121
|
-
// update reward reserve book keeping
|
122
|
-
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
123
|
-
newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
|
124
101
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
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);
|
131
110
|
}
|
132
111
|
|
133
112
|
|
134
|
-
function
|
113
|
+
function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
|
135
114
|
external
|
136
115
|
virtual
|
137
|
-
|
116
|
+
restricted()
|
138
117
|
returns (Amount newBalance)
|
139
118
|
{
|
140
|
-
// modifyier checks that sender is owner
|
141
|
-
address targetOwner = msg.sender;
|
142
|
-
|
143
119
|
// update reward reserve book keeping
|
144
120
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
145
|
-
newBalance = $._staking.withdrawRewardReserves(
|
121
|
+
newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
|
146
122
|
|
147
123
|
// transfer withdrawal amount to target owner
|
124
|
+
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
148
125
|
$._staking.transferDipAmount(
|
149
|
-
|
126
|
+
instanceOwner,
|
150
127
|
dipAmount);
|
151
128
|
|
152
|
-
emit LogStakingServiceRewardReservesDecreased(
|
129
|
+
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
153
130
|
}
|
154
131
|
|
155
132
|
|
@@ -165,7 +142,7 @@ contract StakingService is
|
|
165
142
|
)
|
166
143
|
external
|
167
144
|
virtual
|
168
|
-
|
145
|
+
restricted()
|
169
146
|
returns (
|
170
147
|
NftId stakeNftId
|
171
148
|
)
|
@@ -207,7 +184,7 @@ contract StakingService is
|
|
207
184
|
)
|
208
185
|
external
|
209
186
|
virtual
|
210
|
-
|
187
|
+
restricted()
|
211
188
|
onlyNftOwner(stakeNftId)
|
212
189
|
{
|
213
190
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
@@ -235,7 +212,7 @@ contract StakingService is
|
|
235
212
|
)
|
236
213
|
external
|
237
214
|
virtual
|
238
|
-
|
215
|
+
restricted()
|
239
216
|
onlyNftOwner(stakeNftId)
|
240
217
|
returns (
|
241
218
|
NftId newStakeNftId
|
@@ -250,7 +227,8 @@ contract StakingService is
|
|
250
227
|
NftId stakeNftId
|
251
228
|
)
|
252
229
|
external
|
253
|
-
|
230
|
+
virtual
|
231
|
+
restricted()
|
254
232
|
{
|
255
233
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
256
234
|
$._staking.updateRewards(stakeNftId);
|
@@ -262,7 +240,7 @@ contract StakingService is
|
|
262
240
|
function claimRewards(NftId stakeNftId)
|
263
241
|
external
|
264
242
|
virtual
|
265
|
-
|
243
|
+
restricted()
|
266
244
|
onlyNftOwner(stakeNftId)
|
267
245
|
{
|
268
246
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
@@ -280,7 +258,7 @@ contract StakingService is
|
|
280
258
|
function unstake(NftId stakeNftId)
|
281
259
|
external
|
282
260
|
virtual
|
283
|
-
|
261
|
+
restricted()
|
284
262
|
onlyNftOwner(stakeNftId)
|
285
263
|
{
|
286
264
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
@@ -307,10 +285,13 @@ contract StakingService is
|
|
307
285
|
)
|
308
286
|
external
|
309
287
|
virtual
|
288
|
+
restricted()
|
310
289
|
{
|
290
|
+
// TODO implement
|
311
291
|
|
312
292
|
}
|
313
293
|
|
294
|
+
//--- view functions ----------------------------------------------------//
|
314
295
|
|
315
296
|
function getDipToken()
|
316
297
|
external
|
@@ -338,6 +319,7 @@ contract StakingService is
|
|
338
319
|
return _getStakingServiceStorage()._staking;
|
339
320
|
}
|
340
321
|
|
322
|
+
//--- internal functions ------------------------------------------------//
|
341
323
|
|
342
324
|
function _initialize(
|
343
325
|
address owner,
|
@@ -398,9 +380,32 @@ contract StakingService is
|
|
398
380
|
}
|
399
381
|
|
400
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
|
+
|
401
401
|
function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
|
402
402
|
assembly {
|
403
403
|
$.slot := STAKING_SERVICE_LOCATION_V1
|
404
404
|
}
|
405
405
|
}
|
406
|
+
|
407
|
+
|
408
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
409
|
+
return STAKING();
|
410
|
+
}
|
406
411
|
}
|
@@ -2,8 +2,8 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
-
import {IVersionable} from "../
|
6
|
-
import {ProxyManager} from "../
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
7
|
import {StakingService} from "./StakingService.sol";
|
8
8
|
|
9
9
|
contract StakingServiceManager is
|
@@ -31,7 +31,6 @@ contract StakingServiceManager is
|
|
31
31
|
salt);
|
32
32
|
|
33
33
|
_stakingService = StakingService(address(versionable));
|
34
|
-
_stakingService.registerProtocolTarget();
|
35
34
|
}
|
36
35
|
|
37
36
|
//--- view functions ----------------------------------------------------//
|
@@ -3,36 +3,27 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
5
5
|
|
6
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
-
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
8
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
9
|
-
import {Component} from "../shared/Component.sol";
|
10
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
7
|
import {IStaking} from "./IStaking.sol";
|
13
|
-
|
14
|
-
import {
|
8
|
+
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
|
+
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
15
11
|
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
16
12
|
import {KEEP_STATE} from "../type/StateId.sol";
|
17
|
-
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
18
13
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
|
-
import {
|
20
|
-
import {
|
21
|
-
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
14
|
+
import {NftIdSet} from "../shared/NftIdSet.sol";
|
15
|
+
import {PROTOCOL, STAKE, TARGET} from "../type/ObjectType.sol";
|
22
16
|
import {StakingReader} from "./StakingReader.sol";
|
23
17
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
24
18
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
25
|
-
import {
|
26
|
-
import {UFixed
|
27
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
-
import {Versionable} from "../shared/Versionable.sol";
|
29
|
-
|
30
|
-
import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
|
19
|
+
import {StakingLifecycle} from "./StakingLifecycle.sol";
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
31
21
|
|
32
22
|
|
33
23
|
contract StakingStore is
|
34
24
|
AccessManaged,
|
35
|
-
KeyValueStore
|
25
|
+
KeyValueStore,
|
26
|
+
StakingLifecycle
|
36
27
|
{
|
37
28
|
|
38
29
|
event LogStakingStoreReserveBalanceIncreased(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdatedIn);
|
@@ -61,7 +52,7 @@ contract StakingStore is
|
|
61
52
|
error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId);
|
62
53
|
|
63
54
|
IRegistry private _registry;
|
64
|
-
|
55
|
+
NftIdSet private _targetNftIdSet;
|
65
56
|
StakingReader private _reader;
|
66
57
|
|
67
58
|
// staking rate
|
@@ -85,19 +76,34 @@ contract StakingStore is
|
|
85
76
|
constructor(IRegistry registry, StakingReader reader)
|
86
77
|
AccessManaged(msg.sender)
|
87
78
|
{
|
79
|
+
// set final authority
|
80
|
+
setAuthority(registry.getAuthority());
|
81
|
+
|
82
|
+
// set internal variables
|
88
83
|
_registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
|
89
|
-
address authority = _registry.getAuthority();
|
90
|
-
setAuthority(authority);
|
91
|
-
|
92
84
|
_reader = reader;
|
93
|
-
|
85
|
+
_targetNftIdSet = new NftIdSet();
|
86
|
+
|
87
|
+
// register protocol target
|
88
|
+
_createTarget(
|
89
|
+
NftIdLib.toNftId(1101),
|
90
|
+
IStaking.TargetInfo({
|
91
|
+
objectType: PROTOCOL(),
|
92
|
+
chainId: 1,
|
93
|
+
lockingPeriod: TargetManagerLib.getDefaultLockingPeriod(),
|
94
|
+
rewardRate: TargetManagerLib.getDefaultRewardRate()}));
|
94
95
|
}
|
95
96
|
|
96
97
|
|
97
98
|
//--- staking rate specific functions -----------------------------------//
|
98
99
|
|
99
|
-
function setStakingRate(
|
100
|
+
function setStakingRate(
|
101
|
+
uint256 chainId,
|
102
|
+
address token,
|
103
|
+
UFixed stakingRate
|
104
|
+
)
|
100
105
|
external
|
106
|
+
restricted()
|
101
107
|
{
|
102
108
|
_stakingRate[chainId][token] = stakingRate;
|
103
109
|
}
|
@@ -109,16 +115,9 @@ contract StakingStore is
|
|
109
115
|
IStaking.TargetInfo memory targetInfo
|
110
116
|
)
|
111
117
|
external
|
118
|
+
restricted()
|
112
119
|
{
|
113
|
-
|
114
|
-
targetNftId.toKey32(TARGET()),
|
115
|
-
abi.encode(targetInfo));
|
116
|
-
|
117
|
-
// initialize tvl and stake balance
|
118
|
-
_tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
|
119
|
-
_createTargetBalance(targetNftId);
|
120
|
-
|
121
|
-
_targetManager.add(targetNftId);
|
120
|
+
_createTarget(targetNftId, targetInfo);
|
122
121
|
}
|
123
122
|
|
124
123
|
|
@@ -127,6 +126,7 @@ contract StakingStore is
|
|
127
126
|
IStaking.TargetInfo memory targetInfo
|
128
127
|
)
|
129
128
|
external
|
129
|
+
restricted()
|
130
130
|
{
|
131
131
|
_update(
|
132
132
|
targetNftId.toKey32(TARGET()),
|
@@ -139,6 +139,7 @@ contract StakingStore is
|
|
139
139
|
Amount dipAmount
|
140
140
|
)
|
141
141
|
external
|
142
|
+
restricted()
|
142
143
|
returns (Amount newReserveBalance)
|
143
144
|
{
|
144
145
|
newReserveBalance = _reserveBalance[targetNftId] + dipAmount;
|
@@ -153,6 +154,7 @@ contract StakingStore is
|
|
153
154
|
Amount dipAmount
|
154
155
|
)
|
155
156
|
external
|
157
|
+
restricted()
|
156
158
|
returns (Amount newReserveBalance)
|
157
159
|
{
|
158
160
|
Amount reserveAmount = _reserveBalance[targetNftId];
|
@@ -170,24 +172,6 @@ contract StakingStore is
|
|
170
172
|
}
|
171
173
|
|
172
174
|
|
173
|
-
function _updateReserves(
|
174
|
-
NftId targetNftId,
|
175
|
-
Amount newRewardBalance
|
176
|
-
)
|
177
|
-
internal
|
178
|
-
returns (Blocknumber lastUpdatedIn)
|
179
|
-
{
|
180
|
-
if (_lastUpdatedIn[targetNftId].eqz()) {
|
181
|
-
revert ErrorStakingStoreNotTarget(targetNftId);
|
182
|
-
}
|
183
|
-
|
184
|
-
lastUpdatedIn = _lastUpdatedIn[targetNftId];
|
185
|
-
|
186
|
-
_reserveBalance[targetNftId] = newRewardBalance;
|
187
|
-
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
188
|
-
}
|
189
|
-
|
190
|
-
|
191
175
|
//--- tvl specific functions -------------------------------------//
|
192
176
|
|
193
177
|
function increaseTotalValueLocked(
|
@@ -197,6 +181,7 @@ contract StakingStore is
|
|
197
181
|
Amount amount
|
198
182
|
)
|
199
183
|
external
|
184
|
+
restricted()
|
200
185
|
returns (Amount newBalance)
|
201
186
|
{
|
202
187
|
(
|
@@ -229,6 +214,7 @@ contract StakingStore is
|
|
229
214
|
Amount amount
|
230
215
|
)
|
231
216
|
external
|
217
|
+
restricted()
|
232
218
|
returns (Amount newBalance)
|
233
219
|
{
|
234
220
|
(
|
@@ -261,6 +247,7 @@ contract StakingStore is
|
|
261
247
|
IStaking.StakeInfo memory stakeInfo
|
262
248
|
)
|
263
249
|
external
|
250
|
+
restricted()
|
264
251
|
{
|
265
252
|
_create(
|
266
253
|
stakeNftId.toKey32(STAKE()),
|
@@ -274,6 +261,7 @@ contract StakingStore is
|
|
274
261
|
IStaking.StakeInfo memory stakeInfo
|
275
262
|
)
|
276
263
|
external
|
264
|
+
restricted()
|
277
265
|
{
|
278
266
|
_update(
|
279
267
|
stakeNftId.toKey32(STAKE()),
|
@@ -289,7 +277,8 @@ contract StakingStore is
|
|
289
277
|
NftId targetNftId,
|
290
278
|
Amount amount
|
291
279
|
)
|
292
|
-
|
280
|
+
external
|
281
|
+
restricted()
|
293
282
|
{
|
294
283
|
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
295
284
|
|
@@ -313,6 +302,7 @@ contract StakingStore is
|
|
313
302
|
Amount rewardIncrementAmount
|
314
303
|
)
|
315
304
|
external
|
305
|
+
restricted()
|
316
306
|
{
|
317
307
|
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
318
308
|
Amount stakeAmount = _stakeBalance[nftId];
|
@@ -339,6 +329,7 @@ contract StakingStore is
|
|
339
329
|
Amount rewardIncrementAmount
|
340
330
|
)
|
341
331
|
external
|
332
|
+
restricted()
|
342
333
|
{
|
343
334
|
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
344
335
|
|
@@ -363,6 +354,7 @@ contract StakingStore is
|
|
363
354
|
Amount maxClaimAmount
|
364
355
|
)
|
365
356
|
external
|
357
|
+
restricted()
|
366
358
|
returns (Amount claimedAmount)
|
367
359
|
{
|
368
360
|
Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
|
@@ -392,6 +384,7 @@ contract StakingStore is
|
|
392
384
|
Amount maxClaimAmount
|
393
385
|
)
|
394
386
|
external
|
387
|
+
restricted()
|
395
388
|
returns (
|
396
389
|
Amount unstakedAmount,
|
397
390
|
Amount claimedAmount
|
@@ -424,8 +417,9 @@ contract StakingStore is
|
|
424
417
|
return _reader;
|
425
418
|
}
|
426
419
|
|
427
|
-
|
428
|
-
|
420
|
+
// TODO rename
|
421
|
+
function getTargetNftIdSet() external view returns (NftIdSet targetNftIdSet){
|
422
|
+
return _targetNftIdSet;
|
429
423
|
}
|
430
424
|
|
431
425
|
function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) { return _stakingRate[chainId][token]; }
|
@@ -475,8 +469,44 @@ contract StakingStore is
|
|
475
469
|
|
476
470
|
//--- private functions -------------------------------------------//
|
477
471
|
|
472
|
+
function _createTarget(
|
473
|
+
NftId targetNftId,
|
474
|
+
IStaking.TargetInfo memory targetInfo
|
475
|
+
)
|
476
|
+
private
|
477
|
+
{
|
478
|
+
_create(
|
479
|
+
targetNftId.toKey32(TARGET()),
|
480
|
+
abi.encode(targetInfo));
|
478
481
|
|
479
|
-
|
482
|
+
// initialize tvl and stake balance
|
483
|
+
_tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
|
484
|
+
_createTargetBalance(targetNftId);
|
485
|
+
|
486
|
+
_targetNftIdSet.add(targetNftId);
|
487
|
+
}
|
488
|
+
|
489
|
+
function _updateReserves(
|
490
|
+
NftId targetNftId,
|
491
|
+
Amount newRewardBalance
|
492
|
+
)
|
493
|
+
private
|
494
|
+
returns (Blocknumber lastUpdatedIn)
|
495
|
+
{
|
496
|
+
if (_lastUpdatedIn[targetNftId].eqz()) {
|
497
|
+
revert ErrorStakingStoreNotTarget(targetNftId);
|
498
|
+
}
|
499
|
+
|
500
|
+
lastUpdatedIn = _lastUpdatedIn[targetNftId];
|
501
|
+
|
502
|
+
_reserveBalance[targetNftId] = newRewardBalance;
|
503
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
504
|
+
}
|
505
|
+
|
506
|
+
|
507
|
+
function _createTargetBalance(NftId nftId)
|
508
|
+
private
|
509
|
+
{
|
480
510
|
if (_lastUpdatedIn[nftId].gtz()) {
|
481
511
|
revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
|
482
512
|
}
|
@@ -492,7 +522,9 @@ contract StakingStore is
|
|
492
522
|
}
|
493
523
|
|
494
524
|
|
495
|
-
function _createStakeBalance(NftId nftId)
|
525
|
+
function _createStakeBalance(NftId nftId)
|
526
|
+
private
|
527
|
+
{
|
496
528
|
if (_lastUpdatedIn[nftId].gtz()) {
|
497
529
|
revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
|
498
530
|
}
|
@@ -512,7 +544,7 @@ contract StakingStore is
|
|
512
544
|
Amount newStakeAmount,
|
513
545
|
Amount newRewardAmount
|
514
546
|
)
|
515
|
-
|
547
|
+
private
|
516
548
|
{
|
517
549
|
_stakeBalance[stakeNftId] = newStakeAmount;
|
518
550
|
_rewardBalance[stakeNftId] = newRewardAmount;
|
@@ -527,7 +559,7 @@ contract StakingStore is
|
|
527
559
|
Amount newStakeAmount,
|
528
560
|
Amount newRewardAmount
|
529
561
|
)
|
530
|
-
|
562
|
+
private
|
531
563
|
{
|
532
564
|
_stakeBalance[targetNftId] = newStakeAmount;
|
533
565
|
_rewardBalance[targetNftId] = newRewardAmount;
|
@@ -537,7 +569,8 @@ contract StakingStore is
|
|
537
569
|
}
|
538
570
|
|
539
571
|
function _checkBalanceExists(NftId nftId)
|
540
|
-
|
572
|
+
private
|
573
|
+
view
|
541
574
|
returns (Blocknumber lastUpdatedIn)
|
542
575
|
{
|
543
576
|
lastUpdatedIn = _lastUpdatedIn[nftId];
|
@@ -552,7 +585,7 @@ contract StakingStore is
|
|
552
585
|
NftId targetNftId,
|
553
586
|
address token
|
554
587
|
)
|
555
|
-
|
588
|
+
private
|
556
589
|
view
|
557
590
|
returns (
|
558
591
|
Blocknumber tvlLastUpdatedIn,
|
@@ -77,16 +77,21 @@ library AmountLib {
|
|
77
77
|
return Amount.unwrap(amount1) == Amount.unwrap(amount2);
|
78
78
|
}
|
79
79
|
|
80
|
-
/// @dev return true if amount a1 is
|
80
|
+
/// @dev return true if amount a1 is less than a2
|
81
81
|
function lt(Amount a1, Amount a2) public pure returns (bool) {
|
82
82
|
return Amount.unwrap(a1) < Amount.unwrap(a2);
|
83
83
|
}
|
84
84
|
|
85
|
-
/// @dev return true if amount a1 is
|
85
|
+
/// @dev return true if amount a1 is greater than a2
|
86
86
|
function gt(Amount a1, Amount a2) public pure returns (bool) {
|
87
87
|
return Amount.unwrap(a1) > Amount.unwrap(a2);
|
88
88
|
}
|
89
89
|
|
90
|
+
/// @dev return true if amount a1 is greater or equal than a2
|
91
|
+
function gte(Amount a1, Amount a2) public pure returns (bool) {
|
92
|
+
return Amount.unwrap(a1) >= Amount.unwrap(a2);
|
93
|
+
}
|
94
|
+
|
90
95
|
/// @dev return minimum of a1 and a2.
|
91
96
|
function min(Amount a1, Amount a2) public pure returns (Amount) {
|
92
97
|
if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
|