OSDN Git Service

update the account create logic
authorZhiting Lin <zlin035@uottawa.ca>
Thu, 27 Aug 2020 08:46:21 +0000 (16:46 +0800)
committerZhiting Lin <zlin035@uottawa.ca>
Thu, 27 Aug 2020 08:46:21 +0000 (16:46 +0800)
src/models/account.js
src/views/welcome/creation.vue
src/views/welcome/verifyMnemonic.vue

index c4775c9..b2c50de 100644 (file)
@@ -8,7 +8,7 @@ let account = {
   setupNet: bytom.setupNet
 }
 
-account.create = function(accountAlias, keyAlias, passwd, context) {
+account.createKey = function(accountAlias, keyAlias, passwd, context) {
   let retPromise = new Promise((resolve, reject) => {
     if (!keyAlias) {
       keyAlias = `${accountAlias}-key-${uuid.v4()}`
@@ -24,37 +24,51 @@ account.create = function(accountAlias, keyAlias, passwd, context) {
     _bytom.keychain.removeUnverifyIdentity();
     _bytom.settings.netType = 'bytom';
 
-    const res = bytom.keys.createKey(keyAlias, passwd)
+    const resultObj = bytom.keys.createKey(keyAlias, passwd)
 
+    resultObj.alias = accountAlias
+    resultObj.keyAlias = keyAlias
+    resultObj.vMnemonic = false
+
+    context[Actions.SET_MNEMONIC](resultObj['mnemonic']).then(()=>{
+      delete resultObj['mnemonic']
+
+      _bytom.currentAccount = resultObj
+      context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
+        resolve(resultObj)
+      }).catch(e => { throw e })
+    })
+    .catch(error => {
+      reject(error)
+    })
+  })
+  return retPromise
+}
+
+account.createAccount = function( context) {
+  let retPromise = new Promise((resolve, reject) => {
+    const _bytom = context.bytom.clone();
+    const currentAccount = _bytom.currentAccount
+
+    const keystore = currentAccount.keystore
     bytom.setupNet(`${context.net}bytom`)
-    bytom.accounts.createNewAccount(res.xpub).then( async (ret) => {
-      let resultObj =  Object.assign(res, ret)
-      resultObj.alias = accountAlias
-      resultObj.keyAlias = keyAlias
-      resultObj.vMnemonic = false
+    bytom.accounts.createNewAccount(keystore.xpub).then( async (ret) => {
+      let resultObj =  Object.assign(currentAccount, ret)
+      resultObj.vMnemonic = true;
 
       const domains = await getDomains();
       _bytom.settings.domains = Array.from(new Set(_bytom.settings.domains.concat(domains)))
 
-
-      context[Actions.SET_MNEMONIC](resultObj['mnemonic']).then(()=>{
-        delete resultObj['mnemonic']
-
-        _bytom.keychain.pairs[accountAlias] = resultObj
-        _bytom.currentAccount = resultObj
-        context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
-          resolve(resultObj)
-        }).catch(e => { throw e })
-      })
-      .catch(error => {
-        reject(error)
-      })
+      _bytom.keychain.pairs[currentAccount.alias] = resultObj
+      _bytom.currentAccount = resultObj
+      context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
+        resolve(resultObj)
+      }).catch(e => { throw e })
     })
   })
   return retPromise
 }
 
-
 account.restoreByMnemonic = function(accountAlias, mnemonic, passwd, context) {
   let retPromise = new Promise((resolve, reject) => {
     const keyAlias = `${accountAlias}-key-${uuid.v4()}`
index a7d569d..f97faed 100644 (file)
@@ -254,7 +254,7 @@ export default {
               onCancel: this.onCancel
             });
 
-            account.create(this.formItem.accAlias, null, this.formItem.passwd1, this).then(currentAccount => {
+            account.createKey(this.formItem.accAlias, null, this.formItem.passwd1, this).then(() => {
                 loader.hide();
                 this.formItem = {};
                 this.$router.push('/mnemonic');
index 887b8b5..40a0fac 100644 (file)
@@ -159,7 +159,10 @@ export default {
         'mnemonic'
       ]),
       ...mapGetters([
-        'currentAccount'
+        'currentAccount',
+        'net',
+        'language',
+        'netType'
       ])
     },
     props: {
@@ -179,12 +182,21 @@ export default {
             return;
           }
 
-          const bytom = this.bytom.clone();
-          bytom.currentAccount.vMnemonic = true;
-          bytom.keychain.pairs[bytom.currentAccount.alias].vMnemonic = true;
-          this[Actions.UPDATE_STORED_BYTOM](bytom).then(()=>{
+          let loader = this.$loading.show({
+            container: null,
+            canCancel: true,
+            onCancel: this.onCancel
+          });
+
+          account.createAccount(this).then(() => {
+            loader.hide();
             this[Actions.PUSH_ALERT](this.$t("successMsg.createWallet"))
-          })
+          }).catch(err => {
+            loader.hide();
+            this.$toast.error(
+              err.message || err
+            )
+          });
         },
         updateMnemonicList(m){
           const i = this.inputMnemonic.indexOf(m)