Function: deposit(uint256 _amount)
This function is for depositing the USDC to this contract.
Inputs
_amount
Control: Completely controlled by the caller.
Constraints: The value must be bigger than zero.
Impact: Amount to deposit.
Branches and code coverage
Intended branches
Transfer the exact amount of USDC from the caller to this contract.
The function must mint the exact reduced amount of the SPCT token if any fee exists.
Negative behavior
Revert if the amount was zero.
Revert if the caller does not have enough USDC to deposit.