iota.lib.js
Version:
Javascript Library for IOTA
281 lines (227 loc) • 5.83 kB
JavaScript
/**
* @method attachToTangle
* @param {string} trunkTransaction
* @param {string} branchTransaction
* @param {integer} minWeightMagnitude
* @param {array} trytes
* @returns {object} command
**/
var attachToTangle = function(trunkTransaction, branchTransaction, minWeightMagnitude, trytes) {
var command = {
'command' : 'attachToTangle',
'trunkTransaction' : trunkTransaction,
'branchTransaction' : branchTransaction,
'minWeightMagnitude' : minWeightMagnitude,
'trytes' : trytes
}
return command;
}
/**
* @method findTransactions
* @param {object} searchValues Can be bundles, addresses, tags and approvees
* @returns {object} command
**/
var findTransactions = function(searchValues) {
var command = {
'command' : 'findTransactions'
}
var validSearchKeys = ['bundles', 'addresses', 'tags', 'approvees'];
var searchKey = Object.keys(searchValues);
searchKey.forEach(function(key) {
if (validSearchKeys.indexOf(key) > -1) {
command[key] = searchValues[key];
}
})
return command;
}
/**
* @method getBalances
* @param {array} addresses
* @param {int} threshold
* @param {array} [tips]
* @returns {object} command
**/
var getBalances = function(addresses, threshold, tips) {
var command = {
'command' : 'getBalances',
'addresses' : addresses,
'threshold' : threshold
}
// If provided tips is an array and has length
// Then assign tips prop to command object
if (Array.isArray(tips) && tips.length) {
command.tips = tips;
}
return command;
}
/**
* @method getInclusionStates
* @param {array} transactions
* @param {array} tips
* @returns {object} command
**/
var getInclusionStates = function(transactions, tips) {
var command = {
'command' : 'getInclusionStates',
'transactions' : transactions,
'tips' : tips
}
return command;
}
/**
* @method getNodeInfo
* @returns {object} command
**/
var getNodeInfo = function() {
var command = {
'command' : 'getNodeInfo'
}
return command;
}
/**
* @method getNeighbors
* @returns {object} command
**/
var getNeighbors = function() {
var command = {
'command' : 'getNeighbors'
}
return command;
}
/**
* @method addNeighbors
* @param {Array} uris
* @returns {object} command
**/
var addNeighbors = function(uris) {
var command = {
'command' : 'addNeighbors',
'uris' : uris
}
return command;
}
/**
* @method removeNeighbors
* @param {Array} uris
* @returns {object} command
**/
var removeNeighbors = function(uris) {
var command = {
'command' : 'removeNeighbors',
'uris' : uris
}
return command;
}
/**
* @method getTips
* @returns {object} command
**/
var getTips = function() {
var command = {
'command' : 'getTips'
}
return command;
}
/**
* @method getTransactionsToApprove
* @param {int} depth
* @returns {object} command
**/
var getTransactionsToApprove = function(depth, reference) {
var command = {
'command' : 'getTransactionsToApprove',
'depth' : depth,
}
if (reference != undefined) {
command.reference = reference;
}
return command;
}
/**
* @method getTrytes
* @param {array} hashes
* @returns {object} command
**/
var getTrytes = function(hashes) {
var command = {
'command' :'getTrytes',
'hashes' : hashes
}
return command;
}
/**
* @method interruptAttachingToTangle
* @returns {object} command
**/
var interruptAttachingToTangle = function() {
var command = {
'command' : 'interruptAttachingToTangle'
}
return command;
}
/**
* @method broadcastTransactions
* @param {array} trytes
* @returns {object} command
**/
var broadcastTransactions = function(trytes) {
var command = {
'command' : 'broadcastTransactions',
'trytes' : trytes
}
return command;
}
/**
* @method storeTransactions
* @param {array} trytes
* @returns {object} command
**/
var storeTransactions = function(trytes) {
var command = {
'command' : 'storeTransactions',
'trytes' : trytes
}
return command;
}
/**
* @method returns whether the given tail is consistent
* @param {string} tail bundle tail hash
* @returns {object} command
*/
var checkConsistency = function(hashes) {
var command = {
'command' : 'checkConsistency',
'tails' : hashes
};
return command;
}
/**
* @method wereAddressesSpentFrom
* @param {array} addresses Addresses to check
* @returns {object} command
*/
var wereAddressesSpentFrom = function (addresses) {
var command = {
'command': 'wereAddressesSpentFrom',
'addresses': addresses
}
return command
}
module.exports = {
attachToTangle : attachToTangle,
findTransactions : findTransactions,
getBalances : getBalances,
getInclusionStates : getInclusionStates,
getNodeInfo : getNodeInfo,
getNeighbors : getNeighbors,
addNeighbors : addNeighbors,
removeNeighbors : removeNeighbors,
getTips : getTips,
getTransactionsToApprove : getTransactionsToApprove,
getTrytes : getTrytes,
interruptAttachingToTangle : interruptAttachingToTangle,
checkConsistency : checkConsistency,
broadcastTransactions : broadcastTransactions,
storeTransactions : storeTransactions,
wereAddressesSpentFrom : wereAddressesSpentFrom
}