Order matters when sending ether.
balances[msg.sender] = 0.call{value:require(ok// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract Pull {
mapping(address => uint256) public balances;
function deposit() external payable { balances[msg.sender] += msg.value; }
function withdraw() external {
// TODO CEI
}
}