UNPKG

node-red-contrib-iota-mam

Version:
37 lines (32 loc) 1.33 kB
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); }