OSDN Git Service

fix: update 2.0
authorj <coffce404@gmail.com>
Fri, 6 Aug 2021 06:07:12 +0000 (14:07 +0800)
committerj <coffce404@gmail.com>
Fri, 6 Aug 2021 06:07:12 +0000 (14:07 +0800)
src/assets/language/cn.js
src/assets/language/en.js
src/background.js
src/inject.js
src/migrations/versions/version.js
src/models/account.js
src/models/transaction.js
src/models/wallet.js
src/views/assetList.vue
src/views/backup/backupMnemonic.vue
src/views/home.vue

index f9a61ff..47fc931 100644 (file)
@@ -103,6 +103,7 @@ const cn = {
   listAsset: {
     all:'全部',
     fail:'失败',
+    confirming: '确认中',
     main:'主链',
     side:'侧链',
   },
index 6496714..271487a 100644 (file)
@@ -103,6 +103,7 @@ const en = {
   listAsset: {
     all:'All',
     fail:'Failed',
+    confirming: 'Confirming',
     main:'Chain',
     side:'Sidechain',
   },
index b5eccc5..b7b374b 100644 (file)
@@ -288,11 +288,12 @@ export default class Background {
       if(!currentAccount){
         sendResponse(Error.signatureAccountMissing())
       }else{
-
         const {vpAddress, address} = currentAccount
         let account = {
           addresses: [vpAddress, address],
-          rootXPub: currentAccount.xpub
+          rootXPub: currentAccount.xpub,
+          net: bytom.net,
+          chain: bytom.chain
         }
         if(bytom.settings.netType === 'vapor'){
           account.address = vpAddress;
index 4078f54..57e6fce 100644 (file)
@@ -44,7 +44,10 @@ class Inject {
           switch (p.type){
             case 'default_account':{
               window.bytom.emit(MsgTypes.ACCOUNT_CHANGED, [p.value])
-              window.bytom2.setAccount(p.value && p.value.address)
+              window.bytom2.setAccount(p.value && {
+                address: p.value.address,
+                xpub: p.value.rootXPub
+              })
               break
             }
             case 'net':{
index f90ab87..8edc2f5 100644 (file)
@@ -1,2 +1,2 @@
-export * from './3.0.0';
+// export * from './3.0.0';
 export * from './3.0.5';
index 0e488b4..b639f50 100644 (file)
@@ -19,8 +19,8 @@ let account = {
   }
 }
 
-function findOrCreateAccount (pubkey, chain) {
-  const currentChain = wallet.options.chain
+function findOrCreateAccount (pubkey, guid, chain) {
+  const currentChain = wallet.chain
   setChain(chain)
   // return bytom.wallet.list(pubkey).then(async (wallet) =>{
   return wallet.getWallets(pubkey).then(async (res) =>{
@@ -31,19 +31,19 @@ function findOrCreateAccount (pubkey, chain) {
       }
     } else {
       // return bytom.accounts.createNewAccount(pubkey, 'byone')
-      return wallet.createAccount(pubkey, 'byone')
+      return wallet.createAccount(pubkey, guid)
     }
   }).finally(() => {
     setChain(currentChain)
   })
 }
 
-function createAccount (pubkey, chain) {
+function createAccount (pubkey, guid, chain) {
   // bytom.setupNet(`${net}${chain}`)
   // return bytom.accounts.createNewAccount(pubkey, 'byone')
-  const currentChain = wallet.options.chain
+  const currentChain = wallet.chain
   setChain(chain)
-  return wallet.createAccount(pubkey, 'byone').finally(() => {
+  return wallet.createAccount(pubkey, guid).finally(() => {
     setChain(currentChain)
   })
 }
@@ -92,28 +92,44 @@ account.createAccount = function( context) {
     const currentAccount = _bytom.currentAccount
     const keystore = currentAccount.keystore
 
-    Promise.all([
-      createAccount(keystore.xpub, 'bytom'),
-      createAccount(keystore.xpub, 'bytom1')
-    ]).then(async ([bytom2Account, bytom1Account]) => {
-      let resultObj =  Object.assign(currentAccount, bytom2Account)
-      resultObj.vMnemonic = true;
-      resultObj.bytom1 = bytom1Account
-
-      const domains = await getDomains();
-      _bytom.settings.domains = Array.from(new Set(_bytom.settings.domains.concat(domains)))
-
-      _bytom.keychain.pairs[_bytom.settings.network][currentAccount.alias] = resultObj
-      _bytom.currentAccount = resultObj
-      context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
-        resolve(resultObj)
-      }).catch(e => { throw e })
+    createAccount(keystore.xpub, null, 'bytom1').then((bytom1Account) => {
+      return createAccount(keystore.xpub, bytom1Account.guid, 'bytom').then(async (bytom2Account) => {
+        let resultObj =  Object.assign(currentAccount, bytom2Account)
+        resultObj.vMnemonic = true;
+        resultObj.bytom1 = bytom1Account
+  
+        const domains = await getDomains();
+        _bytom.settings.domains = Array.from(new Set(_bytom.settings.domains.concat(domains)))
+  
+        _bytom.keychain.pairs[_bytom.settings.network][currentAccount.alias] = resultObj
+        _bytom.currentAccount = resultObj
+        context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
+          resolve(resultObj)
+        }).catch(e => { throw e })
+      })
     })
+    // Promise.all([
+    //   createAccount(keystore.xpub, 'bytom1')
+    // ]).then(async ([bytom2Account, bytom1Account]) => {
+    //   let resultObj =  Object.assign(currentAccount, bytom2Account)
+    //   resultObj.vMnemonic = true;
+    //   resultObj.bytom1 = bytom1Account
+
+    //   const domains = await getDomains();
+    //   _bytom.settings.domains = Array.from(new Set(_bytom.settings.domains.concat(domains)))
+
+    //   _bytom.keychain.pairs[_bytom.settings.network][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()}`
 
@@ -129,30 +145,29 @@ account.restoreByMnemonic = function(accountAlias, mnemonic, passwd, context) {
 
     // const res = bytom.keys.restoreFromMnemonic(keyAlias, passwd, mnemonic)
     const res = wallet.restoreFromMnemonic(keyAlias, passwd, mnemonic)
-    
-    Promise.all([
-      findOrCreateAccount(res.xpub, 'bytom'),
-      findOrCreateAccount(res.xpub, 'bytom1'),
-    ]).then(async ([bytom2Account, bytom1Account]) => {
-      const domains = await getDomains();
-      _bytom.settings.domains = Array.from(new Set(_bytom.settings.domains.concat(domains)))
-      
-      let resultObj =  Object.assign(res, bytom2Account)
-      resultObj.alias = accountAlias
-      resultObj.keyAlias = keyAlias
-      resultObj.vMnemonic = true
-      resultObj.bytom1 = bytom1Account
-
-      _bytom.keychain.pairs[_bytom.settings.network][accountAlias] = resultObj
-      _bytom.currentAccount = resultObj
 
-      context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
-        resolve(bytom2Account)
-      })
-      .catch(error => {
-        reject(error)
+    // findOrCreateAccount(res.xpub, null, 'bytom1'),
+    findOrCreateAccount(res.xpub, null, 'bytom1').then((bytom1Account) => {
+      findOrCreateAccount(res.xpub, bytom1Account.guid, 'bytom').then(async (bytom2Account) => {
+        const domains = await getDomains();
+        _bytom.settings.domains = Array.from(new Set(_bytom.settings.domains.concat(domains)))
+        
+        let resultObj =  Object.assign(res, bytom2Account)
+        resultObj.alias = accountAlias
+        resultObj.keyAlias = keyAlias
+        resultObj.vMnemonic = true
+        resultObj.bytom1 = bytom1Account
+
+        _bytom.keychain.pairs[_bytom.settings.network][accountAlias] = resultObj
+        _bytom.currentAccount = resultObj
+
+        context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
+          resolve(bytom2Account)
+        })
+        .catch(error => {
+          reject(error)
+        })
       })
-
     })
   })
   return retPromise
@@ -173,31 +188,29 @@ account.restoreByKeystore = function(accountAlias, keystore, password, context)
 
     // const res = bytom.keys.restoreFromKeystore(password, keystore)
     const res = wallet.restoreFromKeystore(password, keystore)
-
-    Promise.all([
-      findOrCreateAccount(res.xpub, 'bytom'),
-      findOrCreateAccount(res.xpub, 'bytom1'),
-    ]).then(async ([bytom2Account, bytom1Account]) => {
-      const domains = await getDomains();
-      _bytom.settings.domains = Array.from(new Set(_bytom.settings.domains.concat(domains)))
-      
-      let resultObj =  Object.assign(bytom2Account, {})
-      resultObj.alias = accountAlias
-      resultObj.keyAlias = res.keyAlias
-      resultObj.vMnemonic = true
-      resultObj.keystore = keystore
-      resultObj.xpub = res.xpub
-      resultObj.bytom1 = bytom1Account
-
-      _bytom.keychain.pairs[_bytom.settings.network][accountAlias] = resultObj
-      _bytom.currentAccount = resultObj
-
-      context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
-        resolve(bytom2Account)
-      })
-        .catch(error => {
-          reject(error)
+    findOrCreateAccount(res.xpub, null, 'bytom1').then((bytom1Account) => {
+      findOrCreateAccount(res.xpub, bytom1Account.guid, 'bytom').then(async (bytom2Account) => {
+        const domains = await getDomains();
+        _bytom.settings.domains = Array.from(new Set(_bytom.settings.domains.concat(domains)))
+        
+        let resultObj =  Object.assign(bytom2Account, {})
+        resultObj.alias = accountAlias
+        resultObj.keyAlias = res.keyAlias
+        resultObj.vMnemonic = true
+        resultObj.keystore = keystore
+        resultObj.xpub = res.xpub
+        resultObj.bytom1 = bytom1Account
+
+        _bytom.keychain.pairs[_bytom.settings.network][accountAlias] = resultObj
+        _bytom.currentAccount = resultObj
+
+        context[Actions.UPDATE_STORED_BYTOM](_bytom).then(() => {
+          resolve(bytom2Account)
         })
+          .catch(error => {
+            reject(error)
+          })
+      })
     })
   })
   return retPromise
index f40ccb8..ecafa83 100644 (file)
@@ -8,7 +8,7 @@ let transaction = {};
 transaction.list = function(address, asset_id, start, limit, tx_types) {
   const filter = {asset_id}
   if(tx_types){
-    filter.tx_types = tx_types
+    filter.tx_type = tx_types[0]
   }
   // return bytom.transaction.list(guid, filter, null, start, limit);
   return wallet.getTransactions({
@@ -313,10 +313,10 @@ function signTx(address, transaction, password, context){
   if(!keyArray){
     throw 'Account not found.'
   }else{
-    const key = JSON.stringify(keyArray.keystore)
+    // const key = JSON.stringify(keyArray.keystore)
     return new Promise((resolve, reject) => {
       try {
-        const data = wallet.signTransaction(transaction, password, key)
+        const data = wallet.signTransaction(transaction, password, keyArray.keystore)
         resolve(data)
       } catch(e) {
         reject(e)
index 4fc798c..41dfc11 100644 (file)
@@ -3,25 +3,16 @@ import bytom from './bytom'
 import { networks } from '../utils/constants'
 
 export const wallet = new Wallet({
-  url: {
-    bytom: networks.testnet,
-    bytom1: networks.mainnet,
-    vapor: networks.mainnet
-  },
+  net: 'testnet',
   chain: 'bytom'
 })
 
-export function setNet (net) {
-  wallet.setOptions({
-    url: {
-      bytom: networks.testnet,
-      bytom1: networks[net],
-      vapor: networks[net]
-    }
-  })
+export function setNet(net) {
+  // wallet.setNet(net)
 }
 
-export function setChain (chain) {
-  wallet.setOptions({ chain })
+export function setChain(chain) {
+  wallet.setChain(chain)
 }
 
+window.wallet = wallet
index 8422e3d..dc5c2b7 100644 (file)
@@ -114,8 +114,9 @@ font-size: 15px;
         </section>
             <section class="transaction-title">
                 <div :class="{'color-black': (type==='all') }" @click="changeType('all')" >{{ $t('listAsset.all') }}</div>
-                <div :class="{'color-black': (type==='transfer_in') }" @click="changeType('transfer_in')" >{{ $t('common.transfer_in') }}</div>
+                <!-- <div :class="{'color-black': (type==='transfer_in') }" @click="changeType('transfer_in')" >{{ $t('common.transfer_in') }}</div> -->
                 <div :class="{'color-black': (type==='transfer_out') }" @click="changeType('transfer_out')" >{{ $t('common.transfer_out') }}</div>
+                <!-- <div :class="{'color-black': (type==='vote') }" @click="changeType('vote')" >{{ $t('common.vote') }}</div> -->
             </section>
 
             <section class="transactions">
@@ -133,7 +134,7 @@ font-size: 15px;
                           <div class="value">{{transaction.direct}}{{transaction.val}} {{currentAsset.asset.symbol}}</div>
 
                           <div class="addr color-red" v-if="!transaction.blockHeight">
-                            {{ $t('listAsset.fail') }}
+                            {{ $t('listAsset.confirming') }}
                           </div>
                           <div class="addr color-grey" v-else-if="transaction.hasOwnProperty('blockTimestamp')">
                             {{transaction.submissionTimestamp | moment}}
@@ -286,10 +287,13 @@ export default {
                 let type_txs
                 switch (type){
                   case 'transfer_out':
-                    type_txs = ["transfer_out"];
+                    type_txs = ["ordinary"];
                     break;
                   case 'transfer_in':
-                    type_txs = ["transfer_in"];
+                    type_txs = ["ordinary"];
+                    break;
+                  case 'vote':
+                    type_txs = ["vote"];
                     break;
                   default:
                     type_txs = []
@@ -365,14 +369,14 @@ export default {
                   }
                   transaction.address = `${symbol} ${chain}`
                 }else if(transaction.types.includes('vote')){
-                  const pubKey = transaction.outputs.find( i => i.type ==='vote').vote
-                  const item = this.listVote[pubKey]
-                  transaction.address = item? (((this.language ==='zh' || this.language ==='cn')? (item.name ==='-'? null: item.name):item.nameEn)||address.short(item.pubKey)):'-'
+                  // const pubKey = transaction.outputs.find( i => i.type ==='vote').vote
+                  // const item = this.listVote[pubKey]
+                  // transaction.address = item? (((this.language ==='zh' || this.language ==='cn')? (item.name ==='-'? null: item.name):item.nameEn)||address.short(item.pubKey)):'-'
                   transaction.type = this.$t("common.vote")
                 }else if(transaction.types.includes('veto')){
-                  const pubKey = transaction.inputs.find( i => i.type ==='veto').vote
-                  const item = this.listVote[pubKey]
-                  transaction.address = item? (((this.language ==='zh' || this.language ==='cn')? (item.name ==='-'? null: item.name):item.nameEn)||address.short(item.pubKey)):'-'
+                  // const pubKey = transaction.inputs.find( i => i.type ==='veto').vote
+                  // const item = this.listVote[pubKey]
+                  // transaction.address = item? (((this.language ==='zh' || this.language ==='cn')? (item.name ==='-'? null: item.name):item.nameEn)||address.short(item.pubKey)):'-'
                   transaction.type = this.$t("common.veto")
                 }
                 transaction.val =  val ;
index 7d0454d..a0cc1c3 100644 (file)
@@ -45,7 +45,7 @@
         </section>
         <section >
           <div class="mnemnonic-box">
-                <span class="mnemonic" v-for="n in inputMnemonic">{{ n }}  </span>
+                <span class="mnemonic" v-for="n in inputMnemonic">{{ n }} </span>
             </div>
             <p class="hint">{{ $t('backup.mnemonicHint') }}</p>
             <button class="btn btn-primary" @click="back">{{ $t("backup.ok") }}</button>
index c085924..1c22b0c 100644 (file)
@@ -422,6 +422,7 @@ export default {
     },
     watch: {
         '$route'(to, from) {
+          this.refreshBalance(this.address)
             if (to.name.startsWith('menu')) {
                 this.maskShow = true
             } else if (from.name.startsWith('menu')) {