File tree Expand file tree Collapse file tree
packages/neuron-wallet/src Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import env from 'env'
66import { updateApplicationMenu } from './menu'
77import logger from 'utils/logger'
88import { subscribe } from './subscribe'
9+ import WalletService from 'services/wallets'
910
1011const app = electronApp || ( remote && remote . app )
1112
@@ -65,6 +66,8 @@ export default class AppController {
6566 this . mainWindow . show ( )
6667 this . mainWindow . focus ( )
6768 logger . info ( 'The main window is ready to show' )
69+
70+ WalletService . getInstance ( ) . generateAddressesIfNecessary ( )
6871 } else {
6972 logger . error ( 'The main window is not initialized on ready to show' )
7073 }
Original file line number Diff line number Diff line change @@ -294,26 +294,24 @@ export default class WalletsController {
294294 }
295295
296296 public static async getAllAddresses ( id : string ) {
297- const addresses = await AddressService . allAddressesByWalletId ( id ) . then ( addrs =>
298- addrs . map (
299- ( {
300- address,
301- blake160 : identifier ,
302- addressType : type ,
303- txCount,
304- balance,
305- description = '' ,
306- addressIndex : index = '' ,
307- } ) => ( {
308- address,
309- identifier,
310- type,
311- txCount,
312- description,
313- balance,
314- index,
315- } )
316- )
297+ const addresses = AddressService . allAddressesByWalletId ( id ) . map (
298+ ( {
299+ address,
300+ blake160 : identifier ,
301+ addressType : type ,
302+ txCount,
303+ balance,
304+ description = '' ,
305+ addressIndex : index = '' ,
306+ } ) => ( {
307+ address,
308+ identifier,
309+ type,
310+ txCount,
311+ description,
312+ balance,
313+ index,
314+ } )
317315 )
318316 return {
319317 status : ResponseCode . Success ,
Original file line number Diff line number Diff line change @@ -120,10 +120,11 @@ export default class AddressDao {
120120 }
121121
122122 public static allAddressesByWalletId ( walletId : string , version : AddressVersion ) : Address [ ] {
123- const all = AddressStore . getAll ( )
124- return all . filter ( value => {
125- return value . walletId === walletId && value . version === version
126- } )
123+ return AddressStore . getAll ( )
124+ . filter ( value => value . walletId === walletId && value . version === version )
125+ . sort ( ( lhs , rhs ) => {
126+ return lhs . addressType - rhs . addressType || lhs . addressIndex - rhs . addressIndex
127+ } )
127128 }
128129
129130 public static usedAddressesByWalletId ( walletId : string , version : AddressVersion ) :Address [ ] {
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ export default class AddressService {
2222 return ! ! addressEntity
2323 }
2424
25- public static generateAndSave = async (
25+ public static generateAndSave = (
2626 walletId : string ,
2727 extendedKey : AccountExtendedPublicKey ,
2828 isImporting : boolean | undefined ,
@@ -63,7 +63,7 @@ export default class AddressService {
6363 AddressCreatedSubject . getSubject ( ) . next ( addrs )
6464 }
6565
66- public static checkAndGenerateSave = async (
66+ public static checkAndGenerateSave = (
6767 walletId : string ,
6868 extendedKey : AccountExtendedPublicKey ,
6969 isImporting : boolean | undefined ,
@@ -216,7 +216,7 @@ export default class AddressService {
216216 return AddressDao . allAddresses ( version )
217217 }
218218
219- public static allAddressesByWalletId = async ( walletId : string ) : Promise < AddressInterface [ ] > => {
219+ public static allAddressesByWalletId = ( walletId : string ) : AddressInterface [ ] => {
220220 const version = AddressService . getAddressVersion ( )
221221 return AddressDao . allAddressesByWalletId ( walletId , version )
222222 }
Original file line number Diff line number Diff line change @@ -173,15 +173,23 @@ export default class WalletService {
173173 return FileKeystoreWallet . fromJSON ( wallet )
174174 }
175175
176- public generateAddressesById = async (
176+ public generateAddressesIfNecessary = ( ) => {
177+ for ( const wallet of this . getAll ( ) ) {
178+ if ( AddressService . allAddressesByWalletId ( wallet . id ) . length === 0 ) {
179+ this . generateAddressesById ( wallet . id , false )
180+ }
181+ }
182+ }
183+
184+ public generateAddressesById = (
177185 id : string ,
178186 isImporting : boolean ,
179187 receivingAddressCount : number = 20 ,
180188 changeAddressCount : number = 10
181189 ) => {
182190 const wallet : Wallet = this . get ( id )
183191 const accountExtendedPublicKey : AccountExtendedPublicKey = wallet . accountExtendedPublicKey ( )
184- await AddressService . checkAndGenerateSave (
192+ AddressService . checkAndGenerateSave (
185193 id ,
186194 accountExtendedPublicKey ,
187195 isImporting ,
You can’t perform that action at this time.
0 commit comments