bfx-api-node-models
Version:
Object models for usage with the Bitfinex node API
73 lines (66 loc) • 1.85 kB
JavaScript
const stringValidator = require('./validators/string')
const priceValidator = require('./validators/price')
const Model = require('./model')
const fields = {
key: 0,
timestamp: 1,
price: 3,
priceSpot: 4,
fundBal: 6,
fundingAccrued: 9,
fundingStep: 10,
clampMin: 22,
clampMax: 23
}
/**
* Derivatives Status Message model
*/
class StatusMessagesDeriv extends Model {
/**
* @param {object|Array} data - derivatives status message data
* @param {string} data.key - key
* @param {number} data.timestamp - timestamp
* @param {string} data.price - price
* @param {string} data.priceSpot - spot price
* @param {string} data.fundBal - funding balance
* @param {string} data.fundingAccrued - accrued funding
* @param {string} data.fundingStep - funding step
* @param {number} data.clampMin - min clamp
* @param {number} data.clampMax - max clamp
*/
constructor (data = {}) {
super({ data, fields })
}
/**
* @param {object[]|object|Array[]|Array} data - data to convert to POJO
* @returns {object} pojo
*/
static unserialize (data) {
return super.unserialize({ data, fields })
}
/**
* Validates a given public trade instance
*
* @param {object[]|object|PublicTrade[]|PublicTrade|Array} data - instance to validate
* @returns {string} error - null if instance is valid
*/
static validate (data) {
return super.validate({
data,
fields,
validators: {
key: stringValidator,
timestamp: stringValidator,
price: priceValidator,
priceSpot: priceValidator,
fundBal: priceValidator,
fundingAccrued: priceValidator,
fundingStep: priceValidator,
clampMin: priceValidator,
clampMax: priceValidator
}
})
}
}
module.exports = StatusMessagesDeriv