@etherisc/gif-next 0.0.2-868e698-559 → 0.0.2-86dae40-160
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- 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/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1500 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -292
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +214 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +71 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -149
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +103 -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 +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +132 -140
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +90 -219
- 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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -26
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -157
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- 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 +394 -62
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +107 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -278
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +158 -54
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -417
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +226 -90
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +52 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +33 -44
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -40
- 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 +88 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -68
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +260 -167
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +59 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +32 -217
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- 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 +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +327 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -26
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -117
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +240 -16
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +40 -113
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +127 -119
- 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 +82 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- 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 +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +57 -32
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +15 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +8 -9
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +32 -16
- package/contracts/instance/InstanceService.sol +104 -76
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +13 -5
- package/contracts/instance/base/ObjectLifecycle.sol +105 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +1 -1
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +72 -51
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +181 -41
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +32 -5
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +14 -17
- package/contracts/pool/Pool.sol +166 -137
- package/contracts/pool/PoolService.sol +152 -86
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +49 -53
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +13 -39
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +1 -0
- package/contracts/product/IPolicyService.sol +23 -17
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/IProductService.sol +1 -0
- package/contracts/product/PolicyService.sol +242 -131
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +5 -1
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +128 -92
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +81 -87
- package/contracts/registry/RegistryAdmin.sol +118 -86
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +24 -37
- package/contracts/shared/ComponentService.sol +92 -70
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/shared/TokenHandler.sol +91 -17
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +0 -25
- package/contracts/staking/Staking.sol +19 -36
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +8 -12
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/Seconds.sol +13 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +6 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- 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 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -6,13 +6,14 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
7
|
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
8
|
|
9
|
+
import {Amount} from "../type/Amount.sol";
|
9
10
|
import {Component} from "./Component.sol";
|
10
11
|
import {IComponentService} from "./IComponentService.sol";
|
11
12
|
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
13
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
12
14
|
import {IComponents} from "../instance/module/IComponents.sol";
|
13
15
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
14
16
|
import {IInstance} from "../instance/IInstance.sol";
|
15
|
-
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
16
17
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
17
18
|
import {IRegistry} from "../registry/IRegistry.sol";
|
18
19
|
import {NftId} from "../type/NftId.sol";
|
@@ -35,6 +36,39 @@ abstract contract InstanceLinkedComponent is
|
|
35
36
|
struct InstanceLinkedComponentStorage {
|
36
37
|
IInstance _instance; // instance for this component
|
37
38
|
InstanceReader _instanceReader; // instance reader for this component
|
39
|
+
IAuthorization _initialAuthorization;
|
40
|
+
IComponentService _componentService;
|
41
|
+
}
|
42
|
+
|
43
|
+
function lock() external onlyOwner {
|
44
|
+
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
|
45
|
+
}
|
46
|
+
|
47
|
+
function unlock() external onlyOwner {
|
48
|
+
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
49
|
+
}
|
50
|
+
|
51
|
+
function getInstance() public view override returns (IInstance instance) {
|
52
|
+
return _getInstanceLinkedComponentStorage()._instance;
|
53
|
+
}
|
54
|
+
|
55
|
+
function getProductNftId() public view override returns (NftId productNftId) {
|
56
|
+
return getComponentInfo().productNftId;
|
57
|
+
}
|
58
|
+
|
59
|
+
function getAuthorization() external view returns (IAuthorization authorization) {
|
60
|
+
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
61
|
+
}
|
62
|
+
|
63
|
+
/// @inheritdoc IInstanceLinkedComponent
|
64
|
+
function withdrawFees(Amount amount)
|
65
|
+
external
|
66
|
+
virtual
|
67
|
+
onlyOwner()
|
68
|
+
restricted()
|
69
|
+
returns (Amount withdrawnAmount)
|
70
|
+
{
|
71
|
+
return _withdrawFees(amount);
|
38
72
|
}
|
39
73
|
|
40
74
|
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
@@ -43,18 +77,19 @@ abstract contract InstanceLinkedComponent is
|
|
43
77
|
}
|
44
78
|
}
|
45
79
|
|
46
|
-
function
|
80
|
+
function _initializeInstanceLinkedComponent(
|
47
81
|
address registry,
|
48
82
|
NftId instanceNftId,
|
49
83
|
string memory name,
|
50
84
|
address token,
|
51
85
|
ObjectType componentType,
|
86
|
+
IAuthorization authorization,
|
52
87
|
bool isInterceptor,
|
53
88
|
address initialOwner,
|
54
89
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
55
90
|
bytes memory componentData // data that will saved with the component info in the instance store
|
56
91
|
)
|
57
|
-
|
92
|
+
internal
|
58
93
|
virtual
|
59
94
|
onlyInitializing()
|
60
95
|
{
|
@@ -82,6 +117,8 @@ abstract contract InstanceLinkedComponent is
|
|
82
117
|
|
83
118
|
// set component state
|
84
119
|
$._instanceReader = $._instance.getInstanceReader();
|
120
|
+
$._initialAuthorization = authorization;
|
121
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
85
122
|
|
86
123
|
registerInterface(type(IAccessManaged).interfaceId);
|
87
124
|
registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
@@ -93,22 +130,6 @@ abstract contract InstanceLinkedComponent is
|
|
93
130
|
IComponentService(_getServiceAddress(COMPONENT())).setWallet(newWallet);
|
94
131
|
}
|
95
132
|
|
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
133
|
|
113
134
|
function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
|
114
135
|
NftId componentNftId = getRegistry().getNftId(address(this));
|
@@ -134,6 +155,13 @@ abstract contract InstanceLinkedComponent is
|
|
134
155
|
return _getInstanceLinkedComponentStorage()._instanceReader;
|
135
156
|
}
|
136
157
|
|
158
|
+
function _withdrawFees(Amount amount)
|
159
|
+
internal
|
160
|
+
returns (Amount withdrawnAmount)
|
161
|
+
{
|
162
|
+
return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
|
163
|
+
}
|
164
|
+
|
137
165
|
|
138
166
|
/// @dev returns the service address for the specified domain
|
139
167
|
/// gets address via lookup from registry using the major version form the linked instance
|
@@ -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,8 +34,12 @@ contract KeyValueStore is
|
|
34
34
|
revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
|
35
35
|
}
|
36
36
|
|
37
|
+
if(!hasLifecycle(objectType)) {
|
38
|
+
revert ErrorKeyValueStoreNoLifecycle(objectType);
|
39
|
+
}
|
40
|
+
|
37
41
|
Blocknumber blocknumber = blockBlocknumber();
|
38
|
-
StateId initialState =
|
42
|
+
StateId initialState = getInitialState(objectType);
|
39
43
|
|
40
44
|
// set metadata
|
41
45
|
metadata.objectType = objectType;
|
@@ -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, REQUEST, RISK, CLAIM, PAYOUT} from "../type/ObjectType.sol";
|
8
|
-
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} 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,16 +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
|
-
|
30
|
-
|
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;
|
31
28
|
}
|
32
29
|
|
33
30
|
function hasLifecycle(
|
@@ -59,9 +56,9 @@ contract Lifecycle is
|
|
59
56
|
public
|
60
57
|
view
|
61
58
|
{
|
62
|
-
//
|
59
|
+
// revert if no life cycle support
|
63
60
|
if (_initialState[objectType].eqz()) {
|
64
|
-
|
61
|
+
revert ErrorNoLifecycle(objectType);
|
65
62
|
}
|
66
63
|
|
67
64
|
// enforce valid state transition
|
@@ -77,54 +74,4 @@ contract Lifecycle is
|
|
77
74
|
) public view returns (bool) {
|
78
75
|
return _isValidTransition[objectType][fromId][toId];
|
79
76
|
}
|
80
|
-
|
81
|
-
function _setupComponentLifecycle() internal {
|
82
|
-
_initialState[COMPONENT()] = ACTIVE();
|
83
|
-
_isValidTransition[COMPONENT()][ACTIVE()][PAUSED()] = true;
|
84
|
-
_isValidTransition[COMPONENT()][PAUSED()][ACTIVE()] = true;
|
85
|
-
_isValidTransition[COMPONENT()][PAUSED()][ARCHIVED()] = true;
|
86
|
-
}
|
87
|
-
|
88
|
-
function _setupBundleLifecycle() internal {
|
89
|
-
_initialState[BUNDLE()] = ACTIVE();
|
90
|
-
_isValidTransition[BUNDLE()][ACTIVE()][PAUSED()] = true;
|
91
|
-
_isValidTransition[BUNDLE()][ACTIVE()][CLOSED()] = true;
|
92
|
-
_isValidTransition[BUNDLE()][PAUSED()][ACTIVE()] = true;
|
93
|
-
_isValidTransition[BUNDLE()][PAUSED()][CLOSED()] = true;
|
94
|
-
}
|
95
|
-
|
96
|
-
function _setupPolicyLifecycle() internal {
|
97
|
-
_initialState[POLICY()] = APPLIED();
|
98
|
-
_isValidTransition[POLICY()][APPLIED()][REVOKED()] = true;
|
99
|
-
_isValidTransition[POLICY()][APPLIED()][DECLINED()] = true;
|
100
|
-
_isValidTransition[POLICY()][APPLIED()][COLLATERALIZED()] = true;
|
101
|
-
_isValidTransition[POLICY()][APPLIED()][ACTIVE()] = true;
|
102
|
-
_isValidTransition[POLICY()][COLLATERALIZED()][ACTIVE()] = true;
|
103
|
-
_isValidTransition[POLICY()][ACTIVE()][CLOSED()] = true;
|
104
|
-
}
|
105
|
-
|
106
|
-
function _setupClaimAndPayoutLifecycle() internal {
|
107
|
-
_initialState[CLAIM()] = SUBMITTED();
|
108
|
-
_isValidTransition[CLAIM()][SUBMITTED()][CONFIRMED()] = true;
|
109
|
-
_isValidTransition[CLAIM()][SUBMITTED()][DECLINED()] = true;
|
110
|
-
_isValidTransition[CLAIM()][CONFIRMED()][CLOSED()] = true;
|
111
|
-
|
112
|
-
_initialState[PAYOUT()] = EXPECTED();
|
113
|
-
_isValidTransition[PAYOUT()][EXPECTED()][PAID()] = true;
|
114
|
-
}
|
115
|
-
|
116
|
-
function _setupRiskLifecycle() internal {
|
117
|
-
_initialState[RISK()] = ACTIVE();
|
118
|
-
_isValidTransition[RISK()][ACTIVE()][PAUSED()] = true;
|
119
|
-
_isValidTransition[RISK()][PAUSED()][ACTIVE()] = true;
|
120
|
-
_isValidTransition[RISK()][PAUSED()][ARCHIVED()] = true;
|
121
|
-
}
|
122
|
-
|
123
|
-
function _setupRequestLifecycle() internal {
|
124
|
-
_initialState[REQUEST()] = ACTIVE();
|
125
|
-
_isValidTransition[REQUEST()][ACTIVE()][FULFILLED()] = true;
|
126
|
-
_isValidTransition[REQUEST()][ACTIVE()][FAILED()] = true;
|
127
|
-
_isValidTransition[REQUEST()][FAILED()][FULFILLED()] = true;
|
128
|
-
_isValidTransition[REQUEST()][ACTIVE()][CANCELLED()] = true;
|
129
|
-
}
|
130
77
|
}
|
@@ -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);
|
@@ -1,13 +1,13 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {InitializableERC165} from "./InitializableERC165.sol";
|
5
5
|
import {INftOwnable} from "./INftOwnable.sol";
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
7
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
8
8
|
|
9
9
|
contract NftOwnable is
|
10
|
-
|
10
|
+
InitializableERC165,
|
11
11
|
RegistryLinked,
|
12
12
|
INftOwnable
|
13
13
|
{
|
@@ -1,22 +1,19 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
4
|
import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
|
6
|
-
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
7
5
|
|
8
6
|
import {Amount} from "../type/Amount.sol";
|
9
7
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {
|
8
|
+
import {InitializableERC165} from "./InitializableERC165.sol";
|
11
9
|
import {IPolicyHolder} from "./IPolicyHolder.sol";
|
12
10
|
import {NftId} from "../type/NftId.sol";
|
13
11
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
14
12
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
15
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
16
13
|
|
17
14
|
/// @dev template implementation for IPolicyHolder
|
18
15
|
contract PolicyHolder is
|
19
|
-
|
16
|
+
InitializableERC165,
|
20
17
|
RegistryLinked, // TODO need upgradeable version
|
21
18
|
IPolicyHolder
|
22
19
|
{
|
@@ -6,13 +6,12 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
|
7
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
8
|
import {IService} from "./IService.sol";
|
9
|
-
import {IVersionable} from "
|
10
|
-
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
11
10
|
import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
|
12
11
|
import {Registerable} from "./Registerable.sol";
|
13
12
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
14
|
-
import {Version,
|
15
|
-
import {Versionable} from "
|
13
|
+
import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
|
14
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
16
15
|
|
17
16
|
|
18
17
|
/// @dev service base contract
|
@@ -10,49 +10,123 @@ import {Amount} from "../type/Amount.sol";
|
|
10
10
|
/// a default token contract is provided via contract constructor
|
11
11
|
/// relies internally on oz SafeERC20.safeTransferFrom
|
12
12
|
contract TokenHandler {
|
13
|
+
error ErrorTokenHandlerAmountIsZero();
|
14
|
+
error ErrorTokenHandlerBalanceTooLow(address token, address from, uint256 balance, uint256 expectedBalance);
|
15
|
+
error ErrorTokenHandlerAllowanceTooSmall(address token, address from, address spender, uint256 allowance, uint256 expectedAllowance);
|
16
|
+
error ErrorTokenHandlerRecipientWalletsMustBeDistinct(address to, address to2, address to3);
|
17
|
+
|
18
|
+
event LogTokenHandlerTokenTransfer(address token, address from, address to, uint256 amountTransferred);
|
19
|
+
|
13
20
|
IERC20Metadata private _token;
|
14
21
|
|
15
22
|
constructor(address token) {
|
16
23
|
_token = IERC20Metadata(token);
|
17
24
|
}
|
18
25
|
|
19
|
-
/// @dev
|
20
|
-
function
|
26
|
+
/// @dev returns the default token defined for this TokenHandler
|
27
|
+
function getToken()
|
28
|
+
external
|
29
|
+
view
|
30
|
+
returns (IERC20Metadata)
|
31
|
+
{
|
32
|
+
return _token;
|
33
|
+
}
|
34
|
+
|
35
|
+
/// @dev collect tokens from outside of the gif and transfer them to one wallet within the scope of gif.
|
36
|
+
/// This method also checks balance and allowance and makes sure the amount is greater than zero.
|
37
|
+
function collectTokens(
|
21
38
|
address from,
|
22
39
|
address to,
|
23
40
|
Amount amount
|
24
41
|
)
|
25
42
|
external
|
26
43
|
{
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
44
|
+
_transfer(from, to, amount);
|
45
|
+
}
|
46
|
+
|
47
|
+
/// @dev collect tokens from outside of the gif and transfer them to three distinct wallets within the scope of gif
|
48
|
+
/// This method also checks balance and allowance and makes sure the amount is greater than zero.
|
49
|
+
function collectTokens(
|
50
|
+
address from,
|
51
|
+
address to,
|
52
|
+
Amount amount,
|
53
|
+
address to2,
|
54
|
+
Amount amount2,
|
55
|
+
address to3,
|
56
|
+
Amount amount3
|
57
|
+
)
|
58
|
+
external
|
59
|
+
{
|
60
|
+
if (to == to2 || to == to3 || to2 == to3) {
|
61
|
+
revert ErrorTokenHandlerRecipientWalletsMustBeDistinct(to, to2, to3);
|
62
|
+
}
|
63
|
+
|
64
|
+
_checkPreconditions(from, amount + amount2 + amount3);
|
65
|
+
|
66
|
+
if (amount.gtz()) {
|
67
|
+
_transfer(from, to, amount);
|
68
|
+
}
|
69
|
+
if (amount2.gtz()) {
|
70
|
+
_transfer(from, to2, amount2);
|
71
|
+
}
|
72
|
+
if (amount3.gtz()) {
|
73
|
+
_transfer(from, to3, amount3);
|
74
|
+
}
|
32
75
|
}
|
33
76
|
|
34
|
-
/// @dev
|
35
|
-
|
36
|
-
|
77
|
+
/// @dev distribute tokens from a wallet within the scope of gif to an external address.
|
78
|
+
/// This method also checks balance and allowance and makes sure the amount is greater than zero.
|
79
|
+
function distributeTokens(
|
37
80
|
address from,
|
38
81
|
address to,
|
39
82
|
Amount amount
|
40
83
|
)
|
41
84
|
external
|
42
85
|
{
|
86
|
+
_transfer(from, to, amount);
|
87
|
+
}
|
88
|
+
|
89
|
+
function _transfer(
|
90
|
+
address from,
|
91
|
+
address to,
|
92
|
+
Amount amount
|
93
|
+
)
|
94
|
+
internal
|
95
|
+
{
|
96
|
+
// check amount > 0, balance >= amount and allowance >= amount
|
97
|
+
_checkPreconditions(from, amount);
|
98
|
+
|
99
|
+
// transfer the tokens
|
100
|
+
emit LogTokenHandlerTokenTransfer(address(_token), from, to, amount.toInt());
|
43
101
|
SafeERC20.safeTransferFrom(
|
44
|
-
|
102
|
+
_token,
|
45
103
|
from,
|
46
104
|
to,
|
47
105
|
amount.toInt());
|
48
106
|
}
|
49
107
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
108
|
+
function _checkPreconditions(
|
109
|
+
address from,
|
110
|
+
Amount amount
|
111
|
+
)
|
112
|
+
internal
|
113
|
+
view
|
55
114
|
{
|
56
|
-
|
115
|
+
// amount must be greater than zero
|
116
|
+
if (amount.eqz()) {
|
117
|
+
revert ErrorTokenHandlerAmountIsZero();
|
118
|
+
}
|
119
|
+
|
120
|
+
// balance must be >= amount
|
121
|
+
uint256 balance = _token.balanceOf(from);
|
122
|
+
if (balance < amount.toInt()) {
|
123
|
+
revert ErrorTokenHandlerBalanceTooLow(address(_token), from, balance, amount.toInt());
|
124
|
+
}
|
125
|
+
|
126
|
+
// allowance must be >= amount
|
127
|
+
uint256 allowance = _token.allowance(from, address(this));
|
128
|
+
if (allowance < amount.toInt()) {
|
129
|
+
revert ErrorTokenHandlerAllowanceTooSmall(address(_token), from, address(this), allowance, amount.toInt());
|
130
|
+
}
|
57
131
|
}
|
58
132
|
}
|
@@ -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";
|
@@ -44,6 +44,13 @@ interface IStakingService is IService
|
|
44
44
|
error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
|
45
45
|
error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
|
46
46
|
|
47
|
+
/// @dev Set the protocol reward rate stake locking period to the specified duration.
|
48
|
+
/// Permissioned: only staking owner
|
49
|
+
// TODO implement
|
50
|
+
// function setProtocolRewardRate(UFixed rewardRate) external;
|
51
|
+
// function setProtocolLockingPeriod(Seconds lockingPeriod) external;
|
52
|
+
// TODO also make sure that protocol rewards can be refilled and withdrawn
|
53
|
+
|
47
54
|
/// @dev creates/registers an on-chain instance staking target.
|
48
55
|
/// function granted to instance service
|
49
56
|
function createInstanceTarget(
|
@@ -53,11 +60,11 @@ interface IStakingService is IService
|
|
53
60
|
) external;
|
54
61
|
|
55
62
|
/// @dev Set the instance stake locking period to the specified duration.
|
56
|
-
///
|
63
|
+
/// Permissioned: Only owner of the specified target.
|
57
64
|
function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod) external;
|
58
65
|
|
59
|
-
/// @dev Set the instance reward rate to the specified value
|
60
|
-
///
|
66
|
+
/// @dev Set the instance reward rate to the specified value.
|
67
|
+
/// Permissioned: Only owner of the specified target.
|
61
68
|
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
|
62
69
|
|
63
70
|
/// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
|
@@ -68,8 +75,8 @@ interface IStakingService is IService
|
|
68
75
|
/// unpermissioned: anybody may fill up staking reward reserves
|
69
76
|
function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
70
77
|
|
71
|
-
/// @dev
|
72
|
-
///
|
78
|
+
/// @dev Defunds the staking reward reserves for the specified target
|
79
|
+
/// Permissioned: only the target owner may call this function
|
73
80
|
function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount) external returns (Amount newBalance);
|
74
81
|
|
75
82
|
/// @dev create a new stake with amount DIP to the specified target
|
@@ -153,31 +153,6 @@ library StakeManagerLib {
|
|
153
153
|
// TODO add check for target specific max dip amount (min stake + tvl * stake rate + buffer)
|
154
154
|
}
|
155
155
|
|
156
|
-
|
157
|
-
function checkDipBalanceAndAllowance(
|
158
|
-
IERC20Metadata dip,
|
159
|
-
address owner,
|
160
|
-
address tokenHandlerAddress,
|
161
|
-
Amount dipAmount
|
162
|
-
)
|
163
|
-
public
|
164
|
-
view
|
165
|
-
{
|
166
|
-
// check balance
|
167
|
-
uint256 amount = dipAmount.toInt();
|
168
|
-
uint256 dipBalance = dip.balanceOf(owner);
|
169
|
-
if (dipBalance < amount) {
|
170
|
-
revert IStaking.ErrorStakingDipBalanceInsufficient(owner, amount, dipBalance);
|
171
|
-
}
|
172
|
-
|
173
|
-
// check allowance
|
174
|
-
uint256 dipAllowance = dip.allowance(owner, tokenHandlerAddress);
|
175
|
-
if (dipAllowance < amount) {
|
176
|
-
revert IStaking.ErrorStakingDipAllowanceInsufficient(owner, tokenHandlerAddress, amount, dipAllowance);
|
177
|
-
}
|
178
|
-
}
|
179
|
-
|
180
|
-
|
181
156
|
function calculateRewardIncrease(
|
182
157
|
StakingReader stakingReader,
|
183
158
|
NftId stakeNftId,
|
@@ -1,29 +1,27 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
6
|
-
import {Component} from "../shared/Component.sol";
|
7
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
5
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
6
|
import {IStaking} from "./IStaking.sol";
|
10
|
-
import {IVersionable} from "../
|
11
|
-
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
7
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
8
|
+
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
|
+
import {Component} from "../shared/Component.sol";
|
11
|
+
import {IComponent} from "../shared/IComponent.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {ObjectType, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {Seconds} from "../type/Seconds.sol";
|
17
15
|
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
18
16
|
import {StakingReader} from "./StakingReader.sol";
|
19
17
|
import {StakingStore} from "./StakingStore.sol";
|
20
18
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
21
|
-
import {Timestamp
|
19
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
22
20
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
21
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
24
|
-
import {UFixed
|
22
|
+
import {UFixed} from "../type/UFixed.sol";
|
25
23
|
import {Version, VersionLib} from "../type/Version.sol";
|
26
|
-
import {Versionable} from "../
|
24
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
27
25
|
|
28
26
|
contract Staking is
|
29
27
|
Component,
|
@@ -39,6 +37,7 @@ contract Staking is
|
|
39
37
|
struct StakingStorage {
|
40
38
|
IRegistryService _registryService;
|
41
39
|
TokenRegistry _tokenRegistry;
|
40
|
+
TokenHandler _tokenHandler;
|
42
41
|
StakingStore _store;
|
43
42
|
StakingReader _reader;
|
44
43
|
NftId _protocolNftId;
|
@@ -54,7 +53,7 @@ contract Staking is
|
|
54
53
|
|
55
54
|
|
56
55
|
modifier onlyTarget(NftId targetNftId) {
|
57
|
-
if (!_getStakingStorage()._store.
|
56
|
+
if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
|
58
57
|
revert ErrorStakingNotTarget(targetNftId);
|
59
58
|
}
|
60
59
|
_;
|
@@ -378,16 +377,7 @@ contract Staking is
|
|
378
377
|
external
|
379
378
|
restricted() // only staking service
|
380
379
|
{
|
381
|
-
|
382
|
-
address stakingWallet = getWallet();
|
383
|
-
|
384
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
385
|
-
getToken(),
|
386
|
-
from,
|
387
|
-
address(tokenHandler),
|
388
|
-
dipAmount);
|
389
|
-
|
390
|
-
tokenHandler.transfer(from, stakingWallet, dipAmount);
|
380
|
+
getTokenHandler().collectTokens(from, getWallet(), dipAmount);
|
391
381
|
}
|
392
382
|
|
393
383
|
|
@@ -395,16 +385,7 @@ contract Staking is
|
|
395
385
|
external
|
396
386
|
restricted() // only staking service
|
397
387
|
{
|
398
|
-
|
399
|
-
address stakingWallet = getWallet();
|
400
|
-
|
401
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
402
|
-
getToken(),
|
403
|
-
stakingWallet,
|
404
|
-
address(tokenHandler),
|
405
|
-
dipAmount);
|
406
|
-
|
407
|
-
tokenHandler.transfer(stakingWallet, to, dipAmount);
|
388
|
+
getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
|
408
389
|
}
|
409
390
|
|
410
391
|
|
@@ -422,6 +403,9 @@ contract Staking is
|
|
422
403
|
return address(_getStakingStorage()._tokenRegistry);
|
423
404
|
}
|
424
405
|
|
406
|
+
function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
|
407
|
+
return _getStakingStorage()._tokenHandler;
|
408
|
+
}
|
425
409
|
|
426
410
|
// from Versionable
|
427
411
|
function getVersion()
|
@@ -492,14 +476,13 @@ contract Staking is
|
|
492
476
|
"", // registry data
|
493
477
|
""); // component data
|
494
478
|
|
495
|
-
_createAndSetTokenHandler();
|
496
|
-
|
497
479
|
// wiring to external contracts
|
498
480
|
StakingStorage storage $ = _getStakingStorage();
|
499
481
|
$._protocolNftId = getRegistry().getProtocolNftId();
|
500
482
|
$._store = StakingStore(stakingStoreAddress);
|
501
483
|
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
502
484
|
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
485
|
+
$._tokenHandler = new TokenHandler(address(getToken()));
|
503
486
|
|
504
487
|
registerInterface(type(IStaking).interfaceId);
|
505
488
|
}
|