@etherisc/gif-next 0.0.2-fd4931b-974 → 0.0.2-fd5f17a-625
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 +51 -5
- 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 +1342 -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 +65 -463
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +291 -234
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +88 -100
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +102 -165
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +171 -47
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +77 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +149 -52
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +75 -205
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +410 -130
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +191 -206
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +60 -92
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +387 -268
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -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 +440 -169
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +132 -84
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +225 -2
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +56 -295
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +255 -101
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +102 -627
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +309 -251
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +57 -81
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -160
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +55 -87
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -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 +229 -168
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +82 -94
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +25 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +134 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +204 -120
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +63 -44
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +43 -84
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +22 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +273 -301
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +77 -93
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +134 -243
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +70 -110
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +53 -390
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +302 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -184
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +645 -123
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +66 -124
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +46 -81
- 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 +1169 -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 +46 -177
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +18 -223
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +271 -164
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +83 -95
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +14 -107
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +180 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +43 -42
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -42
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +50 -287
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +10 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +11 -94
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +14 -107
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +273 -605
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +471 -62
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +332 -1004
- 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 +73 -203
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -39
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +484 -213
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +57 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +318 -19
- 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 +97 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +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 +28 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +100 -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 +36 -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 +566 -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 +589 -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 +146 -114
- package/contracts/distribution/DistributionService.sol +84 -46
- package/contracts/distribution/DistributionServiceManager.sol +2 -17
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +24 -4
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +29 -43
- package/contracts/instance/IInstanceService.sol +36 -27
- package/contracts/instance/Instance.sol +117 -116
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +82 -18
- package/contracts/instance/InstanceService.sol +206 -106
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +49 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IAccess.sol +2 -10
- 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 +22 -22
- 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 +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +167 -0
- package/contracts/oracle/OracleService.sol +279 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +211 -69
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +34 -6
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +40 -27
- package/contracts/pool/Pool.sol +165 -138
- package/contracts/pool/PoolService.sol +199 -114
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +59 -65
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +132 -82
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +2 -1
- package/contracts/product/IClaimService.sol +32 -3
- package/contracts/product/IPolicyService.sol +28 -33
- package/contracts/product/IPricingService.sol +8 -8
- package/contracts/product/IProductComponent.sol +7 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -2
- package/contracts/product/PolicyService.sol +289 -189
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +52 -52
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +163 -115
- package/contracts/product/{ProductService.sol → RiskService.sol} +18 -45
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -31
- package/contracts/registry/IRegistry.sol +79 -29
- package/contracts/registry/IRegistryService.sol +7 -6
- package/contracts/registry/Registry.sol +354 -215
- package/contracts/registry/RegistryAdmin.sol +464 -0
- package/contracts/registry/RegistryService.sol +14 -90
- package/contracts/registry/RegistryServiceManager.sol +3 -22
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +491 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
- package/contracts/registry/TokenRegistry.sol +58 -62
- package/contracts/shared/Component.sol +35 -53
- package/contracts/shared/ComponentService.sol +127 -81
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +14 -8
- package/contracts/shared/IComponent.sol +7 -11
- package/contracts/shared/IComponentService.sol +26 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +0 -9
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +51 -24
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +3 -7
- package/contracts/shared/NftOwnable.sol +9 -20
- package/contracts/shared/PolicyHolder.sol +8 -53
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +33 -28
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +96 -41
- package/contracts/staking/IStakingService.sol +78 -40
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +305 -155
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +21 -23
- package/contracts/staking/StakingReader.sol +119 -28
- package/contracts/staking/StakingService.sol +190 -77
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +83 -13
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +24 -3
- package/contracts/type/Blocknumber.sol +20 -2
- package/contracts/type/Fee.sol +1 -1
- package/contracts/type/NftId.sol +9 -9
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +174 -68
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +104 -73
- package/contracts/type/Seconds.sol +39 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +13 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +9 -6
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -673
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -675
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -298
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1112
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- 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 -314
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -598
- 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/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/RegistryAccessManager.sol +0 -167
- package/contracts/registry/ReleaseManager.sol +0 -530
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,37 +1,30 @@
|
|
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 {NftId
|
16
|
-
import {
|
17
|
-
import {
|
18
|
-
import {
|
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";
|
15
|
+
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
19
16
|
import {StakingReader} from "./StakingReader.sol";
|
17
|
+
import {StakingStore} from "./StakingStore.sol";
|
20
18
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
21
|
-
import {Timestamp
|
19
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
20
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
21
|
+
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
22
22
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
23
|
-
import {UFixed
|
23
|
+
import {UFixed} from "../type/UFixed.sol";
|
24
24
|
import {Version, VersionLib} from "../type/Version.sol";
|
25
|
-
import {Versionable} from "../
|
26
|
-
|
27
|
-
// TODO split staking
|
28
|
-
// candidate clusters
|
29
|
-
// - strake management
|
30
|
-
// - target management
|
31
|
-
// - reward calculation
|
32
|
-
// - read access
|
25
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
26
|
+
|
33
27
|
contract Staking is
|
34
|
-
KeyValueStore,
|
35
28
|
Component,
|
36
29
|
Versionable,
|
37
30
|
IStaking
|
@@ -45,42 +38,33 @@ contract Staking is
|
|
45
38
|
struct StakingStorage {
|
46
39
|
IRegistryService _registryService;
|
47
40
|
TokenRegistry _tokenRegistry;
|
41
|
+
TokenHandler _tokenHandler;
|
42
|
+
StakingStore _store;
|
48
43
|
StakingReader _reader;
|
49
|
-
|
50
|
-
NftIdSetManager _targetManager;
|
51
|
-
|
52
|
-
mapping(uint256 chainId => mapping(address token => UFixed stakingRate)) _stakingRate;
|
53
|
-
|
54
|
-
mapping(NftId targetNftId => Amount stakedAmount) _stakedAmount;
|
55
|
-
mapping(NftId targetNftId => mapping(address token => Amount tvlAmount)) _tvlAmount;
|
44
|
+
NftId _protocolNftId;
|
56
45
|
}
|
57
46
|
|
58
47
|
|
59
|
-
modifier
|
60
|
-
|
61
|
-
|
62
|
-
revert ErrorStakingNotNftOwner(nftId);
|
48
|
+
modifier onlyStake(NftId stakeNftId) {
|
49
|
+
if (!_getStakingStorage()._store.exists(stakeNftId)) {
|
50
|
+
revert ErrorStakingNotStake(stakeNftId);
|
63
51
|
}
|
64
52
|
_;
|
65
53
|
}
|
66
54
|
|
67
55
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
returns(Version)
|
74
|
-
{
|
75
|
-
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
56
|
+
modifier onlyTarget(NftId targetNftId) {
|
57
|
+
if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
|
58
|
+
revert ErrorStakingNotTarget(targetNftId);
|
59
|
+
}
|
60
|
+
_;
|
76
61
|
}
|
77
62
|
|
78
|
-
|
79
63
|
// set/update staking reader
|
80
64
|
function setStakingReader(StakingReader stakingReader)
|
81
65
|
external
|
82
66
|
virtual
|
83
|
-
onlyOwner
|
67
|
+
onlyOwner()
|
84
68
|
{
|
85
69
|
if(stakingReader.getStaking() != IStaking(this)) {
|
86
70
|
revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
|
@@ -94,33 +78,18 @@ contract Staking is
|
|
94
78
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
|
95
79
|
external
|
96
80
|
virtual
|
97
|
-
onlyOwner
|
98
|
-
{
|
99
|
-
|
100
|
-
}
|
101
|
-
|
102
|
-
// reward management
|
103
|
-
function setRewardRate(NftId targetNftId, UFixed rewardRate)
|
104
|
-
external
|
105
|
-
virtual
|
106
|
-
// onlyNftOwner(targetNftId)
|
81
|
+
onlyOwner()
|
107
82
|
{
|
83
|
+
StakingStorage storage $ = _getStakingStorage();
|
108
84
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
external
|
113
|
-
virtual
|
114
|
-
{
|
85
|
+
if (!$._tokenRegistry.isRegistered(chainId, token)) {
|
86
|
+
revert ErrorStakingTokenNotRegistered(chainId, token);
|
87
|
+
}
|
115
88
|
|
116
|
-
|
89
|
+
UFixed oldStakingRate = $._store.getStakingRate(chainId, token);
|
90
|
+
$._store.setStakingRate(chainId, token, stakingRate);
|
117
91
|
|
118
|
-
|
119
|
-
external
|
120
|
-
virtual
|
121
|
-
// onlyNftOwner(targetNftId)
|
122
|
-
{
|
123
|
-
|
92
|
+
emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
|
124
93
|
}
|
125
94
|
|
126
95
|
// target management
|
@@ -134,32 +103,23 @@ contract Staking is
|
|
134
103
|
)
|
135
104
|
external
|
136
105
|
virtual
|
137
|
-
|
106
|
+
restricted()
|
138
107
|
{
|
139
108
|
TargetManagerLib.checkTargetParameters(
|
140
109
|
getRegistry(),
|
141
|
-
|
110
|
+
_getStakingStorage()._reader,
|
142
111
|
targetNftId,
|
143
112
|
expectedObjectType,
|
144
113
|
initialLockingPeriod,
|
145
114
|
initialRewardRate);
|
146
115
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
lockingPeriod: initialLockingPeriod,
|
155
|
-
rewardRate: initialRewardRate,
|
156
|
-
rewardReserveAmount: AmountLib.zero()
|
157
|
-
})));
|
158
|
-
|
159
|
-
// add target nft id to all/active sets
|
160
|
-
_getStakingStorage()._targetManager.add(targetNftId);
|
161
|
-
|
162
|
-
emit LogStakingTargetAdded(targetNftId, expectedObjectType, chainId);
|
116
|
+
_getStakingStorage()._store.createTarget(
|
117
|
+
targetNftId,
|
118
|
+
TargetInfo({
|
119
|
+
objectType: expectedObjectType,
|
120
|
+
chainId: chainId,
|
121
|
+
lockingPeriod: initialLockingPeriod,
|
122
|
+
rewardRate: initialRewardRate}));
|
163
123
|
}
|
164
124
|
|
165
125
|
|
@@ -169,42 +129,99 @@ contract Staking is
|
|
169
129
|
)
|
170
130
|
external
|
171
131
|
virtual
|
172
|
-
|
132
|
+
restricted()
|
133
|
+
onlyTarget(targetNftId)
|
173
134
|
{
|
174
135
|
(
|
175
|
-
|
176
|
-
|
136
|
+
Seconds oldLockingPeriod,
|
137
|
+
TargetInfo memory targetInfo
|
177
138
|
) = TargetManagerLib.updateLockingPeriod(
|
178
139
|
this,
|
179
140
|
targetNftId,
|
180
141
|
lockingPeriod);
|
142
|
+
|
143
|
+
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
144
|
+
|
145
|
+
emit LogStakingLockingPeriodSet(targetNftId, oldLockingPeriod, lockingPeriod);
|
146
|
+
}
|
147
|
+
|
148
|
+
// TODO add function to set protocol reward rate: onlyOwner
|
149
|
+
// get protocol nft id (from where)
|
181
150
|
|
182
|
-
|
151
|
+
function setRewardRate(NftId targetNftId, UFixed rewardRate)
|
152
|
+
external
|
153
|
+
virtual
|
154
|
+
restricted()
|
155
|
+
onlyTarget(targetNftId)
|
156
|
+
{
|
157
|
+
(
|
158
|
+
UFixed oldRewardRate,
|
159
|
+
TargetInfo memory targetInfo
|
160
|
+
) = TargetManagerLib.updateRewardRate(
|
161
|
+
this,
|
162
|
+
targetNftId,
|
163
|
+
rewardRate);
|
164
|
+
|
165
|
+
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
183
166
|
|
184
|
-
emit
|
167
|
+
emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
|
185
168
|
}
|
186
169
|
|
187
170
|
|
188
|
-
function
|
171
|
+
function refillRewardReserves(NftId targetNftId, Amount dipAmount)
|
189
172
|
external
|
190
173
|
virtual
|
191
|
-
|
174
|
+
restricted()
|
175
|
+
returns (Amount newBalance)
|
192
176
|
{
|
177
|
+
// update book keeping of reward reserves
|
178
|
+
StakingStorage storage $ = _getStakingStorage();
|
179
|
+
newBalance = $._store.increaseReserves(targetNftId, dipAmount);
|
180
|
+
}
|
193
181
|
|
182
|
+
|
183
|
+
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
|
184
|
+
external
|
185
|
+
virtual
|
186
|
+
restricted()
|
187
|
+
returns (Amount newBalance)
|
188
|
+
{
|
189
|
+
// update book keeping of reward reserves
|
190
|
+
StakingStorage storage $ = _getStakingStorage();
|
191
|
+
newBalance = $._store.decreaseReserves(targetNftId, dipAmount);
|
194
192
|
}
|
195
193
|
|
196
|
-
|
194
|
+
|
195
|
+
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
197
196
|
external
|
198
197
|
virtual
|
199
|
-
|
198
|
+
restricted() // only pool service
|
199
|
+
returns (Amount newBalance)
|
200
200
|
{
|
201
|
+
StakingStorage storage $ = _getStakingStorage();
|
202
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
203
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
204
|
+
newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
205
|
+
}
|
206
|
+
|
201
207
|
|
208
|
+
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
209
|
+
external
|
210
|
+
virtual
|
211
|
+
restricted() // only pool service
|
212
|
+
returns (Amount newBalance)
|
213
|
+
{
|
214
|
+
StakingStorage storage $ = _getStakingStorage();
|
215
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
216
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
217
|
+
newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
202
218
|
}
|
203
219
|
|
204
220
|
|
205
221
|
function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
|
206
222
|
external
|
207
223
|
virtual
|
224
|
+
restricted()
|
208
225
|
onlyOwner // or CCIP
|
209
226
|
{
|
210
227
|
|
@@ -213,80 +230,218 @@ contract Staking is
|
|
213
230
|
function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
|
214
231
|
external
|
215
232
|
virtual
|
233
|
+
restricted()
|
216
234
|
onlyOwner // or CCIP
|
217
235
|
{
|
218
236
|
|
219
237
|
}
|
220
238
|
|
221
|
-
|
222
|
-
|
239
|
+
//--- staking functions -------------------------------------------------//
|
240
|
+
|
241
|
+
function createStake(
|
223
242
|
NftId stakeNftId,
|
224
243
|
NftId targetNftId,
|
225
|
-
Amount
|
244
|
+
Amount stakeAmount
|
245
|
+
)
|
246
|
+
external
|
247
|
+
virtual
|
248
|
+
restricted() // only staking service
|
249
|
+
{
|
250
|
+
StakingStorage storage $ = _getStakingStorage();
|
251
|
+
Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
|
252
|
+
$._reader,
|
253
|
+
targetNftId,
|
254
|
+
stakeAmount);
|
255
|
+
|
256
|
+
// create new stake
|
257
|
+
$._store.create(
|
258
|
+
stakeNftId,
|
259
|
+
StakeInfo({
|
260
|
+
lockedUntil: lockedUntil}));
|
261
|
+
|
262
|
+
// update target stake balance
|
263
|
+
$._store.increaseStake(
|
264
|
+
stakeNftId,
|
265
|
+
targetNftId,
|
266
|
+
stakeAmount);
|
267
|
+
}
|
268
|
+
|
269
|
+
|
270
|
+
function stake(
|
271
|
+
NftId stakeNftId,
|
272
|
+
Amount stakeAmount
|
226
273
|
)
|
227
274
|
external
|
228
275
|
virtual
|
276
|
+
restricted() // only staking service
|
277
|
+
onlyStake(stakeNftId)
|
278
|
+
returns (Amount stakeBalance)
|
229
279
|
{
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
stakeNftId
|
236
|
-
|
237
|
-
StakeInfo({
|
238
|
-
stakeAmount: dipAmount,
|
239
|
-
rewardAmount: AmountLib.zero(),
|
240
|
-
lockedUntil: lockedUntil,
|
241
|
-
rewardsUpdatedAt: currentTime
|
242
|
-
})));
|
280
|
+
StakingStorage storage $ = _getStakingStorage();
|
281
|
+
stakeBalance = StakeManagerLib.stake(
|
282
|
+
getRegistry(),
|
283
|
+
$._reader,
|
284
|
+
$._store,
|
285
|
+
stakeNftId,
|
286
|
+
stakeAmount);
|
243
287
|
}
|
244
288
|
|
245
289
|
|
246
|
-
function
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
290
|
+
function restake(
|
291
|
+
NftId stakeNftId,
|
292
|
+
NftId newTargetNftId
|
293
|
+
)
|
294
|
+
external
|
295
|
+
virtual
|
296
|
+
restricted() // only staking service
|
297
|
+
onlyStake(stakeNftId)
|
298
|
+
returns (NftId newStakeNftId)
|
299
|
+
{
|
300
|
+
// TODO add check that allows additional staking amount
|
301
|
+
StakingStorage storage $ = _getStakingStorage();
|
252
302
|
|
303
|
+
// TODO implement
|
304
|
+
}
|
253
305
|
|
254
|
-
// view functions
|
255
306
|
|
256
|
-
function
|
257
|
-
|
307
|
+
function updateRewards(NftId stakeNftId)
|
308
|
+
external
|
309
|
+
virtual
|
310
|
+
restricted() // only staking service
|
311
|
+
onlyStake(stakeNftId)
|
312
|
+
{
|
313
|
+
StakingStorage storage $ = _getStakingStorage();
|
314
|
+
_updateRewards($._reader, $._store, stakeNftId);
|
315
|
+
}
|
316
|
+
|
317
|
+
|
318
|
+
function claimRewards(NftId stakeNftId)
|
319
|
+
external
|
320
|
+
virtual
|
321
|
+
restricted() // only staking service
|
322
|
+
onlyStake(stakeNftId)
|
323
|
+
returns (
|
324
|
+
Amount rewardsClaimedAmount
|
325
|
+
)
|
326
|
+
{
|
327
|
+
StakingStorage storage $ = _getStakingStorage();
|
328
|
+
|
329
|
+
// update rewards since last update
|
330
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
331
|
+
|
332
|
+
// unstake all available rewards
|
333
|
+
rewardsClaimedAmount = $._store.claimUpTo(
|
334
|
+
stakeNftId,
|
335
|
+
targetNftId,
|
336
|
+
AmountLib.max());
|
337
|
+
|
338
|
+
// update reward reserves
|
339
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
340
|
+
}
|
341
|
+
|
342
|
+
|
343
|
+
function unstake(NftId stakeNftId)
|
344
|
+
external
|
345
|
+
virtual
|
346
|
+
restricted() // only staking service
|
347
|
+
onlyStake(stakeNftId)
|
348
|
+
returns (
|
349
|
+
Amount unstakedAmount,
|
350
|
+
Amount rewardsClaimedAmount
|
351
|
+
)
|
352
|
+
{
|
353
|
+
StakingStorage storage $ = _getStakingStorage();
|
354
|
+
|
355
|
+
StakeManagerLib.checkUnstakeParameters($._reader, stakeNftId);
|
356
|
+
|
357
|
+
// update rewards since last update
|
358
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
359
|
+
|
360
|
+
// unstake all available dips
|
361
|
+
(
|
362
|
+
unstakedAmount,
|
363
|
+
rewardsClaimedAmount
|
364
|
+
) = $._store.unstakeUpTo(
|
365
|
+
stakeNftId,
|
366
|
+
targetNftId,
|
367
|
+
AmountLib.max(), // unstake all stakes
|
368
|
+
AmountLib.max()); // claim all rewards
|
369
|
+
|
370
|
+
// update reward reserves
|
371
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
258
372
|
}
|
259
373
|
|
260
|
-
|
261
|
-
|
374
|
+
|
375
|
+
|
376
|
+
//--- other functions ---------------------------------------------------//
|
377
|
+
|
378
|
+
function collectDipAmount(address from, Amount dipAmount)
|
379
|
+
external
|
380
|
+
restricted() // only staking service
|
381
|
+
{
|
382
|
+
getTokenHandler().collectTokens(from, getWallet(), dipAmount);
|
262
383
|
}
|
263
384
|
|
264
|
-
|
265
|
-
|
385
|
+
|
386
|
+
function transferDipAmount(address to, Amount dipAmount)
|
387
|
+
external
|
388
|
+
restricted() // only staking service
|
389
|
+
{
|
390
|
+
getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
|
266
391
|
}
|
267
392
|
|
268
|
-
|
269
|
-
|
393
|
+
|
394
|
+
//--- view functions ----------------------------------------------------//
|
395
|
+
|
396
|
+
function getStakingReader() public view returns (StakingReader reader) {
|
397
|
+
return _getStakingStorage()._reader;
|
270
398
|
}
|
271
399
|
|
272
|
-
function
|
273
|
-
return _getStakingStorage().
|
400
|
+
function getStakingStore() external view returns (StakingStore stakingStore) {
|
401
|
+
return _getStakingStorage()._store;
|
274
402
|
}
|
275
403
|
|
276
404
|
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
277
405
|
return address(_getStakingStorage()._tokenRegistry);
|
278
406
|
}
|
279
407
|
|
280
|
-
function
|
281
|
-
|
282
|
-
|
283
|
-
|
408
|
+
function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
|
409
|
+
return _getStakingStorage()._tokenHandler;
|
410
|
+
}
|
411
|
+
|
412
|
+
// from Versionable
|
413
|
+
function getVersion()
|
284
414
|
public
|
415
|
+
pure
|
416
|
+
virtual override (IVersionable, Versionable)
|
417
|
+
returns(Version)
|
418
|
+
{
|
419
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
420
|
+
}
|
421
|
+
|
422
|
+
//--- internal functions ------------------------------------------------//
|
423
|
+
|
424
|
+
function _updateRewards(
|
425
|
+
StakingReader reader,
|
426
|
+
StakingStore store,
|
427
|
+
NftId stakeNftId
|
428
|
+
)
|
429
|
+
internal
|
285
430
|
virtual
|
286
|
-
|
287
|
-
returns (Amount rewardIncrementAmount)
|
431
|
+
returns (NftId targetNftId)
|
288
432
|
{
|
433
|
+
UFixed rewardRate;
|
434
|
+
|
435
|
+
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
436
|
+
(Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
|
437
|
+
reader,
|
438
|
+
stakeNftId,
|
439
|
+
rewardRate);
|
289
440
|
|
441
|
+
store.updateRewards(
|
442
|
+
stakeNftId,
|
443
|
+
targetNftId,
|
444
|
+
rewardIncrement);
|
290
445
|
}
|
291
446
|
|
292
447
|
|
@@ -299,43 +454,39 @@ contract Staking is
|
|
299
454
|
initializer
|
300
455
|
{
|
301
456
|
(
|
302
|
-
address initialAuthority,
|
303
457
|
address registryAddress,
|
304
|
-
address
|
305
|
-
address
|
306
|
-
address
|
307
|
-
) = abi.decode(data, (address, address, address, address
|
458
|
+
address tokenRegistryAddress,
|
459
|
+
address stakingStoreAddress,
|
460
|
+
address stakingOwner
|
461
|
+
) = abi.decode(data, (address, address, address, address));
|
308
462
|
|
463
|
+
// only admin(authority) and dip token address are set in registry at this point
|
309
464
|
IRegistry registry = IRegistry(registryAddress);
|
310
|
-
|
311
|
-
|
465
|
+
address authority = registry.getAuthority();
|
466
|
+
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
467
|
+
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
312
468
|
|
313
|
-
|
314
|
-
|
469
|
+
_initializeComponent(
|
470
|
+
authority,
|
315
471
|
registryAddress,
|
316
472
|
registry.getNftId(),
|
317
473
|
CONTRACT_NAME,
|
318
474
|
dipTokenAddress,
|
319
475
|
STAKING(),
|
320
476
|
false, // is interceptor
|
321
|
-
|
477
|
+
stakingOwner,
|
322
478
|
"", // registry data
|
323
479
|
""); // component data
|
324
480
|
|
325
|
-
_createAndSetTokenHandler();
|
326
|
-
|
327
481
|
// wiring to external contracts
|
328
482
|
StakingStorage storage $ = _getStakingStorage();
|
329
|
-
$.
|
330
|
-
$.
|
331
|
-
$.
|
332
|
-
|
483
|
+
$._protocolNftId = getRegistry().getProtocolNftId();
|
484
|
+
$._store = StakingStore(stakingStoreAddress);
|
485
|
+
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
486
|
+
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
487
|
+
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(dipTokenAddress, authority);
|
333
488
|
|
334
|
-
|
335
|
-
$._targetManager.setOwner(address(this));
|
336
|
-
$._reader.setStaking(address(this));
|
337
|
-
|
338
|
-
registerInterface(type(IStaking).interfaceId);
|
489
|
+
_registerInterface(type(IStaking).interfaceId);
|
339
490
|
}
|
340
491
|
|
341
492
|
|
@@ -344,5 +495,4 @@ contract Staking is
|
|
344
495
|
$.slot := STAKING_LOCATION_V1
|
345
496
|
}
|
346
497
|
}
|
347
|
-
|
348
498
|
}
|
@@ -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
|
+
}
|