keyvenant
Version:
Keyvenant is a JavaScript tool to generate and export CovenantSQL keys to facilitate key management locally and in web extensions.
49 lines • 3.96 kB
JavaScript
import fs from 'fs';
import path from 'path';
export const isBrowser = typeof process === 'undefined' || !process.nextTick;
function isHex(str) {
return str.length % 2 === 0 && str.match(/^[0-9a-f]+$/i)
? true
: false;
}
function isBase64(str) {
if (str.length % 4 > 0 || str.match(/[^0-9a-z+\/=]/i)) {
return false;
}
const index = str.indexOf('=');
return (index === -1 || str.slice(index).match(/={1,2}/))
? true
: false;
}
export function string2Buffer(str, enc) {
if (!enc && isHex(str)) {
enc = 'hex';
}
if (!enc && isBase64(str)) {
enc = 'base64';
}
return Buffer.from(str, enc);
}
function generateKeystoreFilename(address) {
let date = new Date().toISOString();
// Windows does not support letter ':' in filename
let filename = 'UTC--' + date.replace(/\:/g, '-') + '--' + address;
return filename;
}
export function exportToFile(keystore) {
// if in browser return keystore object as stringify JSON
if (isBrowser) {
return JSON.stringify(keystore);
}
let filename = generateKeystoreFilename(keystore.address);
// default path is keystore folder
let outpath = path.join(filename);
fs.writeFileSync(outpath, JSON.stringify(keystore, null, 2));
return outpath;
}
export function importFromFile(filepath) {
let file = fs.readFileSync(filepath, 'utf8');
let keystore = JSON.parse(file);
return keystore;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFFdkIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUE7QUFFNUUsU0FBUyxLQUFLLENBQUMsR0FBVztJQUN4QixPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUN0RCxDQUFDLENBQUMsSUFBSTtRQUNOLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDWCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsR0FBVztJQUMzQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDckQsT0FBTyxLQUFLLENBQUE7S0FDYjtJQUNELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDOUIsT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsSUFBSTtRQUNOLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFXLEVBQUUsR0FBWTtJQUNuRCxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN0QixHQUFHLEdBQUcsS0FBSyxDQUFBO0tBQ1o7SUFDRCxJQUFJLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN6QixHQUFHLEdBQUcsUUFBUSxDQUFBO0tBQ2Y7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQ2hDLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUMvQixPQUFlO0lBRWYsSUFBSSxJQUFJLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUMzQyxrREFBa0Q7SUFDbEQsSUFBSSxRQUFRLEdBQVcsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUE7SUFFMUUsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQzFCLFFBQWE7SUFFYix5REFBeUQ7SUFDekQsSUFBSSxTQUFTLEVBQUU7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7S0FDaEM7SUFFRCxJQUFJLFFBQVEsR0FBVyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDakUsa0NBQWtDO0lBQ2xDLElBQUksT0FBTyxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFekMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDNUQsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzVCLFFBQWdCO0lBRWhCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzVDLElBQUksUUFBUSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFdkMsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQyJ9