deriveKey('test').then((derivedKey) => { keystore = new Lightwallet.keystore(seed, derivedKey); keystore.generateNewAddress(derivedKey, 1); var address = keystore.getAddresses()[0]; var privkey = keystore.exportPrivateKey(address, derivedKey); resolve(privkey); })
getSeed(password, cb) { lightwallet.keystore.deriveKeyFromPassword(password, (err, pwDerivedKey) => { const seed = this.keystore.getSeed(pwDerivedKey); console.log(`Your seed is: "${seed}". Please write it down.`); cb(seed); }); }
function generateKeystore({ label, mnemonic, password, path, accounts = DEFAULT_ACCOUNTS }) { const dest = `${path}/${PREFIX}${label}.json`; // create dest if it doesn't exist if (!fs.existsSync(path)) { fs.mkdirSync(path); } // throw if it already exists if (fs.existsSync(dest)) { throw new Error(`canceled - label is already in use: ${dest}`); } // generate mnemonic if required Lightwallet.keystore.createVault({ hdPathString: HD_PATH, password, seedPhrase: mnemonic || bip39.generateMnemonic(), }, (err, ks) => { process.stdout.write(`\nGeneratied ${accounts} accounts:\n`); ks.keyFromPassword(password, (err2, pwDerivedKey) => { if (err2) throw err; // generate new address/private key pairs ks.generateNewAddress(pwDerivedKey, accounts); ks.getAddresses().forEach((a) => process.stdout.write(`${a}\n`)); // save the keystore fs.writeFileSync(dest, ks.serialize()); process.stdout.write(`\nSaved keystore:\n${dest}\n`); }); }); }
newAddress(password, cb) { if (password == '') { password = prompt('Enter password to retrieve addresses', 'Password'); } lightwallet.keystore.deriveKeyFromPassword(password, (err, pwDerivedKey) => { if (err) { return cb(err); } this.keystore.generateNewAddress(pwDerivedKey, 1); const addresses = this.keystore.getAddresses(); cb(null, addresses[0]); }); }
.on('data', function (data) { var d = JSON.stringify(data[0]); console.log("data is " + d) var store = lw.keystore.deserialize(d); address = store.addresses[0]; privKey = store.exportPrivateKey(address, options.password); upload(contractName, privKey, argObj) .then(function (solObjWAddr) { //console.log("contract address: " + solObjWAddr) console.log("calling callback"); cb(solObjWAddr); }); })
async verify (seed) { // const pass = this.refs.passphrase.value; seed = seed.replace(/\s+/g, " "); // strip excess whitespaces if (!lightwallet.keystore.isSeedValid(seed)) { this.setState({error:"You've entered invalid seed. Your seed should be 12 words separated by spaces."}); } else { if (this.props.verifyFunc) { if (!this.props.verifyFunc(seed)) { return this.setState({error:"You've entered wrong seed"}); } } let ks = await saveToLocalStorage(this.props.id,seed,'123'); this.props.confirmCallback(ks); } }
init_keystore(seed, password, cb) { lightwallet.keystore.deriveKeyFromPassword(password, (err, pwDerivedKey) => { if (err) { cb(err); return; } try { this.keystore = new lightwallet.keystore(seed, pwDerivedKey); } catch (e) { console.log(e); return cb(`Err ${e}`); } console.log(this.keystore.serialize()); cb(null); }); }
function writeJS(contractName, solObjWAddr) { var symtab = solObjWAddr.symTab; var funcs = Object.keys(symtab).filter(function(name){ return symtab[name]["jsType"] == "Function"; }); var templateString = makeTemplateString('js'); var keystoreStr = fs.readFileSync('key.json').toString(); var developerKeystore = lw.keystore.deserialize(keystoreStr); var inflatedJS = Mustache.render(templateString, { developerKeystore: JSON.stringify(developerKeystore), solObjWAddr: JSON.stringify(solObjWAddr), serverURI: yamlConfig.readYaml('config.yaml').apiURL, }); console.log('writing js/' + contractName + '.js'); fs.writeFileSync('js/' + contractName + '.js', inflatedJS); };
function generateKeystore({ label, path, password }) { const dest = `${path}/${PREFIX}${label}.json`; // throw if it already exists if (!fs.existsSync(dest)) { throw new Error(`Path does not exist: ${dest}`); } // generate mnemonic if required const ks = Lightwallet.keystore.deserialize(fs.readFileSync(dest)); ks.keyFromPassword(password, (err, pwDerivedKey) => { if (err) throw err; const seed = ks.getSeed(pwDerivedKey); process.stdout.write(`\nPrivate key information for: ${dest}\n`); process.stdout.write(`\nSeed Mnemonic:\n${seed}\n\n`); // generate new address/private key pairs ks.getAddresses().forEach((a) => { const privateKey = ks.exportPrivateKey(a, pwDerivedKey); process.stdout.write(`Address: ${a}\nPrivate Key: ${privateKey}\n\n`); }); }); }
.then((serialized) => { keystore = Lightwallet.keystore.deserialize(serialized); return deriveKey(pwd); })
deserialize(serialized) { this.keystore = lightwallet.keystore.deserialize(serialized); }
static generateSeed(entropy) { return lightwallet.keystore.generateRandomSeed(entropy); }
router.post('/:user', cors(), function(req, res) { var user = req.params.user; var thePath = path.join('app', 'users', user); console.log("thePath: " + thePath); if (req.body.faucet === '1'){ var seed = lw.keystore.generateRandomSeed(); var password = req.body.password; var store = new lw.keystore(seed, password); store.generateNewAddress(password); var fileName = path.join(thePath, store.addresses[0] + '.json'); mkdirp(thePath, function (err) { if (err) { console.err(err); res.send(err); } else { fs.writeFile(fileName, store.serialize(), function() { console.log("wrote: " + fileName); }); } }); api.query.serverURI = process.env.API || apiURI; console.log("hitting faucet for " + store.addresses[0]); api.routes.faucet(store.addresses[0]).then(function(result) { res.send(store.addresses[0]); }); } else if(req.body.remove === '1'){ var newAddress = req.body.address; var fileName = path.join(thePath, newAddress + '.json'); console.log("REMOVING: name: " + user + " address = " + req.body.address) del([fileName]).then(function(paths){ console.log('Deleted files and folders:\n', paths.join('\n')); fs.rmdir(thePath, function(err, files){ console.log("user " + user + " gone beacuse empty: "+err); }); }); } else { console.log("just registering name, no faucet called"); var newAddress = req.body.address; var fileName = path.join(thePath, newAddress + '.json'); mkdirp(thePath, function (err) { if (err) { console.err(err); res.send(err); } else { fs.writeFile(fileName, JSON.stringify({ "addresses":[ newAddress ] }), function() { res.send(newAddress); }); } }); } });