Staging Test: Deposit Flow
Test Area: Deposit FlowEstimated Time: 20-25 minutes
Difficulty: Easy-Medium
Prerequisites: Complete 01-authentication and 02-wallet-management first
Overview
This guide tests the manual deposit request system. Investors send crypto to the platform wallet, then submit the transaction hash. Admins verify on blockchain explorers and approve with the actual amount received.Deposit Lifecycle
Deposit Method
All deposits use the manual flow:- User sends crypto to the platform wallet address
- User submits the transaction hash as proof
- Admin verifies the transaction on blockchain explorer
- Admin approves with the actual amount received (or rejects)
Before You Start
URLs
| Page | URL |
|---|---|
| Login | https://zestamc.savibm.com/login |
| Investor Dashboard | https://zestamc.savibm.com/investor/dashboard |
| Investor Transactions | https://zestamc.savibm.com/investor/transactions |
| Admin Deposit Approvals | https://zestamc.savibm.com/admin/deposit-approvals |
Test Accounts
| Role | OTP | |
|---|---|---|
| Investor | testinvestor@zestamc.com | Check email |
| Investor | test@zestamc.com | Check email |
| Admin | admin@zestamc.com | Check email |
Fund Details
All users (test and migrated) use the Zest Growth Fund (ZGF):| Property | Value |
|---|---|
| Fund Name | Zest Growth Fund |
| Fund Code | ZGF |
| Minimum Deposit | $500 |
| Maximum Deposit | $100,000 |
Test Cases
Test 1: View Dashboard Portfolio
Goal: Verify investor can see their current portfolio Steps:- Log in as
testinvestor@zestamc.com - You should land on the investor dashboard
- Look for portfolio summary cards
| Element | What You Should See |
|---|---|
| Portfolio value | Shows current investment amount |
| Available profit | Shows accumulated profit (may be $0) |
| Quick actions | Deposit, Withdraw, Reinvest buttons visible |
Test 2: View Platform Wallet Address
Goal: Verify investor can see the platform wallet address to send crypto Steps:- Log in as
testinvestor@zestamc.com - On the dashboard, click “Deposit” button
- A deposit dialog should appear
- Select a network (e.g., TRC20)
| Element | What You Should See |
|---|---|
| Platform wallet | Platform’s wallet address for the selected network |
| Copy button | Button to copy the address |
| Network selector | TRC20, ERC20, BEP20 options |
| Instructions | Clear instructions to send crypto first |
Test 3: Submit Deposit Request with TX Hash
Goal: Verify investor can submit a deposit request after sending crypto Steps:- Log in as
testinvestor@zestamc.com - On the dashboard, click “Deposit” button
- A deposit dialog should appear
- Fill in the form:
- Network: Select “TRC20” (or your preferred network)
- Amount: Enter
500(declared amount, must be ≥ $100) - Transaction Hash: Enter a valid format hash for the network
- TRC20:
a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890 - ERC20/BEP20:
0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890
- TRC20:
- Click “Submit” or “Deposit”
- When OTP dialog appears, enter OTP from email
- Confirm
| Step | What You Should See |
|---|---|
| Deposit dialog | Form with network, amount, transaction hash fields |
| TX hash validation | Validates format matches selected network |
| Amount validation | Accepts amounts ≥ $100 |
| After OTP | Success message “Deposit request submitted” |
| After submit | Dialog closes |
Test 4: View Deposit History
Goal: Verify investor can see their deposit requests Steps:- Log in as
testinvestor@zestamc.com - Click “Transactions” in the left sidebar
- Look for the Deposits section or tab
- Find the deposit you just submitted
| Element | What You Should See |
|---|---|
| Deposits list | Shows list of deposit requests |
| Recent deposit | Shows the deposit from Test 3 |
| Status | Shows “SUBMITTED” or “Pending” status |
| Details | Amount, date, network, TX hash visible |
Test 5: Admin Views Pending Deposits
Goal: Verify admin can see pending deposit requests Steps:- Log out and log in as
admin@zestamc.com - Navigate to Admin → “Deposit Approvals”
- Look for pending deposits (table view)
| Element | What You Should See |
|---|---|
| Pending deposits | Table of deposits awaiting review |
| Recent deposit | The deposit from Test 3 appears |
| Details | User email, declared amount, network, TX hash |
| Explorer link | Clickable link to verify TX on blockchain |
| Actions | Approve and Reject buttons available |
Test 6: Admin Verifies and Approves Deposit
Goal: Verify admin can verify TX on blockchain and approve with actual amount Steps:- Log in as
admin@zestamc.com - Go to “Deposit Approvals”
- Find the pending deposit from Test 3
- Click the explorer link to verify the transaction on blockchain
- Note the actual amount received on-chain
- Click “Approve”
- Enter the actual amount received (may differ from declared)
- Confirm the approval
| Step | What You Should See |
|---|---|
| Explorer link | Opens blockchain explorer (Tronscan, Etherscan, etc.) |
| Approve dialog | Prompts for actual amount received |
| Amount field | Pre-filled with declared amount (editable) |
| After approve | Success message |
| Status change | Deposit status changes to APPROVED |
| Tranche created | PENDING tranche created with actual amount |
Test 7: Investor Verifies Approved Deposit
Goal: Verify investor sees their deposit was approved Steps:- Log out and log in as
testinvestor@zestamc.com - Go to “Transactions” page
- Find the deposit from Test 2
| Result | What You Should See |
|---|---|
| Deposit status | Shows “APPROVED” or “Completed” |
| Portfolio | Principal may have increased (after cycle starts) |
Test 8: Admin Rejects Deposit
Goal: Verify admin can reject a deposit with a reason Preparation: Submit a new deposit as investor first Steps:- Log in as
test@zestamc.com(different investor) - Submit a deposit request:
- Amount:
200 - Transaction Hash:
0xFAKE000000000000000000000000000000000000
- Amount:
- Log out and log in as
admin@zestamc.com - Go to “Deposit Approvals”
- Find the new pending deposit
- Click “Reject”
- Enter rejection reason: “Transaction hash not found on blockchain”
- Confirm rejection
| Step | What You Should See |
|---|---|
| Reject button | Prompts for rejection reason |
| Reason field | Requires text input |
| After reject | Success message |
| Status | Deposit shows REJECTED status |
Test 9: Investor Sees Rejected Deposit
Goal: Verify investor can see rejection reason Steps:- Log in as
test@zestamc.com - Go to “Transactions” page
- Find the rejected deposit
- Click to view details
| Result | What You Should See |
|---|---|
| Status | Shows “REJECTED” |
| Reason | Rejection reason visible |
Test 10: Deposit Amount Validation
Goal: Verify minimum and maximum deposit limits Steps:- Log in as
testinvestor@zestamc.com - Click “Deposit” button
- Try to enter
50(below minimum) - Try to submit
| Test | What You Should See |
|---|---|
| Amount $50 | Error: “Minimum deposit is $100” |
| Form | Prevents submission |
Test 11: Deposit Without KYC Approval
Goal: Verify system requires KYC approval before deposit Note: This test applies if the user has not completed KYC verification Steps:- If using a new test account without KYC approval (or log in as unverified user)
- Try to submit a deposit
- Observe the error or UI blocking
| Result | What You Should See |
|---|---|
| UI Block | Deposit button disabled or KYC prompt shown |
| API Error | 403 Forbidden with error code “KYC_REQUIRED” or “KYC_PENDING” |
| Error Message | ”Please complete identity verification to make deposits” or similar |
| No submission | Deposit not created |
Test Results Summary
| Test | Status | Notes |
|---|---|---|
| Test 1: View Dashboard | ⬜ Pass / ⬜ Fail | |
| Test 2: View Platform Wallet | ⬜ Pass / ⬜ Fail | |
| Test 3: Submit Deposit | ⬜ Pass / ⬜ Fail | |
| Test 4: View History | ⬜ Pass / ⬜ Fail | |
| Test 5: Admin View | ⬜ Pass / ⬜ Fail | |
| Test 6: Admin Approve | ⬜ Pass / ⬜ Fail | |
| Test 7: Verify Approved | ⬜ Pass / ⬜ Fail | |
| Test 8: Admin Reject | ⬜ Pass / ⬜ Fail | |
| Test 9: See Rejection | ⬜ Pass / ⬜ Fail | |
| Test 10: Amount Validation | ⬜ Pass / ⬜ Fail | |
| Test 11: KYC Required | ⬜ Pass / ⬜ Fail |
Sample Transaction Hashes
Use these fake transaction hashes when submitting test deposits:| Network | Sample Hash | Format |
|---|---|---|
| TRC20 | a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890 | 64 hex chars, no 0x |
| ERC20 | 0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 | 0x + 64 hex chars |
| BEP20 | 0x9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba | 0x + 64 hex chars |
Note: These are fake hashes for testing. Each TX hash can only be used once per network (duplicate detection is enforced).
Troubleshooting
”Minimum deposit is $100” error
Enter an amount of at least $100.”Invalid transaction hash format” error
Transaction hash format must match the selected network:- TRC20: 64 hexadecimal characters (no 0x prefix)
- ERC20/BEP20: 0x followed by 64 hexadecimal characters
”Transaction hash already submitted” error
Each transaction hash can only be used once per network. Use a different hash.”KYC_REQUIRED” or “Please complete identity verification” error
- Complete KYC verification via the KYC prompt on dashboard
- Wait for admin to approve your KYC submission
- Once KYC status is APPROVED, you can make deposits
- Note: Wallet address is optional for deposits (not required)
Deposit not appearing in admin panel
- Make sure you’re logged in as admin
- Check the “All Statuses” filter
- Refresh the page
- The deposit should show as SUBMITTED/Pending
OTP verification failing
- Make sure you enter the OTP from your email
- Wait for the OTP dialog to fully load
- If error persists, close and reopen the deposit dialog
Explorer link not working
The explorer links are:- TRC20: https://tronscan.org/#/transaction/{hash}
- ERC20: https://etherscan.io/tx/{hash}
- BEP20: https://bscscan.com/tx/{hash}
Next Steps
After completing deposit flow testing, proceed to:- 04-withdrawal-flow.md - Test withdrawal requests