Tsukumogami
vault.pyPython
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class="syntax-string">""class="syntax-string">"
Secure Vault Contract
Manages user deposits with ownership controls.
"class="syntax-string">""

from tsukumogami import contract, entry, view
from tsukumogami.types import Address, Uint256, Mapping, msg


class="syntax-decorator">@contract
class Vault:
    class="syntax-string">""class="syntax-string">"A secure multi-user vault."class="syntax-string">""
    
    owner: Address
    total_deposits: Uint256
    balances: Mapping[Address, Uint256]
    
    def __init__(self) -> None:
        self.owner = msg.sender
        self.total_deposits = Uint256(0)
    
    class="syntax-decorator">@entry
    def deposit(self, amount: Uint256) -> None:
        class="syntax-string">""class="syntax-string">"Deposit funds into the vault."class="syntax-string">""
        assert amount > 0, class="syntax-string">"Amount must be positive"
        self.balances[msg.sender] += amount
        self.total_deposits += amount
    
    class="syntax-decorator">@entry
    def withdraw(self, amount: Uint256) -> None:
        class="syntax-string">""class="syntax-string">"Withdraw funds from the vault."class="syntax-string">""
        assert self.balances[msg.sender] >= amount
        self.balances[msg.sender] -= amount
        self.total_deposits -= amount
    
    class="syntax-decorator">@view
    def get_balance(self, account: Address) -> Uint256:
        class="syntax-string">""class="syntax-string">"Query account balance."class="syntax-string">""
        return self.balances[account]

No output yet

Click Transpile to generate code