Sha256: 77c41b38e10ba9fc67948af7de2362a76c41d2d61fd07fd2d312dec13d69c93c
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
import { broadcast } from '../../api-node/transactions'; import { head, toArray } from '../utils'; import wait from './wait'; const DEFAULT_BROADCAST_OPTIONS = { chain: false, confirmations: -1, maxWaitTime: 0, requestInterval: 0 }; export default function (base, list, options) { const opt = Object.assign(Object.assign({}, DEFAULT_BROADCAST_OPTIONS), (options || {})); const isOnce = !Array.isArray(list); const confirmations = opt.confirmations > 0 ? 1 : 0; return (opt.chain ? chainBroadcast(base, toArray(list), Object.assign(Object.assign({}, opt), { confirmations })) : simpleBroadcast(base, toArray(list))) .then(list => opt.confirmations <= 0 ? list : wait(base, list, opt)) .then(list => isOnce ? head(list) : list); } function simpleBroadcast(base, list) { return Promise.all(list.map(tx => broadcast(base, tx))); } function chainBroadcast(base, list, options) { return new Promise((resolve, reject) => { const toBroadcast = list.slice().reverse(); const result = []; const loop = () => { if (!toBroadcast.length) { resolve(result); return null; } const tx = toBroadcast.pop(); broadcast(base, tx) .then(tx => wait(base, tx, options)) .then(tx => { result.push(tx); loop(); }, reject); }; loop(); }); } //# sourceMappingURL=broadcast.js.map
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
waves_lib-0.1.0 | js/node_modules/@waves/node-api-js/es/tools/transactions/broadcast.js |