Vyper exposes the same environment globals as Solidity, spelled slightly differently in some cases: `msg.sender`, `msg.value`, `msg.gas`, `block.timestamp`, `block.number`, `block.prevrandao`, and `tx.origin`.
@external
@payable
def deposit():
assert msg.value > 0, "send something"
self.deposits[msg.sender] += msg.value
self.last_block[msg.sender] = block.numberAs on any EVM chain, prefer `msg.sender` over `tx.origin` for authorization checks — `tx.origin` is the original externally-owned account and is vulnerable to phishing via an intermediate contract.