1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00

prepare displaying firstPrice

This commit is contained in:
Matthias Kretschmann 2020-10-26 18:44:32 +01:00
parent 8756a8e688
commit 77e1d08a08
Signed by: m
GPG Key ID: 606EEEF3C479A91F
2 changed files with 21 additions and 3 deletions

View File

@ -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<string>()
// Connect with form
const { values } = useFormikContext()
const {
price,
weightOnDataToken,
weightOnOcean
weightOnOcean,
swapFee
} = values as PriceOptionsMarket
const [error, setError] = useState<string>()
// 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({
<Price ddo={ddo} />
{firstPrice}
<h4 className={styles.title}>
Datatoken Liquidity Pool <Tooltip content={content.tooltips.poolInfo} />
</h4>

View File

@ -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 (
<article className={styles.grid}>