@@ -383,6 +383,14 @@ class RNZcash: RCTEventEmitter {
383383 wallet. subscribe ( )
384384 let txs = try await wallet. synchronizer. allTransactions ( )
385385 wallet. emitTxs ( transactions: txs)
386+ let balances = try await wallet. synchronizer. getAccountsBalances ( )
387+ if let accountUUID = wallet. accountUUID,
388+ let accountBalance = balances [ accountUUID]
389+ {
390+ let data = wallet. createBalanceEventData ( from: accountBalance)
391+ wallet. emit ( " BalanceEvent " , data)
392+ }
393+
386394 resolve ( nil )
387395 case . failure:
388396 reject ( " RescanError " , " Failed to rescan wallet " , genericError)
@@ -630,16 +638,7 @@ class WalletSynchronizer: NSObject {
630638 )
631639 }
632640
633- func updateBalanceState( event: SynchronizerState ) {
634- guard let accountUUID = self . accountUUID else {
635- return
636- }
637-
638- // Safely check if the account exists in the balances dictionary
639- guard let accountBalance = event. accountsBalances [ accountUUID] else {
640- return
641- }
642-
641+ func createBalanceEventData( from accountBalance: AccountBalance ) -> NSDictionary {
643642 // Account exists, safely access the balance properties
644643 let transparentBalance = accountBalance. unshielded
645644 let shieldedBalance = accountBalance. saplingBalance
@@ -654,15 +653,28 @@ class WalletSynchronizer: NSObject {
654653 let orchardAvailableZatoshi = orchardBalance. spendableValue
655654 let orchardTotalZatoshi = orchardBalance. total ( )
656655
657- let data : NSDictionary = [
656+ return [
658657 " alias " : self . alias,
659658 " transparentAvailableZatoshi " : String ( transparentAvailableZatoshi. amount) ,
660659 " transparentTotalZatoshi " : String ( transparentTotalZatoshi. amount) ,
661660 " saplingAvailableZatoshi " : String ( saplingAvailableZatoshi. amount) ,
662661 " saplingTotalZatoshi " : String ( saplingTotalZatoshi. amount) ,
663662 " orchardAvailableZatoshi " : String ( orchardAvailableZatoshi. amount) ,
664663 " orchardTotalZatoshi " : String ( orchardTotalZatoshi. amount) ,
665- ]
664+ ] as NSDictionary
665+ }
666+
667+ func updateBalanceState( event: SynchronizerState ) {
668+ guard let accountUUID = self . accountUUID else {
669+ return
670+ }
671+
672+ // Safely check if the account exists in the balances dictionary
673+ guard let accountBalance = event. accountsBalances [ accountUUID] else {
674+ return
675+ }
676+
677+ let data = createBalanceEventData ( from: accountBalance)
666678 emit ( " BalanceEvent " , data)
667679 }
668680
0 commit comments