Example #1
0
 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);
 })
Example #2
0
 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);
   });
 }
Example #3
0
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`);
    });
  });
}
Example #4
0
 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]);
   });
 }
Example #5
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);
        }

    }
Example #7
0
  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);
    });
  }
Example #8
0
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);
};
Example #9
0
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`);
    });
  });
}
Example #10
0
 .then((serialized) => {
     keystore = Lightwallet.keystore.deserialize(serialized);
     return deriveKey(pwd);
 })
Example #11
0
 deserialize(serialized) {
   this.keystore = lightwallet.keystore.deserialize(serialized);
 }
Example #12
0
 static generateSeed(entropy) {
   return lightwallet.keystore.generateRandomSeed(entropy);
 }
Example #13
0
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);
            });
        }
    });
  }
});