Skip to content

Commit f9ef362

Browse files
feat: init and sort
1 parent 739d987 commit f9ef362

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

packages/desktop/components/popups/AddressHistoryPopup.svelte

+24-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script lang="ts">
2-
import { getSelectedAccount, selectedAccount } from '@core/account'
2+
import { selectedAccount } from '@core/account'
33
import { handleError } from '@core/error/handlers/handleError'
44
import { localize } from '@core/i18n'
55
import { CHRONICLE_ADDRESS_HISTORY_ROUTE, CHRONICLE_URLS } from '@core/network/constants/chronicle-urls.constant'
@@ -27,17 +27,31 @@
2727
const activeProfile = getActiveProfile()
2828
const ADDRESS_GAP_LIMIT = 20
2929
30+
let knownAddresses: AccountAddress[] = []
31+
3032
$: accountIndex = $selectedAccount?.index
3133
$: network = activeProfile?.network?.id
32-
$: knownAddresses = $selectedAccount?.knownAddresses
3334
3435
let searchURL: string
3536
let searchAddressStartIndex = 0
3637
let currentSearchGap = 0
3738
let isBusy = false
3839
3940
onMount(() => {
40-
knownAddresses = getSelectedAccount().knownAddresses
41+
knownAddresses = $selectedAccount?.knownAddresses
42+
if (!knownAddresses?.length) {
43+
isBusy = true
44+
$selectedAccount
45+
.addresses()
46+
.then((_knownAddresses) => {
47+
knownAddresses = sortAddresses(_knownAddresses)
48+
updateAccountPersistedDataOnActiveProfile(accountIndex, { knownAddresses })
49+
isBusy = false
50+
})
51+
.finally(() => {
52+
isBusy = false
53+
})
54+
}
4155
4256
if (CHRONICLE_URLS[network] && CHRONICLE_URLS[network].length > 0) {
4357
const chronicleRoot = CHRONICLE_URLS[network][0]
@@ -77,6 +91,7 @@
7791
7892
async function search(): Promise<void> {
7993
currentSearchGap = 0
94+
const tmpKnownAddresses = [...knownAddresses]
8095
while (currentSearchGap < ADDRESS_GAP_LIMIT) {
8196
const [nextAddressToCheck, addressIndex] = await generateNextUnknownAddress()
8297
if (!nextAddressToCheck) {
@@ -93,11 +108,12 @@
93108
used: true,
94109
}
95110
96-
knownAddresses.push(accountAddress)
111+
tmpKnownAddresses.push(accountAddress)
97112
} else {
98113
currentSearchGap++
99114
}
100115
}
116+
knownAddresses = sortAddresses(tmpKnownAddresses)
101117
updateAccountPersistedDataOnActiveProfile(accountIndex, { knownAddresses })
102118
}
103119
@@ -111,6 +127,10 @@
111127
isBusy = false
112128
}
113129
}
130+
131+
function sortAddresses(addresses: AccountAddress[] = []): AccountAddress[] {
132+
return addresses.sort((a, b) => a.keyIndex - b.keyIndex)
133+
}
114134
</script>
115135

116136
<div class="flex flex-col space-y-6">

0 commit comments

Comments
 (0)