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

price data structure additions

This commit is contained in:
Matthias Kretschmann 2020-08-05 16:17:13 +02:00
parent b35a11b3bb
commit 5d11416137
Signed by: m
GPG Key ID: 606EEEF3C479A91F
5 changed files with 16 additions and 10 deletions

View File

@ -25,6 +25,8 @@ export interface MetadataPublishForm {
price: { price: {
tokensToMint: number tokensToMint: number
type: 'simple' | 'advanced' | string type: 'simple' | 'advanced' | string
weight: string
ownerFee: string
} }
access: 'Download' | 'Compute' | string access: 'Download' | 'Compute' | string
termsAndConditions: boolean termsAndConditions: boolean

View File

@ -77,14 +77,14 @@ export default function Advanced({
name="ocean" name="ocean"
symbol="OCEAN" symbol="OCEAN"
value={ocean} value={ocean}
weight={`${100 - Number(weightOnDataToken)}%`} weight={`${100 - Number(Number(weightOnDataToken) * 10)}%`}
onChange={onChange} onChange={onChange}
/> />
<Coin <Coin
name="tokensToMint" name="tokensToMint"
symbol="OCEAN-CAV" symbol="OCEAN-CAV"
value={tokensToMint.toString()} value={tokensToMint.toString()}
weight={`${weightOnDataToken}%`} weight={`${Number(weightOnDataToken) * 10}%`}
readOnly readOnly
/> />
</div> </div>

View File

@ -8,8 +8,8 @@ import { useField } from 'formik'
export default function Price(props: InputProps): ReactElement { export default function Price(props: InputProps): ReactElement {
const [field, meta, helpers] = useField(props) const [field, meta, helpers] = useField(props)
const { weight } = field.value
const weightOnDataToken = '90' // in %
const [ocean, setOcean] = useState('1') const [ocean, setOcean] = useState('1')
const [tokensToMint, setTokensToMint] = useState<number>() const [tokensToMint, setTokensToMint] = useState<number>()
@ -24,7 +24,7 @@ export default function Price(props: InputProps): ReactElement {
// Always update everything when ocean changes // Always update everything when ocean changes
useEffect(() => { useEffect(() => {
const tokensToMint = Number(ocean) * (Number(weightOnDataToken) / 10) const tokensToMint = Number(ocean) * Number(weight)
setTokensToMint(tokensToMint) setTokensToMint(tokensToMint)
console.log(field.value) console.log(field.value)
helpers.setValue({ ...field.value, tokensToMint }) helpers.setValue({ ...field.value, tokensToMint })
@ -41,7 +41,7 @@ export default function Price(props: InputProps): ReactElement {
<Advanced <Advanced
ocean={ocean} ocean={ocean}
tokensToMint={tokensToMint} tokensToMint={tokensToMint}
weightOnDataToken={weightOnDataToken} weightOnDataToken={weight}
onChange={handleOceanChange} onChange={handleOceanChange}
/> />
) )

View File

@ -34,7 +34,7 @@ export default function PublishPage({
`) `)
const metadata = transformPublishFormToMetadata(values) const metadata = transformPublishFormToMetadata(values)
const { tokensToMint, type } = values.price const { tokensToMint, type, weight, ownerFee } = values.price
const serviceType = values.access === 'Download' ? 'access' : 'compute' const serviceType = values.access === 'Download' ? 'access' : 'compute'
console.log(` console.log(`
@ -60,8 +60,8 @@ export default function PublishPage({
accountId, accountId,
ddo.dataToken, ddo.dataToken,
tokensToMint.toString(), tokensToMint.toString(),
'9', weight,
'0.03' ownerFee
) )
} }
} }

View File

@ -10,7 +10,9 @@ export const validationSchema = Yup.object().shape<MetadataPublishForm>({
tokensToMint: Yup.number().required('Required'), tokensToMint: Yup.number().required('Required'),
type: Yup.string() type: Yup.string()
.matches(/simple|advanced/g) .matches(/simple|advanced/g)
.required('Required') .required('Required'),
weight: Yup.string().required('Required'),
ownerFee: Yup.string()
}), }),
files: Yup.array<FileMetadata>().required('Required').nullable(), files: Yup.array<FileMetadata>().required('Required').nullable(),
description: Yup.string().required('Required'), description: Yup.string().required('Required'),
@ -31,7 +33,9 @@ export const initialValues: MetadataPublishForm = {
author: undefined, author: undefined,
price: { price: {
type: 'simple', type: 'simple',
tokensToMint: 1 tokensToMint: 1,
weight: '9', // 90% on data token
ownerFee: '0.03' // in %
}, },
files: undefined, files: undefined,
description: undefined, description: undefined,