如何通过Bitcoinj获取含Pending交易的钱包预估余额
获取Bitcoinj 0.14钱包预估余额(含Pending交易)
没问题,我来帮你搞定这个需求。在bitcoinj 0.14里,Wallet.BalanceType.ESTIMATED就是专门用来获取包含Pending状态交易的预估余额的类型,刚好匹配你要的效果。
结合你现有的gbal()方法,修改后的代码可以这样写:
public static String gbal() { // 先确认kit和钱包已初始化,避免空指针异常 if (MainPage.ModeStatus == true && kit != null && kit.wallet() != null) { // 使用ESTIMATED类型获取包含pending交易的预估余额 Coin estimatedBalance = kit.wallet().getBalance(Wallet.BalanceType.ESTIMATED); // 转换成易读的BTC格式字符串,比如"0.00123456 BTC" return estimatedBalance.toFriendlyString(); } else { // 处理未初始化或状态异常的情况 return "0.0 BTC"; } }
关键代码说明:
Wallet.BalanceType.ESTIMATED:这个类型会计算所有已确认的余额,加上未确认的入账交易,同时扣除已发起但未确认的出账交易,完美覆盖你需要的pending交易场景。kit.wallet().getBalance(...):传入指定的BalanceType参数,返回对应的Coin对象——这是bitcoinj中处理比特币金额的核心类,能精准处理聪和BTC的进制转换。toFriendlyString():把Coin对象转换成用户易读的字符串,自动完成聪到BTC的换算,不用手动计算1e8的进制关系。
如果需要更精细的余额拆分(比如单独查看未确认收入/支出),还可以搭配Wallet.getUnconfirmedBalance()或者BalanceType.AVAILABLE(仅已确认余额)使用,但你的核心需求用ESTIMATED就完全足够了。
内容的提问来源于stack exchange,提问作者BTCDude
相关产品推荐
相关产品推荐

