POL Price: $0.21242 (+0.17%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Enterin Game341183252022-10-09 7:42:35890 days ago1665301355IN
Wild Games: Hunt Ten
0 POL0.001530.00000001
Enterin Game341179362022-10-09 7:28:43890 days ago1665300523IN
Wild Games: Hunt Ten
0 POL0.0015287230.57440002
Enterin Game341176942022-10-09 7:18:45890 days ago1665299925IN
Wild Games: Hunt Ten
0 POL0.0015161130.3222
Enterin Game341174202022-10-09 7:09:21890 days ago1665299361IN
Wild Games: Hunt Ten
0 POL0.001530.00000007
Enterin Game341172452022-10-09 7:01:11890 days ago1665298871IN
Wild Games: Hunt Ten
0 POL0.001530.00000001
Enterin Game341171232022-10-09 6:57:03890 days ago1665298623IN
Wild Games: Hunt Ten
0 POL0.001530.00000001
Enterin Game341169242022-10-09 6:50:09890 days ago1665298209IN
Wild Games: Hunt Ten
0 POL0.001530.00000001
Transfer Ownersh...340472852022-10-07 14:11:08892 days ago1665151868IN
Wild Games: Hunt Ten
0 POL0.0008608830.00000022

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x5b1C9559...cE50C4cd4
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
WildGamesHuntTen

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : WildGamesHuntTen.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol";
// import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol";

import "./Ownable.sol";
import "./IERC20.sol";

import "./console.sol";

contract WildGamesHuntTen is Ownable {
    IERC20 paymentToken;
    address public wildGamesVault;
    uint8 public arrayCounter;
    uint8 public amountGamesUntilExtraGame;
    mapping(address => uint256) public payments;
    mapping(uint256 => Game[]) public gameLogs;
    mapping(uint256 => Game[]) public extraGameLogs;
    mapping(address => mapping(uint256 => uint256[])) private addressToGameIndexToGames;
    
    struct Game {
        uint128 id;
        address[10] players;
        uint8 playersNow;
        uint8 extraGameFundCounter;
        uint256 extraGameFundBalance;
        address[] losers;
        uint256 betValue;
        uint256[10] playerNotes;
    }

    struct WinnerLog{
        address winner;
        uint256 gameId;
        uint256 betValue;
        uint256 winnerPayout;
    }

    Game[] public AllGames;
    WinnerLog[] public AllWinners;

    event UserEnteredGame(address indexed user, uint256 indexed betIndex, uint256 indexed gameIndex, address[10] participants);
    event GameFinished(uint256 indexed betIndex, uint256 indexed gameIndex, address looser, address[10] participants);

    constructor(address _paymentToken, address _vaultAddress) {
        paymentToken = IERC20(_paymentToken); // 0xc2132D05D31c914a87C6611C10748AEb04B58e8F - polygon USDT
        // paymentToken = IERC20(0x7f92a2653c0f0de33e25351ee2a89471f4f18bc0); // POLYGON address's checksum is wrong
        
        wildGamesVault = _vaultAddress;
        amountGamesUntilExtraGame = 100;

        createGame(50000000000000000000); // 50
        createGame(100000000000000000000); // 100
        createGame(500000000000000000000); // 500
        createGame(1000000000000000000000); // 1000
        createGame(5000000000000000000000); // 5000
        createGame(10000000000000000000000); // 10000
        createGame(50000000000000000000000); // 50000
        createGame(100000000000000000000000); // 100000
    }

    function getTokenBalanceContract() external view returns(uint) {
        return paymentToken.balanceOf(address(this));
    }

    function createGame(uint256 _betValue) public onlyOwner {
        address[] memory emptyArr;
        address[10] memory playersArr;
        uint256[10] memory playersNotesArr;

        AllGames.push(Game(0, playersArr, 0, 0 ,0, emptyArr,_betValue, playersNotesArr));
    }

    function getPaymentTokenBalance(address _who) public view returns(uint256) {
        return paymentToken.balanceOf(_who);
    }

    function _DepositIntoContract( uint256 amount) internal  returns (bool) {
        paymentToken.transferFrom(tx.origin,address(this), amount);
        payments[tx.origin] += amount;
        return true;
    }

    function checkAllowanceFrom(address _who) public view returns(uint256) {
        return paymentToken.allowance(_who, address(this));
    }

    function withdrawContract() public onlyOwner {
        paymentToken.transfer( owner(),  paymentToken.balanceOf(address(this)));
    }

    function getLosersByGame(uint _indexGame) public view returns(address[] memory) {
        Game storage currentGame = AllGames[_indexGame];
        return currentGame.losers;
    }

    function isPlayerInGame(address _player, uint _indexGame) public view returns(bool) {
        Game memory currentGame = AllGames[_indexGame];
        for(uint i = 0; i < currentGame.players.length; i++) {
            if(currentGame.players[i] == _player) {
                return true;
            }
        }
        return false;
    }

    function enterinGame (uint _indexGame, uint256 _playerNote) public {
        Game storage currentGame = AllGames[_indexGame];
        require(!isPlayerInGame(msg.sender, _indexGame), "you're already entered");
        require(checkAllowanceFrom(msg.sender) >= currentGame.betValue, "not enough allowance");

        _DepositIntoContract(currentGame.betValue);
        pushPlayerIn(msg.sender, _indexGame, _playerNote);

        addressToGameIndexToGames[msg.sender][_indexGame].push(currentGame.id);

        currentGame.playersNow++;    
        // check occupancy of players array
        if(currentGame.playersNow == 10) {
            drawProcess(_indexGame);
            currentGame.extraGameFundCounter++;
        }
        
        console.log(currentGame.extraGameFundCounter);
        console.log(amountGamesUntilExtraGame);
        console.log(currentGame.extraGameFundCounter % amountGamesUntilExtraGame == 0);
        if(currentGame.extraGameFundCounter == amountGamesUntilExtraGame) {
            extraGameDraw(_indexGame);
            currentGame.extraGameFundCounter = 0;
        }

        emit UserEnteredGame(msg.sender, _indexGame, currentGame.id, currentGame.players);
    }

    function viewPlayersByGame(uint _indexGame) public view returns(address[10] memory) {
        Game storage currentGame = AllGames[_indexGame];
        return currentGame.players;
    }

    function pushPlayerIn(address _player, uint _index, uint256 _playerNote) internal {
        Game storage currentGame = AllGames[_index];
        for(uint i = 0; i < currentGame.players.length; i++) {
            if(currentGame.players[i] == address(0) ) {
                currentGame.players[i] = _player;
                currentGame.playerNotes[i] = _playerNote ;
                break;
            }
        }
    }

    function cancelBet( uint _indexGame) public  returns (bool) {
        Game storage currentGame = AllGames[_indexGame];
        require(isPlayerInGame(msg.sender, _indexGame), "you're not a player");
        require(payments[msg.sender] >= currentGame.betValue, "not enough allowance for cancelBet");

        currentGame.playersNow--;    
        addressToGameIndexToGames[msg.sender][_indexGame].pop();

        for(uint i = 0; i < currentGame.players.length; i++) {
            if(msg.sender == currentGame.players[i]) {
                delete currentGame.players[i];
                delete currentGame.playerNotes[i];
            }
        }

        payments[msg.sender] -= currentGame.betValue;
        paymentToken.transfer(tx.origin, currentGame.betValue); //msg sender or tx origin?

        return true;        
    }

    function removeGame(uint _indexGame) public onlyOwner{
        delete AllGames[_indexGame];
    }
 
    function getAllGamesData() external view returns(Game[] memory) {
        return AllGames;
    }
    
    function getGameByIndex(uint _indexGame) external view returns(Game memory) {
        return AllGames[_indexGame];
    }

 ////////////////////////////////////////////
    receive() external payable {}
 ////////////////////////////////////////////

    function setAmountUntilExtra(uint8 _amount) public {
        amountGamesUntilExtraGame = _amount;
    }

    function checkBalanceWildGamesVault() public onlyOwner view returns(uint256) {
        return paymentToken.balanceOf(wildGamesVault);
    }

    function drawProcess(uint _indexGame) internal {
        Game storage currentGame = AllGames[_indexGame];
        // gameLogs[_indexGame].push(currentGame);
        uint payoutForWinner = (currentGame.betValue * 109) / 100; //81%
        uint indexLoser = random(currentGame.players.length, _indexGame); 

        //send loser to losers list
        currentGame.losers.push(currentGame.players[indexLoser]);

        //distribute to winners
        for (uint i = 0; i < currentGame.players.length ; i++) {
            if(i != indexLoser ) {
                paymentToken.transfer( payable(currentGame.players[i]), payoutForWinner);
            }
        }

        // distribute for WildGamesFund
        paymentToken.transfer(wildGamesVault, (currentGame.betValue / 10)); //10%

        // distribute to extraGameFund
        currentGame.extraGameFundBalance += (currentGame.betValue * 9) / 100; //9%

        delete currentGame.players;
        delete currentGame.playerNotes;
        currentGame.playersNow = 0;

        gameLogs[_indexGame].push(currentGame);

        emit GameFinished(_indexGame, currentGame.id++, currentGame.players[indexLoser], currentGame.players);
    }

    function setWildGamesFuncReceiver(address _receiver) public onlyOwner {
        wildGamesVault = _receiver;
    }

    function getLastGameLog(uint256 _indexGame) external view returns(Game memory gameLogs_) {
        Game[] memory _gameLogs = gameLogs[_indexGame];
        return _gameLogs[_gameLogs.length - 1];
    }

    function getUserLastGame(address _user, uint256 _indexGame) external view returns (Game memory) {
        uint256[] memory games = addressToGameIndexToGames[_user][_indexGame];
        return gameLogs[_indexGame][games.length - 1];
    }

    function getAllGameIdsUserParticipated(address _user, uint256 _indexGame) external view returns (uint256[] memory) {
        return addressToGameIndexToGames[_user][_indexGame];
    }

    function extraGameDraw(uint _indexGame) internal   {
        Game storage currentGame = AllGames[_indexGame];
        // extraGameLogs[_indexGame].push(currentGame);
        uint winnerIndex = random(currentGame.losers.length, _indexGame);
        paymentToken.transfer(currentGame.losers[winnerIndex], currentGame.extraGameFundBalance);
        AllWinners.push(WinnerLog(currentGame.losers[winnerIndex], currentGame.id, currentGame.betValue, currentGame.extraGameFundBalance));
        extraGameLogs[_indexGame].push(currentGame);
        delete currentGame.losers;
    }
        
    function random(uint _value, uint _indexGame) internal view returns(uint){
        Game memory currentGame = AllGames[_indexGame];
        return uint(keccak256(abi.encodePacked(block.timestamp,block.difficulty,blockhash(block.number), currentGame.playerNotes, msg.sender))) % _value; //11 + add -1 to block number
    }
}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

abstract contract Ownable {
    address private _owner;

    /**
        @dev emitted when ownership is transfered 
     */
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
        @dev creates a contract instance and sets deployer as its _owner.
     */
    constructor() {
        _transferOwnership(msg.sender);
    }

    /**
        @dev returns address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
        @dev checks if caller of the function is _owner.
     */
    modifier onlyOwner() {
        require(owner() == msg.sender, "You are not the owner");
        _;
    }

    /**
       @dev transfers the ownership to 0x00 address.
       @notice after renouncing contract ownership functions with onlyOwner modifier will not be accessible.
       @notice can be called only be _owner
    */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
        @dev transfers ownership to newOwner.
        @notice can not be transfered to 0x00 addres.
        @notice can be called only be _owner
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "zero address can not be owner");
        _transferOwnership(newOwner);
    }

    /**
        @dev internal function to transfer ownership.
        @notice can only be called internally and only by _owner.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/**
    @title ERC20 interface.
    @author @farruhsydykov.
 */
