ccxt-bybit
Version:
A JavaScript / Python / PHP cryptocurrency trading library with support for 130+ exchanges
72 lines (55 loc) • 2.8 kB
JavaScript
;
/* ------------------------------------------------------------------------ */
const CryptoJS = require ('../../static_dependencies/crypto-js/crypto-js')
const qs = require ('../../static_dependencies/qs/index')
const BN = require ('../../static_dependencies/BN/bn')
/* ------------------------------------------------------------------------ */
module.exports =
{ json: (data, params = undefined) => JSON.stringify (data)
, unjson: JSON.parse
, isJsonEncodedObject: object => (
(typeof object === 'string') &&
(object.length >= 2) &&
((object[0] === '{') || (object[0] === '['))
)
, stringToBinary (str) {
const arr = new Uint8Array (str.length)
for (let i = 0; i < str.length; i++) { arr[i] = str.charCodeAt (i); }
return CryptoJS.lib.WordArray.create (arr)
}
, stringToBase64: string => CryptoJS.enc.Latin1.parse (string).toString (CryptoJS.enc.Base64)
, utf16ToBase64: string => CryptoJS.enc.Utf16 .parse (string).toString (CryptoJS.enc.Base64)
, base64ToBinary: string => CryptoJS.enc.Base64.parse (string)
, base64ToString: string => CryptoJS.enc.Base64.parse (string).toString (CryptoJS.enc.Utf8)
, binaryToBase64: binary => binary.toString (CryptoJS.enc.Base64)
, base16ToBinary: string => CryptoJS.enc.Hex.parse (string)
, binaryToBase16: binary => binary.toString (CryptoJS.enc.Hex)
, binaryConcat: (...args) => args.reduce ((a, b) => a.concat (b))
, binaryConcatArray: (arr) => arr.reduce ((a, b) => a.concat (b))
, urlencode: object => qs.stringify (object)
, urlencodeWithArrayRepeat: object => qs.stringify (object, { arrayFormat: 'repeat' })
, rawencode: object => qs.stringify (object, { encode: false })
, encode: x => x
, decode: x => x
// Url-safe-base64 without equals signs, with + replaced by - and slashes replaced by underscores
, urlencodeBase64: base64string => base64string.replace (/[=]+$/, '')
.replace (/\+/g, '-')
.replace (/\//g, '_')
, numberToLE: (n, padding) => {
const hexArray = new BN (n).toArray ('le', padding)
return byteArrayToWordArray (hexArray)
}
, numberToBE: (n, padding) => {
const hexArray = new BN (n).toArray ('be', padding)
return byteArrayToWordArray (hexArray)
}
}
function byteArrayToWordArray(ba) {
const wa = []
for (let i = 0; i < ba.length; i++) {
wa[(i / 4) | 0] |= ba[i] << (24 - 8 * i)
}
return CryptoJS.lib.WordArray.create (wa, ba.length)
}
module.exports['byteArrayToWordArray'] = byteArrayToWordArray
/* ------------------------------------------------------------------------ */