😏
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
class Ledger:
|
||||
def __init__(self) -> None:
|
||||
self._balances: dict[str, int] = {}
|
||||
self._applied: set[str] = set()
|
||||
|
||||
def balance(self, account: str) -> int:
|
||||
return self._balances.get(account, 0)
|
||||
|
||||
def apply(self, operation_id: str, account: str, delta: int) -> int:
|
||||
if operation_id in self._applied:
|
||||
return self.balance(account)
|
||||
self._applied.add(operation_id)
|
||||
updated = self.balance(account) + delta
|
||||
if updated < 0:
|
||||
raise ValueError("insufficient funds")
|
||||
self._balances[account] = updated
|
||||
return updated
|
||||
Reference in New Issue
Block a user