diff --git a/web/app/components/Wallet/ImportKeys.jsx b/web/app/components/Wallet/ImportKeys.jsx index b6537298e..678a09b16 100644 --- a/web/app/components/Wallet/ImportKeys.jsx +++ b/web/app/components/Wallet/ImportKeys.jsx @@ -155,7 +155,7 @@ export default class ImportKeys extends Component { : null}
- { ! import_ready ? + { ! import_ready && ! this.state.genesis_filter_initalizing ?
@@ -321,60 +321,63 @@ export default class ImportKeys extends Component { genesis_filter_finished: true, genesis_filtering: false }) return } - genesis_filter.init(()=> { - var filter_status = this.state.genesis_filter_status - - // FF < version 41 does not support worker threads internals (like blob urls) - // var GenesisFilterWorker = require("worker!workers/GenesisFilterWorker") - // var worker = new GenesisFilterWorker - // worker.postMessage({ - // account_keys: unfiltered_account_keys, - // bloom_filter: genesis_filter.bloom_filter - // }) - // worker.onmessage = event => { try { - // var { status, account_keys } = event.data - // // ... - // } catch( e ) { console.error('GenesisFilterWorker', e) }} - - var account_keys = unfiltered_account_keys - genesis_filter.filter( account_keys, status => { - console.log("import filter", status) - if( status.error === "missing_public_keys" ) { - console.error("un-released format, just for testing") - update_state({ password_checksum, account_keys: unfiltered_account_keys, - genesis_filter_finished: true, genesis_filtering: false }) - return - } - if( status.success ) { - // var { account_keys } = event.data // if using worker thread - update_state({ password_checksum, account_keys, - genesis_filter_finished: true, genesis_filtering: false }) - return - } - if( status.initalizing !== undefined ) { - update_state({ genesis_filter_initalizing: status.initalizing, genesis_filtering: true }) - return - } - if( status.importing === undefined ) { - // programmer error - console.error('unknown status', status) - return - } - if( ! filter_status.length ) - // first account - filter_status.push( status ) - else { - var last_account_name = filter_status[filter_status.length - 1].account_name - if( last_account_name === status.account_name ) - // update same account - filter_status[filter_status.length - 1] = status - else - // new account + this.setState({ genesis_filter_initalizing: true }, ()=>// setTimeout(()=> + genesis_filter.init(()=> { + var filter_status = this.state.genesis_filter_status + + // FF < version 41 does not support worker threads internals (like blob urls) + // var GenesisFilterWorker = require("worker!workers/GenesisFilterWorker") + // var worker = new GenesisFilterWorker + // worker.postMessage({ + // account_keys: unfiltered_account_keys, + // bloom_filter: genesis_filter.bloom_filter + // }) + // worker.onmessage = event => { try { + // var { status, account_keys } = event.data + // // ... + // } catch( e ) { console.error('GenesisFilterWorker', e) }} + + var account_keys = unfiltered_account_keys + genesis_filter.filter( account_keys, status => { + console.log("import filter", status) + if( status.error === "missing_public_keys" ) { + console.error("un-released format, just for testing") + update_state({ password_checksum, account_keys: unfiltered_account_keys, + genesis_filter_finished: true, genesis_filtering: false }) + return + } + if( status.success ) { + // var { account_keys } = event.data // if using worker thread + update_state({ password_checksum, account_keys, + genesis_filter_finished: true, genesis_filtering: false }) + return + } + if( status.initalizing !== undefined ) { + update_state({ genesis_filter_initalizing: status.initalizing, genesis_filtering: true }) + return + } + if( status.importing === undefined ) { + // programmer error + console.error('unknown status', status) + return + } + if( ! filter_status.length ) + // first account filter_status.push( status ) - } - update_state({ genesis_filter_status: filter_status }) + else { + var last_account_name = filter_status[filter_status.length - 1].account_name + if( last_account_name === status.account_name ) + // update same account + filter_status[filter_status.length - 1] = status + else + // new account + filter_status.push( status ) + } + update_state({ genesis_filter_status: filter_status }) + }) }) - }) + //, 100) + ) } /**