From 77e1d08a08cc4814483d3fd31661bbea407f8aa2 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Mon, 26 Oct 2020 18:44:32 +0100 Subject: [PATCH] prepare displaying firstPrice --- .../Pricing/FormPricing/Dynamic.tsx | 21 +++++++++++++++++-- .../organisms/AssetContent/index.tsx | 3 ++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/components/organisms/AssetContent/Pricing/FormPricing/Dynamic.tsx b/src/components/organisms/AssetContent/Pricing/FormPricing/Dynamic.tsx index d9ef17c47..b9373460e 100644 --- a/src/components/organisms/AssetContent/Pricing/FormPricing/Dynamic.tsx +++ b/src/components/organisms/AssetContent/Pricing/FormPricing/Dynamic.tsx @@ -12,7 +12,6 @@ import stylesIndex from './index.module.css' import { useFormikContext } from 'formik' import { PriceOptionsMarket } from '../../../../../@types/MetaData' import { DDO } from '@oceanprotocol/lib' -import Fixed from './Fixed' import Price from './Price' export default function Dynamic({ @@ -25,16 +24,32 @@ export default function Dynamic({ const { account, balance, networkId, refreshBalance } = useOcean() const { dtSymbol, dtName } = usePricing(ddo) + const [firstPrice, setFirstPrice] = useState() + // Connect with form const { values } = useFormikContext() const { price, weightOnDataToken, - weightOnOcean + weightOnOcean, + swapFee } = values as PriceOptionsMarket const [error, setError] = useState() + // Calculate firstPrice whenever + useEffect(() => { + const tokenAmountOut = 1 + const weightRatio = Decimal(weightOnDataToken).div(Decimal(weightOnOcean)) + const diff = Decimal(dtBalance).minus(tokenAmountOut) + const y = Decimal(dtBalance).div(diff) + const foo = y.pow(weightRatio).minus(Decimal(1)) + const tokenAmountIn = Decimal(oceanBalance) + .times(foo) + .div(Decimal(1).minus(Decimal(swapFee))) + setFirstPrice(tokenAmountIn) + }, [swapFee, weightOnOcean, weightOnDataToken]) + // Check: account, network & insufficient balance useEffect(() => { if (!account) { @@ -80,6 +95,8 @@ export default function Dynamic({ + {firstPrice} +

Datatoken Liquidity Pool

diff --git a/src/components/organisms/AssetContent/index.tsx b/src/components/organisms/AssetContent/index.tsx index 3d3419c12..9e0fb22e2 100644 --- a/src/components/organisms/AssetContent/index.tsx +++ b/src/components/organisms/AssetContent/index.tsx @@ -30,7 +30,8 @@ export default function AssetContent({ const isOwner = accountId === ddo.publicKey[0].owner const hasNoPrice = ddo.price.type === '' - const showPricing = isOwner && hasNoPrice + // TODO: ONLY FOR DEBUGGING + const showPricing = true || (isOwner && hasNoPrice) return (