Skip to content

Commit 9b0a077

Browse files
committed
fix: remove bufferTime for address created event
The bufferTime will cause the problem that addresses created after tx fetched, so can't check tx correctly, and tx will not save to local db
1 parent 04c7d3c commit 9b0a077

1 file changed

Lines changed: 5 additions & 17 deletions

File tree

packages/neuron-wallet/src/listeners/address.ts

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { remote } from 'electron'
2-
import { ReplaySubject } from 'rxjs'
3-
import { bufferTime } from 'rxjs/operators'
42
import AddressesUsedSubject, { AddressesWithURL } from 'models/subjects/addresses-used-subject'
53
import AddressService from 'services/addresses'
64
import { Address } from 'database/address/address-dao'
@@ -12,23 +10,13 @@ const addressesUsedSubject = isRenderer
1210
? remote.require('./models/subjects/addresses-used-subject').default.getSubject()
1311
: AddressesUsedSubject.getSubject()
1412

15-
// pipe not working directly
16-
const bridge = new ReplaySubject<AddressesWithURL>(1000)
17-
addressesUsedSubject.subscribe((params: AddressesWithURL) => {
18-
bridge.next(params)
19-
})
20-
2113
// update txCount when addresses used
2214
export const register = () => {
23-
bridge.pipe(bufferTime(1000)).subscribe(async (addressesList: AddressesWithURL[]) => {
24-
if (addressesList.length === 0) {
25-
return
26-
}
27-
const addresses = addressesList.map(list => list.addresses).reduce((acc, val) => acc.concat(val), [])
28-
const url: string = addressesList[addressesList.length - 1].url
29-
const uniqueAddresses = [...new Set(addresses)]
30-
const addrs = await AddressService.updateTxCountAndBalances(uniqueAddresses, url)
31-
const walletIds: string[] = addrs.map(addr => (addr as Address).walletId).filter((value, idx, a) => a.indexOf(value) === idx)
15+
addressesUsedSubject.subscribe(async (address: AddressesWithURL) => {
16+
const addrs = await AddressService.updateTxCountAndBalances(address.addresses, address.url)
17+
const walletIds: string[] = addrs
18+
.map(addr => (addr as Address).walletId)
19+
.filter((value, idx, a) => a.indexOf(value) === idx)
3220
for (const id of walletIds) {
3321
const wallet = WalletService.getInstance().get(id)
3422
const accountExtendedPublicKey: AccountExtendedPublicKey = wallet.accountExtendedPublicKey()

0 commit comments

Comments
 (0)