OSDN Git Service

update balances display format.
authorZhiting Lin <zlin035@uottawa.ca>
Wed, 29 May 2019 06:03:39 +0000 (14:03 +0800)
committerZhiting Lin <zlin035@uottawa.ca>
Wed, 29 May 2019 06:03:39 +0000 (14:03 +0800)
src/background.js
src/models/account.js
src/views/home.vue
src/views/sendTransaction/signMessage.vue
src/views/sendTransaction/transfer.vue
src/views/sendTransaction/transferConfirm.vue
src/views/sideMenu/homeMenu.vue

index a3913e2..df432bd 100644 (file)
@@ -233,11 +233,7 @@ export default class Background {
     delete(currentAccount['net'])
     currentAccount['accountId'] = currentAccount['guid']
     delete(currentAccount['guid'])
-    currentAccount['balance'] = {
-      'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' : {
-        amount: currentAccount['balance']
-      }
-    }
+    delete(currentAccount['balance'])
 
     sendResponse(currentAccount)
   }
@@ -254,11 +250,7 @@ export default class Background {
         delete(account['net'])
         account['accountId'] = account['guid']
         delete(account['guid'])
-        account['balance'] = {
-          'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff': {
-            amount: account['balance']
-          }
-        }
+        delete(account['balance'])
       })
       sendResponse(accountList)
     })
index f446c61..3cd171f 100644 (file)
@@ -25,30 +25,41 @@ account.create = function(accountAlias, keyAlias, passwd, success, error) {
   return retPromise
 }
 
-const ASSET_BTM =
-  'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
-
-account.balance = function(guid, dstAsset) {
-  if (dstAsset == undefined) {
-    dstAsset = ASSET_BTM
-  }
-
+account.balance = function(guid) {
   let retPromise = new Promise((resolve, reject) => {
     bytom.accounts
       .listAddressUseServer(guid)
       .then(addresses => {
-        let balance = 0
-        addresses.forEach(item => {
-          if (item.balances != null) {
-            item.balances.forEach(asset => {
-              if (asset.asset == dstAsset) {
-                balance += Number(asset.balance)
-              }
-            })
+        let balances = []
+        addresses.forEach(address => {
+          if (address.balances != null) {
+            balances = balances.concat(address.balances)
           }
         })
-        balance = dstAsset === ASSET_BTM? (balance / 100000000): balance
-        resolve(balance)
+        let obj = {};
+
+        balances.forEach(function (balance) {
+          if(obj.hasOwnProperty(balance.asset)) {
+            obj[balance.asset].balance = Number(obj[balance.asset].balance) + Number(balance.balance);
+          } else {
+            balance.balance =  Number(balance.balance)
+            obj[balance.asset] = balance;
+            delete obj[balance.asset]['total_received']
+            delete obj[balance.asset]['total_sent']
+            delete obj[balance.asset]['in_btc']
+            delete obj[balance.asset]['in_cny']
+            delete obj[balance.asset]['in_usd']
+          }
+        });
+
+
+        let res = [];
+
+        for(let prop in obj) {
+          res.push(obj[prop]);
+        }
+
+        resolve(res)
       })
       .catch(error => {
         reject(error)
@@ -63,8 +74,8 @@ account.list = function() {
       .listAccountUseServer()
       .then(accounts => {
         Promise.all(accounts.map(async (account) => {
-          const balance = await this.balance(account.guid)
-          account.balance = balance
+          const balances = await this.balance(account.guid)
+          account.balances = balances
         })).then(()=>{
           resolve(accounts)
         })
index d599f87..c609734 100644 (file)
@@ -383,7 +383,9 @@ export default {
             })
         },
         refreshBalance: function (guid) {
-            account.balance(guid).then(balance => {
+            account.balance(guid).then(balances => {
+                const balanceObject = balances.filter(b => b.asset === BTM)[0]
+                const balance = balanceObject.balance/Math.pow(10,balanceObject.decimals)
                 this.currentAccount.balance = balance;
                 this.currentAccount = Object.assign({}, this.currentAccount);
             }).catch(error => {
@@ -399,7 +401,6 @@ export default {
                     }
 
                     const formattedTx = this.transactionsFormat(transactions);
-                    console.log("formatTx", formattedTx);
                     resolve(formattedTx)
                 }).catch(error => {
                     console.log(error);
index 0d83f51..ff1255a 100644 (file)
       </div>
       <div>
         <div class="token-amount">
-          {{account.balance}}
+          {{accountBalance}}
           <span class="asset">BTM</span>
         </div>
         <div class="small color-grey">
@@ -157,6 +157,8 @@ import transaction from "@/models/transaction";
 import account from "@/models/account";
 import getLang from "@/assets/language/sdk";
 import { LocalStream } from 'extension-streams';
+import { BTM } from "@/utils/constants";
+
 
 export default {
     data() {
@@ -164,6 +166,7 @@ export default {
             full: false,
             accounts:{},
             account: {},
+            accountBalance: 0.00,
             address: '',
             message: '',
             password:''
@@ -212,6 +215,12 @@ export default {
         account.setupNet(localStorage.bytomNet);
         account.list().then(accounts => {
           const account = accounts.filter(a => a.address === this.address)[0]
+
+          const balances = account.balances
+          const balanceObject = balances.filter(b => b.asset === BTM)[0]
+          const balance = balanceObject.balance/Math.pow(10,balanceObject.decimals)
+          this.accountBalance = balance
+
           this.account = account
         });
       }
index ab474d6..bc4ff27 100644 (file)
@@ -118,7 +118,7 @@ import account from "@/models/account";
 import transaction from "@/models/transaction";
 import getLang from "@/assets/language/sdk";
 import Confirm from "./transferConfirm";
-import { LocalStream } from 'extension-streams';
+import { BTM } from "@/utils/constants";
 
 export default {
     components: {
@@ -183,7 +183,9 @@ export default {
                 }
             });
 
-            account.balance(newGuid).then(balance => {
+            account.balance(newGuid).then(balances => {
+              const balanceObject = balances.filter(b => b.asset === BTM)[0]
+              const balance = balanceObject.balance/Math.pow(10,balanceObject.decimals)
                 this.accountBalance = balance;
             }).catch(error => {
                 console.log(error);
index aaf8a98..a6477ba 100644 (file)
@@ -158,6 +158,7 @@ import transaction from "@/models/transaction";
 import modalPasswd from "@/components/modal-passwd";
 import getLang from "@/assets/language/sdk";
 import { LocalStream } from 'extension-streams';
+
 export default {
     components: {
         modalPasswd
index b90bb6d..5bb1cbe 100644 (file)
@@ -89,7 +89,7 @@
                       </div>
                         <div class="account">
                             <div class="account-alias">{{account.alias}}</div>
-                            <div class="account-asset">{{account.balance}} BTM</div>
+                            <div class="account-asset">{{calculateBalance(account.balances)}} BTM</div>
                         </div>
                     </div>
                 </div>
 </template>
 
 <script>
-export default {
+  import { BTM } from "@/utils/constants";
+
+  export default {
     name: "",
     data() {
         return {
@@ -140,6 +142,11 @@ export default {
             this.selectedAccount = Object.assign({}, accountInfo);
             this.$router.push({ name: 'home', params: { selectedAccount: this.selectedAccount } })
         },
+        calculateBalance: function (balances) {
+          const balanceObject = balances.filter(b => b.asset === BTM)[0]
+          const balance = balanceObject.balance/Math.pow(10,balanceObject.decimals)
+          return balance
+        }
     }, mounted() {
         let params = this.$route.params;