Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Sponsored
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
117521463 | 204 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Minimal Proxy Contract for 0x9ec1c3dcf667f2035fb4cd2eb42a1566fd54d2b7
Contract Name:
CoinTool_App
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at optimistic.etherscan.io on 2023-09-15 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; /* //https://cointool.app web3 basic tools! // // // _____ _ _______ _ // / ____| (_) |__ __| | | /\ //| | ___ _ _ __ | | ___ ___ | | / \ _ __ _ __ //| | / _ \| | '_ \| |/ _ \ / _ \| | / /\ \ | '_ \| '_ \ //| |___| (_) | | | | | | (_) | (_) | |_ / ____ \| |_) | |_) | // \_____\___/|_|_| |_|_|\___/ \___/|_(_)_/ \_\ .__/| .__/ // | | | | // |_| |_| // */ interface IERC20 { function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); } contract CoinTool_App{ address owner; address private immutable original; mapping(address => mapping(bytes =>uint256)) public map; constructor() payable { original = address(this); owner = tx.origin; } receive() external payable {} fallback() external payable{} function t(uint256 total,bytes memory data,bytes calldata _salt) external payable { require(msg.sender == tx.origin); bytes memory bytecode = bytes.concat(bytes20(0x3D602d80600A3D3981F3363d3d373d3D3D363d73), bytes20(address(this)), bytes15(0x5af43d82803e903d91602b57fd5bf3)); uint256 i = map[msg.sender][_salt]+1; uint256 end = total+i; for (i; i < end;++i) { bytes32 salt = keccak256(abi.encodePacked(_salt,i,msg.sender)); assembly { let proxy := create2(0, add(bytecode, 32), mload(bytecode), salt) let succeeded := call( gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0 ) } } map[msg.sender][_salt] += total; } function t_(uint256[] calldata a,bytes memory data,bytes calldata _salt) external payable { require(msg.sender == tx.origin); bytes memory bytecode = bytes.concat(bytes20(0x3D602d80600A3D3981F3363d3d373d3D3D363d73), bytes20(address(this)), bytes15(0x5af43d82803e903d91602b57fd5bf3)); uint256 i = 0; for (i; i < a.length; ++i) { bytes32 salt = keccak256(abi.encodePacked(_salt,a[i],msg.sender)); assembly { let proxy := create2(0, add(bytecode, 32), mload(bytecode), salt) let succeeded := call( gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0 ) } } uint256 e = a[a.length-1]; if(e>map[msg.sender][_salt]){ map[msg.sender][_salt] = e; } } function f(uint256[] calldata a,bytes memory data,bytes memory _salt) external payable { require(msg.sender == tx.origin); bytes32 bytecode = keccak256(abi.encodePacked(bytes.concat(bytes20(0x3D602d80600A3D3981F3363d3d373d3D3D363d73), bytes20(address(this)), bytes15(0x5af43d82803e903d91602b57fd5bf3)))); uint256 i = 0; for (i; i < a.length; ++i) { bytes32 salt = keccak256(abi.encodePacked(_salt,a[i],msg.sender)); address proxy = address(uint160(uint(keccak256(abi.encodePacked( hex'ff', address(this), salt, bytecode ))))); assembly { let succeeded := call( gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0 ) } } } function d(address a,bytes memory data) external payable{ require(msg.sender == original); a.delegatecall(data); } function c(address a,bytes calldata data) external payable { require(msg.sender == original); external_call(a,data); } function dKill(address a,bytes memory data) external payable{ require(msg.sender == original); a.delegatecall(data); selfdestruct(payable(msg.sender)); } function cKill(address a,bytes calldata data) external payable { require(msg.sender == original); external_call(a,data); selfdestruct(payable(msg.sender)); } function k() external { require(msg.sender == original); selfdestruct(payable(msg.sender)); } function external_call(address destination,bytes memory data) internal{ assembly { let succeeded := call( gas(), destination, 0, add(data, 0x20), mload(data), 0, 0 ) } } function claimTokens(address _token) external { require(owner == msg.sender); if (_token == address(0x0)) { payable (owner).transfer(address(this).balance); return; } IERC20 erc20token = IERC20(_token); uint256 balance = erc20token.balanceOf(address(this)); erc20token.transfer(owner, balance); } }
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"c","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"cKill","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"d","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"dKill","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"a","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"_salt","type":"bytes"}],"name":"f","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"k","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"map","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"_salt","type":"bytes"}],"name":"t","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"a","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"_salt","type":"bytes"}],"name":"t_","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Loading...
Loading
Loading...
Loading
[ 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.