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) {
|
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]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user