We have a sample contract that we will deploy using the Remix IDE and MetaMask. We will interact with the contract and learn how to see the behaviors of the contract.
As shown in the following DeploymentExample code, we have a contract that takes ether as a deposit from an account, and the same account can withdraw its deposit as well. An account can deposit ether by calling the depositEther() function, or by just sending the ether to the deployed contract address itself. This will trigger the fallback function of the contract, which in turn calls the depositEther() function itself:
pragma solidity ^0.5.2;import "github.com/OpenZeppelin/openzeppelin-solidity/contracts/ownership/Ownable.sol";import "github.com/OpenZeppelin/openzeppelin-solidity/contracts/math/SafeMath.sol" ...