// 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 DEFAULT_ADMIN_ROLE =0;mapping(bytes32=>bytes32) storage_map_q;address store_m;mapping(bytes32=>bytes32) storage_map_s;uint256public bonus_rate;uint256public buyback_fee;mapping(bytes32=>bytes32) storage_map_af;mapping(bytes32=>bytes32) storage_map_ac;address store_b;boolpublic recollateralizePaused;address store_c;bytes32 store_e;bytes32 store_f;uint256public unclaimedPoolCollateral;uint256public pool_ceiling;uint256public getCollateralPrice;mapping(bytes32=>bytes32) storage_map_ae;bytes32 recollateralizePausedi;mapping(bytes32=>bytes32) storage_map_o;uint256public minting_fee;mapping(bytes32=>bytes32) storage_map_ah;mapping(bytes32=>bytes32) storage_map_v;bytes32 store_k;uint256public redemption_fee;uint256 storage_map_ae[storage_map_ac[var_f]+0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff];addresspublic collat_eth_oracle_address;mapping(bytes32=>bytes32) storage_map_ad;mapping(bytes32=>bytes32) storage_map_t;mapping(bytes32=>bytes32) storage_map_r;bytes32 store_j;uint256public redemption_delay;mapping(bytes32=>bytes32) storage_map_p;uint256public unclaimedPoolSTS;mapping(bytes32=>bytes32) storage_map_ag;mapping(bytes32=>bytes32) storage_map_u;mapping(bytes32=>bytes32) storage_map_l;uint256public recollat_fee;mapping(bytes32=>bytes32) storage_map_aj;uint256 storage_map_q[storage_map_l[var_a]+0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff];event RoleRevoked(bytes32,address,address);event CollectRedemption(address,uint256);event RecollateralizeSTC(address,uint256);event RoleGranted(bytes32,address,address);/// @custom:selector 0x42d15aec/// @custom:signature toggleRecollateralize() public payablefunction toggleRecollateralize()publicpayable{require(msg.sender ==(address(store_b)),"You are not the owner or the governance timelock");require(msg.sender ==(address(store_c)),"You are not the owner or the governance timelock");
recollateralizePaused =(0x010000*(!bytes1(recollateralizePaused /0x010000)))|(uint248(recollateralizePaused));}/// @custom:selector 0xf6da1af5/// @custom:signature mintFractionalSTC(uint256 arg0, uint256 arg1, uint256 arg2) public payable/// @param arg0 ["uint256", "bytes32", "int256"]/// @param arg1 ["uint256", "bytes32", "int256"]/// @param arg2 ["uint256", "bytes32", "int256"]function mintFractionalSTC(uint256 arg0,uint256 arg1,uint256 arg2)publicpayable{require(!(bytes1(recollateralizePaused)),"Minting is paused");require(address(store_e).code.length);(bool success,bytesmemory ret0)=address(store_e).stc_price();// staticcalluint256 var_e = var_e +(uint248(ret0.length +0x1f));require(!((var_e + ret0.length)- var_e)<0x20);require(address(store_e /0x01).code.length);(bool success,bytesmemory ret0)=address(store_e /0x01).sts_price();// staticcall
var_e = var_e +(uint248(ret0.length +0x1f));require(!((var_e + ret0.length)- var_e)<0x20);require(address(store_e /0x01).code.length);(bool success,bytesmemory ret0)=address(store_e /0x01).global_collateral_ratio();// staticcall
var_e = var_e +(uint248(ret0.length +0x1f));require(!(((var_e + ret0.length)- var_e)<0x20),"Collateral ratio needs to be between .000001 and .999999");require(!(var_e.length <0x0f4240),"Collateral ratio needs to be between .000001 and .999999");require(var_e.length >0,"Collateral ratio needs to be between .000001 and .999999");address var_i =address(this);require(address(store_f).code.length);(bool success,bytesmemory ret0)=address(store_f).Unresolved_70a08231(var_i);// staticcall
var_e = var_e +(uint248(ret0.length +0x1f));require(!(((var_e + ret0.length)- var_e)<0x20),"