normalizeResultOverColumns(data, columns) { const columnNames = map(prop('name'), columns || []); const arrayToObject = zipObj(columnNames); return map(arrayToObject, data || []); }
static getOrderMembers(state) { const { query, meta } = state; if (!meta) { return []; } const toOrderMember = (member) => ({ id: member.name, title: member.title }); return uniqBy( prop('id'), [ ...QueryBuilder.resolveMember('measures', state).map(toOrderMember), ...QueryBuilder.resolveMember('dimensions', state).map(toOrderMember), ...QueryBuilder.resolveMember('timeDimensions', state).map((td) => toOrderMember(td.dimension)) ].map((member) => ({ ...member, order: (query.order && query.order[member.id]) || 'none' })) ); }
const indexByName = (packages) => R.indexBy(R.prop('name'), packages)
R.prop(0), timeDimensions.map(d => [d.dimension, d.rollupGranularity()]) ) || [];
const updatedOrderMembers = indexBy(prop('id'), QueryBuilder.getOrderMembers({ ...this.state, ...finalState
getBalanceForAddress(addressId) { let utxo = this.blockchain.getUnspentTransactionsForAddress(addressId); if (utxo == null || utxo.length == 0) throw new ArgumentError(`No transactions found for address '${addressId}'`); return R.sum(R.map(R.prop('amount'), utxo)); }
getTransactionFromBlocks(transactionId) { return R.find(R.compose(R.find(R.propEq('id', transactionId)), R.prop('transactions')), this.blocks); }
return R.map( R.pipe( R.prop('transactions'), R.map(R.pipe( R.path(['data', 'inputs']),
R.countBy(R.prop('type')), R.toString, R.replace('{', ''),
let sumOfInputsAmount = R.sum(R.flatten(R.map(R.compose(R.map(R.prop('amount')), R.prop('inputs'), R.prop('data')), newBlock.transactions))) + Config.MINING_REWARD; let sumOfOutputsAmount = R.sum(R.flatten(R.map(R.compose(R.map(R.prop('amount')), R.prop('outputs'), R.prop('data')), newBlock.transactions))); let listOfTransactionIndexInputs = R.flatten(R.map(R.compose(R.map(R.compose(R.join('|'), R.props(['transaction', 'index']))), R.prop('inputs'), R.prop('data')), newBlock.transactions)); let doubleSpendingList = R.filter((x) => x >= 2, R.map(R.length, R.groupBy(x => x)(listOfTransactionIndexInputs))); let transactionsByType = R.countBy(R.prop('type'), newBlock.transactions); if (transactionsByType.fee && transactionsByType.fee > 1) { console.error(`Invalid fee transaction count: expected '1' got '${transactionsByType.fee}'`);
R.forEach(R.pipe(R.prop('transactions'), R.forEach(selectTxs)), this.blocks); R.forEach(selectTxs, this.transactions);
getAddresses() { return R.map(R.prop('publicKey'), this.keyPairs); }
function getAddRequireProps(columnsDef) { let props = []; if (columnsDef) { let find=R.compose(R.map(R.prop('prop')),R.filter(R.propEq('required', true))) props=find(columnsDef) //props=R.insertAll(1,find(columnsDef),props) } return props; }