clightningjs
Version:
Plugins for C-lightning, a Lightning Network implementation. Also contains an RPC wrapper.
38 lines (30 loc) • 1.19 kB
JavaScript
const EventEmitter = require('events');
const fs = require('fs');
const Plugin = require('../src/plugin.js');
/* A quick test plugin for an HTLC hodled until releasehtlc RPC method is called
* through lightningd. */
const myWonderfulPlugin = new Plugin({dynamic: true});
myWonderfulPlugin.relasedHtlc = new EventEmitter();
myWonderfulPlugin.addHook('htlc_accepted', () => {
myWonderfulPlugin.log('Ok, I won\'t release the HTLC, but will return!');
return new Promise((resolve, reject) => {
myWonderfulPlugin.relasedHtlc.on('released', () => {
myWonderfulPlugin.log('Resolved');
resolve({'result': 'continue'});
});
});
});
function releaseHtlc(params) {
myWonderfulPlugin.log('Ok, finally I will release the HTLC and all the stuck liquidity.');
myWonderfulPlugin.relasedHtlc.emit('released');
return "OK";
}
function testMethodPromise(params) {
return new Promise((resolve, reject) => {
setTimeout(() => resolve('Ok'), 1000);
});
}
myWonderfulPlugin.addMethod('releasehtlc', releaseHtlc, '', 'release an HTLC', '.');
myWonderfulPlugin.addMethod('testpromise', testMethodPromise, '', '', '');
myWonderfulPlugin.start();