 
         return @refresh_balances_promise
 
-    refresh_bonuses_promise: null
-
-    refresh_bonuses: ->
-        if @utils.too_soon("refresh_bonuses", 10 * 1000)
-            return @refresh_bonuses_promise.then (response) =>
-                #console.log "wallet_account_yield(): too soon #{response}"
-                return response
-
-        @refresh_bonuses_promise = @wallet_api.account_yield("").then (response) =>
-            for name_balances_pair in response
-                name = name_balances_pair[0]
-                for asset_id_amt_pair in name_balances_pair[1]
-                    asset_id = asset_id_amt_pair[0]
-                    symbol = @blockchain.asset_records[asset_id].symbol
-                    amount = asset_id_amt_pair[1]
-                    @bonuses[name] = @bonuses[name] || {}
-                    @bonuses[name][symbol] = @utils.newAsset(amount, symbol, @blockchain.symbol2records[symbol].precision)
-
+    # refresh_bonuses_promise: null
+
+    # refresh_bonuses: ->
+    #     if @utils.too_soon("refresh_bonuses", 10 * 1000)
+    #         return @refresh_bonuses_promise.then (response) =>
+    #             #console.log "wallet_account_yield(): too soon #{response}"
+    #             return response
+    #
+    #     @refresh_bonuses_promise = @wallet_api.account_yield("").then (response) =>
+    #         for name_balances_pair in response
+    #             name = name_balances_pair[0]
+    #             for asset_id_amt_pair in name_balances_pair[1]
+    #                 asset_id = asset_id_amt_pair[0]
+    #                 symbol = @blockchain.asset_records[asset_id].symbol
+    #                 amount = asset_id_amt_pair[1]
+    #                 @bonuses[name] = @bonuses[name] || {}
+    #                 @bonuses[name][symbol] = @utils.newAsset(amount, symbol, @blockchain.symbol2records[symbol].precision)
+
+    refresh_vesting_balances_promise: null
+    refresh_vesting_balances: =>
+        @refresh_vesting_balances_promise = @wallet_api.account_vesting_balances("").then (response) =>
+          for name_balanes_pair in response
+             name = name_balanes_pair[0]
+             @vesting_balances[name] = name_balanes_pair[1]
+
+    vesting_balances_summary: (name) =>
+        return @vesting_balances_summary[name] if @vesting_balances_summary[name]
+        return 0 unless @vesting_balances[name]
+
+        available = 0; vested = 0; claimed = 0; original = 0
+        for record in @vesting_balances[name]
+            available += record["available_balance"]
+            vested += record["vested_balance"]
+            claimed += record["claimed_balance"]
+            original += record["original_balance"]
+
+        symbol = 'PLS'; precision = @blockchain.symbol2records[symbol].precision
+        return (
+            @vesting_balances_summary[name] =
+                available: @utils.newAsset available, symbol, precision
+                vested:    @utils.newAsset vested, symbol, precision
+                claimed:   @utils.newAsset claimed, symbol, precision
+                original:  @utils.newAsset original, symbol, precision
+        )
 
     # turn raw rpc return value into nice object
     populate_account: (val) ->

        clear @contacts
        clear @approvals
        clear @balances
        clear @bonuses
        clear @asset_balances
        clear @transactions
        @transactions["*"]=[]

    approvals: {}

    balances: {}
    # bonuses: {}
    vesting_balances: {}

    asset_balances : {}

