Skip to content

Commit 60ec486

Browse files
committed
fix: clean lock utils info and dao utils info when switch network
1 parent 528ce00 commit 60ec486

4 files changed

Lines changed: 18 additions & 3 deletions

File tree

packages/neuron-wallet/src/database/chain/cleaner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ export default class ChainCleaner {
1818
}
1919
})
2020
}
21-
}
21+
}

packages/neuron-wallet/src/models/dao-utils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ export default class DaoUtils {
4545
return DaoUtils.daoScriptInfo
4646
}
4747

48+
static cleanInfoWhenSwitchNetwork(): void {
49+
DaoUtils.daoScriptInfo = undefined
50+
}
51+
4852
static setDaoScript(info: SystemScript) {
4953
DaoUtils.daoScriptInfo = info
5054
DaoUtils.previousURL = NodeService.getInstance().core.rpc.node.url

packages/neuron-wallet/src/models/lock-utils.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ const subscribed = (target: any, propertyName: string) => {
2121
let value: any
2222
Object.defineProperty(target, propertyName, {
2323
get: () => value,
24-
set: (info: { codeHash: string }) => {
25-
SystemScriptSubject.next({ codeHash: info.codeHash })
24+
set: (info: SystemScript | undefined) => {
2625
value = info
26+
if (info) {
27+
SystemScriptSubject.next({ codeHash: info.codeHash })
28+
}
2729
},
2830
})
2931
}
@@ -75,6 +77,10 @@ export default class LockUtils {
7577
return LockUtils.systemScriptInfo
7678
}
7779

80+
static cleanInfoWhenSwitchNetwork(): void {
81+
LockUtils.systemScriptInfo = undefined
82+
}
83+
7884
static setSystemScript(info: SystemScript) {
7985
LockUtils.systemScriptInfo = info
8086
LockUtils.previousURL = NodeService.getInstance().core.rpc.node.url

packages/neuron-wallet/src/startup/sync-block-task/create.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import logger from 'utils/logger'
1212
import NodeService from 'services/node'
1313
import NetworksService from 'services/networks'
1414
import { distinctUntilChanged } from 'rxjs/operators'
15+
import LockUtils from 'models/lock-utils'
16+
import DaoUtils from 'models/dao-utils'
1517

1618
export { genesisBlockHash }
1719

@@ -29,6 +31,9 @@ export interface DatabaseInitParams {
2931
// network switch or network connect
3032
const networkChange = async (network: NetworkWithID) => {
3133
await InitDatabase.getInstance().stopAndWait()
34+
// clean LockUtils info and DaoUtils info
35+
LockUtils.cleanInfoWhenSwitchNetwork()
36+
DaoUtils.cleanInfoWhenSwitchNetwork()
3237
const info = await InitDatabase.getInstance().init(network)
3338

3439
DataUpdateSubject.next({

0 commit comments

Comments
 (0)