@etherisc/gif-next 0.0.2-676522f-203 → 0.0.2-683d8b2-607
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -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 +29 -254
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -58
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -150
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
- 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 +230 -65
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +53 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
- 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/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 +1155 -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 +772 -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 +1063 -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 +1477 -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 +95 -58
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +54 -42
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -206
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -314
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +43 -39
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -36
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -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 +112 -67
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +68 -52
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +17 -46
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +57 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -49
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +24 -164
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -31
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1487 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1876 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -60
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +182 -88
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1599 -153
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -26
- 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 +1140 -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 +22 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +89 -77
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +53 -57
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +20 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +17 -4
- 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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +24 -64
- 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/MainnetContract.sol/MainnetContract.dbg.json +4 -0
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +34 -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 +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
- 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 +44 -44
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +42 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +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 +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +590 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -104
- package/contracts/distribution/DistributionService.sol +15 -25
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +20 -13
- package/contracts/instance/IInstanceService.sol +34 -23
- package/contracts/instance/Instance.sol +108 -89
- package/contracts/instance/InstanceAdmin.sol +202 -266
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +52 -12
- package/contracts/instance/InstanceService.sol +159 -78
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +38 -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 +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- 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 +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +32 -44
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/IPoolService.sol +3 -0
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +45 -33
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +17 -41
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +16 -37
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IClaimService.sol +6 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyService.sol +8 -6
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +7 -8
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +12 -37
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/ChainNft.sol +37 -22
- package/contracts/registry/GlobalRegistry.sol +89 -0
- package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
- package/contracts/registry/IGlobalRegistry.sol +17 -0
- package/contracts/registry/IRegistry.sol +25 -18
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +129 -150
- package/contracts/registry/RegistryAdmin.sol +358 -150
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +533 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +9 -52
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +45 -60
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +11 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/MainnetContract.sol +15 -0
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +27 -22
- package/contracts/staking/IStaking.sol +41 -26
- package/contracts/staking/IStakingService.sol +42 -44
- package/contracts/staking/StakeManagerLib.sol +101 -26
- package/contracts/staking/Staking.sol +139 -125
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +73 -36
- package/contracts/staking/StakingService.sol +121 -86
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +401 -127
- package/contracts/staking/TargetManagerLib.sol +28 -0
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/NftId.sol +8 -8
- package/contracts/type/ObjectType.sol +171 -69
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RoleId.sol +103 -72
- package/contracts/type/Seconds.sol +10 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +12 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
- 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/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
- package/contracts/registry/ReleaseManager.sol +0 -596
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/staking/IStakingManager.sol +0 -15
- package/contracts/staking/IStakingStore.sol +0 -130
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
|
@@ -52,6 +52,8 @@ interface IComponentService is
|
|
|
52
52
|
function unlock() external;
|
|
53
53
|
|
|
54
54
|
//-------- product ------------------------------------------------------//
|
|
55
|
+
|
|
56
|
+
/// @dev registers the sending component as a product component
|
|
55
57
|
function registerProduct() external;
|
|
56
58
|
|
|
57
59
|
function setProductFees(
|
|
@@ -63,6 +65,8 @@ interface IComponentService is
|
|
|
63
65
|
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
|
|
64
66
|
|
|
65
67
|
//-------- distribution -------------------------------------------------//
|
|
68
|
+
|
|
69
|
+
/// @dev registers the sending component as a distribution component
|
|
66
70
|
function registerDistribution() external;
|
|
67
71
|
|
|
68
72
|
function setDistributionFees(
|
|
@@ -73,7 +77,14 @@ interface IComponentService is
|
|
|
73
77
|
function increaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
|
74
78
|
function decreaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
|
75
79
|
|
|
80
|
+
//-------- oracle -------------------------------------------------------//
|
|
81
|
+
|
|
82
|
+
/// @dev registers the sending component as an oracle component
|
|
83
|
+
function registerOracle() external;
|
|
84
|
+
|
|
76
85
|
//-------- pool ---------------------------------------------------------//
|
|
86
|
+
|
|
87
|
+
/// @dev registers the sending component as a pool component
|
|
77
88
|
function registerPool() external;
|
|
78
89
|
|
|
79
90
|
function setPoolFees(
|
|
@@ -5,6 +5,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
6
6
|
|
|
7
7
|
import {IComponent} from "../shared/IComponent.sol";
|
|
8
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
|
8
9
|
import {IComponents} from "../instance/module/IComponents.sol";
|
|
9
10
|
import {IInstance} from "../instance/IInstance.sol";
|
|
10
11
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
|
@@ -43,4 +44,7 @@ interface IInstanceLinkedComponent is
|
|
|
43
44
|
/// this is only relevant for pool and distribution components
|
|
44
45
|
function getProductNftId() external view returns (NftId productNftId);
|
|
45
46
|
|
|
47
|
+
/// @dev returns the initial component authorization specification.
|
|
48
|
+
function getAuthorization() external view returns (IAuthorization authorization);
|
|
49
|
+
|
|
46
50
|
}
|
|
@@ -13,6 +13,7 @@ interface IKeyValueStore is ILifecycle {
|
|
|
13
13
|
|
|
14
14
|
error ErrorKeyValueStoreTypeUndefined(ObjectType objectType);
|
|
15
15
|
error ErrorKeyValueStoreAlreadyCreated(Key32 key, ObjectType objectType);
|
|
16
|
+
error ErrorKeyValueStoreNoLifecycle(ObjectType objectType);
|
|
16
17
|
error ErrorKeyValueStoreStateZero(Key32 key);
|
|
17
18
|
error ErrorKeyValueStoreNotExisting(Key32 key);
|
|
18
19
|
|
|
@@ -32,7 +33,7 @@ interface IKeyValueStore is ILifecycle {
|
|
|
32
33
|
// eg account outside gif objects that initiated the tx
|
|
33
34
|
// implies the caller needs to be propagated through all calls up to key values store itself
|
|
34
35
|
// to always have the instance address there doesn't seem to make sense
|
|
35
|
-
address updatedBy;
|
|
36
|
+
// address updatedBy;
|
|
36
37
|
Blocknumber updatedIn;
|
|
37
38
|
Blocknumber createdIn;
|
|
38
39
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
import {NftId} from "../type/NftId.sol";
|
|
5
4
|
import {ObjectType} from "../type/ObjectType.sol";
|
|
6
5
|
import {StateId} from "../type/StateId.sol";
|
|
7
6
|
|
|
8
7
|
interface ILifecycle {
|
|
9
8
|
|
|
10
|
-
error ErrorNoLifecycle(
|
|
9
|
+
error ErrorNoLifecycle(ObjectType objectType);
|
|
11
10
|
error ErrorInvalidStateTransition(
|
|
12
11
|
ObjectType objectType,
|
|
13
12
|
StateId fromStateId,
|
|
@@ -4,8 +4,9 @@ pragma solidity ^0.8.20;
|
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
|
5
5
|
|
|
6
6
|
import {IRegisterable} from "./IRegisterable.sol";
|
|
7
|
-
import {IVersionable} from "
|
|
7
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
|
8
8
|
import {ObjectType} from "../type/ObjectType.sol";
|
|
9
|
+
import {RoleId} from "../type/RoleId.sol";
|
|
9
10
|
|
|
10
11
|
interface IService is
|
|
11
12
|
IRegisterable,
|
|
@@ -14,5 +15,11 @@ interface IService is
|
|
|
14
15
|
{
|
|
15
16
|
error ErrorServiceNotImplemented();
|
|
16
17
|
|
|
18
|
+
/// @dev returns the domain for this service.
|
|
19
|
+
/// In any GIF release only one service for any given domain may be deployed.
|
|
17
20
|
function getDomain() external pure returns(ObjectType serviceDomain);
|
|
21
|
+
|
|
22
|
+
/// @dev returns the GIF release specific role id.
|
|
23
|
+
/// These role ids are used to authorize service to service communication.
|
|
24
|
+
function getRoleId() external pure returns(RoleId serviceRoleId);
|
|
18
25
|
}
|
|
@@ -9,10 +9,10 @@ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
|
|
|
9
9
|
import {Component} from "./Component.sol";
|
|
10
10
|
import {IComponentService} from "./IComponentService.sol";
|
|
11
11
|
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
|
12
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
|
12
13
|
import {IComponents} from "../instance/module/IComponents.sol";
|
|
13
14
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
|
14
15
|
import {IInstance} from "../instance/IInstance.sol";
|
|
15
|
-
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
|
16
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
17
17
|
import {IRegistry} from "../registry/IRegistry.sol";
|
|
18
18
|
import {NftId} from "../type/NftId.sol";
|
|
@@ -35,6 +35,27 @@ abstract contract InstanceLinkedComponent is
|
|
|
35
35
|
struct InstanceLinkedComponentStorage {
|
|
36
36
|
IInstance _instance; // instance for this component
|
|
37
37
|
InstanceReader _instanceReader; // instance reader for this component
|
|
38
|
+
IAuthorization _initialAuthorization;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function lock() external onlyOwner {
|
|
42
|
+
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function unlock() external onlyOwner {
|
|
46
|
+
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function getInstance() public view override returns (IInstance instance) {
|
|
50
|
+
return _getInstanceLinkedComponentStorage()._instance;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function getProductNftId() public view override returns (NftId productNftId) {
|
|
54
|
+
return getComponentInfo().productNftId;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function getAuthorization() external view returns (IAuthorization authorization) {
|
|
58
|
+
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
|
38
59
|
}
|
|
39
60
|
|
|
40
61
|
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
|
@@ -43,18 +64,19 @@ abstract contract InstanceLinkedComponent is
|
|
|
43
64
|
}
|
|
44
65
|
}
|
|
45
66
|
|
|
46
|
-
function
|
|
67
|
+
function _initializeInstanceLinkedComponent(
|
|
47
68
|
address registry,
|
|
48
69
|
NftId instanceNftId,
|
|
49
70
|
string memory name,
|
|
50
71
|
address token,
|
|
51
72
|
ObjectType componentType,
|
|
73
|
+
IAuthorization authorization,
|
|
52
74
|
bool isInterceptor,
|
|
53
75
|
address initialOwner,
|
|
54
76
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
|
55
77
|
bytes memory componentData // data that will saved with the component info in the instance store
|
|
56
78
|
)
|
|
57
|
-
|
|
79
|
+
internal
|
|
58
80
|
virtual
|
|
59
81
|
onlyInitializing()
|
|
60
82
|
{
|
|
@@ -82,6 +104,7 @@ abstract contract InstanceLinkedComponent is
|
|
|
82
104
|
|
|
83
105
|
// set component state
|
|
84
106
|
$._instanceReader = $._instance.getInstanceReader();
|
|
107
|
+
$._initialAuthorization = authorization;
|
|
85
108
|
|
|
86
109
|
registerInterface(type(IAccessManaged).interfaceId);
|
|
87
110
|
registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
|
@@ -93,22 +116,6 @@ abstract contract InstanceLinkedComponent is
|
|
|
93
116
|
IComponentService(_getServiceAddress(COMPONENT())).setWallet(newWallet);
|
|
94
117
|
}
|
|
95
118
|
|
|
96
|
-
function lock() external onlyOwner {
|
|
97
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function unlock() external onlyOwner {
|
|
101
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
function getInstance() public view override returns (IInstance instance) {
|
|
105
|
-
return _getInstanceLinkedComponentStorage()._instance;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
function getProductNftId() public view override returns (NftId productNftId) {
|
|
109
|
-
return getComponentInfo().productNftId;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
119
|
|
|
113
120
|
function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
|
|
114
121
|
NftId componentNftId = getRegistry().getNftId(address(this));
|
|
@@ -11,7 +11,7 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
|
|
11
11
|
import {Lifecycle} from "./Lifecycle.sol";
|
|
12
12
|
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
|
13
13
|
|
|
14
|
-
contract KeyValueStore is
|
|
14
|
+
abstract contract KeyValueStore is
|
|
15
15
|
Lifecycle,
|
|
16
16
|
IKeyValueStore
|
|
17
17
|
{
|
|
@@ -34,14 +34,16 @@ contract KeyValueStore is
|
|
|
34
34
|
revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
if(!hasLifecycle(objectType)) {
|
|
38
|
+
revert ErrorKeyValueStoreNoLifecycle(objectType);
|
|
39
|
+
}
|
|
40
|
+
|
|
38
41
|
Blocknumber blocknumber = blockBlocknumber();
|
|
39
|
-
StateId initialState =
|
|
42
|
+
StateId initialState = getInitialState(objectType);
|
|
40
43
|
|
|
41
44
|
// set metadata
|
|
42
45
|
metadata.objectType = objectType;
|
|
43
46
|
metadata.state = initialState;
|
|
44
|
-
metadata.updatedBy = createdBy;
|
|
45
47
|
metadata.updatedIn = blocknumber;
|
|
46
48
|
metadata.createdIn = blocknumber;
|
|
47
49
|
|
|
@@ -49,7 +51,7 @@ contract KeyValueStore is
|
|
|
49
51
|
_value[key32].data = data;
|
|
50
52
|
|
|
51
53
|
// solhint-disable-next-line avoid-tx-origin
|
|
52
|
-
emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState,
|
|
54
|
+
emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, msg.sender, tx.origin);
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
|
|
@@ -100,7 +102,6 @@ contract KeyValueStore is
|
|
|
100
102
|
}
|
|
101
103
|
|
|
102
104
|
// update metadata
|
|
103
|
-
metadata.updatedBy = msg.sender;
|
|
104
105
|
metadata.updatedIn = blockBlocknumber();
|
|
105
106
|
}
|
|
106
107
|
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
import {NftId} from "../type/NftId.sol";
|
|
7
|
-
import {ObjectType, COMPONENT, BUNDLE, POLICY, RISK, CLAIM, PAYOUT} from "../type/ObjectType.sol";
|
|
8
|
-
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID} from "../type/StateId.sol";
|
|
4
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
|
5
|
+
import {StateId, zeroStateId} from "../type/StateId.sol";
|
|
9
6
|
import {ILifecycle} from "./ILifecycle.sol";
|
|
10
7
|
|
|
11
|
-
contract Lifecycle is
|
|
12
|
-
Initializable,
|
|
8
|
+
abstract contract Lifecycle is
|
|
13
9
|
ILifecycle
|
|
14
10
|
{
|
|
15
11
|
mapping(ObjectType objectType => StateId initialState)
|
|
@@ -18,15 +14,17 @@ contract Lifecycle is
|
|
|
18
14
|
mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
|
|
19
15
|
private _isValidTransition;
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
17
|
+
/// @dev child class must implement and CALL setup func at deployment/initializaton time
|
|
18
|
+
function _setupLifecycle() internal virtual;
|
|
19
|
+
|
|
20
|
+
function setInitialState(ObjectType ttype, StateId state) internal virtual {
|
|
21
|
+
assert(_initialState[ttype] == zeroStateId());
|
|
22
|
+
_initialState[ttype] = state;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function setStateTransition(ObjectType ttype, StateId oldState, StateId newState) internal virtual {
|
|
26
|
+
assert(_isValidTransition[ttype][oldState][newState] == false);
|
|
27
|
+
_isValidTransition[ttype][oldState][newState] = true;
|
|
30
28
|
}
|
|
31
29
|
|
|
32
30
|
function hasLifecycle(
|
|
@@ -58,9 +56,9 @@ contract Lifecycle is
|
|
|
58
56
|
public
|
|
59
57
|
view
|
|
60
58
|
{
|
|
61
|
-
//
|
|
59
|
+
// revert if no life cycle support
|
|
62
60
|
if (_initialState[objectType].eqz()) {
|
|
63
|
-
|
|
61
|
+
revert ErrorNoLifecycle(objectType);
|
|
64
62
|
}
|
|
65
63
|
|
|
66
64
|
// enforce valid state transition
|
|
@@ -76,46 +74,4 @@ contract Lifecycle is
|
|
|
76
74
|
) public view returns (bool) {
|
|
77
75
|
return _isValidTransition[objectType][fromId][toId];
|
|
78
76
|
}
|
|
79
|
-
|
|
80
|
-
function _setupComponentLifecycle() internal {
|
|
81
|
-
_initialState[COMPONENT()] = ACTIVE();
|
|
82
|
-
_isValidTransition[COMPONENT()][ACTIVE()][PAUSED()] = true;
|
|
83
|
-
_isValidTransition[COMPONENT()][PAUSED()][ACTIVE()] = true;
|
|
84
|
-
_isValidTransition[COMPONENT()][PAUSED()][ARCHIVED()] = true;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function _setupBundleLifecycle() internal {
|
|
88
|
-
_initialState[BUNDLE()] = ACTIVE();
|
|
89
|
-
_isValidTransition[BUNDLE()][ACTIVE()][PAUSED()] = true;
|
|
90
|
-
_isValidTransition[BUNDLE()][ACTIVE()][CLOSED()] = true;
|
|
91
|
-
_isValidTransition[BUNDLE()][PAUSED()][ACTIVE()] = true;
|
|
92
|
-
_isValidTransition[BUNDLE()][PAUSED()][CLOSED()] = true;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function _setupPolicyLifecycle() internal {
|
|
96
|
-
_initialState[POLICY()] = APPLIED();
|
|
97
|
-
_isValidTransition[POLICY()][APPLIED()][REVOKED()] = true;
|
|
98
|
-
_isValidTransition[POLICY()][APPLIED()][DECLINED()] = true;
|
|
99
|
-
_isValidTransition[POLICY()][APPLIED()][COLLATERALIZED()] = true;
|
|
100
|
-
_isValidTransition[POLICY()][APPLIED()][ACTIVE()] = true;
|
|
101
|
-
_isValidTransition[POLICY()][COLLATERALIZED()][ACTIVE()] = true;
|
|
102
|
-
_isValidTransition[POLICY()][ACTIVE()][CLOSED()] = true;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function _setupClaimAndPayoutLifecycle() internal {
|
|
106
|
-
_initialState[CLAIM()] = SUBMITTED();
|
|
107
|
-
_isValidTransition[CLAIM()][SUBMITTED()][CONFIRMED()] = true;
|
|
108
|
-
_isValidTransition[CLAIM()][SUBMITTED()][DECLINED()] = true;
|
|
109
|
-
_isValidTransition[CLAIM()][CONFIRMED()][CLOSED()] = true;
|
|
110
|
-
|
|
111
|
-
_initialState[PAYOUT()] = EXPECTED();
|
|
112
|
-
_isValidTransition[PAYOUT()][EXPECTED()][PAID()] = true;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function _setupRiskLifecycle() internal {
|
|
116
|
-
_initialState[RISK()] = ACTIVE();
|
|
117
|
-
_isValidTransition[RISK()][ACTIVE()][PAUSED()] = true;
|
|
118
|
-
_isValidTransition[RISK()][PAUSED()][ACTIVE()] = true;
|
|
119
|
-
_isValidTransition[RISK()][PAUSED()][ARCHIVED()] = true;
|
|
120
|
-
}
|
|
121
77
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
contract MainnetContract
|
|
5
|
+
{
|
|
6
|
+
error ErrorDeploymentContractForMainnetOnly();
|
|
7
|
+
|
|
8
|
+
uint constant public MAINNET_CHAIN_ID = 1;
|
|
9
|
+
|
|
10
|
+
constructor() {
|
|
11
|
+
if(block.chainid != MAINNET_CHAIN_ID) {
|
|
12
|
+
revert ErrorDeploymentContractForMainnetOnly();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
|
4
4
|
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
|
5
5
|
import {NftId} from "../type/NftId.sol";
|
|
6
6
|
|
|
7
|
-
contract
|
|
7
|
+
contract NftIdSet {
|
|
8
8
|
|
|
9
9
|
error ErrorNftIdSetManagerNotOwner(address owner, address sender);
|
|
10
10
|
error ErrorNftIdSetManagerOwnerAlreadySet(address owner);
|
|
@@ -4,17 +4,14 @@ pragma solidity ^0.8.20;
|
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
|
5
5
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
|
6
6
|
|
|
7
|
-
import {
|
|
8
|
-
import {NftId} from "../type/NftId.sol";
|
|
9
|
-
import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
|
|
10
|
-
|
|
11
|
-
import {Versionable} from "./Versionable.sol";
|
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
|
12
8
|
import {IService} from "./IService.sol";
|
|
13
|
-
import {IVersionable} from "
|
|
14
|
-
import {
|
|
9
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
|
10
|
+
import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
|
|
15
11
|
import {Registerable} from "./Registerable.sol";
|
|
16
|
-
|
|
17
|
-
import {
|
|
12
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
|
13
|
+
import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
|
|
14
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
|
18
15
|
|
|
19
16
|
|
|
20
17
|
/// @dev service base contract
|
|
@@ -27,15 +24,6 @@ abstract contract Service is
|
|
|
27
24
|
|
|
28
25
|
uint8 private constant GIF_MAJOR_VERSION = 3;
|
|
29
26
|
|
|
30
|
-
// from Versionable
|
|
31
|
-
function getVersion()
|
|
32
|
-
public
|
|
33
|
-
pure
|
|
34
|
-
virtual override (IVersionable, Versionable)
|
|
35
|
-
returns(Version)
|
|
36
|
-
{
|
|
37
|
-
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
|
38
|
-
}
|
|
39
27
|
|
|
40
28
|
function initializeService(
|
|
41
29
|
address registry,
|
|
@@ -58,9 +46,7 @@ abstract contract Service is
|
|
|
58
46
|
if(authority != address(0)) {
|
|
59
47
|
__AccessManaged_init(authority);
|
|
60
48
|
} else {
|
|
61
|
-
address registryServiceAddress =
|
|
62
|
-
REGISTRY(),
|
|
63
|
-
VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
|
49
|
+
address registryServiceAddress = _getServiceAddress(REGISTRY());
|
|
64
50
|
|
|
65
51
|
// copy authority from already registered registry services
|
|
66
52
|
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
|
@@ -70,8 +56,27 @@ abstract contract Service is
|
|
|
70
56
|
registerInterface(type(IService).interfaceId);
|
|
71
57
|
}
|
|
72
58
|
|
|
59
|
+
function getDomain() external virtual pure returns(ObjectType serviceDomain) {
|
|
60
|
+
return _getDomain();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
|
|
64
|
+
return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// from Versionable
|
|
68
|
+
function getVersion()
|
|
69
|
+
public
|
|
70
|
+
pure
|
|
71
|
+
virtual override (IVersionable, Versionable)
|
|
72
|
+
returns(Version)
|
|
73
|
+
{
|
|
74
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function _getDomain() internal virtual pure returns (ObjectType);
|
|
73
78
|
|
|
74
79
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
|
75
|
-
return getRegistry().getServiceAddress(domain,
|
|
80
|
+
return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
|
76
81
|
}
|
|
77
82
|
}
|
|
@@ -3,9 +3,8 @@ pragma solidity ^0.8.20;
|
|
|
3
3
|
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
|
5
5
|
import {IComponent} from "../shared/IComponent.sol";
|
|
6
|
-
import {IVersionable} from "../
|
|
6
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
|
7
7
|
import {NftId} from "../type/NftId.sol";
|
|
8
|
-
import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
|
|
9
8
|
import {ObjectType} from "../type/ObjectType.sol";
|
|
10
9
|
import {Seconds} from "../type/Seconds.sol";
|
|
11
10
|
import {StakingReader} from "./StakingReader.sol";
|
|
@@ -17,6 +16,8 @@ interface IStaking is
|
|
|
17
16
|
IComponent,
|
|
18
17
|
IVersionable
|
|
19
18
|
{
|
|
19
|
+
// staking rate
|
|
20
|
+
event LogStakingStakingRateSet(uint256 chainId, address token, UFixed oldStakingRate, UFixed newStakingRate);
|
|
20
21
|
|
|
21
22
|
// target parameters
|
|
22
23
|
event LogStakingLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod);
|
|
@@ -29,6 +30,9 @@ interface IStaking is
|
|
|
29
30
|
error ErrorStakingNotStakingOwner();
|
|
30
31
|
error ErrorStakingNotNftOwner(NftId nftId);
|
|
31
32
|
|
|
33
|
+
// staking rate
|
|
34
|
+
error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
|
|
35
|
+
|
|
32
36
|
// check dip balance and allowance
|
|
33
37
|
error ErrorStakingDipBalanceInsufficient(address owner, uint256 amount, uint256 dipBalance);
|
|
34
38
|
error ErrorStakingDipAllowanceInsufficient(address owner, address tokenHandler, uint256 amount, uint256 dipAllowance);
|
|
@@ -59,7 +63,10 @@ interface IStaking is
|
|
|
59
63
|
UFixed rewardRate;
|
|
60
64
|
}
|
|
61
65
|
|
|
62
|
-
// rate management
|
|
66
|
+
// staking rate management
|
|
67
|
+
|
|
68
|
+
/// @dev sets the rate that converts 1 token of total value locked into the
|
|
69
|
+
/// the required staked dip amount to back up the locked token value
|
|
63
70
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate) external;
|
|
64
71
|
|
|
65
72
|
|
|
@@ -73,31 +80,53 @@ interface IStaking is
|
|
|
73
80
|
UFixed initialRewardRate
|
|
74
81
|
) external;
|
|
75
82
|
|
|
83
|
+
|
|
76
84
|
/// @dev set the stake locking period to the specified duration.
|
|
85
|
+
/// permissioned: only the staking service may call this function
|
|
77
86
|
function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
|
|
78
87
|
|
|
88
|
+
/// @dev update the target specific reward rate.
|
|
89
|
+
/// permissioned: only the staking service may call this function
|
|
79
90
|
function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
|
|
80
|
-
function refillRewardReserves(NftId targetNftId, Amount dipAmount) external;
|
|
81
|
-
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external;
|
|
82
91
|
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
/// @dev (re)fills the staking reward reserves for the specified target
|
|
93
|
+
/// unpermissioned: anybody may fill up staking reward reserves
|
|
94
|
+
function refillRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
|
95
|
+
|
|
96
|
+
/// @dev defunds the staking reward reserves for the specified target
|
|
97
|
+
/// permissioned: only the staking service may call this function
|
|
98
|
+
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
/// @dev increases the total value locked amount for the specified target by the provided token amount.
|
|
102
|
+
/// function is called when a new policy is collateralized.
|
|
103
|
+
/// function restricted to the pool service.
|
|
104
|
+
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
/// @dev decreases the total value locked amount for the specified target by the provided token amount.
|
|
108
|
+
/// function is called when a new policy is closed or payouts are executed.
|
|
109
|
+
/// function restricted to the pool service.
|
|
110
|
+
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
|
|
111
|
+
|
|
85
112
|
|
|
86
113
|
function updateRemoteTvl(NftId targetNftId, address token, Amount amount) external;
|
|
87
114
|
|
|
88
115
|
// staking functions
|
|
89
116
|
|
|
90
|
-
/// @dev
|
|
117
|
+
/// @dev creat a new stake info object
|
|
91
118
|
/// permissioned: only staking service may call this function.
|
|
92
|
-
function
|
|
119
|
+
function createStake(NftId stakeNftId, NftId targetNftId, Amount dipAmount) external;
|
|
93
120
|
|
|
94
|
-
/// @dev increase the staked dip by dipAmount for the specified stake
|
|
95
|
-
|
|
121
|
+
/// @dev increase the staked dip by dipAmount for the specified stake.
|
|
122
|
+
/// staking rewards are updated and added to the staked dips as well.
|
|
123
|
+
/// the function returns the new total amount of staked dips.
|
|
124
|
+
function stake(NftId stakeNftId, Amount dipAmount) external returns (Amount stakeBalance);
|
|
96
125
|
|
|
97
126
|
/// @dev restakes the dips to a new target.
|
|
98
127
|
/// the sum of the staked dips and the accumulated rewards will be restaked.
|
|
99
128
|
/// permissioned: only staking service may call this function.
|
|
100
|
-
function restake(NftId stakeNftId) external;
|
|
129
|
+
function restake(NftId stakeNftId, NftId newTargetNftId) external returns (NftId newStakeNftId);
|
|
101
130
|
|
|
102
131
|
/// @dev retuns the specified amount of dips to the holder of the specified stake nft.
|
|
103
132
|
/// if dipAmount is set to Amount.max() all staked dips and all rewards are transferred to
|
|
@@ -135,18 +164,4 @@ interface IStaking is
|
|
|
135
164
|
|
|
136
165
|
function getStakingStore() external view returns (StakingStore stakingStore);
|
|
137
166
|
function getStakingReader() external view returns (StakingReader reader);
|
|
138
|
-
|
|
139
|
-
// function getStakeInfo(NftId stakeNftId) external view returns (StakeInfo memory stakeInfo);
|
|
140
|
-
// function getTargetInfo(NftId targetNftId) external view returns (TargetInfo memory targetInfo);
|
|
141
|
-
|
|
142
|
-
function getTvlAmount(NftId targetNftId, address token) external view returns (Amount tvlAmount);
|
|
143
|
-
function getStakedAmount(NftId targetNftId) external view returns (Amount stakeAmount);
|
|
144
|
-
|
|
145
|
-
function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate);
|
|
146
|
-
|
|
147
|
-
function calculateRewardIncrementAmount(
|
|
148
|
-
NftId targetNftId,
|
|
149
|
-
Timestamp rewardsLastUpdatedAt
|
|
150
|
-
) external view returns (Amount rewardIncrementAmount);
|
|
151
|
-
|
|
152
167
|
}
|