Skip to content

Commit

Permalink
fix: When set a bigger number than current synced block number, reset…
Browse files Browse the repository at this point in the history
… the start block number.
  • Loading branch information
yanguoyu committed May 6, 2024
1 parent 5f607bb commit 91740ec
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,11 @@ export default class LightSynchronizer extends Synchronizer {
const otherTypeSyncBlockNumber = await SyncProgressService.getOtherTypeSyncBlockNumber()
const addScripts = [
...allScripts
.filter(v => !existSyncscripts[scriptToHash(v.script)])
.filter(
v =>
!existSyncscripts[scriptToHash(v.script)] ||
+existSyncscripts[scriptToHash(v.script)].blockNumber < +(walletStartBlockMap[v.walletId] ?? 0)
)
.map(v => {
const blockNumber = Math.max(
parseInt(walletStartBlockMap[v.walletId] ?? '0x0'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,47 @@ describe('test light synchronizer', () => {
)
expect(setScriptsMock).toHaveBeenLastCalledWith([], 'delete')
})
it('when set the wallet start block number is bigger than current synced block number', async () => {
getScriptsMock.mockResolvedValue([{ script, blockNumber: '0xaa' }])
const addressMeta = AddressMeta.fromObject({
walletId: 'walletId',
address,
path: '',
addressIndex: 10,
addressType: 0,
blake160: script.args,
})
getWalletMinLocalSavedBlockNumberMock.mockResolvedValue({})
walletGetAllMock.mockReturnValue([{ id: 'walletId', startBlockNumber: '0xffff' }])
const connect = new LightSynchronizer([addressMeta], '')
//@ts-ignore
await connect.initSyncProgress()
expect(setScriptsMock).toHaveBeenNthCalledWith(
1,
[
{
script: addressMeta.generateDefaultLockScript().toSDK(),
scriptType: 'lock',
walletId: 'walletId',
blockNumber: '0xffff',
},
{
script: addressMeta.generateACPLockScript().toSDK(),
scriptType: 'lock',
walletId: 'walletId',
blockNumber: '0xffff',
},
{
script: addressMeta.generateLegacyACPLockScript().toSDK(),
scriptType: 'lock',
walletId: 'walletId',
blockNumber: '0xffff',
},
],
'partial'
)
expect(setScriptsMock).toHaveBeenLastCalledWith([], 'delete')
})
})

describe('test initSync', () => {
Expand Down

1 comment on commit 91740ec

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Packaging for test is done in 8966142174

Please sign in to comment.