Back to Ccxt

Binance Server Time

wiki/examples/js/binance-server-time.md

4.5.601.3 KB
Original Source
javascript
// @NO_AUTO_TRANSPILE
import ccxt from '../../js/ccxt.js';
import ololog from 'ololog';
const log = ololog.configure({ locate: false });
const binance = new ccxt['binance']();
const recvWindow = binance.options.recvWindow;
const aheadWindow = 1000;
async function test() {
    const localStartTime = Date.now();
    const { serverTime } = await binance.publicGetTime();
    const localFinishTime = Date.now();
    const estimatedLandingTime = (localFinishTime + localStartTime) / 2;
    const diff = serverTime - estimatedLandingTime;
    log(`request departure time:     ${binance.iso8601(localStartTime)}`);
    log(`response arrival time:      ${binance.iso8601(localFinishTime)}`);
    log(`server time:                ${binance.iso8601(serverTime)}`);
    log(`request landing time (est): ${binance.iso8601(estimatedLandingTime)}, ${Math.abs(diff)} ms ${Math.sign(diff) > 0 ? 'behind' : 'ahead of'} server`);
    log('\n');
    if (diff < -aheadWindow) {
        log.error.red(`your request will likely be rejected if local time is ahead of the server's time for more than ${aheadWindow} ms \n`);
    }
    if (diff > recvWindow) {
        log.error.red(`your request will likely be rejected if local time is behind server time for more than ${recvWindow} ms\n`);
    }
}
test();