From 4f1d7917aea9282e6854fde9715280bdc1e6b90e Mon Sep 17 00:00:00 2001 From: "ALGO Tables (Jeff S.)" <105945985+algotables@users.noreply.github.com> Date: Fri, 10 May 2024 22:25:46 -0700 Subject: [PATCH] Update contract.py feat: Add asset opt-in transaction to ASA vault's opt_in_to_asset method - Implemented an inner transaction for asset opt-in using itxn.AssetTransfer - Ensured zero-asset transfer to self for opt-in process, with asset close for cleanup - Set transaction fee to zero for the opt-in operation --- .../challenge/smart_contracts/asa_vault/contract.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/projects/challenge/smart_contracts/asa_vault/contract.py b/projects/challenge/smart_contracts/asa_vault/contract.py index 9ff62c4..28ae443 100644 --- a/projects/challenge/smart_contracts/asa_vault/contract.py +++ b/projects/challenge/smart_contracts/asa_vault/contract.py @@ -21,6 +21,14 @@ def opt_in_to_asset(self, mbr_pay: gtxn.PaymentTransaction) -> None: assert mbr_pay.receiver == Global.current_application_address assert mbr_pay.amount == Global.min_balance + Global.asset_opt_in_min_balance + + itxn.AssetTransfer( + xfer_asset=self.asset_id, + asset_receiver=Global.creator_address, + asset_amount=0, + asset_close_to=Global.creator_address, + fee=0, + ).submit() @arc4.abimethod def deposit_asa(self, deposit_txn: gtxn.AssetTransferTransaction)-> None: @@ -47,4 +55,4 @@ def withdraw_asa(self, asset: Asset) -> None: @arc4.abimethod(readonly=True) def get_asa_balance(self) -> UInt64: return self.asa_balance - \ No newline at end of file +