pragma solidity 0.4.24; import "@aragon/apps-shared-minime/contracts/MiniMeToken.sol"; contract TokenCache { string constant private ERROR_MISSING_TOKEN_CACHE = "TEMPLATE_MISSING_TOKEN_CACHE"; mapping (address => address) internal tokenCache; function _cacheToken(MiniMeToken _token, address _owner) internal { tokenCache[_owner] = _token; } function _popTokenCache(address _owner) internal returns (MiniMeToken) { require(tokenCache[_owner] != address(0), ERROR_MISSING_TOKEN_CACHE); MiniMeToken token = MiniMeToken(tokenCache[_owner]); delete tokenCache[_owner]; return token; } }