reentrancy lock on ensureVault
This commit is contained in:
6
vault.js
6
vault.js
@@ -63,8 +63,13 @@ export async function loginAddress(socket, chainId, address) {
|
||||
}
|
||||
}
|
||||
|
||||
const ensuring = {}
|
||||
|
||||
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)
|
||||
if( chainId in chainInfo ) {
|
||||
const address = vaultAddress(chainId, owner, num)
|
||||
@@ -85,6 +90,7 @@ export async function ensureVault(socket, chainId, owner, num) {
|
||||
console.log('ensureVault', owner, 'exists:', address)
|
||||
}
|
||||
await sendVaultInfo(socket, chainId, owner)
|
||||
delete ensuring[key]
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user