sendVaultInfo as independent function

This commit is contained in:
Tim Olson
2023-11-27 00:52:51 -04:00
parent 7d9007d6c0
commit 597ab0b7b5

View File

@@ -36,6 +36,22 @@ async function emitBalances(socket, chainId, vault) {
} }
async function sendVaultInfo(socket, chainId, owner) {
const found = []
for (let num = 0; ; num++) {
const vault = vaultAddress(chainId, owner, num)
if (vault !== null && await vaults.contains(chainId, vault)) {
found.push(vault)
const balances = await emitBalances(socket, chainId, vault);
console.log('found vault', vault, balances)
} else
break
}
socket.emit('vaults', chainId, owner, found)
for (const vault of found)
sendVaultOrders(socket, chainId, vault)
}
export async function loginAddress(socket, chainId, address) { export async function loginAddress(socket, chainId, address) {
if( socket.user_room !== undefined) if( socket.user_room !== undefined)
socket.leave(socket.user_room) socket.leave(socket.user_room)
@@ -45,45 +61,33 @@ export async function loginAddress(socket, chainId, address) {
else { else {
socket.user_room = `${chainId}|${address}` socket.user_room = `${chainId}|${address}`
socket.join(socket.user_room) socket.join(socket.user_room)
console.log('joined room', socket.user_room) console.log('joined user room', socket.user_room)
const found = [] await sendVaultInfo(socket, chainId, address);
for( let num = 0; ; num++ ) {
const vault = vaultAddress(chainId, address, num)
if(vault !== null && await vaults.contains(chainId, vault)) {
found.push(vault)
const balances = await emitBalances(socket, chainId, vault);
console.log('found vault', vault, balances)
}
else
break
}
socket.emit('vaults', chainId, address, found)
for( const vault of found )
sendVaultOrders(socket, chainId, vault)
} }
} }
export async function ensureVault(socket, chainId, owner, num) { export async function ensureVault(socket, chainId, owner, num) {
if( !(chainId in chainInfo) )
return
console.log('ensureVault', chainId, owner, num) console.log('ensureVault', chainId, owner, num)
const address = vaultAddress(chainId, owner, num) if( chainId in chainInfo ) {
if (!await vaults.contains(chainId,address)) { const address = vaultAddress(chainId, owner, num)
try { if (!await vaults.contains(chainId,address)) {
const vault = await createVault(chainId, owner, num) try {
console.log(vault) const vault = await createVault(chainId, owner, num)
if (vault !== null) { console.log(vault)
socket.emit('vaults', chainId, owner, [vault]) if (vault !== null) {
await emitBalances(socket, chainId, vault) socket.emit('vaults', chainId, owner, [vault])
await emitBalances(socket, chainId, vault)
}
else
console.error('got null vault for chainId', chainId)
} catch {
} }
else
console.error('got null vault for chainId', chainId)
} catch {
} }
else
console.log('ensureVault', owner, 'exists:', address)
} }
else await sendVaultInfo(socket, chainId, owner)
console.log('ensureVault', owner, 'exists:', address)
} }