lamassu-server/packages/admin-ui/src/pages/Services/schemas/bitstamp.js
2025-05-13 07:30:38 +01:00

67 lines
1.7 KiB
JavaScript

import * as Yup from 'yup'
import {
SecretInput,
TextInput,
Autocomplete,
} from '../../../components/inputs/formik'
import { secretTest, buildCurrencyOptions } from './helper'
const schema = markets => {
return {
code: 'bitstamp',
name: 'Bitstamp',
title: 'Bitstamp (Exchange)',
elements: [
{
code: 'clientId',
display: 'Client ID',
component: TextInput,
face: true,
long: true,
},
{
code: 'key',
display: 'API key',
component: TextInput,
face: true,
long: true,
},
{
code: 'secret',
display: 'API secret',
component: SecretInput,
},
{
code: 'currencyMarket',
display: 'Currency market',
component: Autocomplete,
inputProps: {
options: buildCurrencyOptions(markets),
labelProp: 'display',
valueProp: 'code',
},
face: true,
},
],
getValidationSchema: account => {
return Yup.object().shape({
clientId: Yup.string('The client ID must be a string')
.max(100, 'The client ID is too long')
.required('The client ID is required'),
key: Yup.string('The API key must be a string')
.max(100, 'The API key is too long')
.required('The API key is required'),
secret: Yup.string('The API secret must be a string')
.max(100, 'The API secret is too long')
.test(secretTest(account?.secret, 'API secret')),
currencyMarket: Yup.string(
'The currency market must be a string',
).required('The currency market is required'),
})
},
}
}
export default schema