Viewing File: /home/ubuntu/route-and-root-frontend-base/node_modules/eth-lib/src/passphrase.js
const Hash = require("./hash");
const Bytes = require("./bytes");
const Desubits = require("./desubits");
// Bytes -> Bytes
const bytesAddChecksum = (bytes) => {
const hash = Hash.keccak256(bytes);
const sum = Bytes.slice(0, 1, hash);
return Bytes.concat(bytes, sum);
};
// Bytes -> Bool
const bytesChecksum = (bytes) => {
const length = Bytes.length(bytes);
const prefix = Bytes.slice(0, length - 1, bytes);
return bytesAddChecksum(prefix) === bytes;
};
// () ~> Passphrase
const create = () => {
const bytes = bytesAddChecksum(Bytes.random(11));
const seed = Desubits.fromBytes(bytes);
const passphrase = seed.replace(/([a-z]{8})/g, "$1 ");
return passphrase;
};
// Passphrase -> Bytes
const toBytes = (passphrase) => {
const seed = passphrase.replace(/ /g, "");
const bytes = Desubits.toBytes(passphrase);
return bytes;
};
// Passphrase -> Bool
const checksum = (passphrase) =>
bytesChecksum(toBytes(passphrase));
// Passphrase -> Bytes
const toMasterKey = (passphrase) => {
let hash = Hash.keccak256;
let bytes = toBytes(passphrase);
for (let i = 0, l = Math.pow(2,12); i < l; ++i)
bytes = hash(bytes);
return bytes;
}
module.exports = {
create,
checksum,
toMasterKey
}
Back to Directory
File Manager