//SPDX-License-Identifier: MIT pragma solidity ^0.8.2; interface TokenInterface { function approve(address, uint256) external; function transfer(address, uint) external; function transferFrom(address, address, uint) external; function deposit() external payable; function withdraw(uint) external; function balanceOf(address) external view returns (uint); function decimals() external view returns (uint); function totalSupply() external view returns (uint); function allowance( address owner, address spender ) external view returns (uint256); } interface MemoryInterface { function getUint(uint id) external returns (uint num); function setUint(uint id, uint val) external; } interface InstaMapping { function cTokenMapping(address) external view returns (address); function gemJoinMapping(bytes32) external view returns (address); } interface AccountInterface { function enable(address) external; function disable(address) external; function isAuth(address) external view returns (bool); function cast( string[] calldata _targetNames, bytes[] calldata _datas, address _origin ) external payable returns (bytes32[] memory responses); } interface ListInterface { function accountID(address) external returns (uint64); } interface InstaConnectors { function isConnectors( string[] calldata ) external returns (bool, address[] memory); }