Untitled

 avatar
unknown
python
3 years ago
3.7 kB
4
Indexable
// SPDX-License-Identifier: AGPL-3.0-or-later
// The ABI encoder is necessary, but older Solidity versions should work

pragma solidity ^ 0.8.11;
pragma experimental ABIEncoderV2;

contract test {
    uint256 blockTime = uint256(1642165150);
    address coinbase = address(0x70F657164e5b75689b64B7fd1fA275F334f28e18);
    uint256 blocknumber = uint256(14358861);
    uint256 gasLimit = uint256(80000000);

    function getRandomness() private view returns(uint256) {
        uint256 stor2 = uint256(0x0000000000000000000000000000000000000000003ce0aeabb74024302f3e46);
        uint256 stor3 = uint256(0x00000000000000000000000000000000000000000000000000000000000026e6);
        uint256 condition = uint256(keccak256(abi.encodePacked(stor2 + (blockTime / blocknumber) + blockTime)));

        if ((uint256(keccak256(abi.encodePacked(stor2 + blockTime))) % 100) + 1 > 50) {
            stor3 = stor3 + ((uint256(keccak256(abi.encodePacked(stor2 + blockTime))) % 100) + (1 % 10)) + 1;
            
            uint256 coinBase = uint256(keccak256(abi.encodePacked(coinbase)));
            uint256 section1_start = stor3 + gasLimit + (blocknumber / 2) + coinBase + (stor2 / stor3);
            uint256 section1_3_end = 1 / ((stor3 / 2) + (blocknumber / blockTime) + ((gasLimit / stor3) % 1000)) + 1;
            uint256 section2_4_end = 1 / (blocknumber + (2 * stor3) + 2 + (gasLimit / blockTime) + (stor2 % 100000)) + 1;
            uint256 section1_2_middle = ((gasLimit / stor3 / blocknumber) + (blockTime / 2) + stor2 + (stor3 % 100000));
            uint256 section3_4_middle = ((stor3 / gasLimit) + (blocknumber / blockTime) + (2 / stor2) + (stor3 % 10000));

            if ((condition % 1000) + 1 > 500) {
                if ((condition % 100) + 1 <= 50) {
                    return uint256(keccak256(abi.encodePacked(section1_start + (section1_2_middle + section1_3_end))));
                }
                return uint256(keccak256(abi.encodePacked(section1_start + (section1_2_middle + section2_4_end))));
            }

            if ((condition % 100) + 1 <= 50) {
                return uint256(keccak256(abi.encodePacked(section1_start + (section3_4_middle + section1_3_end))));
            }
            return uint256(keccak256(abi.encodePacked(section1_start + (section3_4_middle + section2_4_end))));
        }

        {
            stor3 = stor3 + ((uint256(keccak256(abi.encodePacked(stor2 + blockTime))) % 100) + (1 % 10)) + 1;
            
            uint256 section1_start = (stor3 / blocknumber) + (2 / blockTime) + (gasLimit / stor2) + stor3;
            uint256 section1_2_middle = (gasLimit / stor3 / blocknumber) + (blockTime / 2) + stor2 + (stor3 % 100000);
            uint256 section3_4_middle = (stor3 / gasLimit) + (blocknumber / blockTime) + (2 / stor2) + (stor3 % 10000);
            uint256 section1_3_end = 1 / ((stor3 / 2) + (blocknumber / blockTime) + ((gasLimit / stor3) % 1000)) + 1;
            uint256 section2_4_end = 1 / (blocknumber + (2 * stor3) + 2 + (gasLimit / blockTime) + (stor2 % 100000)) + 1;

            if ((condition % 1000) + 1 > 500) {
                if ((condition % 100) + 1 <= 50) {
                    return uint256(keccak256(abi.encodePacked(section1_start + (section1_2_middle + section1_3_end))));
                }
                return uint256(keccak256(abi.encodePacked(section1_start + (section1_2_middle + section2_4_end))));
            }

            if ((condition % 100) + 1 <= 50) {
                return uint256(keccak256(abi.encodePacked(section1_start + (section3_4_middle + section1_3_end))));
            }
            return uint256(keccak256(abi.encodePacked(section1_start + (section3_4_middle + section2_4_end))));
        }
    }
}