mnsig - cosign all pending proposals
var mnsig = require('mnsig-js-client');
// Adjust all these to match your data.
var credentials = {
instance: 'instance name',
apiToken: 'abctoken',
};
var wallet = 'wallet name';
var localPriv = 'xprv...';
var tokenLimit = 5*1e8; // 5 BTC
var client = new mnsig.Client();
client.token = credentials.apiToken;
client.instance = credentials.instance;
function signPending() {
client.getProposalsByState({wallet: wallet, state: 'partial'}, function(err, json) {
if (err) {
console.log('getProposalsByState failed:', err);
return;
}
var proposals = json.proposals;
var done = 0;
if (!proposals.length) {
return setTimeout(signPending, 60 * 1000);
}
proposals.forEach(function(proposal) {
if (proposal.satoshis >= tokenLimit) {
// Do not try signing something that is not allowed for this token.
done++;
if (done == proposals.length) {
setTimeout(signPending, 60 * 1000);
}
return;
}
console.log('signing proposal', proposal.id);
client.localSign(proposal, localPriv, function(err, json) {
done++;
if (done == proposals.length) {
setTimeout(signPending, 60 * 1000);
}
if (err) {
console.log('localSign failed:', err, 'proposal', proposal.id);
return;
}
console.log('signed proposal', proposal.id);
});
});
});
}
signPending();
no comments