console.info("");
console.info("Key Management & Encryption:");
- console.info(" crowdnode generate [./privkey.wif]");
+ console.info(" crowdnode generate [--plain-text] [./privkey.wif]");
console.info(" crowdnode encrypt"); // TODO allow encrypting one-by-one?
console.info(" crowdnode list");
console.info(" crowdnode use <addr>");
// flags
let forceConfirm = removeItem(args, "--unconfirmed");
+ let plainText = removeItem(args, "--plain-text");
let noReserve = removeItem(args, "--no-reserve");
let subcommand = args.shift();
}
if ("generate" === subcommand) {
- await generateKey({ defaultKey: defaultAddr }, args);
+ await generateKey({ defaultKey: defaultAddr, plainText }, args);
return;
}
/**
* @param {Object} psuedoState
* @param {String} psuedoState.defaultKey - addr name of default key
+ * @param {Boolean} psuedoState.plainText - don't encrypt
* @param {Array<String>} args
*/
-async function generateKey({ defaultKey }, args) {
+async function generateKey({ defaultKey, plainText }, args) {
let name = args.shift();
//@ts-ignore - TODO submit JSDoc PR for Dashcore
let pk = new Dashcore.PrivateKey();
let addr = pk.toAddress().toString();
let plainWif = pk.toWIF();
- let wif = await maybeEncrypt(plainWif);
+ let wif = plainWif;
+ if (!plainText) {
+ wif = await maybeEncrypt(plainWif);
+ }
let filename = `~/${configdir}/keys/${addr}.wif`;
let filepath = Path.join(`${keysDir}/${addr}.wif`);
crowdnode withdrawal [keyfile-or-addr] <percent> # 1.0-100.0 (steps by 0.1)
Helpful Extras:
- crowdnode generate [./privkey.wif]
- crowdnode list
- crowdnode encrypt # TODO
- crowdnode decrypt # TODO
- crowdnode use <addr>
- crowdnode load [keyfile-or-addr] [dash-amount]
crowdnode balance [keyfile-or-addr]
+ crowdnode load [keyfile-or-addr] [dash-amount]
crowdnode transfer <from-keyfile-or-addr> <to-keyfile-or-addr> [dash-amount]
- crowdnode rm <keyfile-or-addr>
+
+Key Management & Encryption:
+ crowdnode generate [./privkey.wif] [--plain-text]
+ crowdnode list
+ crowdnode use <addr> # set as default key
+ crowdnode passphrase # set or rotate passphrase
+ crowdnode import <keyfile> # copy and encrypt key
+ crowdnode encrypt # encrypt all keys
+ crowdnode decrypt # decrypt all keys
+ crowdnode delete <addr> # delete key (must have 0 balance)
CrowdNode HTTP RPC:
crowdnode http FundsOpen <addr>