@etherisc/gif-next 0.0.2-b8e869c-076 → 0.0.2-b9366f5-670
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/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -2
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +129 -119
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +41 -45
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +49 -31
- package/artifacts/contracts/example_components/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/example_components/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1558 -0
- package/artifacts/contracts/example_components/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/example_components/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1318 -0
- package/artifacts/contracts/example_components/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/example_components/unpermissioned/SimplePool.sol/SimplePool.json +1664 -0
- package/artifacts/contracts/example_components/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/example_components/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2125 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +225 -68
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +2 -2
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +2 -2
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +220 -102
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -2
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- 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/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +5 -5
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +36 -28
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +19 -15
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +5 -5
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +31 -51
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +5 -5
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +65 -109
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +18 -30
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +8 -16
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +5 -9
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +3 -3
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +178 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +41 -37
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +98 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1 -16
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +61 -108
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +31 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +107 -152
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +40 -60
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +3 -3
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +15 -15
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +2 -2
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +2 -2
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +2 -2
- 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/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- 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/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -1
- 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 +83 -30
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +53 -19
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +14 -10
- 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 +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +84 -84
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- 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/SelectorSetLib.dbg.json +1 -1
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/distribution/DistributionService.sol +20 -6
- package/contracts/distribution/IDistributionService.sol +8 -2
- package/contracts/example_components/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/example_components/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/example_components/unpermissioned/SimplePool.sol +76 -0
- package/contracts/example_components/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +3 -3
- package/contracts/instance/InstanceReader.sol +23 -1
- package/contracts/instance/InstanceService.sol +5 -5
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/module/IComponents.sol +1 -1
- package/contracts/instance/module/IPolicy.sol +21 -21
- package/contracts/oracle/Oracle.sol +1 -0
- package/contracts/oracle/OracleService.sol +1 -0
- package/contracts/pool/BundleService.sol +8 -6
- package/contracts/pool/IPoolService.sol +3 -6
- package/contracts/pool/Pool.sol +14 -16
- package/contracts/pool/PoolService.sol +7 -39
- package/contracts/product/ApplicationService.sol +2 -4
- package/contracts/product/BasicProduct.sol +1 -0
- package/contracts/product/ClaimService.sol +107 -36
- package/contracts/product/IClaimService.sol +27 -5
- package/contracts/product/IPolicyService.sol +6 -17
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +0 -1
- package/contracts/product/PolicyService.sol +58 -69
- package/contracts/product/PricingService.sol +37 -40
- package/contracts/product/Product.sol +31 -16
- package/contracts/registry/IRegistry.sol +1 -1
- package/contracts/registry/Registry.sol +1 -1
- package/contracts/registry/ReleaseRegistry.sol +1 -1
- package/contracts/registry/ServiceAuthorizationV3.sol +2 -3
- package/contracts/shared/Component.sol +1 -1
- package/contracts/shared/ComponentService.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +1 -1
- package/contracts/shared/NftOwnable.sol +1 -1
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/StakeManagerLib.sol +18 -0
- package/contracts/staking/Staking.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/ObjectType.sol +15 -11
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +1 -0
- package/package.json +1 -1
@@ -71,7 +71,7 @@ contract PricingService is
|
|
71
71
|
view
|
72
72
|
virtual override
|
73
73
|
returns (
|
74
|
-
IPolicy.
|
74
|
+
IPolicy.PremiumInfo memory premium
|
75
75
|
)
|
76
76
|
{
|
77
77
|
InstanceReader reader;
|
@@ -131,15 +131,14 @@ contract PricingService is
|
|
131
131
|
premium = _calculateTargetWalletAmounts(premium);
|
132
132
|
|
133
133
|
// sanity check to validate the fee calculation
|
134
|
-
if(
|
135
|
-
premium.productFeeAmount
|
134
|
+
if(premium.premiumAmount != premium.productFeeAmount
|
136
135
|
+ premium.distributionFeeAndCommissionAmount
|
137
136
|
+ premium.poolPremiumAndFeeAmount)
|
138
137
|
{
|
139
138
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
140
139
|
}
|
141
140
|
|
142
|
-
if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
|
141
|
+
if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
|
143
142
|
revert ErrorIPricingServiceFeeCalculationMismatch(
|
144
143
|
premium.distributionFeeFixAmount,
|
145
144
|
premium.distributionFeeVarAmount,
|
@@ -172,64 +171,64 @@ contract PricingService is
|
|
172
171
|
internal
|
173
172
|
pure
|
174
173
|
returns (
|
175
|
-
IPolicy.
|
174
|
+
IPolicy.PremiumInfo memory premium
|
176
175
|
)
|
177
176
|
{
|
178
177
|
// initial premium amount is the net premium
|
179
|
-
premium.netPremiumAmount = netPremiumAmount
|
180
|
-
premium.fullPremiumAmount = netPremiumAmount
|
178
|
+
premium.netPremiumAmount = netPremiumAmount;
|
179
|
+
premium.fullPremiumAmount = netPremiumAmount;
|
181
180
|
|
182
|
-
|
181
|
+
Amount t = AmountLib.toAmount(productInfo.productFee.fixedFee);
|
183
182
|
premium.productFeeFixAmount = t;
|
184
|
-
premium.fullPremiumAmount
|
183
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
185
184
|
|
186
|
-
t = productInfo.poolFee.fixedFee;
|
185
|
+
t = AmountLib.toAmount(productInfo.poolFee.fixedFee);
|
187
186
|
premium.poolFeeFixAmount = t;
|
188
|
-
premium.fullPremiumAmount
|
187
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
189
188
|
|
190
|
-
t = bundleInfo.fee.fixedFee;
|
189
|
+
t = AmountLib.toAmount(bundleInfo.fee.fixedFee);
|
191
190
|
premium.bundleFeeFixAmount = t;
|
192
|
-
premium.fullPremiumAmount
|
191
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
193
192
|
|
194
|
-
t = productInfo.distributionFee.fixedFee;
|
193
|
+
t = AmountLib.toAmount(productInfo.distributionFee.fixedFee);
|
195
194
|
premium.distributionFeeFixAmount = t;
|
196
|
-
premium.fullPremiumAmount
|
195
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
197
196
|
}
|
198
197
|
|
199
198
|
function _calculateVariableFeeAmounts(
|
200
|
-
IPolicy.
|
199
|
+
IPolicy.PremiumInfo memory premium,
|
201
200
|
IComponents.ProductInfo memory productInfo,
|
202
201
|
IBundle.BundleInfo memory bundleInfo
|
203
202
|
)
|
204
203
|
internal
|
205
204
|
pure
|
206
205
|
returns (
|
207
|
-
IPolicy.
|
206
|
+
IPolicy.PremiumInfo memory intermadiatePremium
|
208
207
|
)
|
209
208
|
{
|
210
|
-
|
209
|
+
Amount netPremiumAmount = premium.netPremiumAmount;
|
211
210
|
|
212
|
-
|
211
|
+
Amount t = netPremiumAmount.multiplyWith(productInfo.productFee.fractionalFee);
|
213
212
|
premium.productFeeVarAmount = t;
|
214
|
-
premium.fullPremiumAmount
|
213
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
215
214
|
|
216
|
-
t = (
|
215
|
+
t = netPremiumAmount.multiplyWith(productInfo.poolFee.fractionalFee);
|
217
216
|
premium.poolFeeVarAmount = t;
|
218
|
-
premium.fullPremiumAmount
|
217
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
219
218
|
|
220
|
-
t = (
|
219
|
+
t = netPremiumAmount.multiplyWith(bundleInfo.fee.fractionalFee);
|
221
220
|
premium.bundleFeeVarAmount = t;
|
222
|
-
premium.fullPremiumAmount
|
221
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
223
222
|
|
224
|
-
t = (
|
223
|
+
t = netPremiumAmount.multiplyWith(productInfo.distributionFee.fractionalFee);
|
225
224
|
premium.distributionFeeVarAmount = t;
|
226
|
-
premium.fullPremiumAmount
|
225
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
227
226
|
|
228
227
|
return premium;
|
229
228
|
}
|
230
229
|
|
231
230
|
function _calculateDistributionOwnerFeeAmount(
|
232
|
-
IPolicy.
|
231
|
+
IPolicy.PremiumInfo memory premium,
|
233
232
|
IComponents.ProductInfo memory productInfo,
|
234
233
|
// ISetup.DistributionSetupInfo memory distInfo,
|
235
234
|
ReferralId referralId,
|
@@ -237,7 +236,7 @@ contract PricingService is
|
|
237
236
|
)
|
238
237
|
internal
|
239
238
|
view
|
240
|
-
returns (IPolicy.
|
239
|
+
returns (IPolicy.PremiumInfo memory finalPremium)
|
241
240
|
{
|
242
241
|
|
243
242
|
// if the referral is not valid, then the distribution owner gets everything
|
@@ -257,10 +256,10 @@ contract PricingService is
|
|
257
256
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
258
257
|
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
|
259
258
|
|
260
|
-
|
259
|
+
Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
|
261
260
|
premium.commissionAmount = commissionAmount;
|
262
|
-
premium.discountAmount =
|
263
|
-
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
261
|
+
premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
|
262
|
+
premium.distributionOwnerFeeFixAmount = AmountLib.toAmount(minDistributionOwnerFee.fixedFee);
|
264
263
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
265
264
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
266
265
|
}
|
@@ -270,29 +269,27 @@ contract PricingService is
|
|
270
269
|
|
271
270
|
|
272
271
|
function _calculateTargetWalletAmounts(
|
273
|
-
IPolicy.
|
272
|
+
IPolicy.PremiumInfo memory premium
|
274
273
|
)
|
275
274
|
internal
|
276
275
|
virtual
|
277
276
|
view
|
278
277
|
returns (
|
279
|
-
IPolicy.
|
278
|
+
IPolicy.PremiumInfo memory premiumWithTargetWalletAmounts
|
280
279
|
)
|
281
280
|
{
|
282
281
|
// fees for product owner
|
283
|
-
premium.productFeeAmount =
|
284
|
-
premium.productFeeFixAmount + premium.productFeeVarAmount);
|
282
|
+
premium.productFeeAmount = premium.productFeeFixAmount + premium.productFeeVarAmount;
|
285
283
|
|
286
284
|
// fees for distribution owner + distributor commission
|
287
|
-
premium.distributionFeeAndCommissionAmount =
|
285
|
+
premium.distributionFeeAndCommissionAmount =
|
288
286
|
premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
|
289
|
-
+ premium.commissionAmount
|
287
|
+
+ premium.commissionAmount;
|
290
288
|
|
291
289
|
// net premium + fees for pool owner + bundle owner
|
292
|
-
premium.poolPremiumAndFeeAmount =
|
293
|
-
premium.netPremiumAmount
|
290
|
+
premium.poolPremiumAndFeeAmount = premium.netPremiumAmount
|
294
291
|
+ premium.poolFeeFixAmount + premium.poolFeeVarAmount
|
295
|
-
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount
|
292
|
+
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
296
293
|
|
297
294
|
premiumWithTargetWalletAmounts = premium;
|
298
295
|
}
|
@@ -1,8 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
8
6
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
@@ -64,7 +62,7 @@ abstract contract Product is
|
|
64
62
|
override
|
65
63
|
returns (Amount premiumAmount)
|
66
64
|
{
|
67
|
-
IPolicy.
|
65
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
68
66
|
getNftId(),
|
69
67
|
riskId,
|
70
68
|
sumInsuredAmount,
|
@@ -74,14 +72,14 @@ abstract contract Product is
|
|
74
72
|
referralId
|
75
73
|
);
|
76
74
|
|
77
|
-
return
|
75
|
+
return premium.premiumAmount;
|
78
76
|
}
|
79
77
|
|
80
78
|
function calculateNetPremium(
|
81
79
|
Amount sumInsuredAmount,
|
82
|
-
RiskId
|
83
|
-
Seconds
|
84
|
-
bytes memory
|
80
|
+
RiskId,
|
81
|
+
Seconds,
|
82
|
+
bytes memory
|
85
83
|
)
|
86
84
|
external
|
87
85
|
view
|
@@ -125,11 +123,11 @@ abstract contract Product is
|
|
125
123
|
}
|
126
124
|
|
127
125
|
function getPoolNftId() external view override returns (NftId poolNftId) {
|
128
|
-
return getRegistry().
|
126
|
+
return getRegistry().getNftIdForAddress(address(_getProductStorage()._pool));
|
129
127
|
}
|
130
128
|
|
131
129
|
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
132
|
-
return getRegistry().
|
130
|
+
return getRegistry().getNftIdForAddress(address(_getProductStorage()._distribution));
|
133
131
|
}
|
134
132
|
|
135
133
|
function _initializeProduct(
|
@@ -140,8 +138,9 @@ abstract contract Product is
|
|
140
138
|
string memory name,
|
141
139
|
address token,
|
142
140
|
bool isInterceptor,
|
143
|
-
address pool,
|
144
|
-
address distribution,
|
141
|
+
address pool, // switch to pool nft id (#527)
|
142
|
+
address distribution, // switch to distribution nft id (#527)
|
143
|
+
// add NftId [] oracleNftIds (#527)
|
145
144
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
146
145
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
147
146
|
)
|
@@ -163,7 +162,7 @@ abstract contract Product is
|
|
163
162
|
|
164
163
|
ProductStorage storage $ = _getProductStorage();
|
165
164
|
// TODO add validation
|
166
|
-
// TODO refactor to go via registry
|
165
|
+
// TODO refactor to go via registry for all components linked to this product (#527)
|
167
166
|
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
168
167
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
169
168
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
@@ -172,8 +171,8 @@ abstract contract Product is
|
|
172
171
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
173
172
|
$._pool = Pool(pool);
|
174
173
|
$._distribution = Distribution(distribution);
|
175
|
-
$._poolNftId = getRegistry().
|
176
|
-
$._distributionNftId = getRegistry().
|
174
|
+
$._poolNftId = getRegistry().getNftIdForAddress(pool);
|
175
|
+
$._distributionNftId = getRegistry().getNftIdForAddress(distribution);
|
177
176
|
|
178
177
|
registerInterface(type(IProductComponent).interfaceId);
|
179
178
|
}
|
@@ -253,14 +252,12 @@ abstract contract Product is
|
|
253
252
|
|
254
253
|
function _createPolicy(
|
255
254
|
NftId applicationNftId,
|
256
|
-
bool requirePremiumPayment,
|
257
255
|
Timestamp activateAt
|
258
256
|
)
|
259
257
|
internal
|
260
258
|
{
|
261
259
|
_getProductStorage()._policyService.createPolicy(
|
262
260
|
applicationNftId,
|
263
|
-
requirePremiumPayment,
|
264
261
|
activateAt);
|
265
262
|
}
|
266
263
|
|
@@ -383,6 +380,24 @@ abstract contract Product is
|
|
383
380
|
data);
|
384
381
|
}
|
385
382
|
|
383
|
+
function _createPayoutForBeneficiary(
|
384
|
+
NftId policyNftId,
|
385
|
+
ClaimId claimId,
|
386
|
+
Amount amount,
|
387
|
+
address beneficiary,
|
388
|
+
bytes memory data
|
389
|
+
)
|
390
|
+
internal
|
391
|
+
returns (PayoutId)
|
392
|
+
{
|
393
|
+
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
394
|
+
policyNftId,
|
395
|
+
claimId,
|
396
|
+
amount,
|
397
|
+
beneficiary,
|
398
|
+
data);
|
399
|
+
}
|
400
|
+
|
386
401
|
function _processPayout(
|
387
402
|
NftId policyNftId,
|
388
403
|
PayoutId payoutId
|
@@ -88,7 +88,7 @@ interface IRegistry is IERC165 {
|
|
88
88
|
|
89
89
|
function getObjectCount() external view returns (uint256);
|
90
90
|
|
91
|
-
function
|
91
|
+
function getNftIdForAddress(address objectAddress) external view returns (NftId nftId);
|
92
92
|
|
93
93
|
function ownerOf(NftId nftId) external view returns (address);
|
94
94
|
|
@@ -247,7 +247,7 @@ contract Registry is
|
|
247
247
|
return _protocolNftId;
|
248
248
|
}
|
249
249
|
|
250
|
-
function
|
250
|
+
function getNftIdForAddress(address object) external view returns (NftId id) {
|
251
251
|
return _nftIdByAddress[object];
|
252
252
|
}
|
253
253
|
|
@@ -475,7 +475,7 @@ contract ReleaseRegistry is
|
|
475
475
|
// TODO try catch and return false in case of revert
|
476
476
|
// or just panic
|
477
477
|
// check if contract returns a zero nft id for its own address
|
478
|
-
if (IRegistry(registryAddress).
|
478
|
+
if (IRegistry(registryAddress).getNftIdForAddress(registryAddress).eqz()) {
|
479
479
|
return false;
|
480
480
|
}
|
481
481
|
|
@@ -2,14 +2,12 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
ALL, REGISTRY,
|
5
|
+
ALL, REGISTRY, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
|
-
import {ComponentService} from "../shared/ComponentService.sol";
|
9
8
|
import {IAccess} from "../authorization/IAccess.sol";
|
10
9
|
import {IBundleService} from "../pool/IBundleService.sol";
|
11
10
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
12
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
13
11
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
14
12
|
import {IPoolService} from "../pool/IPoolService.sol";
|
15
13
|
import {IStakingService} from "../staking/IStakingService.sol";
|
@@ -163,6 +161,7 @@ contract ServiceAuthorizationV3
|
|
163
161
|
|
164
162
|
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
165
163
|
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
164
|
+
_authorize(functions, IDistributionService.processReferral.selector, "processReferral");
|
166
165
|
}
|
167
166
|
|
168
167
|
|
@@ -622,7 +622,7 @@ contract ComponentService is
|
|
622
622
|
}
|
623
623
|
|
624
624
|
// check component has not already been registered
|
625
|
-
if (getRegistry().
|
625
|
+
if (getRegistry().getNftIdForAddress(componentAddress).gtz()) {
|
626
626
|
revert ErrorComponentServiceAlreadyRegistered(componentAddress);
|
627
627
|
}
|
628
628
|
|
@@ -32,7 +32,7 @@ abstract contract ComponentVerifyingService is
|
|
32
32
|
IInstance instance
|
33
33
|
)
|
34
34
|
{
|
35
|
-
componentNftId = getRegistry().
|
35
|
+
componentNftId = getRegistry().getNftIdForAddress(msg.sender);
|
36
36
|
(componentInfo, instance) = _getAndVerifyComponentInfo(
|
37
37
|
componentNftId,
|
38
38
|
expectedType,
|
@@ -132,7 +132,7 @@ abstract contract InstanceLinkedComponent is
|
|
132
132
|
|
133
133
|
|
134
134
|
function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
|
135
|
-
NftId componentNftId = getRegistry().
|
135
|
+
NftId componentNftId = getRegistry().getNftIdForAddress(address(this));
|
136
136
|
|
137
137
|
// if registered, attempt to return component info via instance reader
|
138
138
|
if (componentNftId.gtz()) {
|
@@ -42,8 +42,9 @@ interface IStaking is
|
|
42
42
|
error ErrorStakingTargetNftIdZero();
|
43
43
|
error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
|
44
44
|
error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
|
45
|
-
error
|
45
|
+
error ErrorStakingLockingPeriodTooShort(NftId targetNftId, Seconds minLockingPeriod, Seconds lockingPeriod);
|
46
46
|
error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
|
47
|
+
error ErrorStakingStakeLocked(NftId stakeNftId, Timestamp lockedUntil);
|
47
48
|
error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
|
48
49
|
error ErrorStakingTargetNotFound(NftId targetNftId);
|
49
50
|
error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
|
@@ -114,6 +114,24 @@ library StakeManagerLib {
|
|
114
114
|
lockingPeriod = info.lockingPeriod;
|
115
115
|
}
|
116
116
|
|
117
|
+
function checkUnstakeParameters(
|
118
|
+
StakingReader stakingReader,
|
119
|
+
NftId stakeNftId
|
120
|
+
)
|
121
|
+
public
|
122
|
+
view
|
123
|
+
returns (
|
124
|
+
UFixed rewardRate,
|
125
|
+
Seconds lockingPeriod
|
126
|
+
)
|
127
|
+
{
|
128
|
+
IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
|
129
|
+
|
130
|
+
if (stakeInfo.lockedUntil > TimestampLib.blockTimestamp()) {
|
131
|
+
revert IStaking.ErrorStakingStakeLocked(stakeNftId, stakeInfo.lockedUntil);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
117
135
|
|
118
136
|
function checkTarget(
|
119
137
|
StakingReader stakingReader,
|
@@ -350,9 +350,10 @@ contract Staking is
|
|
350
350
|
Amount rewardsClaimedAmount
|
351
351
|
)
|
352
352
|
{
|
353
|
-
// TODO add check that stake locking is in the past
|
354
353
|
StakingStorage storage $ = _getStakingStorage();
|
355
|
-
|
354
|
+
|
355
|
+
StakeManagerLib.checkUnstakeParameters($._reader, stakeNftId);
|
356
|
+
|
356
357
|
// update rewards since last update
|
357
358
|
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
358
359
|
|
@@ -132,9 +132,9 @@ library TargetManagerLib {
|
|
132
132
|
public
|
133
133
|
pure
|
134
134
|
{
|
135
|
-
// check locking period is
|
136
|
-
if (lockingPeriod.
|
137
|
-
revert IStaking.
|
135
|
+
// check locking period is >= min locking period
|
136
|
+
if (lockingPeriod.lt(getMinimumLockingPeriod())) {
|
137
|
+
revert IStaking.ErrorStakingLockingPeriodTooShort(targetNftId, getMinimumLockingPeriod(), lockingPeriod);
|
138
138
|
}
|
139
139
|
|
140
140
|
// check locking period <= max locking period
|
@@ -190,6 +190,10 @@ library TargetManagerLib {
|
|
190
190
|
return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
|
191
191
|
}
|
192
192
|
|
193
|
+
/// @dev the minimum locking period is 24 hours
|
194
|
+
function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
|
195
|
+
return SecondsLib.toSeconds(24 * 3600);
|
196
|
+
}
|
193
197
|
|
194
198
|
function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
|
195
199
|
return UFixedLib.toUFixed(33, -2);
|
@@ -71,48 +71,52 @@ function POLICY() pure returns (ObjectType) {
|
|
71
71
|
return ObjectType.wrap(21);
|
72
72
|
}
|
73
73
|
|
74
|
-
function
|
74
|
+
function PREMIUM() pure returns (ObjectType) {
|
75
75
|
return ObjectType.wrap(22);
|
76
76
|
}
|
77
77
|
|
78
|
+
function CLAIM() pure returns (ObjectType) {
|
79
|
+
return ObjectType.wrap(23);
|
80
|
+
}
|
81
|
+
|
78
82
|
function PAYOUT() pure returns (ObjectType) {
|
79
|
-
return ObjectType.wrap(
|
83
|
+
return ObjectType.wrap(24);
|
80
84
|
}
|
81
85
|
|
82
86
|
function RISK() pure returns (ObjectType) {
|
83
|
-
return ObjectType.wrap(
|
87
|
+
return ObjectType.wrap(25);
|
84
88
|
}
|
85
89
|
|
86
90
|
function PRICE() pure returns (ObjectType) {
|
87
|
-
return ObjectType.wrap(
|
91
|
+
return ObjectType.wrap(26);
|
88
92
|
}
|
89
93
|
|
90
94
|
function REQUEST() pure returns (ObjectType) {
|
91
|
-
return ObjectType.wrap(
|
95
|
+
return ObjectType.wrap(27);
|
92
96
|
}
|
93
97
|
|
94
98
|
function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
|
95
|
-
return ObjectType.wrap(
|
99
|
+
return ObjectType.wrap(28);
|
96
100
|
}
|
97
101
|
|
98
102
|
function DISTRIBUTOR() pure returns (ObjectType) {
|
99
|
-
return ObjectType.wrap(
|
103
|
+
return ObjectType.wrap(29);
|
100
104
|
}
|
101
105
|
|
102
106
|
function REFERRAL() pure returns (ObjectType) {
|
103
|
-
return ObjectType.wrap(
|
107
|
+
return ObjectType.wrap(30);
|
104
108
|
}
|
105
109
|
|
106
110
|
function BUNDLE() pure returns (ObjectType) {
|
107
|
-
return ObjectType.wrap(
|
111
|
+
return ObjectType.wrap(31);
|
108
112
|
}
|
109
113
|
|
110
114
|
function TARGET() pure returns (ObjectType) {
|
111
|
-
return ObjectType.wrap(
|
115
|
+
return ObjectType.wrap(32);
|
112
116
|
}
|
113
117
|
|
114
118
|
function STAKE() pure returns (ObjectType) {
|
115
|
-
return ObjectType.wrap(
|
119
|
+
return ObjectType.wrap(33);
|
116
120
|
}
|
117
121
|
|
118
122
|
/// @dev Object type that includes any other object type.
|
@@ -9,6 +9,9 @@ using {
|
|
9
9
|
SecondsAdd as +,
|
10
10
|
SecondsLib.eqz,
|
11
11
|
SecondsLib.gtz,
|
12
|
+
SecondsLib.eq,
|
13
|
+
SecondsLib.gt,
|
14
|
+
SecondsLib.lt,
|
12
15
|
SecondsLib.toInt,
|
13
16
|
SecondsLib.add
|
14
17
|
} for Seconds global;
|
@@ -77,6 +80,11 @@ library SecondsLib {
|
|
77
80
|
return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
|
78
81
|
}
|
79
82
|
|
83
|
+
/// @dev return true if duration1 is smaller than duration2
|
84
|
+
function lt(Seconds duration1, Seconds duration2) public pure returns (bool) {
|
85
|
+
return Seconds.unwrap(duration1) < Seconds.unwrap(duration2);
|
86
|
+
}
|
87
|
+
|
80
88
|
/// @dev return add duration1 and duration2
|
81
89
|
function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
|
82
90
|
return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
|
package/package.json
CHANGED