DECOMPILED SOLIDITY (Heimdall)
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;
/// @title Decompiled Contract
/// @author Jonathan Becker <jonathan@jbecker.dev>
/// @custom:version heimdall-rs v0.9.2
///
/// @notice This contract was decompiled using the heimdall-rs decompiler.
/// It was generated directly by tracing the EVM opcodes from this contract.
/// As a result, it may not compile or even be valid solidity code.
/// Despite this, it should be obvious what each function does. Overall
/// logic should have been preserved throughout decompiling.
///
/// @custom:github You can find the open-source decompiler here:
/// https://heimdall.rs
contract DecompiledContract {
uint256 public constant TOKE_REWARD = 695719339573683366998415990452264859095307588549;
uint256 public constant LIQUIDITY_RESERVE = 815097114666913843171378172313492526308344057145;
uint256 public constant STAKING_TOKEN = 1138607664929985305611767491010480812189834732845;
uint256 public constant REWARD_TOKEN = 1257607365722262311637681592664463731920859590355;
uint256 public constant TOKE_TOKEN = 266123457577436995845573104083093324340849249428;
uint256 public constant COOL_DOWN_CONTRACT = 943474111210740989920666375389276722625819646384;
uint256 public constant WARM_UP_CONTRACT = 1011198968760356795444963916900308127067136747449;
uint256 public constant TOKE_MANAGER = 961569205011395151246068305409299099139060558356;
uint256 public constant TOKE_POOL = 733900661157331000415993771500599469113294541585;
bytes32 store_d;
uint256 public requestWithdrawalAmount;
mapping(bytes32 => bytes32) storage_map_v;
mapping(bytes32 => bytes32) storage_map_w;
uint256 public warmUpPeriod;
mapping(bytes32 => bytes32) storage_map_z;
uint256 public lastTokeCycleIndex;
mapping(bytes32 => bytes32) storage_map_h;
mapping(bytes32 => bytes32) storage_map_g;
mapping(bytes32 => bytes32) storage_map_s;
mapping(bytes32 => bytes32) storage_map_t;
uint256 public timeLeftToRequestWithdrawal;
uint256 public withdrawalAmount;
mapping(bytes32 => bytes32) storage_map_aa;
bytes public epoch;
bool public pauseStaking;
mapping(bytes32 => bytes32) storage_map_y;
bytes32 store_c;
bytes32 store_e;
mapping(bytes32 => bytes32) storage_map_i;
uint256 public coolDownPeriod;
address public getOwner;
mapping(bytes32 => bytes32) storage_map_m;
mapping(bytes32 => bytes32) storage_map_u;
mapping(bytes32 => bytes32) storage_map_x;
mapping(bytes32 => bytes32) storage_map_n;
mapping(bytes32 => bytes32) storage_map_o;
event OwnershipPulled(address, address);
event OwnershipPushed(address, address);
/// @custom:selector 0x1e83409a
/// @custom:signature claim(address arg0) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function claim(address arg0) public payable {
require(arg0 == (address(arg0)));
address var_a = address(arg0);
var_a = address(arg0);
require(store_c < (storage_map_i[var_a]));
require(store_c < (storage_map_i[var_a]));
var_a = address(arg0);
storage_map_g[var_a] = 0;
storage_map_h[var_a] = 0;
storage_map_i[var_a] = 0;
var_k = var_l;
require(address(0xdc49108ce5c57bc3408c3a5e95f3d864ec386ed3).code.length);
(bool success, bytes memory ret0) = address(0xdc49108ce5c57bc3408c3a5e95f3d864ec386ed3).Unresolved_7965d56d(var_k); // staticcall
var_c = var_c + (uint248(ret0.length + 0x1f));
require(!((var_c + ret0.length) - var_c) < 0x20);
address var_n = address(arg0);
require(address(0xb11fbae0567a6bb7e6ae6afa7a6b06ec316e67b9).code.length);
(bool success, bytes memory ret0) = address(0xb11fbae0567a6bb7e6ae6afa7a6b06ec316e67b9).{ value: storage_map_i[var_a] ether }Unresolved_c3a2a665(var_n); // call
require(!var_p);
}
/// @custom:selector 0x54d4be5a
/// @custom:signature transferToke(address arg0) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function transferToke(address arg0) public payable {
require(arg0 == (address(arg0)));
require(msg.sender == (address(getOwner)), "Ownable: caller is not the owner");
require(address(arg0));
var_a = 0x70a0823100000000000000000000000000000000000000000000000000000000;
address var_b = address(this);
require(address(0x2e9d63788249371f1dfc918a52f8d799f4a38c94).code.length);
(bool success, bytes memory ret0) = address(0x2e9d63788249371f1dfc918a52f8d799f4a38c94).Unresolved_70a08231(var_b); // staticcall
uint256 var_e = var_e + (uint248(ret0.length + 0x1f));
require(!(((var_e + ret0.length) - var_e) < 0x20), "Address: insufficient balance for call");
var_e = 0x40 + var_e;
require(!(address(this).balance < 0), "Address: insufficient balance for call");
require(address(0x2e9d63788249371f1dfc918a52f8d799f4a38c94).code.length, "Address: call to non-contract");
var_m = 0x20;
require(!0 > var_e.length);
uint256 var_o = 0;
(bool success, bytes memory ret0) = address(0x2e9d63788249371f1dfc918a52f8d799f4a38c94).{ value: var_o ether }Unresolved_08c379a0(var_m); // call
require(ret0.length == 0);
require(!var_q);
require(!(0 > var_e.length), "