@@ -20,6 +20,34 @@ import type HaskoinAPI from '@/providers/bitcoin/libs/api';
2020import type SSAPI from '@/providers/bitcoin/libs/api-ss' ;
2121import type FiroAPI from '@/providers/bitcoin/libs/api-firo' ;
2222import { NFTCollection } from '@/types/nft' ;
23+ import { calculateCurrentSparkBalance } from '@/libs/utils/updateAndSync/calculateCurrentSparkBalance' ;
24+
25+ type PrivateBalanceResolver = ( ) => Promise < string > ;
26+
27+ const privateBalanceResolvers : Record < string , PrivateBalanceResolver > = {
28+ FIRO : calculateCurrentSparkBalance ,
29+ } ;
30+
31+ const getFormattedBalanceTotal = async ( {
32+ networkName,
33+ publicBalance,
34+ decimals,
35+ } : {
36+ networkName : string ;
37+ publicBalance : string ;
38+ decimals : number ;
39+ } ) => {
40+ const resolvePrivateBalance = privateBalanceResolvers [ networkName . toUpperCase ( ) ] ;
41+ if ( ! resolvePrivateBalance ) return '' ;
42+
43+ const privateBalance = await resolvePrivateBalance ( ) ;
44+ const privateBalanceFormatted = fromBase ( privateBalance , decimals ) ;
45+ const totalBalance = new BigNumber ( publicBalance )
46+ . plus ( privateBalanceFormatted )
47+ . toString ( ) ;
48+
49+ return formatFloatingPointValue ( totalBalance ) . value ;
50+ } ;
2351
2452export enum PaymentType {
2553 P2PKH = 'p2pkh' ,
@@ -127,6 +155,12 @@ export class BitcoinNetwork extends BaseNetwork {
127155 const usdBalance = new BigNumber ( userBalance ) . times (
128156 marketData [ 0 ] ?. current_price ?? 0 ,
129157 ) ;
158+ const balanceTotal = await getFormattedBalanceTotal ( {
159+ networkName : this . currencyName ,
160+ publicBalance : userBalance ,
161+ decimals : this . decimals ,
162+ } ) ;
163+
130164 const nativeAsset : AssetsType = {
131165 balance : balance ,
132166 balancef : formatFloatingPointValue ( userBalance ) . value ,
@@ -137,6 +171,7 @@ export class BitcoinNetwork extends BaseNetwork {
137171 symbol : this . currencyName ,
138172 value : marketData [ 0 ] ?. current_price ?. toString ( ) ?? '0' ,
139173 valuef : marketData [ 0 ] ?. current_price ?. toString ( ) ?? '0' ,
174+ balanceTotal,
140175 contract : '' ,
141176 decimals : this . decimals ,
142177 sparkline : marketData . length
0 commit comments