mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
formula update
This commit is contained in:
parent
77e1d08a08
commit
2c27d955d9
@ -13,6 +13,7 @@ import { useFormikContext } from 'formik'
|
|||||||
import { PriceOptionsMarket } from '../../../../../@types/MetaData'
|
import { PriceOptionsMarket } from '../../../../../@types/MetaData'
|
||||||
import { DDO } from '@oceanprotocol/lib'
|
import { DDO } from '@oceanprotocol/lib'
|
||||||
import Price from './Price'
|
import Price from './Price'
|
||||||
|
import Decimal from 'decimal.js'
|
||||||
|
|
||||||
export default function Dynamic({
|
export default function Dynamic({
|
||||||
ddo,
|
ddo,
|
||||||
@ -32,7 +33,9 @@ export default function Dynamic({
|
|||||||
price,
|
price,
|
||||||
weightOnDataToken,
|
weightOnDataToken,
|
||||||
weightOnOcean,
|
weightOnOcean,
|
||||||
swapFee
|
swapFee,
|
||||||
|
dtAmount,
|
||||||
|
oceanAmount
|
||||||
} = values as PriceOptionsMarket
|
} = values as PriceOptionsMarket
|
||||||
|
|
||||||
const [error, setError] = useState<string>()
|
const [error, setError] = useState<string>()
|
||||||
@ -40,14 +43,16 @@ export default function Dynamic({
|
|||||||
// Calculate firstPrice whenever
|
// Calculate firstPrice whenever
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const tokenAmountOut = 1
|
const tokenAmountOut = 1
|
||||||
const weightRatio = Decimal(weightOnDataToken).div(Decimal(weightOnOcean))
|
const weightRatio = new Decimal(weightOnDataToken).div(
|
||||||
const diff = Decimal(dtBalance).minus(tokenAmountOut)
|
new Decimal(weightOnOcean)
|
||||||
const y = Decimal(dtBalance).div(diff)
|
)
|
||||||
const foo = y.pow(weightRatio).minus(Decimal(1))
|
const diff = new Decimal(dtAmount).minus(tokenAmountOut)
|
||||||
const tokenAmountIn = Decimal(oceanBalance)
|
const y = new Decimal(dtAmount).div(diff)
|
||||||
|
const foo = y.pow(weightRatio).minus(new Decimal(1))
|
||||||
|
const tokenAmountIn = new Decimal(oceanAmount)
|
||||||
.times(foo)
|
.times(foo)
|
||||||
.div(Decimal(1).minus(Decimal(swapFee)))
|
.div(new Decimal(1).minus(new Decimal(swapFee)))
|
||||||
setFirstPrice(tokenAmountIn)
|
setFirstPrice(`${tokenAmountIn}`)
|
||||||
}, [swapFee, weightOnOcean, weightOnDataToken])
|
}, [swapFee, weightOnOcean, weightOnDataToken])
|
||||||
|
|
||||||
// Check: account, network & insufficient balance
|
// Check: account, network & insufficient balance
|
||||||
|
Loading…
Reference in New Issue
Block a user