UNPKG

blockchain-link

Version:

Link - The Blockchain File Sharing Protocol

85 lines (76 loc) 2.85 kB
// Generated by CoffeeScript 1.6.3 (function() { var LinkSequenceBuilder, LinkSequenceDecoder, bitcoin, client, readline, rl; readline = require("readline"); LinkSequenceBuilder = require("./link").LinkSequenceBuilder; LinkSequenceDecoder = require("./link").LinkSequenceDecoder; bitcoin = require("bitcoin"); client = new bitcoin.Client({ host: 'localhost', port: 8332, user: 'Kevlar', pass: 'zabbas' }); rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question("Payload: ", function(magnet) { return rl.question("Name: ", function(name) { return rl.question("Keywords: ", function(keywords) { var addresses, decoder, error, errors, fee, sequence, total, x, _i, _j, _len, _len1; sequence = new LinkSequenceBuilder(); sequence.addPayloadInline(magnet); sequence.addName(name); sequence.addKeywords(keywords); addresses = sequence.getAddresses(14); decoder = new LinkSequenceDecoder(addresses); errors = decoder.verify(); if (errors.length > 0) { for (_i = 0, _len = errors.length; _i < _len; _i++) { error = errors[_i]; console.log(error); } } console.log(decoder.payloadInline); console.log(decoder.name); console.log(decoder.keywords); this.outs = {}; for (_j = 0, _len1 = addresses.length; _j < _len1; _j++) { x = addresses[_j]; this.outs[x] = 0.00000001; } fee = 0.1; total = addresses.length * 0.00000001; client.listUnspent(0, function(err, unspent) { var tx, _k, _len2; this.useable = void 0; for (_k = 0, _len2 = unspent.length; _k < _len2; _k++) { tx = unspent[_k]; if (tx.amount > 0) { this.useable = tx; } if (typeof useable === "undefined" || useable === null) { return console.log("No unspent"); } } console.log(this.useable.amount); outs[this.useable.address] = this.useable.amount - total; return client.createRawTransaction([this.useable], this.outs, function(err, rawtx) { console.log("rawtx: " + rawtx); return client.decodeRawTransaction(rawtx, function(error, decoded) { console.log(JSON.stringify(decoded)); return client.signRawTransaction(rawtx, [this.useable], function(error, decoded) { console.log(decoded); return client.sendRawTransaction(decoded.hex, function(error, result) { return console.log(result); }); }); }); }); }); return rl.close(); }); }); }); }).call(this);