// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; interface IVault { event Deposit(address indexed user, uint256 amount); event Withdraw(address indexed user, address indexed receiver, uint256 amount); /// @notice deposit baseToken to user function deposit(address user, uint256 amount) external; /// @notice withdraw user's baseToken from margin contract to receiver function withdraw( address user, address receiver, uint256 amount ) external; /// @notice get baseToken amount in margin function reserve() external view returns (uint256); }