@@ -166,14 +166,10 @@ export const updateAddressIndexes = async ({
166166 selectedWallet,
167167 selectedNetwork,
168168 } ) ;
169- const addressTypes = getAddressTypes ( ) ;
170- let addressTypesToCheck = Object . keys ( addressTypes ) as EAddressType [ ] ;
169+
170+ let addressTypesToCheck = Object . keys ( getAddressTypes ( ) ) as EAddressType [ ] ;
171171 if ( addressType ) {
172- addressTypesToCheck = await Promise . all (
173- addressTypesToCheck . filter (
174- ( _addressType ) => _addressType === addressType ,
175- ) ,
176- ) ;
172+ addressTypesToCheck = [ addressType ] ;
177173 }
178174
179175 let updated = false ;
@@ -193,42 +189,40 @@ export const updateAddressIndexes = async ({
193189 if ( response . isErr ( ) ) {
194190 throw response . error ;
195191 }
192+ const result = response . value ;
196193
197- const { type } = addressTypes [ addressTypeKey ] ;
198- let addressIndex = currentWallet . addressIndex [ selectedNetwork ] [ type ] ;
194+ let addressIndex =
195+ currentWallet . addressIndex [ selectedNetwork ] [ addressTypeKey ] ;
199196 let changeAddressIndex =
200- currentWallet . changeAddressIndex [ selectedNetwork ] [ type ] ;
197+ currentWallet . changeAddressIndex [ selectedNetwork ] [ addressTypeKey ] ;
201198 let lastUsedAddressIndex =
202- currentWallet . lastUsedAddressIndex [ selectedNetwork ] [ type ] ;
199+ currentWallet . lastUsedAddressIndex [ selectedNetwork ] [ addressTypeKey ] ;
203200 let lastUsedChangeAddressIndex =
204- currentWallet . lastUsedChangeAddressIndex [ selectedNetwork ] [ type ] ;
201+ currentWallet . lastUsedChangeAddressIndex [ selectedNetwork ] [ addressTypeKey ] ;
205202
206203 if (
207- currentWallet . addressIndex [ selectedNetwork ] [ type ] ?. index < 0 ||
208- currentWallet . changeAddressIndex [ selectedNetwork ] [ type ] ?. index < 0 ||
209- response . value ?. addressIndex ?. index >
210- currentWallet . addressIndex [ selectedNetwork ] [ type ] ?. index ||
211- response . value ?. changeAddressIndex ?. index >
212- currentWallet . changeAddressIndex [ selectedNetwork ] [ type ] ?. index ||
213- response . value ?. lastUsedAddressIndex ?. index >
214- currentWallet . lastUsedAddressIndex [ selectedNetwork ] [ type ] ?. index ||
215- response . value ?. lastUsedChangeAddressIndex ?. index >
216- currentWallet . lastUsedChangeAddressIndex [ selectedNetwork ] [ type ] ?. index
204+ addressIndex . index < 0 ||
205+ changeAddressIndex . index < 0 ||
206+ result . addressIndex . index > addressIndex . index ||
207+ result . changeAddressIndex . index > changeAddressIndex . index ||
208+ result . lastUsedAddressIndex . index > lastUsedAddressIndex . index ||
209+ result . lastUsedChangeAddressIndex . index >
210+ lastUsedChangeAddressIndex ?. index
217211 ) {
218- if ( response . value ? .addressIndex ) {
219- addressIndex = response . value . addressIndex ;
212+ if ( result . addressIndex ) {
213+ addressIndex = result . addressIndex ;
220214 }
221215
222- if ( response . value ? .changeAddressIndex ) {
223- changeAddressIndex = response . value ? .changeAddressIndex ;
216+ if ( result . changeAddressIndex ) {
217+ changeAddressIndex = result . changeAddressIndex ;
224218 }
225219
226- if ( response . value ? .lastUsedAddressIndex ) {
227- lastUsedAddressIndex = response . value . lastUsedAddressIndex ;
220+ if ( result . lastUsedAddressIndex ) {
221+ lastUsedAddressIndex = result . lastUsedAddressIndex ;
228222 }
229223
230- if ( response . value ? .lastUsedChangeAddressIndex ) {
231- lastUsedChangeAddressIndex = response . value ? .lastUsedChangeAddressIndex ;
224+ if ( result . lastUsedChangeAddressIndex ) {
225+ lastUsedChangeAddressIndex = result . lastUsedChangeAddressIndex ;
232226 }
233227
234228 dispatch ( {
@@ -275,9 +269,10 @@ export const resetAddressIndexes = ({
275269 }
276270
277271 const addressTypes = getAddressTypes ( ) ;
278- const addressTypeKeys = Object . keys ( addressTypes ) as EAddressType [ ] ;
272+ const addressTypeKeys = objectKeys ( addressTypes ) ;
279273 const defaultWalletShape = getDefaultWalletShape ( ) ;
280- addressTypeKeys . map ( ( addressType ) => {
274+
275+ addressTypeKeys . forEach ( ( addressType ) => {
281276 dispatch ( {
282277 type : actions . UPDATE_ADDRESS_INDEX ,
283278 payload : {
@@ -472,13 +467,12 @@ export const addAddresses = async ({
472467 selectedWallet,
473468 selectedNetwork,
474469 } ) ;
475-
476470 if ( removeDuplicateResponse . isErr ( ) ) {
477471 return err ( removeDuplicateResponse . error . message ) ;
478472 }
479473
480- const addresses = removeDuplicateResponse . value ? .addresses ?? { } ;
481- const changeAddresses = removeDuplicateResponse . value ? .changeAddresses ?? { } ;
474+ const addresses = removeDuplicateResponse . value . addresses ;
475+ const changeAddresses = removeDuplicateResponse . value . changeAddresses ;
482476 if ( ! Object . keys ( addresses ) . length && ! Object . keys ( changeAddresses ) . length ) {
483477 return err ( 'No addresses to add.' ) ;
484478 }
@@ -1551,39 +1545,32 @@ export const setZeroIndexAddresses = async ({
15511545 } ) ;
15521546 }
15531547
1554- if (
1555- addressIndexInfo . addressIndex . index >= 0 &&
1556- addressIndexInfo . changeAddressIndex . index >= 0
1557- ) {
1548+ const addressIndex = addressIndexInfo . addressIndex ;
1549+ const changeAddressIndex = addressIndexInfo . changeAddressIndex ;
1550+
1551+ if ( addressIndex . index >= 0 && changeAddressIndex . index >= 0 ) {
15581552 return ok ( 'No need to set indexes.' ) ;
15591553 }
15601554
1561- let addressIndex = addressIndexInfo . addressIndex ;
1562- let changeAddressIndex = addressIndexInfo . changeAddressIndex ;
1563-
1564- let payload : {
1555+ const currentWallet = getWalletStore ( ) . wallets [ selectedWallet ] ;
1556+ const payload : {
15651557 addressIndex ?: IAddress ;
15661558 changeAddressIndex ?: IAddress ;
15671559 } = { } ;
15681560
15691561 if ( addressIndex . index < 0 ) {
1570- const addresses =
1571- getWalletStore ( ) . wallets [ selectedWallet ] ?. addresses [ selectedNetwork ] [
1572- addressType
1573- ] ;
1574- const filterRes = Object . values ( addresses ) . find ( ( a ) => a . index === 0 ) ;
1575- if ( filterRes ) {
1576- payload . addressIndex = filterRes ;
1562+ const addresses = currentWallet ?. addresses [ selectedNetwork ] [ addressType ] ;
1563+ const address = Object . values ( addresses ) . find ( ( a ) => a . index === 0 ) ;
1564+ if ( address ) {
1565+ payload . addressIndex = address ;
15771566 }
15781567 }
15791568 if ( changeAddressIndex . index < 0 ) {
15801569 const changeAddresses =
1581- getWalletStore ( ) . wallets [ selectedWallet ] ?. changeAddresses [
1582- selectedNetwork
1583- ] [ addressType ] ;
1584- const filterRes = Object . values ( changeAddresses ) . find ( ( a ) => a . index === 0 ) ;
1585- if ( filterRes ) {
1586- payload . changeAddressIndex = filterRes ;
1570+ currentWallet ?. changeAddresses [ selectedNetwork ] [ addressType ] ;
1571+ const address = Object . values ( changeAddresses ) . find ( ( a ) => a . index === 0 ) ;
1572+ if ( address ) {
1573+ payload . changeAddressIndex = address ;
15871574 }
15881575 }
15891576
@@ -1594,5 +1581,6 @@ export const setZeroIndexAddresses = async ({
15941581 addressType,
15951582 } ,
15961583 } ) ;
1584+
15971585 return ok ( 'Set Zero Index Addresses.' ) ;
15981586} ;
0 commit comments