diff --git a/projects/challenge/smart_contracts/personal_vault/contract.py b/projects/challenge/smart_contracts/personal_vault/contract.py index d1e6cf8..5e78538 100644 --- a/projects/challenge/smart_contracts/personal_vault/contract.py +++ b/projects/challenge/smart_contracts/personal_vault/contract.py @@ -14,27 +14,27 @@ class PersonalVault(ARC4Contract): def __init__(self) -> None: self.balance = LocalState(UInt64) - + @arc4.baremethod(allow_actions=["OptIn"]) def opt_in_to_app(self) -> None: self.balance[Txn.sender] = UInt64(0) - + @arc4.abimethod() def deposit(self, ptxn: gtxn.PaymentTransaction) -> UInt64: assert ptxn.amount > 0, "Deposit amount must be greater than 0" assert ( - ptxn.receiver == Global.current_application_id + ptxn.receiver == Global.current_application_address ), "Deposit receiver must be the contract address" assert ptxn.sender == Txn.sender, "Deposit sender must be the caller" assert op.app_opted_in( - Txn.sender, Global.current_application_address + Txn.sender, Global.current_application_id ), "Deposit sender must opt-in to the app first." self.balance[Txn.sender] += ptxn.amount user_balance = self.balance[Txn.sender] return user_balance - + @arc4.abimethod(allow_actions=["CloseOut"]) def withdraw(self) -> UInt64: userBalance = self.balance[Txn.sender] @@ -47,3 +47,4 @@ def withdraw(self) -> UInt64: ).submit() return userBalance +