يمكن للمتبرعين المساهمة بـ BNB الأصلي أو بـ USDT على شبكة BNB. كلا المسارين يضيف إلى نفس mapping المستفيد داخل الخزنة.
إيداع BNB
الدالة: depositBNB(address beneficiary) external payable. الواجهة تحسب المبلغ وترسل المعاملة. عند النجاح يزداد bnbBalanceOf[beneficiary] ويُصدَر حدث BNBDeposited.
إيداع USDT
الدالة: depositUSDT(address beneficiary, uint256 amount). USDT على BSC بـ 18 منزلة عشرية. يلزم approve ثم الإيداع. العقد يسحب التوكن عبر safeTransferFrom.
عنوان المستفيد
العنوان الصفري مرفوض. التبرع لعنوان خاطئ يُحسب لذلك العنوان ولا يمكن «إعادة توجيهه» لاحقاً من داخل العقد.