OSDN Git Service

update key restore
authorZhiting Lin <zlin035@uottawa.ca>
Tue, 4 Aug 2020 02:23:40 +0000 (10:23 +0800)
committerZhiting Lin <zlin035@uottawa.ca>
Tue, 4 Aug 2020 02:23:40 +0000 (10:23 +0800)
src/sdk/keys.js
src/utils/key/createKey.js

index 8c250dc..00bc8f8 100644 (file)
@@ -3,6 +3,7 @@ import {getDB} from '../db/db';
 import {createkey, isValidMnemonic} from '../utils/key/createKey';
 import {encryptKey, decryptKey} from '../utils/key/keystore';
 import { restoreFromKeyStore } from '../utils/account';
+import { camelize } from '../utils/utils';
 
 
 function keysSDK() {
@@ -144,7 +145,6 @@ keysSDK.prototype.restoreFromMnemonic = function(alias, password, mnemonic) {
     data.mnemonic = mnemonic;
 
     const res = createkey(data);
-
     return res;
 };
 
@@ -156,11 +156,25 @@ keysSDK.prototype.restoreFromMnemonic = function(alias, password, mnemonic) {
  */
 keysSDK.prototype.restoreFromKeystore = function( password, keystore) {
 
-    const walletImage = JSON.parse(keystore);
+    const result = decryptKey(keystore, password);
+    result.xpub = result.xPub.toString('hex');
+    delete result['xPub'];
+
+    return result;
+};
+
+/**
+ * Create a new key.
+ *
+ * @param {String} keystore - User specified, unique identifier.
+ */
+keysSDK.prototype.isValidKeystore = function(  keystore ) {
+
+    const walletImage = camelize(JSON.parse(keystore));
 
     let keys, key;
-    if(walletImage.key_images && walletImage.key_images.xkeys ){
-        keys = walletImage.key_images.xkeys;
+    if(walletImage.keyImages && walletImage.keyImages.xkeys ){
+        keys = walletImage.keyImages.xkeys;
     }
 
     // match older version of backups keystore files
@@ -170,16 +184,16 @@ keysSDK.prototype.restoreFromKeystore = function( password, keystore) {
         key  = walletImage;
     }
 
-    if(keys.length>1){
-        throw 'do not support multiple keystore imported.';
+    if(keys){
+        if(keys.length>1){
+            throw 'do not support multiple keystore imported.';
+        }
+        else if(keys.length === 1){
+            key = keys[0];
+        }
     }
-    else if(keys.length === 1){
-        key = keys[0];
-    }
-
-    const result = decryptKey(key, password);
 
-    return result;
+    return key;
 };
 
 /**
index d2526a4..cb52229 100644 (file)
@@ -48,7 +48,11 @@ function isValidMnemonic(mnemonic, language){
 function importKeyFromMnemonic(alias, password, mnemonic, language) {
     isValidMnemonic(mnemonic, language)
 
-    return createKeyFromMnemonic(alias, password, mnemonic);
+    const result = createKeyFromMnemonic(alias, password, mnemonic);
+    result.xpub = result.xPub;
+    delete result['xPub'];
+
+    return result;
 }
 
 function  createKeyFromMnemonic(alias,password, mnemonic) {