node-red-contrib-iota-mam
Version:
Updated on 18/04/2019
37 lines (32 loc) • 1.33 kB
JavaScript
const MAM = require('@iota/mam');
const IOTA_CONVERTER = require('@iota/converter')
module.exports = function(RED) {
function mamFetch(config) {
RED.nodes.createNode(this,config);
var node = this;
node.on('input', function(msg) {
config.root = msg.payload;
console.log("MAM fetch on iota node: " + config.iotaNode);
console.log("MAM root: " + config.root);
console.log("MAM mode: " + config.mode);
console.log("MAM secret: " + config.secret);
console.log("Fetching data ... ");
let mamState = MAM.init({ provider: config.iotaNode });
let root = config.root.slice(0,81);
if (config.mode == 'restricted' && config.secret.length == 0) {
console.log("Restricted mode: No MAM secret selected");
}
if (config.mode == 'public') {
config.secret = null;
}
let resp = MAM.fetch(root, config.mode, config.secret, (result) => {
let jsonArray = JSON.parse(IOTA_CONVERTER.trytesToAscii(result));
for (var i = 0; i < jsonArray.length; i++) {
node.send(jsonArray[i]);
// console.log(jsonArray[i])
}
}, config.limit);
});
}
RED.nodes.registerType("mamFetch",mamFetch);
}