@etherisc/gif-next 0.0.2-e964d24-516 → 0.0.2-e987ccf-894
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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1500 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +179 -385
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +280 -324
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +130 -72
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +171 -254
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +186 -94
- 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 +193 -52
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +93 -126
- 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 +590 -328
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +282 -101
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +120 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1294 -370
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +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 +776 -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 +1029 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1406 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +399 -213
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +176 -50
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +204 -32
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +181 -356
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +342 -211
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +227 -442
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +401 -432
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +106 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +92 -158
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +111 -37
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1254 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +130 -56
- 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 +46 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +217 -73
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +83 -44
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +271 -173
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +244 -286
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +117 -91
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +188 -220
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +135 -57
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +345 -331
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -203
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +94 -32
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +183 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
- 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 +440 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -35
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +104 -145
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1252 -203
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -107
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- 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 +21 -3
- 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 +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +951 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
- 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 +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
- 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 +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +661 -85
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- 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 +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
- 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 +53 -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 +39 -34
- 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 +47 -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 +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +162 -152
- package/contracts/distribution/DistributionService.sol +124 -136
- package/contracts/distribution/DistributionServiceManager.sol +11 -23
- package/contracts/distribution/IDistributionComponent.sol +28 -47
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +26 -17
- package/contracts/instance/IInstanceService.sol +46 -27
- package/contracts/instance/Instance.sol +114 -89
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
- package/contracts/instance/InstanceReader.sol +106 -52
- package/contracts/instance/InstanceService.sol +291 -132
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +146 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +110 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -10
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +29 -22
- package/contracts/mock/Dip.sol +26 -0
- 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 +166 -0
- package/contracts/oracle/OracleService.sol +278 -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 +252 -196
- package/contracts/pool/BundleServiceManager.sol +11 -23
- package/contracts/pool/IBundleService.sol +35 -19
- package/contracts/pool/IPoolComponent.sol +10 -66
- package/contracts/pool/IPoolService.sol +79 -33
- package/contracts/pool/Pool.sol +168 -144
- package/contracts/pool/PoolService.sol +322 -216
- package/contracts/pool/PoolServiceManager.sol +11 -23
- package/contracts/product/ApplicationService.sol +144 -81
- package/contracts/product/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +45 -66
- package/contracts/product/ClaimServiceManager.sol +11 -8
- package/contracts/product/IApplicationService.sol +2 -1
- package/contracts/product/IClaimService.sol +13 -3
- package/contracts/product/IPolicyService.sol +29 -36
- package/contracts/product/IPricingService.sol +10 -8
- package/contracts/product/IProductComponent.sol +10 -12
- package/contracts/product/IProductService.sol +2 -8
- package/contracts/product/PolicyService.sol +390 -190
- package/contracts/product/PolicyServiceManager.sol +11 -26
- package/contracts/product/PricingService.sol +103 -77
- package/contracts/product/PricingServiceManager.sol +11 -23
- package/contracts/product/Product.sol +154 -123
- package/contracts/product/ProductService.sol +36 -147
- package/contracts/product/ProductServiceManager.sol +11 -26
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +55 -22
- package/contracts/registry/IRegistryService.sol +38 -35
- package/contracts/registry/Registry.sol +234 -125
- package/contracts/registry/RegistryAdmin.sol +374 -0
- package/contracts/registry/RegistryService.sol +67 -100
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +141 -144
- package/contracts/shared/ComponentService.sol +587 -96
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +21 -41
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +5 -16
- package/contracts/shared/PolicyHolder.sol +22 -17
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +32 -22
- package/contracts/shared/TokenHandler.sol +112 -8
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +105 -47
- package/contracts/staking/StakeManagerLib.sol +206 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +288 -47
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +13 -6
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +29 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +176 -62
- 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 +117 -40
- package/contracts/type/Seconds.sol +40 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -2
- 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 +33 -4
- 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/Cloneable.sol/Cloneable.dbg.json +0 -4
- 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 -124
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
- 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/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- 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/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -541
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -0,0 +1,183 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
6
|
+
import {IStaking} from "../staking/IStaking.sol";
|
7
|
+
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
10
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {STAKE, TARGET} from "../type/ObjectType.sol";
|
13
|
+
import {StakingStore} from "./StakingStore.sol";
|
14
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
15
|
+
import {UFixed} from "../type/UFixed.sol";
|
16
|
+
|
17
|
+
contract StakingReader is
|
18
|
+
IRegistryLinked,
|
19
|
+
InitializableCustom
|
20
|
+
{
|
21
|
+
|
22
|
+
error ErrorStakingReaderDependenciesAlreadySet();
|
23
|
+
|
24
|
+
IRegistry private _registry;
|
25
|
+
IStaking private _staking;
|
26
|
+
StakingStore private _store;
|
27
|
+
|
28
|
+
constructor(IRegistry registry) InitializableCustom() {
|
29
|
+
_registry = registry;
|
30
|
+
}
|
31
|
+
|
32
|
+
function initialize(
|
33
|
+
address stakingAddress,
|
34
|
+
address stakingStoreAddress
|
35
|
+
)
|
36
|
+
external
|
37
|
+
initializer
|
38
|
+
{
|
39
|
+
_staking = IStaking(stakingAddress);
|
40
|
+
_store = StakingStore(stakingStoreAddress);
|
41
|
+
}
|
42
|
+
|
43
|
+
// view and pure functions
|
44
|
+
|
45
|
+
function getRegistry() external view returns (IRegistry registry) {
|
46
|
+
return _registry;
|
47
|
+
}
|
48
|
+
|
49
|
+
function getStaking() external view returns (IStaking staking) {
|
50
|
+
return _staking;
|
51
|
+
}
|
52
|
+
|
53
|
+
function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
|
54
|
+
return _store.getStakingRate(chainId, token);
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
function isTarget(NftId targetNftId) external view returns (bool) {
|
59
|
+
return _store.getTargetNftIdSet().exists(targetNftId);
|
60
|
+
}
|
61
|
+
|
62
|
+
|
63
|
+
function targets() external view returns (uint256) {
|
64
|
+
return _store.getTargetNftIdSet().nftIds();
|
65
|
+
}
|
66
|
+
|
67
|
+
|
68
|
+
function getTargetNftId(uint256 idx) external view returns (NftId) {
|
69
|
+
return _store.getTargetNftIdSet().getNftId(idx);
|
70
|
+
}
|
71
|
+
|
72
|
+
|
73
|
+
function isActive(NftId targetNftId) external view returns (bool) {
|
74
|
+
return _store.getTargetNftIdSet().isActive(targetNftId);
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
function activeTargets() external view returns (uint256) {
|
79
|
+
return _store.getTargetNftIdSet().activeNftIds();
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
|
84
|
+
return _store.getTargetNftIdSet().getActiveNftId(idx);
|
85
|
+
}
|
86
|
+
|
87
|
+
|
88
|
+
function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
|
89
|
+
return _registry.getObjectInfo(stakeNftId).parentNftId;
|
90
|
+
}
|
91
|
+
|
92
|
+
|
93
|
+
function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
|
94
|
+
bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
|
95
|
+
if (data.length > 0) {
|
96
|
+
return abi.decode(data, (IStaking.TargetInfo));
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
|
102
|
+
bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
|
103
|
+
if (data.length > 0) {
|
104
|
+
return abi.decode(data, (IStaking.StakeInfo));
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
|
109
|
+
/// @dev get the reward rate that applies to the specified stake nft id.
|
110
|
+
function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
|
111
|
+
targetNftId = getTargetNftId(stakeNftId);
|
112
|
+
rewardRate = getTargetInfo(targetNftId).rewardRate;
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
/// @dev get the reward rate for the specified target nft id.
|
117
|
+
function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
|
118
|
+
return getTargetInfo(targetNftId).rewardRate;
|
119
|
+
}
|
120
|
+
|
121
|
+
/// @dev returns the current reward reserve balance for the specified target.
|
122
|
+
function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
|
123
|
+
return _store.getReserveBalance(targetNftId);
|
124
|
+
}
|
125
|
+
|
126
|
+
function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
|
127
|
+
return _store.getStakeBalance(nftId);
|
128
|
+
}
|
129
|
+
|
130
|
+
function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
|
131
|
+
return _store.getRewardBalance(nftId);
|
132
|
+
}
|
133
|
+
|
134
|
+
function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
|
135
|
+
return _store.getBalanceUpdatedAt(nftId);
|
136
|
+
}
|
137
|
+
|
138
|
+
function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) {
|
139
|
+
return _store.getBalanceUpdatedIn(nftId);
|
140
|
+
}
|
141
|
+
|
142
|
+
function getTotalValueLocked(NftId nftId, address token) external view returns (Amount totalValueLocked) {
|
143
|
+
return _store.getTotalValueLocked(nftId, token);
|
144
|
+
}
|
145
|
+
|
146
|
+
function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredStakedAmount) {
|
147
|
+
return _store.getRequiredStakeBalance(nftId);
|
148
|
+
}
|
149
|
+
|
150
|
+
function getTargetBalances(NftId stakeNftId)
|
151
|
+
public
|
152
|
+
view
|
153
|
+
returns (
|
154
|
+
Amount balanceAmount,
|
155
|
+
Amount stakeAmount,
|
156
|
+
Amount rewardAmount,
|
157
|
+
Blocknumber lastUpdatedIn
|
158
|
+
)
|
159
|
+
{
|
160
|
+
(
|
161
|
+
balanceAmount,
|
162
|
+
stakeAmount,
|
163
|
+
rewardAmount,
|
164
|
+
lastUpdatedIn
|
165
|
+
) = _store.getTargetBalances(stakeNftId);
|
166
|
+
}
|
167
|
+
|
168
|
+
function getStakeBalances(NftId stakeNftId)
|
169
|
+
external
|
170
|
+
view
|
171
|
+
returns (
|
172
|
+
Amount stakeAmount,
|
173
|
+
Amount rewardAmount,
|
174
|
+
Timestamp lastUpdatedAt
|
175
|
+
)
|
176
|
+
{
|
177
|
+
(
|
178
|
+
stakeAmount,
|
179
|
+
rewardAmount,
|
180
|
+
lastUpdatedAt
|
181
|
+
) = _store.getStakeBalances(stakeNftId);
|
182
|
+
}
|
183
|
+
}
|
@@ -1,14 +1,26 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
3
5
|
|
4
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
5
8
|
import {IPoolService} from "../pool/IPoolService.sol";
|
9
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
6
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
+
import {RegistryService} from "../registry/RegistryService.sol";
|
12
|
+
import {IStaking} from "./IStaking.sol";
|
7
13
|
import {IStakingService} from "./IStakingService.sol";
|
8
|
-
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {ObjectType,
|
14
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
|
+
import {ObjectType, INSTANCE, PROTOCOL, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
|
16
|
+
import {Seconds} from "../type/Seconds.sol";
|
10
17
|
import {Service} from "../shared/Service.sol";
|
18
|
+
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
19
|
+
import {StakingReader} from "./StakingReader.sol";
|
20
|
+
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
11
21
|
import {Timestamp} from "../type/Timestamp.sol";
|
22
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
|
+
import {UFixed} from "../type/UFixed.sol";
|
12
24
|
|
13
25
|
|
14
26
|
contract StakingService is
|
@@ -20,120 +32,290 @@ contract StakingService is
|
|
20
32
|
bytes32 public constant STAKING_SERVICE_LOCATION_V1 = 0x6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300;
|
21
33
|
|
22
34
|
struct StakingServiceStorage {
|
23
|
-
|
35
|
+
RegistryService _registryService;
|
36
|
+
IStaking _staking;
|
37
|
+
IERC20Metadata _dip;
|
38
|
+
TokenHandler _tokenHandler;
|
39
|
+
}
|
40
|
+
|
41
|
+
modifier onlyNftOwner(NftId nftId) {
|
42
|
+
if(msg.sender != getRegistry().ownerOf(nftId)) {
|
43
|
+
revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
|
44
|
+
}
|
45
|
+
_;
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
function createInstanceTarget(
|
50
|
+
NftId targetNftId,
|
51
|
+
Seconds initialLockingPeriod,
|
52
|
+
UFixed initialRewardRate
|
53
|
+
)
|
54
|
+
external
|
55
|
+
virtual
|
56
|
+
restricted()
|
57
|
+
{
|
58
|
+
uint256 chainId = block.chainid;
|
59
|
+
_getStakingServiceStorage()._staking.registerTarget(
|
60
|
+
targetNftId,
|
61
|
+
INSTANCE(),
|
62
|
+
chainId,
|
63
|
+
initialLockingPeriod,
|
64
|
+
initialRewardRate);
|
65
|
+
|
66
|
+
emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
|
71
|
+
external
|
72
|
+
virtual
|
73
|
+
restricted()
|
74
|
+
{
|
75
|
+
_getStakingServiceStorage()._staking.setLockingPeriod(
|
76
|
+
instanceNftId,
|
77
|
+
lockingPeriod);
|
24
78
|
}
|
25
79
|
|
26
|
-
|
27
|
-
|
80
|
+
|
81
|
+
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
|
82
|
+
external
|
83
|
+
virtual
|
84
|
+
restricted()
|
85
|
+
{
|
86
|
+
_getStakingServiceStorage()._staking.setRewardRate(
|
87
|
+
instanceNftId,
|
88
|
+
rewardRate);
|
28
89
|
}
|
29
90
|
|
30
91
|
|
92
|
+
function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
|
93
|
+
external
|
94
|
+
virtual
|
95
|
+
restricted()
|
96
|
+
returns (Amount newBalance)
|
97
|
+
{
|
98
|
+
return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
|
99
|
+
}
|
100
|
+
|
101
|
+
|
102
|
+
function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount)
|
103
|
+
external
|
104
|
+
virtual
|
105
|
+
restricted()
|
106
|
+
returns (Amount newBalance)
|
107
|
+
{
|
108
|
+
address rewardProvider = msg.sender;
|
109
|
+
return _refillRewardReserves(targetNftId, rewardProvider, dipAmount);
|
110
|
+
}
|
111
|
+
|
112
|
+
|
113
|
+
function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
|
114
|
+
external
|
115
|
+
virtual
|
116
|
+
restricted()
|
117
|
+
returns (Amount newBalance)
|
118
|
+
{
|
119
|
+
// update reward reserve book keeping
|
120
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
121
|
+
newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
|
122
|
+
|
123
|
+
// transfer withdrawal amount to target owner
|
124
|
+
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
125
|
+
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
126
|
+
$._staking.transferDipAmount(
|
127
|
+
instanceOwner,
|
128
|
+
dipAmount);
|
129
|
+
}
|
130
|
+
|
131
|
+
|
132
|
+
/// @dev creates a new stake to the specified target nft id with the provided dip amount
|
133
|
+
/// the target nft id must have been registered as an active staking target prior to this call
|
134
|
+
/// the sender of this transaction becomes the stake owner via the minted nft.
|
135
|
+
/// to create the new stake balance and allowance of the staker need to cover the dip amount
|
136
|
+
/// the allowance needs to be on the token handler of the staking contract (getTokenHandler())
|
137
|
+
/// this is a permissionless function.
|
31
138
|
function create(
|
32
139
|
NftId targetNftId,
|
33
|
-
Amount
|
140
|
+
Amount dipAmount
|
34
141
|
)
|
35
142
|
external
|
36
143
|
virtual
|
144
|
+
restricted()
|
37
145
|
returns (
|
38
146
|
NftId stakeNftId
|
39
147
|
)
|
40
148
|
{
|
41
|
-
|
149
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
150
|
+
address stakeOwner = msg.sender;
|
151
|
+
|
152
|
+
// target nft id checks are performed in $._staking.createStake() below
|
153
|
+
// register new stake object with registry
|
154
|
+
stakeNftId = $._registryService.registerStake(
|
155
|
+
IRegistry.ObjectInfo({
|
156
|
+
nftId: NftIdLib.zero(),
|
157
|
+
parentNftId: targetNftId,
|
158
|
+
objectType: STAKE(),
|
159
|
+
isInterceptor: false,
|
160
|
+
objectAddress: address(0),
|
161
|
+
initialOwner: stakeOwner,
|
162
|
+
data: ""
|
163
|
+
}));
|
164
|
+
|
165
|
+
// create stake info with staking
|
166
|
+
$._staking.createStake(
|
167
|
+
stakeNftId,
|
168
|
+
targetNftId,
|
169
|
+
dipAmount);
|
170
|
+
|
171
|
+
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
172
|
+
|
173
|
+
// collect staked dip by staking
|
174
|
+
$._staking.collectDipAmount(
|
175
|
+
stakeOwner,
|
176
|
+
dipAmount);
|
42
177
|
}
|
43
178
|
|
44
179
|
|
45
180
|
function stake(
|
46
181
|
NftId stakeNftId,
|
47
|
-
Amount
|
182
|
+
Amount dipAmount
|
48
183
|
)
|
49
184
|
external
|
50
185
|
virtual
|
186
|
+
restricted()
|
187
|
+
onlyNftOwner(stakeNftId)
|
51
188
|
{
|
52
|
-
|
189
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
190
|
+
address stakeOwner = msg.sender;
|
191
|
+
|
192
|
+
// add additional staked dips by staking
|
193
|
+
Amount stakeBalance = $._staking.stake(
|
194
|
+
stakeNftId,
|
195
|
+
dipAmount);
|
196
|
+
|
197
|
+
// collect staked dip by staking
|
198
|
+
if (dipAmount.gtz()) {
|
199
|
+
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
200
|
+
$._staking.collectDipAmount(
|
201
|
+
stakeOwner,
|
202
|
+
dipAmount);
|
203
|
+
}
|
53
204
|
}
|
54
205
|
|
55
206
|
|
56
|
-
function
|
207
|
+
function restakeToNewTarget(
|
57
208
|
NftId stakeNftId,
|
58
|
-
|
209
|
+
NftId newTargetNftId
|
59
210
|
)
|
60
211
|
external
|
61
212
|
virtual
|
213
|
+
restricted()
|
214
|
+
onlyNftOwner(stakeNftId)
|
215
|
+
returns (
|
216
|
+
NftId newStakeNftId
|
217
|
+
)
|
62
218
|
{
|
219
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
220
|
+
// TODO implement
|
221
|
+
}
|
63
222
|
|
64
|
-
}
|
65
223
|
|
66
|
-
function
|
224
|
+
function updateRewards(
|
67
225
|
NftId stakeNftId
|
68
226
|
)
|
69
227
|
external
|
70
228
|
virtual
|
229
|
+
restricted()
|
71
230
|
{
|
231
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
232
|
+
$._staking.updateRewards(stakeNftId);
|
72
233
|
|
234
|
+
emit LogStakingServiceRewardsUpdated(stakeNftId);
|
73
235
|
}
|
74
236
|
|
75
|
-
|
76
|
-
|
77
|
-
NftId newTargetNftId
|
78
|
-
)
|
237
|
+
|
238
|
+
function claimRewards(NftId stakeNftId)
|
79
239
|
external
|
80
240
|
virtual
|
81
|
-
|
82
|
-
|
83
|
-
Timestamp unlockedAt
|
84
|
-
)
|
241
|
+
restricted()
|
242
|
+
onlyNftOwner(stakeNftId)
|
85
243
|
{
|
244
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
245
|
+
address stakeOwner = msg.sender;
|
86
246
|
|
247
|
+
Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
|
248
|
+
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
249
|
+
$._staking.transferDipAmount(
|
250
|
+
stakeOwner,
|
251
|
+
rewardsClaimedAmount);
|
87
252
|
}
|
88
253
|
|
89
254
|
|
90
|
-
function
|
91
|
-
NftId targetNftId,
|
92
|
-
address token,
|
93
|
-
Amount amount
|
94
|
-
)
|
255
|
+
function unstake(NftId stakeNftId)
|
95
256
|
external
|
96
257
|
virtual
|
97
|
-
|
258
|
+
restricted()
|
259
|
+
onlyNftOwner(stakeNftId)
|
98
260
|
{
|
99
|
-
|
261
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
262
|
+
address stakeOwner = msg.sender;
|
263
|
+
|
264
|
+
(
|
265
|
+
Amount unstakedAmount,
|
266
|
+
Amount rewardsClaimedAmount
|
267
|
+
) = $._staking.unstake(stakeNftId);
|
268
|
+
|
269
|
+
Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
|
270
|
+
emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
|
271
|
+
$._staking.transferDipAmount(
|
272
|
+
stakeOwner,
|
273
|
+
totalAmount);
|
100
274
|
}
|
101
275
|
|
102
276
|
|
103
|
-
function
|
277
|
+
function setTotalValueLocked(
|
104
278
|
NftId targetNftId,
|
105
279
|
address token,
|
106
280
|
Amount amount
|
107
281
|
)
|
108
282
|
external
|
109
283
|
virtual
|
110
|
-
|
284
|
+
restricted()
|
111
285
|
{
|
286
|
+
// TODO implement
|
112
287
|
|
113
288
|
}
|
114
289
|
|
290
|
+
//--- view functions ----------------------------------------------------//
|
115
291
|
|
116
|
-
function
|
117
|
-
NftId targetNftId,
|
118
|
-
address token
|
119
|
-
)
|
292
|
+
function getDipToken()
|
120
293
|
external
|
121
294
|
virtual
|
295
|
+
returns (IERC20Metadata dip)
|
122
296
|
{
|
123
|
-
|
297
|
+
return _getStakingServiceStorage()._dip;
|
124
298
|
}
|
125
299
|
|
126
300
|
|
127
|
-
function
|
128
|
-
NftId targetNftId,
|
129
|
-
address token
|
130
|
-
)
|
301
|
+
function getTokenHandler()
|
131
302
|
external
|
132
303
|
virtual
|
304
|
+
returns (TokenHandler tokenHandler)
|
133
305
|
{
|
306
|
+
return _getStakingServiceStorage()._tokenHandler;
|
307
|
+
}
|
308
|
+
|
134
309
|
|
310
|
+
function getStaking()
|
311
|
+
external
|
312
|
+
virtual
|
313
|
+
returns (IStaking staking)
|
314
|
+
{
|
315
|
+
return _getStakingServiceStorage()._staking;
|
135
316
|
}
|
136
317
|
|
318
|
+
//--- internal functions ------------------------------------------------//
|
137
319
|
|
138
320
|
function _initialize(
|
139
321
|
address owner,
|
@@ -143,24 +325,83 @@ contract StakingService is
|
|
143
325
|
virtual override
|
144
326
|
initializer()
|
145
327
|
{
|
146
|
-
|
147
|
-
|
148
|
-
|
328
|
+
(
|
329
|
+
address authority,
|
330
|
+
address registryAddress,
|
331
|
+
address stakingAddress
|
332
|
+
) = abi.decode(data, (address, address, address));
|
333
|
+
|
334
|
+
initializeService(registryAddress, authority, owner);
|
149
335
|
|
150
336
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
151
|
-
$.
|
337
|
+
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
338
|
+
$._staking = _registerStaking(stakingAddress);
|
339
|
+
$._dip = $._staking.getToken();
|
340
|
+
$._tokenHandler = $._staking.getTokenHandler();
|
152
341
|
|
153
|
-
initializeService(registryAddress, address(0), owner);
|
154
342
|
registerInterface(type(IStakingService).interfaceId);
|
155
343
|
}
|
156
344
|
|
157
|
-
|
158
|
-
|
345
|
+
|
346
|
+
function _registerStaking(
|
347
|
+
address stakingAddress
|
348
|
+
)
|
349
|
+
internal
|
350
|
+
returns (IStaking staking)
|
351
|
+
{
|
352
|
+
// check if provided staking contract is already registred
|
353
|
+
// staking contract may have been already registered by a previous major relase
|
354
|
+
IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
|
355
|
+
if (stakingInfo.nftId.gtz()) {
|
356
|
+
// registered object but wrong type
|
357
|
+
if (stakingInfo.objectType != STAKING()) {
|
358
|
+
revert ErrorStakingServiceNotStaking(stakingAddress);
|
359
|
+
}
|
360
|
+
|
361
|
+
// return correctly registered staking contract
|
362
|
+
return IStaking(stakingAddress);
|
363
|
+
}
|
364
|
+
|
365
|
+
// check that contract implements IStaking
|
366
|
+
if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
|
367
|
+
revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
|
368
|
+
}
|
369
|
+
|
370
|
+
address owner = msg.sender;
|
371
|
+
_getStakingServiceStorage()._registryService.registerStaking(
|
372
|
+
IRegisterable(stakingAddress),
|
373
|
+
owner);
|
374
|
+
|
375
|
+
return IStaking(stakingAddress);
|
159
376
|
}
|
160
377
|
|
378
|
+
|
379
|
+
function _refillRewardReserves(NftId targetNftId, address rewardProvider, Amount dipAmount)
|
380
|
+
internal
|
381
|
+
virtual
|
382
|
+
returns (Amount newBalance)
|
383
|
+
{
|
384
|
+
// update reward reserve book keeping
|
385
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
386
|
+
newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
|
387
|
+
|
388
|
+
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
389
|
+
|
390
|
+
// collect reward dip from provider
|
391
|
+
$._staking.collectDipAmount(
|
392
|
+
rewardProvider,
|
393
|
+
dipAmount);
|
394
|
+
}
|
395
|
+
|
396
|
+
|
161
397
|
function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
|
162
398
|
assembly {
|
163
399
|
$.slot := STAKING_SERVICE_LOCATION_V1
|
164
400
|
}
|
165
401
|
}
|
402
|
+
|
403
|
+
|
404
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
405
|
+
return STAKING();
|
406
|
+
}
|
166
407
|
}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
4
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
7
|
import {StakingService} from "./StakingService.sol";
|
7
8
|
|
8
9
|
contract StakingServiceManager is
|
@@ -13,15 +14,21 @@ contract StakingServiceManager is
|
|
13
14
|
|
14
15
|
/// @dev initializes proxy manager with service implementation
|
15
16
|
constructor(
|
16
|
-
address
|
17
|
+
address authority,
|
18
|
+
address registryAddress,
|
19
|
+
bytes32 salt
|
17
20
|
)
|
18
21
|
ProxyManager(registryAddress)
|
19
22
|
{
|
20
23
|
StakingService svc = new StakingService();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
|
24
|
+
bytes memory data = abi.encode(
|
25
|
+
authority,
|
26
|
+
registryAddress,
|
27
|
+
IRegistry(registryAddress).getStakingAddress());
|
28
|
+
IVersionable versionable = deployDetermenistic(
|
23
29
|
address(svc),
|
24
|
-
data
|
30
|
+
data,
|
31
|
+
salt);
|
25
32
|
|
26
33
|
_stakingService = StakingService(address(versionable));
|
27
34
|
}
|