update locked -> pending balance

This commit is contained in:
woodser 2022-08-17 11:50:30 -04:00
parent cb10a65a83
commit f464110fb5
23 changed files with 72 additions and 72 deletions

View file

@ -53,6 +53,7 @@ class BtcBalanceTableBuilder extends AbstractTableBuilder {
this.colLockedBalance = new SatoshiColumn(COL_HEADER_LOCKED_BALANCE); this.colLockedBalance = new SatoshiColumn(COL_HEADER_LOCKED_BALANCE);
} }
@Override
public Table build() { public Table build() {
BtcBalanceInfo balance = (BtcBalanceInfo) protos.get(0); BtcBalanceInfo balance = (BtcBalanceInfo) protos.get(0);

View file

@ -553,14 +553,14 @@ class CoreWalletsService {
if (reservedBalance == null) if (reservedBalance == null)
throw new IllegalStateException("reserved balance is not yet available"); throw new IllegalStateException("reserved balance is not yet available");
var lockedBalance = balances.getLockedBalance().get(); var pendingBalance = balances.getPendingBalance().get();
if (lockedBalance == null) if (pendingBalance == null)
throw new IllegalStateException("locked balance is not yet available"); throw new IllegalStateException("locked balance is not yet available");
return new BtcBalanceInfo(availableBalance.value, return new BtcBalanceInfo(availableBalance.value,
reservedBalance.value, reservedBalance.value,
availableBalance.add(reservedBalance).value, availableBalance.add(reservedBalance).value,
lockedBalance.value); pendingBalance.value);
} }
private XmrBalanceInfo getXmrBalances() { private XmrBalanceInfo getXmrBalances() {
@ -571,8 +571,8 @@ class CoreWalletsService {
if (availableBalance == null) if (availableBalance == null)
throw new IllegalStateException("available balance is not yet available"); throw new IllegalStateException("available balance is not yet available");
var lockedBalance = balances.getLockedBalance().get(); var pendingBalance = balances.getPendingBalance().get();
if (lockedBalance == null) if (pendingBalance == null)
throw new IllegalStateException("locked balance is not yet available"); throw new IllegalStateException("locked balance is not yet available");
var reservedOfferBalance = balances.getReservedOfferBalance().get(); var reservedOfferBalance = balances.getReservedOfferBalance().get();
@ -583,9 +583,9 @@ class CoreWalletsService {
if (reservedTradeBalance == null) if (reservedTradeBalance == null)
throw new IllegalStateException("reserved trade balance is not yet available"); throw new IllegalStateException("reserved trade balance is not yet available");
return new XmrBalanceInfo(availableBalance.longValue() + lockedBalance.longValue(), return new XmrBalanceInfo(availableBalance.longValue() + pendingBalance.longValue(),
availableBalance.longValue(), availableBalance.longValue(),
lockedBalance.longValue(), pendingBalance.longValue(),
reservedOfferBalance.longValue(), reservedOfferBalance.longValue(),
reservedTradeBalance.longValue()); reservedTradeBalance.longValue());
} }

View file

@ -17,8 +17,8 @@ public class XmrBalanceInfo implements Payload {
// all balances are in atomic units // all balances are in atomic units
private final long balance; private final long balance;
private final long unlockedBalance; private final long availableBalance;
private final long lockedBalance; private final long pendingBalance;
private final long reservedOfferBalance; private final long reservedOfferBalance;
private final long reservedTradeBalance; private final long reservedTradeBalance;
@ -28,21 +28,21 @@ public class XmrBalanceInfo implements Payload {
long reservedOfferBalance, long reservedOfferBalance,
long reservedTradeBalance) { long reservedTradeBalance) {
this.balance = balance; this.balance = balance;
this.unlockedBalance = unlockedBalance; this.availableBalance = unlockedBalance;
this.lockedBalance = lockedBalance; this.pendingBalance = lockedBalance;
this.reservedOfferBalance = reservedOfferBalance; this.reservedOfferBalance = reservedOfferBalance;
this.reservedTradeBalance = reservedTradeBalance; this.reservedTradeBalance = reservedTradeBalance;
} }
@VisibleForTesting @VisibleForTesting
public static XmrBalanceInfo valueOf(long balance, public static XmrBalanceInfo valueOf(long balance,
long unlockedBalance, long availableBalance,
long lockedBalance, long pendingBalance,
long reservedOfferBalance, long reservedOfferBalance,
long reservedTradeBalance) { long reservedTradeBalance) {
return new XmrBalanceInfo(balance, return new XmrBalanceInfo(balance,
unlockedBalance, availableBalance,
lockedBalance, pendingBalance,
reservedOfferBalance, reservedOfferBalance,
reservedTradeBalance); reservedTradeBalance);
} }
@ -55,8 +55,8 @@ public class XmrBalanceInfo implements Payload {
public bisq.proto.grpc.XmrBalanceInfo toProtoMessage() { public bisq.proto.grpc.XmrBalanceInfo toProtoMessage() {
return bisq.proto.grpc.XmrBalanceInfo.newBuilder() return bisq.proto.grpc.XmrBalanceInfo.newBuilder()
.setBalance(balance) .setBalance(balance)
.setUnlockedBalance(unlockedBalance) .setAvailableBalance(availableBalance)
.setLockedBalance(lockedBalance) .setPendingBalance(pendingBalance)
.setReservedOfferBalance(reservedOfferBalance) .setReservedOfferBalance(reservedOfferBalance)
.setReservedTradeBalance(reservedTradeBalance) .setReservedTradeBalance(reservedTradeBalance)
.build(); .build();
@ -64,8 +64,8 @@ public class XmrBalanceInfo implements Payload {
public static XmrBalanceInfo fromProto(bisq.proto.grpc.XmrBalanceInfo proto) { public static XmrBalanceInfo fromProto(bisq.proto.grpc.XmrBalanceInfo proto) {
return new XmrBalanceInfo(proto.getBalance(), return new XmrBalanceInfo(proto.getBalance(),
proto.getUnlockedBalance(), proto.getAvailableBalance(),
proto.getLockedBalance(), proto.getPendingBalance(),
proto.getReservedOfferBalance(), proto.getReservedOfferBalance(),
proto.getReservedTradeBalance()); proto.getReservedTradeBalance());
} }
@ -74,8 +74,8 @@ public class XmrBalanceInfo implements Payload {
public String toString() { public String toString() {
return "XmrBalanceInfo{" + return "XmrBalanceInfo{" +
"balance=" + balance + "balance=" + balance +
"unlockedBalance=" + unlockedBalance + "unlockedBalance=" + availableBalance +
", lockedBalance=" + lockedBalance + ", lockedBalance=" + pendingBalance +
", reservedOfferBalance=" + reservedOfferBalance + ", reservedOfferBalance=" + reservedOfferBalance +
", reservedTradeBalance=" + reservedTradeBalance + ", reservedTradeBalance=" + reservedTradeBalance +
'}'; '}';

View file

@ -58,7 +58,7 @@ public class Balances {
@Getter @Getter
private final ObjectProperty<Coin> availableBalance = new SimpleObjectProperty<>(); private final ObjectProperty<Coin> availableBalance = new SimpleObjectProperty<>();
@Getter @Getter
private final ObjectProperty<Coin> lockedBalance = new SimpleObjectProperty<>(); private final ObjectProperty<Coin> pendingBalance = new SimpleObjectProperty<>();
@Getter @Getter
private final ObjectProperty<Coin> reservedOfferBalance = new SimpleObjectProperty<>(); private final ObjectProperty<Coin> reservedOfferBalance = new SimpleObjectProperty<>();
@Getter @Getter
@ -98,7 +98,7 @@ public class Balances {
// Need to delay a bit to get the balances correct // Need to delay a bit to get the balances correct
UserThread.execute(() -> { // TODO (woodser): running on user thread because JFX properties updated for legacy app UserThread.execute(() -> { // TODO (woodser): running on user thread because JFX properties updated for legacy app
updateAvailableBalance(); updateAvailableBalance();
updateLockedBalance(); updatePendingBalance();
updateReservedOfferBalance(); updateReservedOfferBalance();
updateReservedTradeBalance(); updateReservedTradeBalance();
updateReservedBalance(); updateReservedBalance();
@ -111,10 +111,10 @@ public class Balances {
availableBalance.set(Coin.valueOf(xmrWalletService.getWallet() == null ? 0 : xmrWalletService.getWallet().getUnlockedBalance(0).longValueExact())); availableBalance.set(Coin.valueOf(xmrWalletService.getWallet() == null ? 0 : xmrWalletService.getWallet().getUnlockedBalance(0).longValueExact()));
} }
private void updateLockedBalance() { private void updatePendingBalance() {
BigInteger balance = xmrWalletService.getWallet() == null ? new BigInteger("0") : xmrWalletService.getWallet().getBalance(0); BigInteger balance = xmrWalletService.getWallet() == null ? new BigInteger("0") : xmrWalletService.getWallet().getBalance(0);
BigInteger unlockedBalance = xmrWalletService.getWallet() == null ? new BigInteger("0") : xmrWalletService.getWallet().getUnlockedBalance(0); BigInteger unlockedBalance = xmrWalletService.getWallet() == null ? new BigInteger("0") : xmrWalletService.getWallet().getUnlockedBalance(0);
lockedBalance.set(Coin.valueOf(balance.subtract(unlockedBalance).longValueExact())); pendingBalance.set(Coin.valueOf(balance.subtract(unlockedBalance).longValueExact()));
} }
private void updateReservedOfferBalance() { private void updateReservedOfferBalance() {

View file

@ -36,22 +36,21 @@ public class BalancePresentation {
@Getter @Getter
private final StringProperty availableBalance = new SimpleStringProperty(); private final StringProperty availableBalance = new SimpleStringProperty();
@Getter @Getter
private final StringProperty reservedBalance = new SimpleStringProperty(); private final StringProperty pendingBalance = new SimpleStringProperty();
@Getter @Getter
private final StringProperty lockedBalance = new SimpleStringProperty(); private final StringProperty reservedBalance = new SimpleStringProperty();
@Inject @Inject
public BalancePresentation(Balances balances) { public BalancePresentation(Balances balances) {
balances.getAvailableBalance().addListener((observable, oldValue, newValue) -> { balances.getAvailableBalance().addListener((observable, oldValue, newValue) -> {
availableBalance.set(longToXmr(newValue.value)); availableBalance.set(longToXmr(newValue.value));
}); });
balances.getPendingBalance().addListener((observable, oldValue, newValue) -> {
pendingBalance.set(longToXmr(newValue.value));
});
balances.getReservedBalance().addListener((observable, oldValue, newValue) -> { balances.getReservedBalance().addListener((observable, oldValue, newValue) -> {
reservedBalance.set(longToXmr(newValue.value)); reservedBalance.set(longToXmr(newValue.value));
}); });
balances.getLockedBalance().addListener((observable, oldValue, newValue) -> {
lockedBalance.set(longToXmr(newValue.value));
});
} }
// TODO: truncate full precision with ellipses to not break layout? // TODO: truncate full precision with ellipses to not break layout?

View file

@ -251,9 +251,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=There is no market price from ext
mainView.marketPrice.tooltip=Market price is provided by {0}{1}\nLast update: {2}\nProvider node URL: {3} mainView.marketPrice.tooltip=Market price is provided by {0}{1}\nLast update: {2}\nProvider node URL: {3}
mainView.balance.available=Available balance mainView.balance.available=Available balance
mainView.balance.reserved=Reserved in offers mainView.balance.reserved=Reserved in offers
mainView.balance.locked=Locked in trades mainView.balance.pending=Pending balance
mainView.balance.reserved.short=Reserved mainView.balance.reserved.short=Reserved
mainView.balance.locked.short=Locked mainView.balance.pending.short=Pending
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(localhost) mainView.footer.localhostBitcoinNode=(localhost)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=Neexistují tržní ceny od exter
mainView.marketPrice.tooltip=Tržní cena je poskytována {0}{1}\nPoslední aktualizace: {2}\nURL uzlu poskytovatele: {3} mainView.marketPrice.tooltip=Tržní cena je poskytována {0}{1}\nPoslední aktualizace: {2}\nURL uzlu poskytovatele: {3}
mainView.balance.available=Dostupný zůstatek mainView.balance.available=Dostupný zůstatek
mainView.balance.reserved=Rezervováno v nabídkách mainView.balance.reserved=Rezervováno v nabídkách
mainView.balance.locked=Zamčené v obchodech mainView.balance.pending=Zamčené v obchodech
mainView.balance.reserved.short=Rezervováno mainView.balance.reserved.short=Rezervováno
mainView.balance.locked.short=Zamčeno mainView.balance.pending.short=Zamčeno
mainView.footer.usingTor=(přes Tor) mainView.footer.usingTor=(přes Tor)
mainView.footer.localhostBitcoinNode=(localhost) mainView.footer.localhostBitcoinNode=(localhost)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=Es ist kein Marktpreis von extern
mainView.marketPrice.tooltip=Marktpreis bereitgestellt von {0}{1}\nLetzte Aktualisierung: {2}\nURL des Knoten-Anbieters: {3} mainView.marketPrice.tooltip=Marktpreis bereitgestellt von {0}{1}\nLetzte Aktualisierung: {2}\nURL des Knoten-Anbieters: {3}
mainView.balance.available=Verfügbarer Betrag mainView.balance.available=Verfügbarer Betrag
mainView.balance.reserved=In Angeboten reserviert mainView.balance.reserved=In Angeboten reserviert
mainView.balance.locked=In Trades gesperrt mainView.balance.pending=In Trades gesperrt
mainView.balance.reserved.short=Reserviert mainView.balance.reserved.short=Reserviert
mainView.balance.locked.short=Gesperrt mainView.balance.pending.short=Gesperrt
mainView.footer.usingTor=(über Tor) mainView.footer.usingTor=(über Tor)
mainView.footer.localhostBitcoinNode=(localhost) mainView.footer.localhostBitcoinNode=(localhost)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=No existe un precio de mercado di
mainView.marketPrice.tooltip=Precio de mercado ofrecido por {0}{1}\nÚltima actualización: {2}\nURL del nodo proveedor: {3} mainView.marketPrice.tooltip=Precio de mercado ofrecido por {0}{1}\nÚltima actualización: {2}\nURL del nodo proveedor: {3}
mainView.balance.available=Saldo disponible mainView.balance.available=Saldo disponible
mainView.balance.reserved=Reservado en ofertas mainView.balance.reserved=Reservado en ofertas
mainView.balance.locked=Bloqueado en intercambios mainView.balance.pending=Bloqueado en intercambios
mainView.balance.reserved.short=Reservado mainView.balance.reserved.short=Reservado
mainView.balance.locked.short=Bloqueado mainView.balance.pending.short=Bloqueado
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(localhost) mainView.footer.localhostBitcoinNode=(localhost)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=قیمت بازارهای خار
mainView.marketPrice.tooltip=قیمت بازار توسط {0}{1} ارائه شده است\nآخرین به روز رسانی: {2}\nURL لینک Node ارائه دهنده: {3} mainView.marketPrice.tooltip=قیمت بازار توسط {0}{1} ارائه شده است\nآخرین به روز رسانی: {2}\nURL لینک Node ارائه دهنده: {3}
mainView.balance.available=موجودی در دسترس mainView.balance.available=موجودی در دسترس
mainView.balance.reserved=رزرو شده در پیشنهادها mainView.balance.reserved=رزرو شده در پیشنهادها
mainView.balance.locked=قفل شده در معاملات mainView.balance.pending=قفل شده در معاملات
mainView.balance.reserved.short=اندوخته mainView.balance.reserved.short=اندوخته
mainView.balance.locked.short=قفل شده mainView.balance.pending.short=قفل شده
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(لوکال هاست) mainView.footer.localhostBitcoinNode=(لوکال هاست)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=Il n'y a pas de cours de marché
mainView.marketPrice.tooltip=Le prix de marché est fourni par {0}{1}\nDernière mise à jour: {2}\nURL du noeud: {3} mainView.marketPrice.tooltip=Le prix de marché est fourni par {0}{1}\nDernière mise à jour: {2}\nURL du noeud: {3}
mainView.balance.available=Solde disponible mainView.balance.available=Solde disponible
mainView.balance.reserved=Réservé en ordres mainView.balance.reserved=Réservé en ordres
mainView.balance.locked=Bloqué en transactions mainView.balance.pending=Bloqué en transactions
mainView.balance.reserved.short=Réservé mainView.balance.reserved.short=Réservé
mainView.balance.locked.short=Vérouillé mainView.balance.pending.short=Vérouillé
mainView.footer.usingTor=(à travers Tor) mainView.footer.usingTor=(à travers Tor)
mainView.footer.localhostBitcoinNode=(localhost) mainView.footer.localhostBitcoinNode=(localhost)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=Non è disponibile alcun prezzo d
mainView.marketPrice.tooltip=Il prezzo di mercato é fornito da {0}{1}\nUltimo aggiornamento: {2}\nURL del nodo del provider: {3} mainView.marketPrice.tooltip=Il prezzo di mercato é fornito da {0}{1}\nUltimo aggiornamento: {2}\nURL del nodo del provider: {3}
mainView.balance.available=Saldo disponibile mainView.balance.available=Saldo disponibile
mainView.balance.reserved=Riservati nelle offerte mainView.balance.reserved=Riservati nelle offerte
mainView.balance.locked=Bloccati in scambi mainView.balance.pending=Bloccati in scambi
mainView.balance.reserved.short=Riservati mainView.balance.reserved.short=Riservati
mainView.balance.locked.short=Bloccati mainView.balance.pending.short=Bloccati
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(localhost) mainView.footer.localhostBitcoinNode=(localhost)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=利用可能な外部価格フィ
mainView.marketPrice.tooltip=市場価格は{0}{1}に提供されています\n最終更新: {2}\n提供者のードのURL: {3} mainView.marketPrice.tooltip=市場価格は{0}{1}に提供されています\n最終更新: {2}\n提供者のードのURL: {3}
mainView.balance.available=利用可能残高 mainView.balance.available=利用可能残高
mainView.balance.reserved=オファーのために予約済み mainView.balance.reserved=オファーのために予約済み
mainView.balance.locked=トレードにロック中 mainView.balance.pending=トレードにロック中
mainView.balance.reserved.short=予約済 mainView.balance.reserved.short=予約済
mainView.balance.locked.short=ロック中 mainView.balance.pending.short=ロック中
mainView.footer.usingTor=(Tor経由で) mainView.footer.usingTor=(Tor経由で)
mainView.footer.localhostBitcoinNode=(ローカルホスト) mainView.footer.localhostBitcoinNode=(ローカルホスト)

View file

@ -246,9 +246,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=Não foi encontrado preço de mer
mainView.marketPrice.tooltip=Preço de Mercado fornecido por {0}{1}\nÚltima atualização: {2}\nURL do provedor: {3} mainView.marketPrice.tooltip=Preço de Mercado fornecido por {0}{1}\nÚltima atualização: {2}\nURL do provedor: {3}
mainView.balance.available=Saldo disponível mainView.balance.available=Saldo disponível
mainView.balance.reserved=Reservado em ofertas mainView.balance.reserved=Reservado em ofertas
mainView.balance.locked=Travado em negociações mainView.balance.pending=Travado em negociações
mainView.balance.reserved.short=Reservado mainView.balance.reserved.short=Reservado
mainView.balance.locked.short=Travado mainView.balance.pending.short=Travado
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(localhost) mainView.footer.localhostBitcoinNode=(localhost)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=Não há preço de mercado de for
mainView.marketPrice.tooltip=O preço de mercado é fornecido por {0} {1}\nÚltima atualização: {2}\nURL do nó do provedor: {3} mainView.marketPrice.tooltip=O preço de mercado é fornecido por {0} {1}\nÚltima atualização: {2}\nURL do nó do provedor: {3}
mainView.balance.available=Saldo disponível mainView.balance.available=Saldo disponível
mainView.balance.reserved=Reservado em ofertas mainView.balance.reserved=Reservado em ofertas
mainView.balance.locked=Bloqueado em negócios mainView.balance.pending=Bloqueado em negócios
mainView.balance.reserved.short=Reservado mainView.balance.reserved.short=Reservado
mainView.balance.locked.short=Bloqueado mainView.balance.pending.short=Bloqueado
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(localhost) mainView.footer.localhostBitcoinNode=(localhost)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=Нет данных от исто
mainView.marketPrice.tooltip=Рыночный курс предоставлен {0}{1}\nОбновление: {2}\nURL источника данных: {3} mainView.marketPrice.tooltip=Рыночный курс предоставлен {0}{1}\nОбновление: {2}\nURL источника данных: {3}
mainView.balance.available=Доступный баланс mainView.balance.available=Доступный баланс
mainView.balance.reserved=Выделено на предложения mainView.balance.reserved=Выделено на предложения
mainView.balance.locked=Используется в сделках mainView.balance.pending=Используется в сделках
mainView.balance.reserved.short=Выделено mainView.balance.reserved.short=Выделено
mainView.balance.locked.short=В сделках mainView.balance.pending.short=В сделках
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(локальный узел) mainView.footer.localhostBitcoinNode=(локальный узел)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=ไม่มีราคาตล
mainView.marketPrice.tooltip=ราคาตลาดจัดทำโดย {0} {1} \nอัปเดตล่าสุด: {2} \nnode URL ของผู้ให้บริการ: {3} mainView.marketPrice.tooltip=ราคาตลาดจัดทำโดย {0} {1} \nอัปเดตล่าสุด: {2} \nnode URL ของผู้ให้บริการ: {3}
mainView.balance.available=ยอดคงเหลือที่พร้อมใช้งาน mainView.balance.available=ยอดคงเหลือที่พร้อมใช้งาน
mainView.balance.reserved=ข้อเสนอได้รับการจองแล้ว mainView.balance.reserved=ข้อเสนอได้รับการจองแล้ว
mainView.balance.locked=ล็อคในการซื้อขาย mainView.balance.pending=ล็อคในการซื้อขาย
mainView.balance.reserved.short=จองแล้ว mainView.balance.reserved.short=จองแล้ว
mainView.balance.locked.short=ถูกล็อคไว้ mainView.balance.pending.short=ถูกล็อคไว้
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(แม่ข่ายเฉพาะที่) mainView.footer.localhostBitcoinNode=(แม่ข่ายเฉพาะที่)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=Không có giá thị trường t
mainView.marketPrice.tooltip=Giá thị trường được cung cấp bởi {0}{1}\nCập nhật mới nhất: {2}\nURL nút nhà cung cấp: {3} mainView.marketPrice.tooltip=Giá thị trường được cung cấp bởi {0}{1}\nCập nhật mới nhất: {2}\nURL nút nhà cung cấp: {3}
mainView.balance.available=Số dư hiện có mainView.balance.available=Số dư hiện có
mainView.balance.reserved=Phần được bảo lưu trong báo giá mainView.balance.reserved=Phần được bảo lưu trong báo giá
mainView.balance.locked=Khóa trong giao dịch mainView.balance.pending=Khóa trong giao dịch
mainView.balance.reserved.short=Bảo lưu mainView.balance.reserved.short=Bảo lưu
mainView.balance.locked.short=Bị khóa mainView.balance.pending.short=Bị khóa
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(Máy chủ nội bộ) mainView.footer.localhostBitcoinNode=(Máy chủ nội bộ)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=外部交易所供应商没有可
mainView.marketPrice.tooltip=交易所价格提供者 {0}{1}\n最后更新{2}\n提供者节点 URL{3} mainView.marketPrice.tooltip=交易所价格提供者 {0}{1}\n最后更新{2}\n提供者节点 URL{3}
mainView.balance.available=可用余额 mainView.balance.available=可用余额
mainView.balance.reserved=保证金 mainView.balance.reserved=保证金
mainView.balance.locked=冻结余额 mainView.balance.pending=冻结余额
mainView.balance.reserved.short=保证 mainView.balance.reserved.short=保证
mainView.balance.locked.short=冻结 mainView.balance.pending.short=冻结
mainView.footer.usingTor=(通过 Tor mainView.footer.usingTor=(通过 Tor
mainView.footer.localhostBitcoinNode=(本地主机) mainView.footer.localhostBitcoinNode=(本地主机)

View file

@ -243,9 +243,9 @@ mainView.marketPrice.tooltip.bisqInternalPrice=外部交易所供應商沒有可
mainView.marketPrice.tooltip=交易所價格提供者 {0}{1}\n最後更新{2}\n提供者節點 URL{3} mainView.marketPrice.tooltip=交易所價格提供者 {0}{1}\n最後更新{2}\n提供者節點 URL{3}
mainView.balance.available=可用餘額 mainView.balance.available=可用餘額
mainView.balance.reserved=保證金 mainView.balance.reserved=保證金
mainView.balance.locked=凍結餘額 mainView.balance.pending=凍結餘額
mainView.balance.reserved.short=保證 mainView.balance.reserved.short=保證
mainView.balance.locked.short=凍結 mainView.balance.pending.short=凍結
mainView.footer.usingTor=(via Tor) mainView.footer.usingTor=(via Tor)
mainView.footer.localhostBitcoinNode=(本地主機) mainView.footer.localhostBitcoinNode=(本地主機)

View file

@ -278,21 +278,21 @@ public class MainView extends InitializableView<StackPane, MainViewModel> {
} }
}); });
Tuple2<Label, VBox> lockedBalanceBox = getBalanceBox(Res.get("mainView.balance.locked.short")); Tuple2<Label, VBox> pendingBalanceBox = getBalanceBox(Res.get("mainView.balance.pending.short"));
lockedBalanceBox.first.textProperty().bind(model.getLockedBalance()); pendingBalanceBox.first.textProperty().bind(model.getPendingBalance());
lockedBalanceBox.first.tooltipProperty().bind(new ObjectBinding<>() { pendingBalanceBox.first.tooltipProperty().bind(new ObjectBinding<>() {
{ {
bind(model.getLockedBalance()); bind(model.getPendingBalance());
bind(model.getMarketPrice()); bind(model.getMarketPrice());
} }
@Override @Override
protected Tooltip computeValue() { protected Tooltip computeValue() {
String tooltipText = Res.get("mainView.balance.locked"); String tooltipText = Res.get("mainView.balance.pending");
try { try {
String preferredTradeCurrency = model.getPreferences().getPreferredTradeCurrency().getCode(); String preferredTradeCurrency = model.getPreferences().getPreferredTradeCurrency().getCode();
double lockedBalance = Double.parseDouble( double lockedBalance = Double.parseDouble(
model.getLockedBalance().getValue().replace("XMR", "")); model.getPendingBalance().getValue().replace("XMR", ""));
double marketPrice = Double.parseDouble(model.getMarketPrice(preferredTradeCurrency).getValue()); double marketPrice = Double.parseDouble(model.getMarketPrice(preferredTradeCurrency).getValue());
tooltipText += "\n" + currencyFormat.format(lockedBalance * marketPrice) + tooltipText += "\n" + currencyFormat.format(lockedBalance * marketPrice) +
" " + preferredTradeCurrency; " " + preferredTradeCurrency;
@ -318,7 +318,7 @@ public class MainView extends InitializableView<StackPane, MainViewModel> {
secondaryNav.setAlignment(Pos.CENTER); secondaryNav.setAlignment(Pos.CENTER);
HBox priceAndBalance = new HBox(marketPriceBox.second, getNavigationSeparator(), availableBalanceBox.second, HBox priceAndBalance = new HBox(marketPriceBox.second, getNavigationSeparator(), availableBalanceBox.second,
getNavigationSeparator(), lockedBalanceBox.second, getNavigationSeparator(), reservedBalanceBox.second); getNavigationSeparator(), pendingBalanceBox.second, getNavigationSeparator(), reservedBalanceBox.second);
priceAndBalance.setMaxHeight(41); priceAndBalance.setMaxHeight(41);
priceAndBalance.setAlignment(Pos.CENTER); priceAndBalance.setAlignment(Pos.CENTER);

View file

@ -653,8 +653,8 @@ public class MainViewModel implements ViewModel, HavenoSetup.HavenoSetupListener
return balancePresentation.getReservedBalance(); return balancePresentation.getReservedBalance();
} }
StringProperty getLockedBalance() { StringProperty getPendingBalance() {
return balancePresentation.getLockedBalance(); return balancePresentation.getPendingBalance();
} }

View file

@ -1126,8 +1126,8 @@ message BtcBalanceInfo {
message XmrBalanceInfo { message XmrBalanceInfo {
uint64 balance = 1 [jstype = JS_STRING]; uint64 balance = 1 [jstype = JS_STRING];
uint64 unlocked_balance = 2 [jstype = JS_STRING]; uint64 available_balance = 2 [jstype = JS_STRING];
uint64 locked_balance = 3 [jstype = JS_STRING]; uint64 pending_balance = 3 [jstype = JS_STRING];
uint64 reserved_offer_balance = 4 [jstype = JS_STRING]; uint64 reserved_offer_balance = 4 [jstype = JS_STRING];
uint64 reserved_trade_balance = 5 [jstype = JS_STRING]; uint64 reserved_trade_balance = 5 [jstype = JS_STRING];
} }