Function: deposit(uint256 _amount)
This function is for depositing the USDC.
Inputs
_amount
Control: Completely controlled by the caller.
Constraints: The caller must have enough USDC to transfer.
Impact: Amount to deposit.
Branches and code coverage
Intended branches
Transfer the USDC to this contract.
Transfer the USDz to the caller.
Negative behavior
Revert when the contract is paused.
Revert when the given amount is zero.
Revert when the calculated amount is smaller than the reserve.