2022-10-13 16:50:29 +03:00
|
|
|
import { addressType } from '@/constants'
|
|
|
|
|
|
|
|
const statusSchema = {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
rewardAccount: addressType,
|
|
|
|
instances: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
dai: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
instanceAddress: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
'100': addressType,
|
|
|
|
'1000': addressType,
|
|
|
|
'10000': addressType,
|
|
|
|
'100000': addressType
|
|
|
|
},
|
|
|
|
required: ['100', '1000', '10000', '100000']
|
|
|
|
},
|
|
|
|
tokenAddress: addressType,
|
|
|
|
symbol: { enum: ['DAI'] },
|
|
|
|
decimals: { enum: [18] }
|
|
|
|
},
|
|
|
|
required: ['instanceAddress', 'tokenAddress', 'decimals']
|
|
|
|
},
|
|
|
|
usdt: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
instanceAddress: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
'100': addressType,
|
|
|
|
'1000': addressType,
|
|
|
|
'10000': addressType,
|
|
|
|
'100000': addressType
|
|
|
|
},
|
|
|
|
required: ['100', '1000']
|
|
|
|
},
|
|
|
|
tokenAddress: addressType,
|
|
|
|
symbol: { enum: ['USDT'] },
|
|
|
|
decimals: { enum: [6] }
|
|
|
|
},
|
|
|
|
required: ['instanceAddress', 'tokenAddress', 'decimals']
|
|
|
|
},
|
|
|
|
usdc: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
instanceAddress: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
'100': addressType,
|
|
|
|
'1000': addressType,
|
|
|
|
'10000': addressType,
|
|
|
|
'100000': addressType
|
|
|
|
},
|
|
|
|
required: ['100', '1000']
|
|
|
|
},
|
|
|
|
tokenAddress: addressType,
|
|
|
|
symbol: { enum: ['USDC'] },
|
|
|
|
decimals: { enum: [6] }
|
|
|
|
},
|
|
|
|
required: ['instanceAddress', 'tokenAddress', 'decimals']
|
|
|
|
},
|
|
|
|
cdai: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
instanceAddress: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
'5000': addressType,
|
|
|
|
'50000': addressType,
|
|
|
|
'500000': addressType,
|
|
|
|
'5000000': addressType
|
|
|
|
},
|
|
|
|
required: ['5000', '50000', '500000', '5000000']
|
|
|
|
},
|
|
|
|
tokenAddress: addressType,
|
|
|
|
symbol: { enum: ['cDAI'] },
|
|
|
|
decimals: { enum: [8] }
|
|
|
|
},
|
|
|
|
required: ['instanceAddress', 'tokenAddress', 'decimals']
|
|
|
|
},
|
|
|
|
wbtc: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
instanceAddress: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
'0.1': addressType,
|
|
|
|
'1': addressType,
|
|
|
|
'10': addressType,
|
|
|
|
'100': addressType
|
|
|
|
},
|
|
|
|
required: ['0.1', '1', '10']
|
|
|
|
},
|
|
|
|
tokenAddress: addressType,
|
|
|
|
symbol: { enum: ['WBTC'] },
|
|
|
|
decimals: { enum: [8] }
|
|
|
|
},
|
|
|
|
required: ['instanceAddress', 'tokenAddress', 'decimals']
|
|
|
|
},
|
|
|
|
eth: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
instanceAddress: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
'0.1': addressType,
|
|
|
|
'1': addressType,
|
|
|
|
'10': addressType,
|
|
|
|
'100': addressType
|
|
|
|
},
|
|
|
|
required: ['0.1', '1', '10', '100']
|
|
|
|
},
|
|
|
|
decimals: { enum: [18] }
|
|
|
|
},
|
|
|
|
required: ['instanceAddress', 'decimals']
|
|
|
|
}
|
|
|
|
},
|
|
|
|
required: ['eth']
|
|
|
|
},
|
|
|
|
gasPrices: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
fast: { type: 'number' },
|
|
|
|
additionalProperties: { type: 'number' }
|
|
|
|
},
|
|
|
|
required: ['fast']
|
|
|
|
},
|
|
|
|
netId: { type: 'integer' },
|
|
|
|
ethPrices: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
dai: { type: 'string', BN: true },
|
|
|
|
cdai: { type: 'string', BN: true },
|
|
|
|
usdc: { type: 'string', BN: true },
|
|
|
|
usdt: { type: 'string', BN: true },
|
|
|
|
torn: { type: 'string', BN: true },
|
|
|
|
wbtc: { type: 'string', BN: true }
|
|
|
|
},
|
|
|
|
required: ['dai', 'cdai', 'usdc', 'usdt', 'torn', 'wbtc']
|
|
|
|
},
|
|
|
|
tornadoServiceFee: { type: 'number', maximum: 20, minimum: 0 },
|
|
|
|
latestBlock: { type: 'number' },
|
|
|
|
version: { type: 'string' },
|
|
|
|
health: {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
status: { const: 'true' },
|
|
|
|
error: { type: 'string' }
|
|
|
|
},
|
|
|
|
required: ['status']
|
|
|
|
},
|
|
|
|
currentQueue: { type: 'number' }
|
|
|
|
},
|
|
|
|
required: ['rewardAccount', 'instances', 'netId', 'ethPrices', 'tornadoServiceFee', 'version', 'health']
|
|
|
|
}
|
|
|
|
|
|
|
|
export { statusSchema }
|