// SPDX-License-Identifier: MITpragmasolidity>=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.rscontract DecompiledContract {uint256public constant COLLATERAL_RATIO_PAUSER =80660117771772884325232518026346177235428924581649340631404993587712988832795;uint256public constant genesis_supply =3000000000000000000000;uint256public constant decimals =18;uint256public constant DEFAULT_ADMIN_ROLE =0;mapping(bytes32=>bytes32) storage_map_f;boolpublic collateral_ratio_paused;addresspublic sts_eth_oracle_address;uint256public redemption_fee;mapping(bytes32=>bytes32) storage_map_ao;mapping(bytes32=>bytes32) storage_map_q;addresspublic sts_address;mapping(bytes32=>bytes32) storage_map_s;bytes32 unresolved_18160ddda;mapping(bytes32=>bytes32) storage_map_af;mapping(bytes32=>bytes32) storage_map_am;mapping(bytes32=>bytes32) storage_map_ac;uint256public price_band;uint256public unresolved_18160ddd;addresspublic owner_address;mapping(bytes32=>bytes32) storage_map_b;addresspublic controller_address;uint256 storage_map_af[storage_map_f[var_f]+0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff];bytes32 store_g;address store_h;bytes32 store_l;uint256public price_target;uint256public minting_fee;mapping(bytes32=>bytes32) storage_map_n;mapping(bytes32=>bytes32) storage_map_ae;uint256public refresh_cooldown;mapping(bytes32=>bytes32) storage_map_o;addresspublic timelock_address;uint256 storage_map_q[storage_map_b[var_a]+0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff];mapping(bytes32=>bytes32) storage_map_z;mapping(bytes32=>bytes32) storage_map_ah;addresspublic weth_address;uint256public global_collateral_ratio;mapping(bytes32=>bytes32) storage_map_at;mapping(bytes32=>bytes32) storage_map_au;uint256public last_call_time;mapping(bytes32=>bytes32) storage_map_t;mapping(bytes32=>bytes32) storage_map_r;boolpublic eth_usd_price;mapping(bytes32=>bytes32) storage_map_ai;bytes32 unresolved_18160dddj;mapping(bytes32=>bytes32) storage_map_y;addresspublic creator_address;mapping(bytes32=>bytes32) storage_map_p;bytes32 store_x;mapping(bytes32=>bytes32) storage_map_ag;addresspublic eth_usd_consumer_address;addresspublic stc_eth_oracle_address;uint256public stc_step;event Event_8c5be1e5();event Transfer(address,address,uint256);event RoleRevoked(bytes32,address,address);event RoleGranted(bytes32,address,address);/// @custom:selector 0x095ea7b3/// @custom:signature Unresolved_095ea7b3(address arg0, uint256 arg1) public payable returns (bool)/// @param arg0 ["address", "uint160", "bytes20", "int160"]/// @param arg1 ["uint256", "bytes32", "int256"]function Unresolved_095ea7b3(address arg0,uint256 arg1)publicpayablereturns(bool){require(arg0 ==(address(arg0)));require(address(msg.sender),"ERC20: approve to the zero address");require(address(arg0),"ERC20: approve to the zero address");
var_a =address(arg0);
storage_map_b[var_a]= arg1;emit Event_8c5be1e5(address(msg.sender),address(arg0), arg1);return0x01;}/// @custom:selector 0xd914cd4b/// @custom:signature addPool(address arg0) public payable/// @param arg0 ["address", "uint160", "bytes20", "int160"]function addPool(address arg0)publicpayable{require(arg0 ==(address(arg0)));require(msg.sender ==(address(owner_address)),"You are not the owner, controller, or the governance timelock");require(msg.sender ==(address(timelock_address)),"You are not the owner, controller, or the governance timelock");require(msg.sender ==(address(controller_address)),"You are not the owner, controller, or the governance timelock");address var_f =address(arg0);require(!(bytes1(storage_map_f[var_f])),"address already exists");
var_f =address(arg0);
storage_map_f[var_f]=0x01|(uint248(storage_map_f[var_f]));
store_g = store_g +0x01;
store_h =(address(arg0))|(uint96(store_h));}/// @custom:selector 0xca15c873/// @custom:signature getRoleMemberCount(bytes32 arg0) public view returns (uint256)/// @param arg0 ["uint256", "bytes32", "int256"]function getRoleMemberCount(bytes32 arg0)publicviewreturns(uint256){uint256 var_a = arg0;return storage_map_b[var_a];}/// @custom:selector 0xdd9a9f72/// @custom:signature sts_price() public payablefunction sts_price()publicpayable{require(address(eth_usd_price).code.length);(bool success,bytesmemory ret0)=address(eth_usd_price).getLatestPrice();// staticcalluint256 var_b = var_b +(uint248(ret0.length +0x1f));require(!(((var_b + ret0.length)- var_b)<0x20),"