UNPKG

int-cli

Version:

INT is the new generation of bottom-up created system of IoT and blockchain

39 lines (38 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const error_code_1 = require("../error_code"); function instance(superClass) { return class extends superClass { constructor(...args) { super(...args.slice(1)); this.m_staticPeers = (args[0]).slice(0); } async randomPeers(count, excludes) { const doubleCount = 2 * count; if (this.m_staticPeers.length) { let inc = []; for (const peerid of this.m_staticPeers) { if (!excludes.has(peerid)) { inc.push(peerid); } } if (inc.length <= doubleCount) { return { err: error_code_1.ErrorCode.RESULT_OK, peers: inc }; } else { const start = Math.floor(inc.length * Math.random()); let peers = []; peers.push(...inc.slice(start)); if (peers.length <= doubleCount) { peers.push(...inc.slice(doubleCount - peers.length)); } return { err: error_code_1.ErrorCode.RESULT_OK, peers }; } } else { return { err: error_code_1.ErrorCode.RESULT_SKIPPED, peers: [] }; } } }; } exports.instance = instance;