mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
introduce weightOnOcean
This commit is contained in:
parent
04e8352dd0
commit
ef335ff850
1
src/@types/MetaData.d.ts
vendored
1
src/@types/MetaData.d.ts
vendored
@ -19,6 +19,7 @@ export interface MetadataMarket extends Metadata {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface PriceOptionsMarket extends PriceOptions {
|
export interface PriceOptionsMarket extends PriceOptions {
|
||||||
|
weightOnOcean: string
|
||||||
// easier to keep this as number for Yup input validation
|
// easier to keep this as number for Yup input validation
|
||||||
swapFee: number
|
swapFee: number
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,11 @@ export default function Dynamic({
|
|||||||
|
|
||||||
// Connect with form
|
// Connect with form
|
||||||
const { values } = useFormikContext()
|
const { values } = useFormikContext()
|
||||||
const { price, weightOnDataToken } = values as PriceOptionsMarket
|
const {
|
||||||
|
price,
|
||||||
|
weightOnDataToken,
|
||||||
|
weightOnOcean
|
||||||
|
} = values as PriceOptionsMarket
|
||||||
|
|
||||||
const [error, setError] = useState<string>()
|
const [error, setError] = useState<string>()
|
||||||
|
|
||||||
@ -84,7 +88,7 @@ export default function Dynamic({
|
|||||||
<Coin
|
<Coin
|
||||||
name="oceanAmount"
|
name="oceanAmount"
|
||||||
datatokenOptions={{ symbol: 'OCEAN', name: 'Ocean Token' }}
|
datatokenOptions={{ symbol: 'OCEAN', name: 'Ocean Token' }}
|
||||||
weight={`${100 - Number(Number(weightOnDataToken) * 10)}%`}
|
weight={`${Number(weightOnOcean) * 10}%`}
|
||||||
/>
|
/>
|
||||||
<Coin
|
<Coin
|
||||||
name="dtAmount"
|
name="dtAmount"
|
||||||
|
@ -26,6 +26,7 @@ export default function FormPricing({
|
|||||||
const {
|
const {
|
||||||
price,
|
price,
|
||||||
oceanAmount,
|
oceanAmount,
|
||||||
|
weightOnOcean,
|
||||||
weightOnDataToken,
|
weightOnDataToken,
|
||||||
type
|
type
|
||||||
} = values as PriceOptionsMarket
|
} = values as PriceOptionsMarket
|
||||||
@ -38,13 +39,12 @@ export default function FormPricing({
|
|||||||
|
|
||||||
// Always update everything when price value changes
|
// Always update everything when price value changes
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// with `weightOnDataToken` we assume it's measured against 1 OCEAN
|
|
||||||
const weightOnOcean = 1
|
|
||||||
const dtAmount =
|
const dtAmount =
|
||||||
(Number(oceanAmount) / weightOnOcean / price) * Number(weightOnDataToken)
|
(Number(oceanAmount) / Number(weightOnOcean) / price) *
|
||||||
|
Number(weightOnDataToken)
|
||||||
|
|
||||||
setFieldValue('dtAmount', dtAmount)
|
setFieldValue('dtAmount', dtAmount)
|
||||||
}, [price, oceanAmount, weightOnDataToken])
|
}, [price, oceanAmount, weightOnOcean, weightOnDataToken])
|
||||||
|
|
||||||
const tabs = [
|
const tabs = [
|
||||||
{
|
{
|
||||||
|
@ -11,6 +11,7 @@ export const validationSchema = Yup.object().shape<PriceOptionsMarket>({
|
|||||||
.matches(/fixed|dynamic/g)
|
.matches(/fixed|dynamic/g)
|
||||||
.required('Required'),
|
.required('Required'),
|
||||||
weightOnDataToken: Yup.string().required('Required'),
|
weightOnDataToken: Yup.string().required('Required'),
|
||||||
|
weightOnOcean: Yup.string().required('Required'),
|
||||||
swapFee: Yup.number()
|
swapFee: Yup.number()
|
||||||
.min(0.1, 'Must be more or equal to 0.1')
|
.min(0.1, 'Must be more or equal to 0.1')
|
||||||
.max(10, 'Maximum is 10%')
|
.max(10, 'Maximum is 10%')
|
||||||
@ -23,6 +24,7 @@ export const initialValues: PriceOptionsMarket = {
|
|||||||
type: 'dynamic',
|
type: 'dynamic',
|
||||||
dtAmount: 9,
|
dtAmount: 9,
|
||||||
oceanAmount: 1,
|
oceanAmount: 1,
|
||||||
weightOnDataToken: '9', // 90% on data token
|
weightOnOcean: '1', // 10% on OCEAN
|
||||||
|
weightOnDataToken: '9', // 90% on datatoken
|
||||||
swapFee: 0.1 // in %
|
swapFee: 0.1 // in %
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user