interface IERC20 {
    /**
        @dev returns the amount of tokens that currently exist.
     */
    function totalSupply() external view returns (uint256);

    /**
        @dev returns the amount of tokens owned by account.
        @param account is the account which's balance is checked
     */
    function balanceOf(address account) external view returns (uint256);

    /**
        @dev sends caller's tokens to the recipient's account.
        @param recipient account that will recieve tokens in case of transfer success
        @param amount amount of tokens being sent
        @return bool representing success of operation.
        @notice if success emits transfer event
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
        @dev returns the remaining amount of tokens that spender is allowed
        to spend on behalf of owner.
        @param owner is the account which's tokens are allowed to be spent by spender.
        @param spender is the account which is allowed to spend owners tokens.
        @return amount of tokens in uint256 that are allowed to spender.
        @notice allowance value changes when aprove or transferFrom functions are called.
        @notice allowance is zero by default.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
        @dev allowes spender to spend a set amount of caller's tokens throught transferFrom.
        @param spender is the account which will be allowed to spend owners tokens.
        @param amount is the amount of caller's tokens allowed to be spent by spender.
        @return bool representing a success or failure of the function call.
        @notice emits and Approval event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
        @dev sends amount of allowed tokens from the sender's account to recipient'saccount.
        amount is then deducted from the caller's allowance.
        @param sender is the account which's tokens are allowed to and sent by the caller.
        @param recipient is the account which will receive tokens from the sender.
        @param amount is the amount of tokens sent from the sender.
        @return bool representing a success or a failure of transaction.
        @notice emits Transfer event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
        @dev emitted when a transfer occures. Notifies about the value sent from which to which account.
        @param from acccount that sent tokens.
        @param to account that received tokens.
        @param value value sent from sender to receiver.
        @notice value may be zero
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
        @dev emitted when an account allowed another account to spend it's tokens on it's behalf.
        @param owner owner of tokens which allowed it's tokens to be spent.
        @param spender account who was allowed to spend tokens on another's account behalf.
        @param value amount of tokens allowed to spend by spender from owner's account.
        @notice value is always the allowed amount. It does not accumulated with calls to approve.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 4 of 4 : console.sol
// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 <0.9.0;

library console {
	address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);

	function _sendLogPayload(bytes memory payload) private view {
		uint256 payloadLength = payload.length;
		address consoleAddress = CONSOLE_ADDRESS;
		assembly {
			let payloadStart := add(payload, 32)
			let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
		}
	}

	function log() internal view {
		_sendLogPayload(abi.encodeWithSignature("log()"));
	}

	function logInt(int p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(int)", p0));
	}

	function logUint(uint p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
	}

	function logString(string memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
	}

	function logBool(bool p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
	}

	function logAddress(address p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
	}

	function logBytes(bytes memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
	}

	function logBytes1(bytes1 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
	}

	function logBytes2(bytes2 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
	}

	function logBytes3(bytes3 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
	}

	function logBytes4(bytes4 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
	}

	function logBytes5(bytes5 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
	}

	function logBytes6(bytes6 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
	}

	function logBytes7(bytes7 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
	}

	function logBytes8(bytes8 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
	}

	function logBytes9(bytes9 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
	}

	function logBytes10(bytes10 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
	}

	function logBytes11(bytes11 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
	}

	function logBytes12(bytes12 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
	}

	function logBytes13(bytes13 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
	}

	function logBytes14(bytes14 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
	}

	function logBytes15(bytes15 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
	}

	function logBytes16(bytes16 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
	}

	function logBytes17(bytes17 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
	}

	function logBytes18(bytes18 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
	}

	function logBytes19(bytes19 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
	}

	function logBytes20(bytes20 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
	}

	function logBytes21(bytes21 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
	}

	function logBytes22(bytes22 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
	}

	function logBytes23(bytes23 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
	}

	function logBytes24(bytes24 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
	}

	function logBytes25(bytes25 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
	}

	function logBytes26(bytes26 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
	}

	function logBytes27(bytes27 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
	}

	function logBytes28(bytes28 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
	}

	function logBytes29(bytes29 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
	}

	function logBytes30(bytes30 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
	}

	function logBytes31(bytes31 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
	}

	function logBytes32(bytes32 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
	}

	function log(uint p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
	}

	function log(string memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
	}

	function log(bool p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
	}

	function log(address p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
	}

	function log(uint p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
	}

	function log(uint p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
	}

	function log(uint p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
	}

	function log(uint p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
	}

	function log(string memory p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1));
	}

	function log(string memory p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
	}

	function log(string memory p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
	}

	function log(string memory p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
	}

	function log(bool p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1));
	}

	function log(bool p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
	}

	function log(bool p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
	}

	function log(bool p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
	}

	function log(address p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1));
	}

	function log(address p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
	}

	function log(address p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
	}

	function log(address p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
	}

	function log(uint p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
	}

	function log(uint p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
	}

	function log(uint p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
	}

	function log(uint p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
	}

	function log(uint p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
	}

	function log(uint p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
	}

	function log(uint p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
	}

	function log(uint p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
	}

	function log(uint p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
	}

	function log(uint p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
	}

	function log(uint p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
	}

	function log(uint p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
	}

	function log(string memory p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2));
	}

	function log(string memory p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
	}

	function log(string memory p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
	}

	function log(string memory p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
	}

	function log(bool p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
	}

	function log(bool p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
	}

	function log(bool p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
	}

	function log(bool p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
	}

	function log(bool p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2));
	}

	function log(bool p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
	}

	function log(bool p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
	}

	function log(bool p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
	}

	function log(bool p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2));
	}

	function log(bool p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
	}

	function log(bool p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
	}

	function log(bool p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
	}

	function log(address p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
	}

	function log(address p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
	}

	function log(address p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
	}

	function log(address p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
	}

	function log(address p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2));
	}

	function log(address p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
	}

	function log(address p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
	}

	function log(address p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
	}

	function log(address p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2));
	}

	function log(address p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
	}

	function log(address p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
	}

	function log(address p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
	}

	function log(address p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2));
	}

	function log(address p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
	}

	function log(address p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
	}

	function log(address p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
	}

	function log(uint p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
	}

}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_paymentToken","type":"address"},{"internalType":"address","name":"_vaultAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"betIndex","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"gameIndex","type":"uint256"},{"indexed":false,"internalType":"address","name":"looser","type":"address"},{"indexed":false,"internalType":"address[10]","name":"participants","type":"address[10]"}],"name":"GameFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"betIndex","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"gameIndex","type":"uint256"},{"indexed":false,"internalType":"address[10]","name":"participants","type":"address[10]"}],"name":"UserEnteredGame","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"AllGames","outputs":[{"internalType":"uint128","name":"id","type":"uint128"},{"internalType":"uint8","name":"playersNow","type":"uint8"},{"internalType":"uint8","name":"extraGameFundCounter","type":"uint8"},{"internalType":"uint256","name":"extraGameFundBalance","type":"uint256"},{"internalType":"uint256","name":"betValue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"AllWinners","outputs":[{"internalType":"address","name":"winner","type":"address"},{"internalType":"uint256","name":"gameId","type":"uint256"},{"internalType":"uint256","name":"betValue","type":"uint256"},{"internalType":"uint256","name":"winnerPayout","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountGamesUntilExtraGame","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"arrayCounter","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"cancelBet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"checkAllowanceFrom","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkBalanceWildGamesVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_betValue","type":"uint256"}],"name":"createGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexGame","type":"uint256"},{"internalType":"uint256","name":"_playerNote","type":"uint256"}],"name":"enterinGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"extraGameLogs","outputs":[{"internalType":"uint128","name":"id","type":"uint128"},{"internalType":"uint8","name":"playersNow","type":"uint8"},{"internalType":"uint8","name":"extraGameFundCounter","type":"uint8"},{"internalType":"uint256","name":"extraGameFundBalance","type":"uint256"},{"internalType":"uint256","name":"betValue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"gameLogs","outputs":[{"internalType":"uint128","name":"id","type":"uint128"},{"internalType":"uint8","name":"playersNow","type":"uint8"},{"internalType":"uint8","name":"extraGameFundCounter","type":"uint8"},{"internalType":"uint256","name":"extraGameFundBalance","type":"uint256"},{"internalType":"uint256","name":"betValue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"getAllGameIdsUserParticipated","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllGamesData","outputs":[{"components":[{"internalType":"uint128","name":"id","type":"uint128"},{"internalType":"address[10]","name":"players","type":"address[10]"},{"internalType":"uint8","name":"playersNow","type":"uint8"},{"internalType":"uint8","name":"extraGameFundCounter","type":"uint8"},{"internalType":"uint256","name":"extraGameFundBalance","type":"uint256"},{"internalType":"address[]","name":"losers","type":"address[]"},{"internalType":"uint256","name":"betValue","type":"uint256"},{"internalType":"uint256[10]","name":"playerNotes","type":"uint256[10]"}],"internalType":"struct WildGamesHuntTen.Game[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"getGameByIndex","outputs":[{"components":[{"internalType":"uint128","name":"id","type":"uint128"},{"internalType":"address[10]","name":"players","type":"address[10]"},{"internalType":"uint8","name":"playersNow","type":"uint8"},{"internalType":"uint8","name":"extraGameFundCounter","type":"uint8"},{"internalType":"uint256","name":"extraGameFundBalance","type":"uint256"},{"internalType":"address[]","name":"losers","type":"address[]"},{"internalType":"uint256","name":"betValue","type":"uint256"},{"internalType":"uint256[10]","name":"playerNotes","type":"uint256[10]"}],"internalType":"struct WildGamesHuntTen.Game","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"getLastGameLog","outputs":[{"components":[{"internalType":"uint128","name":"id","type":"uint128"},{"internalType":"address[10]","name":"players","type":"address[10]"},{"internalType":"uint8","name":"playersNow","type":"uint8"},{"internalType":"uint8","name":"extraGameFundCounter","type":"uint8"},{"internalType":"uint256","name":"extraGameFundBalance","type":"uint256"},{"internalType":"address[]","name":"losers","type":"address[]"},{"internalType":"uint256","name":"betValue","type":"uint256"},{"internalType":"uint256[10]","name":"playerNotes","type":"uint256[10]"}],"internalType":"struct WildGamesHuntTen.Game","name":"gameLogs_","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"getLosersByGame","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"getPaymentTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenBalanceContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"getUserLastGame","outputs":[{"components":[{"internalType":"uint128","name":"id","type":"uint128"},{"internalType":"address[10]","name":"players","type":"address[10]"},{"internalType":"uint8","name":"playersNow","type":"uint8"},{"internalType":"uint8","name":"extraGameFundCounter","type":"uint8"},{"internalType":"uint256","name":"extraGameFundBalance","type":"uint256"},{"internalType":"address[]","name":"losers","type":"address[]"},{"internalType":"uint256","name":"betValue","type":"uint256"},{"internalType":"uint256[10]","name":"playerNotes","type":"uint256[10]"}],"internalType":"struct WildGamesHuntTen.Game","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_player","type":"address"},{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"isPlayerInGame","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"payments","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"removeGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_amount","type":"uint8"}],"name":"setAmountUntilExtra","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"setWildGamesFuncReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexGame","type":"uint256"}],"name":"viewPlayersByGame","outputs":[{"internalType":"address[10]","name":"","type":"address[10]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wildGamesVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80635089cefa116100f757806399fc8e2f11610095578063cbf3aff711610064578063cbf3aff714610566578063e2982c2114610586578063e6f97f9f146105a6578063f2fde38b146105bb576101d8565b806399fc8e2f146104ed5780639da9df3e1461051a578063b3ec564d1461052f578063c0d2037e14610544576101d8565b806373d31240116100d157806373d312401461046b57806377b40add1461048b5780638da5cb5b146104ab57806396a70185146104cd576101d8565b80635089cefa146104095780636650e91a14610436578063715018a614610456576101d8565b80633a957b541161016f5780634259c9d01161013e5780634259c9d01461037857806348e837b9146103a95780634930bd77146103c95780634ff2fbe3146103e9576101d8565b80633a957b54146102e95780633b19d9231461030957806340cc34e91461033657806340f5a07614610363576101d8565b8063357401f5116101ab578063357401f51461024a578063371b6c6c14610277578063392a5e30146102975780633a149332146102b9576101d8565b806301f3715b146101dd5780631188c554146101ff578063130269c81461021f576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101fd6101f836600461295a565b6105db565b005b34801561020b57600080fd5b506101fd61021a366004612a15565b610635565b34801561022b57600080fd5b50610234610655565b6040516102419190612f3c565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046129c4565b6106db565b6040516102419190612db7565b34801561028357600080fd5b506101fd6102923660046129f4565b610953565b3480156102a357600080fd5b506102ac610b8b565b6040516102419190612d13565b3480156102c557600080fd5b506102d96102d43660046129c4565b610d0f565b6040516102419493929190612c90565b3480156102f557600080fd5b5061026a61030436600461297b565b610d53565b34801561031557600080fd5b5061032961032436600461297b565b610f32565b6040516102419190612d73565b34801561034257600080fd5b5061035661035136600461297b565b610fa7565b6040516102419190612ef5565b34801561036f57600080fd5b506102346111a4565b34801561038457600080fd5b506103986103933660046129f4565b611209565b604051610241959493929190612f08565b3480156103b557600080fd5b506101fd6103c43660046129c4565b611267565b3480156103d557600080fd5b506103986103e43660046129c4565b6113f0565b3480156103f557600080fd5b506103986104043660046129f4565b611440565b34801561041557600080fd5b506104296104243660046129c4565b61145c565b6040516102419190612d00565b34801561044257600080fd5b506103566104513660046129c4565b6114f6565b34801561046257600080fd5b506101fd611667565b34801561047757600080fd5b506101fd6104863660046129c4565b6116a2565b34801561049757600080fd5b506102346104a636600461295a565b61175e565b3480156104b757600080fd5b506104c06117df565b6040516102419190612c07565b3480156104d957600080fd5b506102346104e836600461295a565b6117ee565b3480156104f957600080fd5b5061050d6105083660046129c4565b611821565b6040516102419190612cb6565b34801561052657600080fd5b506101fd6118a3565b34801561053b57600080fd5b506104c06119dd565b34801561055057600080fd5b506105596119ec565b6040516102419190612f45565b34801561057257600080fd5b506103566105813660046129c4565b6119fc565b34801561059257600080fd5b506102346105a136600461295a565b611bca565b3480156105b257600080fd5b50610559611bdc565b3480156105c757600080fd5b506101fd6105d636600461295a565b611bec565b336105e46117df565b6001600160a01b0316146106135760405162461bcd60e51b815260040161060a90612dc2565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002805460ff909216600160a81b0260ff60a81b19909216919091179055565b6001546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610686903090600401612c07565b60206040518083038186803b15801561069e57600080fd5b505afa1580156106b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d691906129dc565b905090565b600080600783815481106106ff57634e487b7160e01b600052603260045260246000fd5b906000526020600020906019020190506107193384610d53565b6107355760405162461bcd60e51b815260040161060a90612df1565b600e8101543360009081526003602052604090205410156107685760405162461bcd60e51b815260040161060a90612e7c565b600b8101805460ff1690600061077d83612fb5565b825460ff9182166101009390930a92830291909202199091161790555033600090815260066020908152604080832086845290915290208054806107d157634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905560005b600a811015610895578160010181600a811061081657634e487b7160e01b600052603260045260246000fd5b01546001600160a01b0316331415610883578160010181600a811061084b57634e487b7160e01b600052603260045260246000fd5b0180546001600160a01b0319169055600f820181600a811061087d57634e487b7160e01b600052603260045260246000fd5b01600090555b8061088d81612ff9565b9150506107ea565b50600e81015433600090815260036020526040812080549091906108ba908490612f9e565b9091555050600154600e82015460405163a9059cbb60e01b81526001600160a01b039092169163a9059cbb916108f591329190600401612c1b565b602060405180830381600087803b15801561090f57600080fd5b505af1158015610923573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094791906129a4565b5060019150505b919050565b60006007838154811061097657634e487b7160e01b600052603260045260246000fd5b906000526020600020906019020190506109903384610d53565b156109ad5760405162461bcd60e51b815260040161060a90612e1e565b80600e01546109bb336117ee565b10156109d95760405162461bcd60e51b815260040161060a90612e4e565b6109e681600e0154611c4a565b506109f2338484611cfe565b33600090815260066020908152604080832086845282528220835481546001810183559184529183206001600160801b03909216910155600b8201805460ff1691610a3c83613014565b82546101009290920a60ff818102199093169183160217909155600b83015416600a14159050610aa357610a6f83611dfa565b600b81018054610100900460ff16906001610a8983613014565b91906101000a81548160ff021916908360ff160217905550505b600b810154610ab990610100900460ff16612207565b600254610acf90600160a81b900460ff16612207565b600254600b820154610b0191610af89160ff600160a81b90920482169161010090910416613048565b60ff161561224a565b600254600b820154610100900460ff908116600160a81b909204161415610b3957610b2b8361228d565b600b8101805461ff00191690555b80546040516001600160801b0390911690849033907fda716fbd8c17e1b229b3b80a5cd1af2c570a809dbcbd888d10404aca219e080290610b7e906001870190612cf1565b60405180910390a4505050565b60606007805480602002602001604051908101604052809291908181526020016000905b82821015610d0657600084815260209081902060408051610100810182526019860290920180546001600160801b0316835281516101408101909252919283019060018301600a8282826020028201915b81546001600160a01b03168152600190910190602001808311610c00575050509183525050600b82015460ff80821660208085019190915261010090920416604080840191909152600c8401546060840152600d840180548251818502810185019093528083526080909401939192909190830182828015610cab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c8d575b5050509183525050600e82015460208201526040805161014081018252910190600f8301600a8282826020028201915b815481526020019060010190808311610cdb5750505050508152505081526020019060010190610baf565b50505050905090565b60088181548110610d1f57600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b60008060078381548110610d7757634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805161010081018252601990930290910180546001600160801b0316835281516101408101909252919283019060018301600a8282826020028201915b81546001600160a01b03168152600190910190602001808311610dc1575050509183525050600b82015460ff80821660208085019190915261010090920416604080840191909152600c8401546060840152600d840180548251818502810185019093528083526080909401939192909190830182828015610e6c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e4e575b5050509183525050600e82015460208201526040805161014081018252910190600f8301600a8282826020028201915b815481526020019060010190808311610e9c57505050505081525050905060005b600a811015610f2557846001600160a01b0316826020015182600a8110610ef457634e487b7160e01b600052603260045260246000fd5b60200201516001600160a01b03161415610f1357600192505050610f2c565b80610f1d81612ff9565b915050610ebd565b5060009150505b92915050565b6001600160a01b0382166000908152600660209081526040808320848452825291829020805483518184028101840190945280845260609392830182828015610f9a57602002820191906000526020600020905b815481526020019060010190808311610f86575b5050505050905092915050565b610faf612746565b6001600160a01b038316600090815260066020908152604080832085845282528083208054825181850281018501909352808352919290919083018282801561101757602002820191906000526020600020905b815481526020019060010190808311611003575b505050600086815260046020526040902083519394509261103c925060019150612f9e565b8154811061105a57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805161010081018252601990930290910180546001600160801b0316835281516101408101909252919283019060018301600a8282826020028201915b81546001600160a01b031681526001909101906020018083116110a4575050509183525050600b82015460ff80821660208085019190915261010090920416604080840191909152600c8401546060840152600d84018054825181850281018501909352808352608090940193919290919083018282801561114f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611131575b5050509183525050600e82015460208201526040805161014081018252910190600f8301600a8282826020028201915b81548152602001906001019080831161117f5750505050508152505091505092915050565b6000336111af6117df565b6001600160a01b0316146111d55760405162461bcd60e51b815260040161060a90612dc2565b6001546002546040516370a0823160e01b81526001600160a01b03928316926370a082319261068692911690600401612c07565b6005602052816000526040600020818154811061122557600080fd5b600091825260209091206019909102018054600b820154600c830154600e909301546001600160801b03909216945060ff808216945061010090910416919085565b336112706117df565b6001600160a01b0316146112965760405162461bcd60e51b815260040161060a90612dc2565b60606112a061279e565b6112a861279e565b6040805161010081018252600080825260208201858152928201819052606082018190526080820181905260a0820186905260c0820187905260e0820184905260078054600181018255915281517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601990920291820180546001600160801b0319166001600160801b03909216919091178155925191929161136f917fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6890190600a6127bd565b506040820151600b82018054606085015160ff9081166101000261ff00199190941660ff1990921691909117169190911790556080820151600c82015560a082015180516113c791600d840191602090910190612815565b5060c0820151600e82015560e08201516113e790600f830190600a612869565b50505050505050565b6007818154811061140057600080fd5b600091825260209091206019909102018054600b820154600c830154600e909301546001600160801b03909216935060ff80821693610100909204169185565b6004602052816000526040600020818154811061122557600080fd5b606060006007838154811061148157634e487b7160e01b600052603260045260246000fd5b9060005260206000209060190201905080600d018054806020026020016040519081016040528092919081815260200182805480156114e957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114cb575b5050505050915050919050565b6114fe612746565b6007828154811061151f57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805161010081018252601990930290910180546001600160801b0316835281516101408101909252919283019060018301600a8282826020028201915b81546001600160a01b03168152600190910190602001808311611569575050509183525050600b82015460ff80821660208085019190915261010090920416604080840191909152600c8401546060840152600d84018054825181850281018501909352808352608090940193919290919083018282801561161457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115f6575b5050509183525050600e82015460208201526040805161014081018252910190600f8301600a8282826020028201915b815481526020019060010190808311611644575050505050815250509050919050565b336116706117df565b6001600160a01b0316146116965760405162461bcd60e51b815260040161060a90612dc2565b6116a06000612524565b565b336116ab6117df565b6001600160a01b0316146116d15760405162461bcd60e51b815260040161060a90612dc2565b600781815481106116f257634e487b7160e01b600052603260045260246000fd5b60009182526020822060199091020180546001600160801b03191681559061171d6001830182612897565b600b8201805461ffff191690556000600c830181905561174190600d8401906128a6565b600e820160009055600f820160006117599190612897565b505050565b6001546040516370a0823160e01b81526000916001600160a01b0316906370a082319061178f908590600401612c07565b60206040518083038186803b1580156117a757600080fd5b505afa1580156117bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2c91906129dc565b6000546001600160a01b031690565b600154604051636eb1769f60e11b81526000916001600160a01b03169063dd62ed3e9061178f9085903090600401612c34565b61182961279e565b60006007838154811061184c57634e487b7160e01b600052603260045260246000fd5b60009182526020909120604080516101408101909152601990920201915060018201600a82828260200282019181546001600160a01b031681526001909101906020018083116114cb575050505050915050919050565b336118ac6117df565b6001600160a01b0316146118d25760405162461bcd60e51b815260040161060a90612dc2565b6001546001600160a01b031663a9059cbb6118eb6117df565b6001546040516370a0823160e01b81526001600160a01b03909116906370a082319061191b903090600401612c07565b60206040518083038186803b15801561193357600080fd5b505afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906129dc565b6040518363ffffffff1660e01b8152600401611988929190612c1b565b602060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119da91906129a4565b50565b6002546001600160a01b031681565b600254600160a01b900460ff1681565b611a04612746565b600082815260046020908152604080832080548251818502810185019093528083529192909190849084015b82821015611b8757600084815260209081902060408051610100810182526019860290920180546001600160801b0316835281516101408101909252919283019060018301600a8282826020028201915b81546001600160a01b03168152600190910190602001808311611a81575050509183525050600b82015460ff80821660208085019190915261010090920416604080840191909152600c8401546060840152600d840180548251818502810185019093528083526080909401939192909190830182828015611b2c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b0e575b5050509183525050600e82015460208201526040805161014081018252910190600f8301600a8282826020028201915b815481526020019060010190808311611b5c5750505050508152505081526020019060010190611a30565b5050505090508060018251611b9c9190612f9e565b81518110611bba57634e487b7160e01b600052603260045260246000fd5b6020026020010151915050919050565b60036020526000908152604090205481565b600254600160a81b900460ff1681565b33611bf56117df565b6001600160a01b031614611c1b5760405162461bcd60e51b815260040161060a90612dc2565b6001600160a01b038116611c415760405162461bcd60e51b815260040161060a90612ebe565b6119da81612524565b6001546040516323b872dd60e01b81526000916001600160a01b0316906323b872dd90611c7f90329030908790600401612c4e565b602060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd191906129a4565b503260009081526003602052604081208054849290611cf1908490612f53565b9091555060019392505050565b600060078381548110611d2157634e487b7160e01b600052603260045260246000fd5b9060005260206000209060190201905060005b600a811015611df35760006001830182600a8110611d6257634e487b7160e01b600052603260045260246000fd5b01546001600160a01b03161415611de157848260010182600a8110611d9757634e487b7160e01b600052603260045260246000fd5b0180546001600160a01b0319166001600160a01b039290921691909117905582600f830182600a8110611dda57634e487b7160e01b600052603260045260246000fd5b0155611df3565b80611deb81612ff9565b915050611d34565b5050505050565b600060078281548110611e1d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906019020190506000606482600e0154606d611e429190612f7f565b611e4c9190612f6b565b90506000611e5b600a85612574565b905082600d018360010182600a8110611e8457634e487b7160e01b600052603260045260246000fd5b015481546001810183556000928352602083200180546001600160a01b0319166001600160a01b039092169190911790555b600a811015611f8f57818114611f7d57600180546001600160a01b03169063a9059cbb90860183600a8110611efb57634e487b7160e01b600052603260045260246000fd5b01546040516001600160e01b031960e084901b168152611f29916001600160a01b0316908790600401612c1b565b602060405180830381600087803b158015611f4357600080fd5b505af1158015611f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7b91906129a4565b505b80611f8781612ff9565b915050611eb6565b50600154600254600e8501546001600160a01b039283169263a9059cbb921690611fbb90600a90612f6b565b6040518363ffffffff1660e01b8152600401611fd8929190612c1b565b602060405180830381600087803b158015611ff257600080fd5b505af1158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a91906129a4565b50606483600e0154600961203e9190612f7f565b6120489190612f6b565b83600c01600082825461205b9190612f53565b9091555061206f9050600184016000612897565b61207d600f84016000612897565b600b8301805460ff191690556000848152600460209081526040822080546001818101835591845291909220855460199092020180546001600160801b0319166001600160801b0390921691909117815584916120e190828101908401600a6128c4565b50600b8281018054918301805460ff191660ff9384161780825591546101009081900490931690920261ff0019909116179055600c8083015490820155600d808301805461213292840191906128ef565b50600e828101549082015561214f600f808301908401600a6128c4565b505083546001600160801b0316905083600061216a83612fd2565b91906101000a8154816001600160801b0302191690836001600160801b031602179055506001600160801b0316847ff113dae589c6e3b9c5761a62690541bbf8f7d4978d7d270957e67f6d7baf178b8560010184600a81106121dc57634e487b7160e01b600052603260045260246000fd5b01546040516121f9916001600160a01b0316906001890190612c72565b60405180910390a350505050565b6119da8160405160240161221b9190612f3c565b60408051601f198184030181529190526020810180516001600160e01b031663f5b1bba960e01b179052612725565b6119da8160405160240161225e9190612db7565b60408051601f198184030181529190526020810180516001600160e01b03166332458eed60e01b179052612725565b6000600782815481106122b057634e487b7160e01b600052603260045260246000fd5b9060005260206000209060190201905060006122d382600d018054905084612574565b600154600d840180549293506001600160a01b039091169163a9059cbb91908490811061231057634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600c8501546040516001600160e01b031960e085901b16815261234c926001600160a01b03169190600401612c1b565b602060405180830381600087803b15801561236657600080fd5b505af115801561237a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239e91906129a4565b506008604051806080016040528084600d0184815481106123cf57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03908116845287546001600160801b0390811685840152600e890154604080870191909152600c8a0154606096870152875460018181018a5598865284862088516004909202018054919094166001600160a01b0319909116178355868401518389015586810151600284015595909401516003909101558782526005815292812080548086018255908252929020855460199093020180546001600160801b0319169290911691909117815583916124a490828101908401600a6128c4565b50600b8281018054918301805460ff191660ff9384161780825591546101009081900490931690920261ff0019909116179055600c8083015490820155600d80830180546124f592840191906128ef565b50600e8281015490820155612512600f808301908401600a6128c4565b50611759915050600d830160006128a6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806007838154811061259857634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805161010081018252601990930290910180546001600160801b0316835281516101408101909252919283019060018301600a8282826020028201915b81546001600160a01b031681526001909101906020018083116125e2575050509183525050600b82015460ff80821660208085019190915261010090920416604080840191909152600c8401546060840152600d84018054825181850281018501909352808352608090940193919290919083018282801561268d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161266f575b5050509183525050600e82015460208201526040805161014081018252910190600f8301600a8282826020028201915b8154815260200190600101908083116126bd57505050505081525050905083424443408460e00151336040516020016126fa959493929190612ba5565b6040516020818303038152906040528051906020012060001c61271d9190613034565b949350505050565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60405180610100016040528060006001600160801b0316815260200161276a61279e565b8152600060208201819052604082018190526060808301829052608083015260a082015260c00161279961279e565b905290565b604051806101400160405280600a906020820280368337509192915050565b82600a8101928215612805579160200282015b8281111561280557825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906127d0565b5061281192915061292e565b5090565b828054828255906000526020600020908101928215612805579160200282018281111561280557825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906127d0565b82600a8101928215612805579160200282015b8281111561280557825182559160200191906001019061287c565b506119da90600a81019061292e565b50805460008255906000526020600020908101906119da919061292e565b82600a8101928215612805579182015b828111156128055782548255916001019190600101906128d4565b828054828255906000526020600020908101928215612805576000526020600020918201828111156128055782548255916001019190600101906128d4565b5b80821115612811576000815560010161292f565b80356001600160a01b038116811461094e57600080fd5b60006020828403121561296b578081fd5b61297482612943565b9392505050565b6000806040838503121561298d578081fd5b61299683612943565b946020939093013593505050565b6000602082840312156129b5578081fd5b81518015158114612974578182fd5b6000602082840312156129d5578081fd5b5035919050565b6000602082840312156129ed578081fd5b5051919050565b60008060408385031215612a06578182fd5b50508035926020909101359150565b600060208284031215612a26578081fd5b813560ff81168114612974578182fd5b8060005b600a811015612a625781516001600160a01b0316845260209384019390910190600101612a3a565b50505050565b8060005b600a811015612a625781546001600160a01b0316845260209093019260019182019101612a6c565b6000815180845260208085019450808401835b83811015612acc5781516001600160a01b031687529582019590820190600101612aa7565b509495945050505050565b8060005b600a811015612a62578151845260209384019390910190600101612adb565b6000610340612b0a848451612b91565b6020830151612b1c6020860182612a36565b506040830151612b30610160860182612b9e565b506060830151612b44610180860182612b9e565b5060808301516101a085015260a0830151816101c0860152612b6882860182612a94565b91505060c08301516101e085015260e0830151612b89610200860182612ad7565b509392505050565b6001600160801b03169052565b60ff169052565b6000868252602086818401528560408401526060830185835b600a811015612bdb57815183529183019190830190600101612bbe565b505050505060609190911b6bffffffffffffffffffffffff19166101a08201526101b401949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038316815261016081016129746020830184612a68565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6101408101818360005b600a811015612ce85781516001600160a01b0316835260209283019290910190600101612cc0565b50505092915050565b6101408101610f2c8284612a68565b6000602082526129746020830184612a94565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015612d6657603f19888603018452612d54858351612afa565b94509285019290850190600101612d38565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015612dab57835183529284019291840191600101612d8f565b50909695505050505050565b901515815260200190565b6020808252601590820152742cb7ba9030b932903737ba103a34329037bbb732b960591b604082015260600190565b6020808252601390820152723cb7ba93b932903737ba103090383630bcb2b960691b604082015260600190565b6020808252601690820152751e5bdd49dc9948185b1c9958591e48195b9d195c995960521b604082015260600190565b6020808252601490820152736e6f7420656e6f75676820616c6c6f77616e636560601b604082015260600190565b60208082526022908201527f6e6f7420656e6f75676820616c6c6f77616e636520666f722063616e63656c42604082015261195d60f21b606082015260800190565b6020808252601d908201527f7a65726f20616464726573732063616e206e6f74206265206f776e6572000000604082015260600190565b6000602082526129746020830184612afa565b6001600160801b0395909516855260ff93841660208601529190921660408401526060830191909152608082015260a00190565b90815260200190565b60ff91909116815260200190565b60008219821115612f6657612f6661306a565b500190565b600082612f7a57612f7a613080565b500490565b6000816000190483118215151615612f9957612f9961306a565b500290565b600082821015612fb057612fb061306a565b500390565b600060ff821680612fc857612fc861306a565b6000190192915050565b60006001600160801b0380831681811415612fef57612fef61306a565b6001019392505050565b600060001982141561300d5761300d61306a565b5060010190565b600060ff821660ff81141561302b5761302b61306a565b60010192915050565b60008261304357613043613080565b500690565b600060ff83168061305b5761305b613080565b8060ff84160691505092915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfea264697066735822122000ec4b53d53c915b50b1171598d14feeedf6e3f7df7a282137e692ec3af9c59964736f6c63430008000033

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading

OVERVIEW

Hunt Ten - P2P Blockchain Game for 10 participants, after each round 9 participants win and 1 participant loses his bet. The winners share in equal proportions the loser's bet.

Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.