reentrancy lock on ensureVault

This commit is contained in:
Tim Olson
2023-12-28 01:46:47 -04:00
parent 252db5f542
commit 0be3737d44

View File

@@ -63,8 +63,13 @@ export async function loginAddress(socket, chainId, address) {
} }
} }
const ensuring = {}
export async function ensureVault(socket, chainId, owner, num) { export async function ensureVault(socket, chainId, owner, num) {
const key = [chainId, owner, num]
if( key in ensuring )
return
ensuring[key] = true
console.log('ensureVault', chainId, owner, num) console.log('ensureVault', chainId, owner, num)
if( chainId in chainInfo ) { if( chainId in chainInfo ) {
const address = vaultAddress(chainId, owner, num) const address = vaultAddress(chainId, owner, num)
@@ -85,6 +90,7 @@ export async function ensureVault(socket, chainId, owner, num) {
console.log('ensureVault', owner, 'exists:', address) console.log('ensureVault', owner, 'exists:', address)
} }
await sendVaultInfo(socket, chainId, owner) await sendVaultInfo(socket, chainId, owner)
delete ensuring[key]
} }