More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 361 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 15381163 | 888 days ago | IN | 0 ETH | 0.00012278 | ||||
Approve | 15381162 | 888 days ago | IN | 0 ETH | 0.00012719 | ||||
Approve | 15381157 | 888 days ago | IN | 0 ETH | 0.00012325 | ||||
Approve | 15381156 | 888 days ago | IN | 0 ETH | 0.00013071 | ||||
Approve | 15381149 | 888 days ago | IN | 0 ETH | 0.00015833 | ||||
Approve | 15381148 | 888 days ago | IN | 0 ETH | 0.00014478 | ||||
Approve | 15381140 | 888 days ago | IN | 0 ETH | 0.00020673 | ||||
Approve | 15381140 | 888 days ago | IN | 0 ETH | 0.00020673 | ||||
Approve | 15381138 | 888 days ago | IN | 0 ETH | 0.00018022 | ||||
Approve | 15381138 | 888 days ago | IN | 0 ETH | 0.00018022 | ||||
Approve | 14662914 | 1005 days ago | IN | 0 ETH | 0.00124674 | ||||
Transfer | 14646051 | 1007 days ago | IN | 0 ETH | 0.00151596 | ||||
Approve | 14627580 | 1010 days ago | IN | 0 ETH | 0.00217905 | ||||
Approve | 14606082 | 1014 days ago | IN | 0 ETH | 0.00145438 | ||||
Transfer | 14579143 | 1018 days ago | IN | 0 ETH | 0.00373204 | ||||
Approve | 14565851 | 1020 days ago | IN | 0 ETH | 0.00219506 | ||||
Approve | 14561282 | 1021 days ago | IN | 0 ETH | 0.00062274 | ||||
Approve | 14502474 | 1030 days ago | IN | 0 ETH | 0.00453487 | ||||
Approve | 14485495 | 1032 days ago | IN | 0 ETH | 0.00118958 | ||||
Approve | 14485134 | 1032 days ago | IN | 0 ETH | 0.001596 | ||||
Approve | 14484713 | 1032 days ago | IN | 0 ETH | 0.00280352 | ||||
Approve | 14481975 | 1033 days ago | IN | 0 ETH | 0.00181387 | ||||
Approve | 14481904 | 1033 days ago | IN | 0 ETH | 0.00316699 | ||||
Withdraw | 14481531 | 1033 days ago | IN | 0 ETH | 0.00164759 | ||||
Approve | 14481287 | 1033 days ago | IN | 0 ETH | 0.00360327 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
14627599 | 1010 days ago | 0.00407881 ETH | ||||
14606084 | 1014 days ago | 0.00118001 ETH | ||||
14595282 | 1015 days ago | 0.00124447 ETH | ||||
14581846 | 1017 days ago | 0.00100121 ETH | ||||
14565401 | 1020 days ago | 0.00722394 ETH | ||||
14552070 | 1022 days ago | 0.01393083 ETH | ||||
14550255 | 1022 days ago | 0.00194572 ETH | ||||
14540193 | 1024 days ago | 0.00322061 ETH | ||||
14535543 | 1025 days ago | 0.00291168 ETH | ||||
14502479 | 1030 days ago | 0.01042424 ETH | ||||
14491434 | 1031 days ago | 0.00479696 ETH | ||||
14485788 | 1032 days ago | 0.01236406 ETH | ||||
14485717 | 1032 days ago | 0.00147577 ETH | ||||
14485665 | 1032 days ago | 0.00053083 ETH | ||||
14484714 | 1032 days ago | 0.00892066 ETH | ||||
14482011 | 1033 days ago | 0.00917658 ETH | ||||
14481980 | 1033 days ago | 0.00295172 ETH | ||||
14481687 | 1033 days ago | 0.00140147 ETH | ||||
14481672 | 1033 days ago | 0.00385297 ETH | ||||
14481531 | 1033 days ago | 0.26958816 ETH | ||||
14480060 | 1033 days ago | 0.00564313 ETH | ||||
14479071 | 1033 days ago | 0.00344039 ETH | ||||
14479059 | 1033 days ago | 0.00610994 ETH | ||||
14479023 | 1033 days ago | 0.00226061 ETH | ||||
14479019 | 1033 days ago | 0.01098508 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CLASHOFAPES
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-27 */ // CLASH OF APES - https://clashofapes.io // JOIN THE APES - https://twitter.com/clashofapes // THROW POOP - https://t.me/clashofapes // File: contracts/Withdrawable.sol abstract contract Withdrawable { address internal _withdrawAddress; constructor(address withdrawAddress) { _withdrawAddress = withdrawAddress; } modifier onlyWithdrawer() { require(msg.sender == _withdrawAddress); _; } function withdraw() external onlyWithdrawer { _withdraw(); } function _withdraw() internal { payable(_withdrawAddress).transfer(address(this).balance); } function setWithdrawAddress(address newWithdrawAddress) external onlyWithdrawer { _withdrawAddress = newWithdrawAddress; } } // File: hardhat/console.sol 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)); } } // File: contracts/Ownable.sol pragma solidity ^0.8.7; abstract contract Ownable { address _owner; modifier onlyOwner() { require(msg.sender == _owner); _; } constructor() { _owner = msg.sender; } function transferOwnership(address newOwner) external onlyOwner { _owner = newOwner; } } // File: contracts/IUniswapV2Factory.sol pragma solidity ^0.8.7; interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } // File: contracts/IUniswapV2Router02.sol pragma solidity ^0.8.7; interface IUniswapV2Router02 { function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } // File: contracts/DoubleSwapped.sol pragma solidity ^0.8.7; contract DoubleSwapped { bool internal _inSwap; modifier lockTheSwap() { _inSwap = true; _; _inSwap = false; } function _swapTokensForEth( uint256 tokenAmount, IUniswapV2Router02 _uniswapV2Router ) internal lockTheSwap { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); // make the swap console.log("doubleSwap ", tokenAmount); _uniswapV2Router.swapExactTokensForETH( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); } function _swapTokensForEthOnTransfer( uint256 transferAmount, uint256 swapCount, IUniswapV2Router02 _uniswapV2Router ) internal { if (swapCount == 0) return; uint256 maxSwapCount = 2 * transferAmount; if (swapCount > maxSwapCount) swapCount = maxSwapCount; _swapTokensForEth(swapCount, _uniswapV2Router); } } // File: contracts/IERC20.sol pragma solidity ^0.8.7; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } // File: contracts/ERC20.sol pragma solidity ^0.8.7; abstract contract ERC20 is IERC20 { uint256 internal _totalSupply = 1e12; string _name; string _symbol; uint8 constant _decimals = 0; mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 internal constant INFINITY_ALLOWANCE = 2**256 - 1; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory) { return _symbol; } function decimals() external pure returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address account) external virtual override view returns (uint256); function transfer(address recipient, uint256 amount) external override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { uint256 senderBalance = _balances[from]; require(senderBalance >= amount); unchecked { _balances[from] = senderBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); } function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve( address owner, address spender, uint256 amount ) internal virtual { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][msg.sender]; require(currentAllowance >= amount); if (currentAllowance == INFINITY_ALLOWANCE) return true; unchecked { _approve(sender, msg.sender, currentAllowance - amount); } return true; } function _burn(address account, uint256 amount) internal virtual { require(account != address(0)); uint256 accountBalance = _balances[account]; require(accountBalance >= amount); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } } // File: contracts/MaxWalletDynamic.sol pragma solidity ^0.8.7; abstract contract MaxWalletDynamic { uint256 startMaxWallet; uint256 startTime; // last increment time uint256 constant startMaxBuyPercentil = 500; // maximum buy on start 1000=100% uint256 constant maxBuyIncrementMinutesTimer = 2; // increment maxbuy minutes uint256 constant maxBuyIncrementPercentil = 3; // increment maxbuy percentil 1000=100% uint256 constant maxIncrements = 1000; // maximum time incrementations uint256 maxBuyIncrementValue; // value for increment maxBuy function startMaxWalletDynamic(uint256 totalSupply) internal { startTime = block.timestamp; startMaxWallet = (totalSupply * startMaxBuyPercentil) / 1000; maxBuyIncrementValue = (totalSupply * maxBuyIncrementPercentil) / 1000; } function checkMaxWallet(uint256 walletSize) internal view { require(walletSize <= getMaxWallet(), "max wallet limit"); } function getMaxWallet() public view returns (uint256) { uint256 incrementCount = (block.timestamp - startTime) / (maxBuyIncrementMinutesTimer * 1 minutes); if (incrementCount >= maxIncrements) incrementCount = maxIncrements; return startMaxWallet + maxBuyIncrementValue * incrementCount; } function _setStartMaxWallet(uint256 startMaxWallet_) internal { startMaxWallet = startMaxWallet_; } } // File: contracts/TradableErc20.sol pragma solidity ^0.8.7; abstract contract TradableErc20 is ERC20, DoubleSwapped, Ownable, MaxWalletDynamic { IUniswapV2Router02 internal constant _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public uniswapPair; bool tradingEnable = true; mapping(address => bool) _isExcludedFromFee; address public constant ADDR_BURN = 0x000000000000000000000000000000000000dEaD; constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) { _isExcludedFromFee[address(0)] = true; _isExcludedFromFee[ADDR_BURN] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[msg.sender] = true; } receive() external payable {} function createLiquidity() public onlyOwner { require(uniswapPair == address(0)); address pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair( address(this), _uniswapV2Router.WETH() ); uint256 initialLiquidity = getSupplyForMakeLiquidity(); _balances[address(this)] = initialLiquidity; emit Transfer(address(0), address(this), initialLiquidity); _allowances[address(this)][ address(_uniswapV2Router) ] = INFINITY_ALLOWANCE; _isExcludedFromFee[pair] = true; _uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), initialLiquidity, 0, 0, msg.sender, block.timestamp ); uniswapPair = pair; startMaxWalletDynamic(initialLiquidity); } function _transfer( address from, address to, uint256 amount ) internal override { require(_balances[from] >= amount, "not enough token for transfer"); require(to != address(0), "incorrect address"); // buy if (from == uniswapPair && !_isExcludedFromFee[to]) { require(tradingEnable, "trading disabled"); // get taxes amount = _getFeeBuy(from, to, amount); // check max wallet checkMaxWallet(_balances[to] + amount); } // sell else if ( !_inSwap && uniswapPair != address(0) && to == uniswapPair && !_isExcludedFromFee[from] ) { require(tradingEnable, "trading disabled"); // fee amount = _getFeeSell(from, amount); // swap tokens _swapTokensForEthOnTransfer( amount, _balances[address(this)], _uniswapV2Router ); } // transfer from wallet to wallet else { if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { // get taxes amount = _getFeeTransfer(from, amount); // check max wallet checkMaxWallet(_balances[to] + amount); } } // transfer super._transfer(from, to, amount); if (to == address(ADDR_BURN)) _totalSupply -= amount; } function getFeeBuy(address account, uint256 amount) private pure returns (uint256) { return amount / 10; // 10% } function getFeeSell(address account, uint256 amount) private returns (uint256) { return amount / 10; // 10% } function getFeeTransfer(address account, uint256 amount) private returns (uint256) { return amount / 10; // 10% } function _getFeeBuy( address pair, address to, uint256 amount ) private returns (uint256) { return _arrangeFee(pair, amount, getFeeBuy(to, amount)); } function _getFeeSell(address from, uint256 amount) private returns (uint256) { return _arrangeFee(from, amount, getFeeSell(from, amount)); } function _getFeeTransfer(address from, uint256 amount) private returns (uint256) { return _arrangeFee(from, amount, getFeeTransfer(from, amount)); } function _arrangeFee( address from, uint256 amount, uint256 fee ) private returns (uint256) { uint256 reward = fee / 2; uint256 burn = fee - reward; amount -= fee; _balances[from] -= fee; _balances[address(this)] += reward; _balances[ADDR_BURN] += burn; _totalSupply -= burn; emit Transfer(from, address(this), reward); emit Transfer(from, ADDR_BURN, burn); return amount; } function setExcludeFromFee(address[] memory accounts, bool value) external onlyOwner { for (uint256 i = 0; i < accounts.length; ++i) { _isExcludedFromFee[accounts[i]] = value; } } function setEnableTrading(bool value) external onlyOwner { tradingEnable = value; } function getEnableTrading() external view returns (bool) { return tradingEnable; } function getSupplyForMakeLiquidity() internal virtual returns (uint256); } // File: contracts/ClashofApes.sol pragma solidity ^0.8.7; contract CLASHOFAPES is TradableErc20, Withdrawable { constructor() TradableErc20("Clash of Apes", "COA") Withdrawable(0x573273e7f65039c9A674A4054293687A11491F73) {} function getSupplyForMakeLiquidity() internal view override returns (uint256) { return _totalSupply; } function balanceOf(address account) external view override returns (uint256) { return _balances[account]; } function setMaxWalletOnStart(uint256 startMaxWallet) external onlyOwner { _setStartMaxWallet(startMaxWallet); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ADDR_BURN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEnableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"startMaxWallet","type":"uint256"}],"name":"setMaxWalletOnStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWithdrawAddress","type":"address"}],"name":"setWithdrawAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405264e8d4a510006000556009805460ff60a01b1916600160a01b1790553480156200002d57600080fd5b50604080518082018252600d81526c436c617368206f66204170657360981b602080830191825283518085019094526003845262434f4160e81b90840152815173573273e7f65039c9a674a4054293687a11491f7393918391839162000097916001919062000176565b508051620000ad90600290602084019062000176565b505060058054610100600160a81b03191633610100810291909117909155600a6020527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e3805460ff1990811660019081179092557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054821683179055306000908152604080822080548416851790559381529290922080549092161790555050600b80546001600160a01b0319166001600160a01b0393909316929092179091555062000259565b82805462000184906200021c565b90600052602060002090601f016020900481019282620001a85760008555620001f3565b82601f10620001c357805160ff1916838001178555620001f3565b82800160010185558215620001f3579182015b82811115620001f3578251825591602001919060010190620001d6565b506200020192915062000205565b5090565b5b8082111562000201576000815560010162000206565b600181811c908216806200023157607f821691505b602082108114156200025357634e487b7160e01b600052602260045260246000fd5b50919050565b61176280620002696000396000f3fe6080604052600436106101235760003560e01c80636c90b57f116100a0578063c7af2a9c11610064578063c7af2a9c1461032e578063c816841b14610343578063cf991d0514610363578063dd62ed3e14610382578063f2fde38b146103c857600080fd5b80636c90b57f1461028357806370a08231146102a357806395d89b41146102d9578063a9059cbb146102ee578063b92ebd5f1461030e57600080fd5b806323b872dd116100e757806323b872dd146101e45780632ccb932114610204578063313ce567146102325780633ab1a4941461024e5780633ccfd60b1461026e57600080fd5b8063019ce79b1461012f57806306fdde0314610151578063095ea7b31461017c5780630fa604e4146101ac57806318160ddd146101cf57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5061014f61014a3660046114b5565b6103e8565b005b34801561015d57600080fd5b50610166610410565b6040516101739190611549565b60405180910390f35b34801561018857600080fd5b5061019c610197366004611390565b6104a2565b6040519015158152602001610173565b3480156101b857600080fd5b506101c16104b8565b604051908152602001610173565b3480156101db57600080fd5b506000546101c1565b3480156101f057600080fd5b5061019c6101ff36600461134f565b61050f565b34801561021057600080fd5b5061021a61dead81565b6040516001600160a01b039091168152602001610173565b34801561023e57600080fd5b5060405160008152602001610173565b34801561025a57600080fd5b5061014f6102693660046112dc565b61057b565b34801561027a57600080fd5b5061014f6105b4565b34801561028f57600080fd5b5061014f61029e3660046113bc565b6105d5565b3480156102af57600080fd5b506101c16102be3660046112dc565b6001600160a01b031660009081526003602052604090205490565b3480156102e557600080fd5b5061016661065b565b3480156102fa57600080fd5b5061019c610309366004611390565b61066a565b34801561031a57600080fd5b5061014f61032936600461149a565b610677565b34801561033a57600080fd5b5061014f6106b1565b34801561034f57600080fd5b5060095461021a906001600160a01b031681565b34801561036f57600080fd5b50600954600160a01b900460ff1661019c565b34801561038e57600080fd5b506101c161039d366004611316565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103d457600080fd5b5061014f6103e33660046112dc565b6109d9565b60055461010090046001600160a01b0316331461040457600080fd5b61040d81600655565b50565b60606001805461041f9061165f565b80601f016020809104026020016040519081016040528092919081815260200182805461044b9061165f565b80156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b5050505050905090565b60006104af338484610a1d565b50600192915050565b6000806104c76002603c611629565b6007546104d49042611648565b6104de9190611607565b90506103e881106104ee57506103e85b806008546104fc9190611629565b60065461050991906115ef565b91505090565b600061051c848484610a7e565b6001600160a01b03841660009081526004602090815260408083203384529091529020548281101561054d57600080fd5b600019811415610561576001915050610574565b61056e8533858403610a1d565b60019150505b9392505050565b600b546001600160a01b0316331461059257600080fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b031633146105cb57600080fd5b6105d3610d9a565b565b60055461010090046001600160a01b031633146105f157600080fd5b60005b82518110156106565781600a6000858481518110610614576106146116cb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561064f8161169a565b90506105f4565b505050565b60606002805461041f9061165f565b60006104af338484610a7e565b60055461010090046001600160a01b0316331461069357600080fd5b60098054911515600160a01b0260ff60a01b19909216919091179055565b60055461010090046001600160a01b031633146106cd57600080fd5b6009546001600160a01b0316156106e357600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561073257600080fd5b505afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906112f9565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe91906112f9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561084657600080fd5b505af115801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e91906112f9565b9050600061088b60005490565b3060008181526003602052604080822084905551929350909160008051602061170d833981519152906108c19085815260200190565b60405180910390a3306000818152600460208181526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d80865290835281852060001990556001600160a01b0388168552600a909252808420805460ff191660011790555163f305d71960e01b815291820193909352602481018490526044810182905260648101919091523360848201524260a482015263f305d71990479060c4016060604051808303818588803b15801561097557600080fd5b505af1158015610989573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109ae91906114ce565b5050600980546001600160a01b0319166001600160a01b038516179055506109d581610dd3565b5050565b60055461010090046001600160a01b031633146109f557600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316600090815260036020526040902054811115610aeb5760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820746f6b656e20666f72207472616e7366657200000060448201526064015b60405180910390fd5b6001600160a01b038216610b355760405162461bcd60e51b8152602060048201526011602482015270696e636f7272656374206164647265737360781b6044820152606401610ae2565b6009546001600160a01b038481169116148015610b6b57506001600160a01b0382166000908152600a602052604090205460ff16155b15610bfc57600954600160a01b900460ff16610bbc5760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610ae2565b610bc7838383610e11565b6001600160a01b038316600090815260036020526040902054909150610bf790610bf29083906115ef565b610e2f565b610d61565b60055460ff16158015610c1957506009546001600160a01b031615155b8015610c3257506009546001600160a01b038381169116145b8015610c5757506001600160a01b0383166000908152600a602052604090205460ff16155b15610ce557600954600160a01b900460ff16610ca85760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610ae2565b610cb28382610e79565b30600090815260036020526040902054909150610bf7908290737a250d5630b4cf539739df2c5dacb4c659f2488d610e8a565b6001600160a01b0383166000908152600a602052604090205460ff16158015610d2757506001600160a01b0382166000908152600a602052604090205460ff16155b15610d6157610d368382610e79565b6001600160a01b038316600090815260036020526040902054909150610d6190610bf29083906115ef565b610d6c838383610ebf565b6001600160a01b03821661dead14156106565780600080828254610d909190611648565b9091555050505050565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561040d573d6000803e3d6000fd5b426007556103e8610de66101f483611629565b610df09190611607565b6006556103e8610e01600383611629565b610e0b9190611607565b60085550565b6000610e278483610e228686610f64565b610f71565b949350505050565b610e376104b8565b81111561040d5760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606401610ae2565b60006105748383610e228686610f64565b81610e9457505050565b6000610ea1846002611629565b905080831115610eaf578092505b610eb983836110b2565b50505050565b6001600160a01b03831660009081526003602052604090205481811015610ee557600080fd5b6001600160a01b03808516600090815260036020526040808220858503905591851681529081208054849290610f1c9084906115ef565b92505081905550826001600160a01b0316846001600160a01b031660008051602061170d83398151915284604051610f5691815260200190565b60405180910390a350505050565b6000610574600a83611607565b600080610f7f600284611607565b90506000610f8d8285611648565b9050610f998486611648565b6001600160a01b038716600090815260036020526040812080549297508692909190610fc6908490611648565b90915550503060009081526003602052604081208054849290610fea9084906115ef565b909155505061dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c805483929061102d9084906115ef565b92505081905550806000808282546110459190611648565b909155505060405182815230906001600160a01b0388169060008051602061170d8339815191529060200160405180910390a360405181815261dead906001600160a01b0388169060008051602061170d8339815191529060200160405180910390a35092949350505050565b6005805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110f4576110f46116cb565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906112f9565b81600181518110611198576111986116cb565b60200260200101906001600160a01b031690816001600160a01b0316815250506111e56040518060400160405280600b81526020016a03237bab13632a9bbb0b8160ad1b8152508461125b565b6040516318cbafe560e01b81526001600160a01b038316906318cbafe59061121a90869060009086903090429060040161157e565b600060405180830381600087803b15801561123457600080fd5b505af1158015611248573d6000803e3d6000fd5b50506005805460ff191690555050505050565b6109d5828260405160240161127192919061155c565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b17905280516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b80356112c7816116f7565b919050565b803580151581146112c757600080fd5b6000602082840312156112ee57600080fd5b8135610574816116f7565b60006020828403121561130b57600080fd5b8151610574816116f7565b6000806040838503121561132957600080fd5b8235611334816116f7565b91506020830135611344816116f7565b809150509250929050565b60008060006060848603121561136457600080fd5b833561136f816116f7565b9250602084013561137f816116f7565b929592945050506040919091013590565b600080604083850312156113a357600080fd5b82356113ae816116f7565b946020939093013593505050565b600080604083850312156113cf57600080fd5b823567ffffffffffffffff808211156113e757600080fd5b818501915085601f8301126113fb57600080fd5b813560208282111561140f5761140f6116e1565b8160051b604051601f19603f83011681018181108682111715611434576114346116e1565b604052838152828101945085830182870184018b101561145357600080fd5b600096505b8487101561147d57611469816112bc565b865260019690960195948301948301611458565b50965061148d90508782016112cc565b9450505050509250929050565b6000602082840312156114ac57600080fd5b610574826112cc565b6000602082840312156114c757600080fd5b5035919050565b6000806000606084860312156114e357600080fd5b8351925060208401519150604084015190509250925092565b6000815180845260005b8181101561152257602081850181015186830182015201611506565b81811115611534576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061057460208301846114fc565b60408152600061156f60408301856114fc565b90508260208301529392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115ce5784516001600160a01b0316835293830193918301916001016115a9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611602576116026116b5565b500190565b60008261162457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611643576116436116b5565b500290565b60008282101561165a5761165a6116b5565b500390565b600181811c9082168061167357607f821691505b6020821081141561169457634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116ae576116ae6116b5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040d57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220eedfe92b2d8f6071f2c6bab8128b2607aa714c711099550d88391bbceddbcc4764736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101235760003560e01c80636c90b57f116100a0578063c7af2a9c11610064578063c7af2a9c1461032e578063c816841b14610343578063cf991d0514610363578063dd62ed3e14610382578063f2fde38b146103c857600080fd5b80636c90b57f1461028357806370a08231146102a357806395d89b41146102d9578063a9059cbb146102ee578063b92ebd5f1461030e57600080fd5b806323b872dd116100e757806323b872dd146101e45780632ccb932114610204578063313ce567146102325780633ab1a4941461024e5780633ccfd60b1461026e57600080fd5b8063019ce79b1461012f57806306fdde0314610151578063095ea7b31461017c5780630fa604e4146101ac57806318160ddd146101cf57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5061014f61014a3660046114b5565b6103e8565b005b34801561015d57600080fd5b50610166610410565b6040516101739190611549565b60405180910390f35b34801561018857600080fd5b5061019c610197366004611390565b6104a2565b6040519015158152602001610173565b3480156101b857600080fd5b506101c16104b8565b604051908152602001610173565b3480156101db57600080fd5b506000546101c1565b3480156101f057600080fd5b5061019c6101ff36600461134f565b61050f565b34801561021057600080fd5b5061021a61dead81565b6040516001600160a01b039091168152602001610173565b34801561023e57600080fd5b5060405160008152602001610173565b34801561025a57600080fd5b5061014f6102693660046112dc565b61057b565b34801561027a57600080fd5b5061014f6105b4565b34801561028f57600080fd5b5061014f61029e3660046113bc565b6105d5565b3480156102af57600080fd5b506101c16102be3660046112dc565b6001600160a01b031660009081526003602052604090205490565b3480156102e557600080fd5b5061016661065b565b3480156102fa57600080fd5b5061019c610309366004611390565b61066a565b34801561031a57600080fd5b5061014f61032936600461149a565b610677565b34801561033a57600080fd5b5061014f6106b1565b34801561034f57600080fd5b5060095461021a906001600160a01b031681565b34801561036f57600080fd5b50600954600160a01b900460ff1661019c565b34801561038e57600080fd5b506101c161039d366004611316565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103d457600080fd5b5061014f6103e33660046112dc565b6109d9565b60055461010090046001600160a01b0316331461040457600080fd5b61040d81600655565b50565b60606001805461041f9061165f565b80601f016020809104026020016040519081016040528092919081815260200182805461044b9061165f565b80156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b5050505050905090565b60006104af338484610a1d565b50600192915050565b6000806104c76002603c611629565b6007546104d49042611648565b6104de9190611607565b90506103e881106104ee57506103e85b806008546104fc9190611629565b60065461050991906115ef565b91505090565b600061051c848484610a7e565b6001600160a01b03841660009081526004602090815260408083203384529091529020548281101561054d57600080fd5b600019811415610561576001915050610574565b61056e8533858403610a1d565b60019150505b9392505050565b600b546001600160a01b0316331461059257600080fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b031633146105cb57600080fd5b6105d3610d9a565b565b60055461010090046001600160a01b031633146105f157600080fd5b60005b82518110156106565781600a6000858481518110610614576106146116cb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561064f8161169a565b90506105f4565b505050565b60606002805461041f9061165f565b60006104af338484610a7e565b60055461010090046001600160a01b0316331461069357600080fd5b60098054911515600160a01b0260ff60a01b19909216919091179055565b60055461010090046001600160a01b031633146106cd57600080fd5b6009546001600160a01b0316156106e357600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561073257600080fd5b505afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906112f9565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe91906112f9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561084657600080fd5b505af115801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e91906112f9565b9050600061088b60005490565b3060008181526003602052604080822084905551929350909160008051602061170d833981519152906108c19085815260200190565b60405180910390a3306000818152600460208181526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d80865290835281852060001990556001600160a01b0388168552600a909252808420805460ff191660011790555163f305d71960e01b815291820193909352602481018490526044810182905260648101919091523360848201524260a482015263f305d71990479060c4016060604051808303818588803b15801561097557600080fd5b505af1158015610989573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109ae91906114ce565b5050600980546001600160a01b0319166001600160a01b038516179055506109d581610dd3565b5050565b60055461010090046001600160a01b031633146109f557600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316600090815260036020526040902054811115610aeb5760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820746f6b656e20666f72207472616e7366657200000060448201526064015b60405180910390fd5b6001600160a01b038216610b355760405162461bcd60e51b8152602060048201526011602482015270696e636f7272656374206164647265737360781b6044820152606401610ae2565b6009546001600160a01b038481169116148015610b6b57506001600160a01b0382166000908152600a602052604090205460ff16155b15610bfc57600954600160a01b900460ff16610bbc5760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610ae2565b610bc7838383610e11565b6001600160a01b038316600090815260036020526040902054909150610bf790610bf29083906115ef565b610e2f565b610d61565b60055460ff16158015610c1957506009546001600160a01b031615155b8015610c3257506009546001600160a01b038381169116145b8015610c5757506001600160a01b0383166000908152600a602052604090205460ff16155b15610ce557600954600160a01b900460ff16610ca85760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610ae2565b610cb28382610e79565b30600090815260036020526040902054909150610bf7908290737a250d5630b4cf539739df2c5dacb4c659f2488d610e8a565b6001600160a01b0383166000908152600a602052604090205460ff16158015610d2757506001600160a01b0382166000908152600a602052604090205460ff16155b15610d6157610d368382610e79565b6001600160a01b038316600090815260036020526040902054909150610d6190610bf29083906115ef565b610d6c838383610ebf565b6001600160a01b03821661dead14156106565780600080828254610d909190611648565b9091555050505050565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561040d573d6000803e3d6000fd5b426007556103e8610de66101f483611629565b610df09190611607565b6006556103e8610e01600383611629565b610e0b9190611607565b60085550565b6000610e278483610e228686610f64565b610f71565b949350505050565b610e376104b8565b81111561040d5760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606401610ae2565b60006105748383610e228686610f64565b81610e9457505050565b6000610ea1846002611629565b905080831115610eaf578092505b610eb983836110b2565b50505050565b6001600160a01b03831660009081526003602052604090205481811015610ee557600080fd5b6001600160a01b03808516600090815260036020526040808220858503905591851681529081208054849290610f1c9084906115ef565b92505081905550826001600160a01b0316846001600160a01b031660008051602061170d83398151915284604051610f5691815260200190565b60405180910390a350505050565b6000610574600a83611607565b600080610f7f600284611607565b90506000610f8d8285611648565b9050610f998486611648565b6001600160a01b038716600090815260036020526040812080549297508692909190610fc6908490611648565b90915550503060009081526003602052604081208054849290610fea9084906115ef565b909155505061dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c805483929061102d9084906115ef565b92505081905550806000808282546110459190611648565b909155505060405182815230906001600160a01b0388169060008051602061170d8339815191529060200160405180910390a360405181815261dead906001600160a01b0388169060008051602061170d8339815191529060200160405180910390a35092949350505050565b6005805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110f4576110f46116cb565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906112f9565b81600181518110611198576111986116cb565b60200260200101906001600160a01b031690816001600160a01b0316815250506111e56040518060400160405280600b81526020016a03237bab13632a9bbb0b8160ad1b8152508461125b565b6040516318cbafe560e01b81526001600160a01b038316906318cbafe59061121a90869060009086903090429060040161157e565b600060405180830381600087803b15801561123457600080fd5b505af1158015611248573d6000803e3d6000fd5b50506005805460ff191690555050505050565b6109d5828260405160240161127192919061155c565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b17905280516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b80356112c7816116f7565b919050565b803580151581146112c757600080fd5b6000602082840312156112ee57600080fd5b8135610574816116f7565b60006020828403121561130b57600080fd5b8151610574816116f7565b6000806040838503121561132957600080fd5b8235611334816116f7565b91506020830135611344816116f7565b809150509250929050565b60008060006060848603121561136457600080fd5b833561136f816116f7565b9250602084013561137f816116f7565b929592945050506040919091013590565b600080604083850312156113a357600080fd5b82356113ae816116f7565b946020939093013593505050565b600080604083850312156113cf57600080fd5b823567ffffffffffffffff808211156113e757600080fd5b818501915085601f8301126113fb57600080fd5b813560208282111561140f5761140f6116e1565b8160051b604051601f19603f83011681018181108682111715611434576114346116e1565b604052838152828101945085830182870184018b101561145357600080fd5b600096505b8487101561147d57611469816112bc565b865260019690960195948301948301611458565b50965061148d90508782016112cc565b9450505050509250929050565b6000602082840312156114ac57600080fd5b610574826112cc565b6000602082840312156114c757600080fd5b5035919050565b6000806000606084860312156114e357600080fd5b8351925060208401519150604084015190509250925092565b6000815180845260005b8181101561152257602081850181015186830182015201611506565b81811115611534576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061057460208301846114fc565b60408152600061156f60408301856114fc565b90508260208301529392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115ce5784516001600160a01b0316835293830193918301916001016115a9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611602576116026116b5565b500190565b60008261162457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611643576116436116b5565b500290565b60008282101561165a5761165a6116b5565b500390565b600181811c9082168061167357607f821691505b6020821081141561169457634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116ae576116ae6116b5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040d57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220eedfe92b2d8f6071f2c6bab8128b2607aa714c711099550d88391bbceddbcc4764736f6c63430008070033
Deployed Bytecode Sourcemap
78581:664:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;79117:125;;;;;;;;;;-1:-1:-1;79117:125:0;;;;;:::i;:::-;;:::i;:::-;;69001:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;70272:193;;;;;;;;;;-1:-1:-1;70272:193:0;;;;;:::i;:::-;;:::i;:::-;;;5659:14:1;;5652:22;5634:41;;5622:2;5607:18;70272:193:0;5494:187:1;72614:334:0;;;;;;;;;;;;;:::i;:::-;;;7747:25:1;;;7735:2;7720:18;72614:334:0;7601:177:1;69284:102:0;;;;;;;;;;-1:-1:-1;69339:7:0;69366:12;69284:102;;70701:504;;;;;;;;;;-1:-1:-1;70701:504:0;;;;;:::i;:::-;;:::i;73503:87::-;;;;;;;;;;;;73548:42;73503:87;;;;;-1:-1:-1;;;;;4529:32:1;;;4511:51;;4499:2;4484:18;73503:87:0;4365:203:1;69191:85:0;;;;;;;;;;-1:-1:-1;69191:85:0;;69234:5;8910:36:1;;8898:2;8883:18;69191:85:0;8768:184:1;667:159:0;;;;;;;;;;-1:-1:-1;667:159:0;;;;;:::i;:::-;;:::i;471:74::-;;;;;;;;;;;;;:::i;77982:238::-;;;;;;;;;;-1:-1:-1;77982:238:0;;;;;:::i;:::-;;:::i;78947:162::-;;;;;;;;;;-1:-1:-1;78947:162:0;;;;;:::i;:::-;-1:-1:-1;;;;;79083:18:0;79051:7;79083:18;;;:9;:18;;;;;;;78947:162;69094:89;;;;;;;;;;;;;:::i;69487:199::-;;;;;;;;;;-1:-1:-1;69487:199:0;;;;;:::i;:::-;;:::i;78228:97::-;;;;;;;;;;-1:-1:-1;78228:97:0;;;;;:::i;:::-;;:::i;73938:906::-;;;;;;;;;;;;;:::i;73388:26::-;;;;;;;;;;-1:-1:-1;73388:26:0;;;;-1:-1:-1;;;;;73388:26:0;;;78333:96;;;;;;;;;;-1:-1:-1;78408:13:0;;-1:-1:-1;;;78408:13:0;;;;78333:96;;70078:186;;;;;;;;;;-1:-1:-1;70078:186:0;;;;;:::i;:::-;-1:-1:-1;;;;;70229:18:0;;;70197:7;70229:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;70078:186;64680:100;;;;;;;;;;-1:-1:-1;64680:100:0;;;;;:::i;:::-;;:::i;79117:125::-;64585:6;;;;;-1:-1:-1;;;;;64585:6:0;64571:10;:20;64563:29;;;;;;79200:34:::1;79219:14;73029::::0;:32;72956:113;79200:34:::1;79117:125:::0;:::o;69001:85::-;69040:13;69073:5;69066:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;69001:85;:::o;70272:193::-;70376:4;70398:37;70407:10;70419:7;70428:6;70398:8;:37::i;:::-;-1:-1:-1;70453:4:0;70272:193;;;;:::o;72614:334::-;72659:7;;72750:39;71934:1;72780:9;72750:39;:::i;:::-;72723:9;;72705:27;;:15;:27;:::i;:::-;72704:86;;;;:::i;:::-;72679:111;;72095:4;72805:14;:31;72801:67;;-1:-1:-1;72095:4:0;72801:67;72926:14;72903:20;;:37;;;;:::i;:::-;72886:14;;:54;;;;:::i;:::-;72879:61;;;72614:334;:::o;70701:504::-;70835:4;70852:36;70862:6;70870:9;70881:6;70852:9;:36::i;:::-;-1:-1:-1;;;;;70928:19:0;;70901:24;70928:19;;;:11;:19;;;;;;;;70948:10;70928:31;;;;;;;;70978:26;;;;70970:35;;;;;;-1:-1:-1;;71020:16:0;:38;71016:55;;;71067:4;71060:11;;;;;71016:55;71107;71116:6;71124:10;71155:6;71136:16;:25;71107:8;:55::i;:::-;71193:4;71186:11;;;70701:504;;;;;;:::o;667:159::-;426:16;;-1:-1:-1;;;;;426:16:0;412:10;:30;404:39;;;;;;781:16:::1;:37:::0;;-1:-1:-1;;;;;;781:37:0::1;-1:-1:-1::0;;;;;781:37:0;;;::::1;::::0;;;::::1;::::0;;667:159::o;471:74::-;426:16;;-1:-1:-1;;;;;426:16:0;412:10;:30;404:39;;;;;;526:11:::1;:9;:11::i;:::-;471:74::o:0;77982:238::-;64585:6;;;;;-1:-1:-1;;;;;64585:6:0;64571:10;:20;64563:29;;;;;;78106:9:::1;78101:112;78125:8;:15;78121:1;:19;78101:112;;;78196:5;78162:18;:31;78181:8;78190:1;78181:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;78162:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;78162:31:0;:39;;-1:-1:-1;;78162:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;78142:3:::1;::::0;::::1;:::i;:::-;;;78101:112;;;;77982:238:::0;;:::o;69094:89::-;69135:13;69168:7;69161:14;;;;;:::i;69487:199::-;69594:4;69616:40;69626:10;69638:9;69649:6;69616:9;:40::i;78228:97::-;64585:6;;;;;-1:-1:-1;;;;;64585:6:0;64571:10;:20;64563:29;;;;;;78296:13:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;78296:21:0::1;-1:-1:-1::0;;;;78296:21:0;;::::1;::::0;;;::::1;::::0;;78228:97::o;73938:906::-;64585:6;;;;;-1:-1:-1;;;;;64585:6:0;64571:10;:20;64563:29;;;;;;74001:11:::1;::::0;-1:-1:-1;;;;;74001:11:0::1;:25:::0;73993:34:::1;;;::::0;::::1;;74038:12;73338:42;-1:-1:-1::0;;;;;74071:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;74053:56:0::1;;74132:4;73338:42;-1:-1:-1::0;;;;;74152:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;74053:133;::::0;-1:-1:-1;;;;;;74053:133:0::1;::::0;;;;;;-1:-1:-1;;;;;4803:15:1;;;74053:133:0::1;::::0;::::1;4785:34:1::0;4855:15;;4835:18;;;4828:43;4720:18;;74053:133:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;74038:148;;74197:24;74224:27;69339:7:::0;69366:12;;69284:102;74224:27:::1;74280:4;74262:24;::::0;;;:9:::1;:24;::::0;;;;;:43;;;74321:53;74197:54;;-1:-1:-1;74280:4:0;;-1:-1:-1;;;;;;;;;;;74321:53:0;::::1;::::0;74197:54;7747:25:1;;7735:2;7720:18;;7601:177;74321:53:0::1;;;;;;;;74405:4;74385:26;::::0;;;:11:::1;:26;::::0;;;;;;;73338:42:::1;74385:77:::0;;;;;;;;;-1:-1:-1;;74385:98:0;;-1:-1:-1;;;;;74494:24:0;::::1;::::0;;:18:::1;:24:::0;;;;;;:31;;-1:-1:-1;;74494:31:0::1;74521:4;74494:31;::::0;;74536:219;-1:-1:-1;;;74536:219:0;;;;::::1;5223:34:1::0;;;;5273:18;;;5266:34;;;5316:18;;;5309:34;;;5359:18;;;5352:34;;;;74704:10:0::1;5402:19:1::0;;;5395:44;74729:15:0::1;5455:19:1::0;;;5448:35;74536:32:0::1;::::0;74576:21:::1;::::0;5157:19:1;;74536:219:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;74768:11:0::1;:18:::0;;-1:-1:-1;;;;;;74768:18:0::1;-1:-1:-1::0;;;;;74768:18:0;::::1;;::::0;;-1:-1:-1;74797:39:0::1;74819:16:::0;74797:21:::1;:39::i;:::-;73982:862;;73938:906::o:0;64680:100::-;64585:6;;;;;-1:-1:-1;;;;;64585:6:0;64571:10;:20;64563:29;;;;;;64755:6:::1;:17:::0;;-1:-1:-1;;;;;64755:17:0;;::::1;;;-1:-1:-1::0;;;;;;64755:17:0;;::::1;::::0;;;::::1;::::0;;64680:100::o;70473:220::-;-1:-1:-1;;;;;70601:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;70653:32;;7747:25:1;;;70653:32:0;;7720:18:1;70653:32:0;;;;;;;70473:220;;;:::o;74852:1552::-;-1:-1:-1;;;;;74984:15:0;;;;;;:9;:15;;;;;;:25;-1:-1:-1;74984:25:0;74976:67;;;;-1:-1:-1;;;74976:67:0;;6409:2:1;74976:67:0;;;6391:21:1;6448:2;6428:18;;;6421:30;6487:31;6467:18;;;6460:59;6536:18;;74976:67:0;;;;;;;;;-1:-1:-1;;;;;75062:16:0;;75054:46;;;;-1:-1:-1;;;75054:46:0;;7112:2:1;75054:46:0;;;7094:21:1;7151:2;7131:18;;;7124:30;-1:-1:-1;;;7170:18:1;;;7163:47;7227:18;;75054:46:0;6910:341:1;75054:46:0;75141:11;;-1:-1:-1;;;;;75133:19:0;;;75141:11;;75133:19;:46;;;;-1:-1:-1;;;;;;75157:22:0;;;;;;:18;:22;;;;;;;;75156:23;75133:46;75129:1138;;;75204:13;;-1:-1:-1;;;75204:13:0;;;;75196:42;;;;-1:-1:-1;;;75196:42:0;;6767:2:1;75196:42:0;;;6749:21:1;6806:2;6786:18;;;6779:30;-1:-1:-1;;;6825:18:1;;;6818:46;6881:18;;75196:42:0;6565:340:1;75196:42:0;75288:28;75299:4;75305:2;75309:6;75288:10;:28::i;:::-;-1:-1:-1;;;;;75379:13:0;;;;;;:9;:13;;;;;;75279:37;;-1:-1:-1;75364:38:0;;75379:22;;75279:37;;75379:22;:::i;:::-;75364:14;:38::i;:::-;75129:1138;;;75465:7;;;;75464:8;:50;;;;-1:-1:-1;75489:11:0;;-1:-1:-1;;;;;75489:11:0;:25;;75464:50;:84;;;;-1:-1:-1;75537:11:0;;-1:-1:-1;;;;;75531:17:0;;;75537:11;;75531:17;75464:84;:126;;;;-1:-1:-1;;;;;;75566:24:0;;;;;;:18;:24;;;;;;;;75565:25;75464:126;75446:821;;;75625:13;;-1:-1:-1;;;75625:13:0;;;;75617:42;;;;-1:-1:-1;;;75617:42:0;;6767:2:1;75617:42:0;;;6749:21:1;6806:2;6786:18;;;6779:30;-1:-1:-1;;;6825:18:1;;;6818:46;6881:18;;75617:42:0;6565:340:1;75617:42:0;75703:25;75715:4;75721:6;75703:11;:25::i;:::-;75860:4;75842:24;;;;:9;:24;;;;;;75694:34;;-1:-1:-1;75771:145:0;;75694:34;;73338:42;75771:27;:145::i;75446:821::-;-1:-1:-1;;;;;76006:24:0;;;;;;:18;:24;;;;;;;;76005:25;:52;;;;-1:-1:-1;;;;;;76035:22:0;;;;;;:18;:22;;;;;;;;76034:23;76005:52;76001:255;;;76117:29;76133:4;76139:6;76117:15;:29::i;:::-;-1:-1:-1;;;;;76217:13:0;;;;;;:9;:13;;;;;;76108:38;;-1:-1:-1;76202:38:0;;76217:22;;76108:38;;76217:22;:::i;76202:38::-;76300:33;76316:4;76322:2;76326:6;76300:15;:33::i;:::-;-1:-1:-1;;;;;76348:24:0;;73548:42;76348:24;76344:52;;;76390:6;76374:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;74852:1552:0;;;:::o;553:106::-;602:16;;594:57;;-1:-1:-1;;;;;602:16:0;;;;629:21;594:57;;;;;602:16;594:57;602:16;594:57;629:21;602:16;594:57;;;;;;;;;;;;;;;;;;;72205:259;72289:15;72277:9;:27;72371:4;72333:34;71843:3;72333:11;:34;:::i;:::-;72332:43;;;;:::i;:::-;72315:14;:60;72452:4;72410:38;72014:1;72410:11;:38;:::i;:::-;72409:47;;;;:::i;:::-;72386:20;:70;-1:-1:-1;72205:259:0:o;76891:196::-;77004:7;77031:48;77043:4;77049:6;77057:21;77067:2;77071:6;77057:9;:21::i;:::-;77031:11;:48::i;:::-;77024:55;76891:196;-1:-1:-1;;;;76891:196:0:o;72472:134::-;72563:14;:12;:14::i;:::-;72549:10;:28;;72541:57;;;;-1:-1:-1;;;72541:57:0;;7458:2:1;72541:57:0;;;7440:21:1;7497:2;7477:18;;;7470:30;-1:-1:-1;;;7516:18:1;;;7509:46;7572:18;;72541:57:0;7256:340:1;77095:177:0;77181:7;77213:51;77225:4;77231:6;77239:24;77250:4;77256:6;77239:10;:24::i;67217:379::-;67392:14;67388:27;;67217:379;;;:::o;67388:27::-;67425:20;67448:18;67452:14;67448:1;:18;:::i;:::-;67425:41;;67493:12;67481:9;:24;67477:54;;;67519:12;67507:24;;67477:54;67542:46;67560:9;67571:16;67542:17;:46::i;:::-;67377:219;67217:379;;;:::o;69694:376::-;-1:-1:-1;;;;;69841:15:0;;69817:21;69841:15;;;:9;:15;;;;;;69875:23;;;;69867:32;;;;;;-1:-1:-1;;;;;69935:15:0;;;;;;;:9;:15;;;;;;69953:22;;;69935:40;;69997:13;;;;;;;;:23;;69969:6;;69935:15;69997:23;;69969:6;;69997:23;:::i;:::-;;;;;;;;70051:2;-1:-1:-1;;;;;70036:26:0;70045:4;-1:-1:-1;;;;;70036:26:0;-1:-1:-1;;;;;;;;;;;70055:6:0;70036:26;;;;7747:25:1;;7735:2;7720:18;;7601:177;70036:26:0;;;;;;;;69806:264;69694:376;;;:::o;76412:159::-;76513:7;76545:11;76554:2;76545:6;:11;:::i;77473:501::-;77588:7;;77625;77631:1;77625:3;:7;:::i;:::-;77608:24;-1:-1:-1;77643:12:0;77658;77608:24;77658:3;:12;:::i;:::-;77643:27;-1:-1:-1;77681:13:0;77691:3;77681:13;;:::i;:::-;-1:-1:-1;;;;;77705:15:0;;;;;;:9;:15;;;;;:22;;77681:13;;-1:-1:-1;77724:3:0;;77705:15;;;:22;;77724:3;;77705:22;:::i;:::-;;;;-1:-1:-1;;77756:4:0;77738:24;;;;:9;:24;;;;;:34;;77766:6;;77738:24;:34;;77766:6;;77738:34;:::i;:::-;;;;-1:-1:-1;;73548:42:0;77783:20;;;;:9;:20;;;:28;;77807:4;;77783:20;:28;;77807:4;;77783:28;:::i;:::-;;;;;;;;77838:4;77822:12;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;77858:37:0;;7747:25:1;;;77881:4:0;;-1:-1:-1;;;;;77858:37:0;;;-1:-1:-1;;;;;;;;;;;77858:37:0;7735:2:1;7720:18;77858:37:0;;;;;;;77911:31;;7747:25:1;;;73548:42:0;;-1:-1:-1;;;;;77911:31:0;;;-1:-1:-1;;;;;;;;;;;77911:31:0;7735:2:1;7720:18;77911:31:0;;;;;;;-1:-1:-1;77960:6:0;;77473:501;-1:-1:-1;;;;77473:501:0:o;66580:629::-;66512:7;:14;;-1:-1:-1;;66512:14:0;66522:4;66512:14;;;66806:16:::1;::::0;;66820:1:::1;66806:16:::0;;;;;::::1;::::0;;-1:-1:-1;;66806:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;66806:16:0::1;66782:40;;66851:4;66833;66838:1;66833:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;66833:23:0::1;;;-1:-1:-1::0;;;;;66833:23:0::1;;;::::0;::::1;66877:16;-1:-1:-1::0;;;;;66877:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;66867:4;66872:1;66867:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1::0;;;;;66867:33:0::1;;;-1:-1:-1::0;;;;;66867:33:0::1;;;::::0;::::1;66939:39;;;;;;;;;;;;;;-1:-1:-1::0;;;66939:39:0::1;;::::0;66966:11:::1;66939;:39::i;:::-;66989:212;::::0;-1:-1:-1;;;66989:212:0;;-1:-1:-1;;;;;66989:38:0;::::1;::::0;::::1;::::0;:212:::1;::::0;67042:11;;67068:1:::1;::::0;67112:4;;67139::::1;::::0;67175:15:::1;::::0;66989:212:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;66549:7:0;:15;;-1:-1:-1;;66549:15:0;;;-1:-1:-1;;;;;66580:629:0:o;6923:132::-;6982:68;7042:2;7046;6998:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6998:51:0;;;;;;;;;;;;;;-1:-1:-1;;;;;6998:51:0;-1:-1:-1;;;6998:51:0;;;1103:14;;965:42;1215:2;1202:16;;1079:21;;1103:14;1202:16;965:42;1243:5;1232:68;1223:77;;1176:129;;1014:295;:::o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;826:388::-;894:6;902;955:2;943:9;934:7;930:23;926:32;923:52;;;971:1;968;961:12;923:52;1010:9;997:23;1029:31;1054:5;1029:31;:::i;:::-;1079:5;-1:-1:-1;1136:2:1;1121:18;;1108:32;1149:33;1108:32;1149:33;:::i;:::-;1201:7;1191:17;;;826:388;;;;;:::o;1219:456::-;1296:6;1304;1312;1365:2;1353:9;1344:7;1340:23;1336:32;1333:52;;;1381:1;1378;1371:12;1333:52;1420:9;1407:23;1439:31;1464:5;1439:31;:::i;:::-;1489:5;-1:-1:-1;1546:2:1;1531:18;;1518:32;1559:33;1518:32;1559:33;:::i;:::-;1219:456;;1611:7;;-1:-1:-1;;;1665:2:1;1650:18;;;;1637:32;;1219:456::o;1680:315::-;1748:6;1756;1809:2;1797:9;1788:7;1784:23;1780:32;1777:52;;;1825:1;1822;1815:12;1777:52;1864:9;1851:23;1883:31;1908:5;1883:31;:::i;:::-;1933:5;1985:2;1970:18;;;;1957:32;;-1:-1:-1;;;1680:315:1:o;2000:1202::-;2090:6;2098;2151:2;2139:9;2130:7;2126:23;2122:32;2119:52;;;2167:1;2164;2157:12;2119:52;2207:9;2194:23;2236:18;2277:2;2269:6;2266:14;2263:34;;;2293:1;2290;2283:12;2263:34;2331:6;2320:9;2316:22;2306:32;;2376:7;2369:4;2365:2;2361:13;2357:27;2347:55;;2398:1;2395;2388:12;2347:55;2434:2;2421:16;2456:4;2479:2;2475;2472:10;2469:36;;;2485:18;;:::i;:::-;2531:2;2528:1;2524:10;2563:2;2557:9;2626:2;2622:7;2617:2;2613;2609:11;2605:25;2597:6;2593:38;2681:6;2669:10;2666:22;2661:2;2649:10;2646:18;2643:46;2640:72;;;2692:18;;:::i;:::-;2728:2;2721:22;2778:18;;;2812:15;;;;-1:-1:-1;2847:11:1;;;2877;;;2873:20;;2870:33;-1:-1:-1;2867:53:1;;;2916:1;2913;2906:12;2867:53;2938:1;2929:10;;2948:169;2962:2;2959:1;2956:9;2948:169;;;3019:23;3038:3;3019:23;:::i;:::-;3007:36;;2980:1;2973:9;;;;;3063:12;;;;3095;;2948:169;;;-1:-1:-1;3136:6:1;-1:-1:-1;3161:35:1;;-1:-1:-1;3177:18:1;;;3161:35;:::i;:::-;3151:45;;;;;;2000:1202;;;;;:::o;3207:180::-;3263:6;3316:2;3304:9;3295:7;3291:23;3287:32;3284:52;;;3332:1;3329;3322:12;3284:52;3355:26;3371:9;3355:26;:::i;3392:180::-;3451:6;3504:2;3492:9;3483:7;3479:23;3475:32;3472:52;;;3520:1;3517;3510:12;3472:52;-1:-1:-1;3543:23:1;;3392:180;-1:-1:-1;3392:180:1:o;3577:306::-;3665:6;3673;3681;3734:2;3722:9;3713:7;3709:23;3705:32;3702:52;;;3750:1;3747;3740:12;3702:52;3779:9;3773:16;3763:26;;3829:2;3818:9;3814:18;3808:25;3798:35;;3873:2;3862:9;3858:18;3852:25;3842:35;;3577:306;;;;;:::o;3888:472::-;3930:3;3968:5;3962:12;3995:6;3990:3;3983:19;4020:1;4030:162;4044:6;4041:1;4038:13;4030:162;;;4106:4;4162:13;;;4158:22;;4152:29;4134:11;;;4130:20;;4123:59;4059:12;4030:162;;;4210:6;4207:1;4204:13;4201:87;;;4276:1;4269:4;4260:6;4255:3;4251:16;4247:27;4240:38;4201:87;-1:-1:-1;4342:2:1;4321:15;-1:-1:-1;;4317:29:1;4308:39;;;;4349:4;4304:50;;3888:472;-1:-1:-1;;3888:472:1:o;5686:220::-;5835:2;5824:9;5817:21;5798:4;5855:45;5896:2;5885:9;5881:18;5873:6;5855:45;:::i;5911:291::-;6088:2;6077:9;6070:21;6051:4;6108:45;6149:2;6138:9;6134:18;6126:6;6108:45;:::i;:::-;6100:53;;6189:6;6184:2;6173:9;6169:18;6162:34;5911:291;;;;;:::o;7783:980::-;8045:4;8093:3;8082:9;8078:19;8124:6;8113:9;8106:25;8150:2;8188:6;8183:2;8172:9;8168:18;8161:34;8231:3;8226:2;8215:9;8211:18;8204:31;8255:6;8290;8284:13;8321:6;8313;8306:22;8359:3;8348:9;8344:19;8337:26;;8398:2;8390:6;8386:15;8372:29;;8419:1;8429:195;8443:6;8440:1;8437:13;8429:195;;;8508:13;;-1:-1:-1;;;;;8504:39:1;8492:52;;8599:15;;;;8564:12;;;;8540:1;8458:9;8429:195;;;-1:-1:-1;;;;;;;8680:32:1;;;;8675:2;8660:18;;8653:60;-1:-1:-1;;;8744:3:1;8729:19;8722:35;8641:3;7783:980;-1:-1:-1;;;7783:980:1:o;8957:128::-;8997:3;9028:1;9024:6;9021:1;9018:13;9015:39;;;9034:18;;:::i;:::-;-1:-1:-1;9070:9:1;;8957:128::o;9090:217::-;9130:1;9156;9146:132;;9200:10;9195:3;9191:20;9188:1;9181:31;9235:4;9232:1;9225:15;9263:4;9260:1;9253:15;9146:132;-1:-1:-1;9292:9:1;;9090:217::o;9312:168::-;9352:7;9418:1;9414;9410:6;9406:14;9403:1;9400:21;9395:1;9388:9;9381:17;9377:45;9374:71;;;9425:18;;:::i;:::-;-1:-1:-1;9465:9:1;;9312:168::o;9485:125::-;9525:4;9553:1;9550;9547:8;9544:34;;;9558:18;;:::i;:::-;-1:-1:-1;9595:9:1;;9485:125::o;9615:380::-;9694:1;9690:12;;;;9737;;;9758:61;;9812:4;9804:6;9800:17;9790:27;;9758:61;9865:2;9857:6;9854:14;9834:18;9831:38;9828:161;;;9911:10;9906:3;9902:20;9899:1;9892:31;9946:4;9943:1;9936:15;9974:4;9971:1;9964:15;9828:161;;9615:380;;;:::o;10000:135::-;10039:3;-1:-1:-1;;10060:17:1;;10057:43;;;10080:18;;:::i;:::-;-1:-1:-1;10127:1:1;10116:13;;10000:135::o;10140:127::-;10201:10;10196:3;10192:20;10189:1;10182:31;10232:4;10229:1;10222:15;10256:4;10253:1;10246:15;10272:127;10333:10;10328:3;10324:20;10321:1;10314:31;10364:4;10361:1;10354:15;10388:4;10385:1;10378:15;10404:127;10465:10;10460:3;10456:20;10453:1;10446:31;10496:4;10493:1;10486:15;10520:4;10517:1;10510:15;10536:131;-1:-1:-1;;;;;10611:31:1;;10601:42;;10591:70;;10657:1;10654;10647:12
Swarm Source
ipfs://eedfe92b2d8f6071f2c6bab8128b2607aa714c711099550d88391bbceddbcc47
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,324.87 | 0.0926 | $307.99 |
Loading...
Loading
[ Download: CSV Export ]
[ 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.