```\n  it('PoC user will lose extra deposited tokens', async () => {\n\n    let user = accounts[1]\n    let initialUserSDLBalance = await sdlToken.balanceOf(user);\n\n    // User creates a lock depositing some amount\n    await sdlToken\n      .connect(signers[1])\n      .transferAndCall(\n        sdlPool.address,\n        toEther(100),\n        ethers.utils.defaultAbiCoder.encode(['uint256', 'uint64'], [0, 0])\n      )\n\n    await sdlPool.handleOutgoingUpdate()\n    await sdlPool.handleIncomingUpdate(1)\n    await sdlPool.connect(signers[1]).executeQueuedOperations([])\n\n    assert.equal(await sdlPool.ownerOf(1), user)\n    \n    // User queues a withdraw of all the amount from the lock\n    await sdlPool.connect(signers[1]).withdraw(1, toEther(100))\n\n    // User wants to deposit more tokens to the lock without the withdraw being updated and still being in the queue\n    await sdlToken\n      .connect(signers[1])\n      .transferAndCall(\n        sdlPool.address,\n        toEther(1000),\n        ethers.utils.defaultAbiCoder.encode(['uint256', 'uint64'], [1, 0])\n      )\n\n    await sdlPool.handleOutgoingUpdate()\n    await sdlPool.handleIncomingUpdate(2)\n    // When executing the updates, zero address will be the owner of his lock\n    // and the amount he diposited the last time will be lost\n    await sdlPool.connect(signers[1]).executeQueuedOperations([1])\n\n    let finalUserSDLBalance = await sdlToken.balanceOf(user);\n    let sdlLost = initialUserSDLBalance.sub(finalUserSDLBalance)\n\n    console.log("The user has lost", sdlLost.toString(), "sdl tokens")\n\n    // This staticall should revert because now the lock owner is the zero address\n    await expect(sdlPool.ownerOf(1)).to.be.revertedWith('InvalidLockId()')\n  })\n```\n