Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xd3E4Ba569045546D09CF021ECC5dFe42b1d7f6E4
Balance 0 ETH
Nonce 1
Code Size 6212 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6212 bytes
0x6080604052600436106101815760003560e01c806370a08231116100d1578063a9059cbb1161008a578063d73dd62311610064578063d73dd62314610415578063da8c229e14610435578063dd62ed3e14610455578063f6a74ed71461047557610181565b8063a9059cbb146103b5578063b414d4b6146103d5578063bf120ae5146103f557610181565b806370a08231146103235780638456cb591461034357806395d89b41146103585780639cee789f1461036d578063a3912ec81461038d578063a7fc7a071461039557610181565b8063313ce5671161013e57806342966c681161011857806342966c68146102ae5780635c658165146102ce5780635c975abb146102ee578063661884631461030357610181565b8063313ce56714610262578063378dc3dc146102845780633f4ba83a1461029957610181565b806306fdde0314610186578063095ea7b3146101b15780631072cbea146101de57806318160ddd1461020057806323b872dd1461022257806327e235e314610242575b600080fd5b34801561019257600080fd5b5061019b610495565b6040516101a891906112a0565b60405180910390f35b3480156101bd57600080fd5b506101d16101cc3660046111d8565b6104c1565b6040516101a89190611295565b3480156101ea57600080fd5b506101fe6101f93660046111d8565b610593565b005b34801561020c57600080fd5b506102156105ef565b6040516101a8919061166e565b34801561022e57600080fd5b506101d161023d366004611167565b6105f5565b34801561024e57600080fd5b5061021561025d36600461111b565b61081c565b34801561026e57600080fd5b5061027761082e565b6040516101a89190611677565b34801561029057600080fd5b50610215610833565b3480156102a557600080fd5b506101fe610850565b3480156102ba57600080fd5b506101d16102c936600461121d565b6108d8565b3480156102da57600080fd5b506102156102e9366004611135565b610a07565b3480156102fa57600080fd5b506101d1610a24565b34801561030f57600080fd5b506101d161031e3660046111d8565b610a2d565b34801561032f57600080fd5b5061021561033e36600461111b565b610ac6565b34801561034f57600080fd5b506101fe610ae1565b34801561036457600080fd5b5061019b610b6c565b34801561037957600080fd5b506101fe61038836600461111b565b610b8b565b6101fe610181565b3480156103a157600080fd5b506101fe6103b036600461111b565b610c64565b3480156103c157600080fd5b506101d16103d03660046111d8565b610ccc565b3480156103e157600080fd5b506101d16103f036600461111b565b610e5b565b34801561040157600080fd5b506101d16104103660046111a2565b610e70565b34801561042157600080fd5b506101d16104303660046111d8565b610f1d565b34801561044157600080fd5b506101d161045036600461111b565b610f5e565b34801561046157600080fd5b50610215610470366004611135565b610f73565b34801561048157600080fd5b506101fe61049036600461111b565b610f9e565b6040518060400160405280601081526020016f4d6f7270686575732e4e6574776f726b60801b81525081565b60015460009060ff16156104d457600080fd5b81158061050257503360009081526003602090815260408083206001600160a01b0387168452909152902054155b6105275760405162461bcd60e51b815260040161051e90611637565b60405180910390fd5b3360008181526003602090815260408083206001600160a01b03881680855292529182902085905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061058190869061166e565b60405180910390a35060015b92915050565b60008061059e611003565b6001600160a01b0316815260208101919091526040016000205460ff166105d75760405162461bcd60e51b815260040161051e90611567565b6105eb6001600160a01b0383163383611007565b5050565b60055481565b60015460009060ff161561060857600080fd5b6001600160a01b03831661062e5760405162461bcd60e51b815260040161051e906112f3565b6001600160a01b0384166000908152600260205260409020548211156106665760405162461bcd60e51b815260040161051e906115f2565b6001600160a01b03841660009081526003602090815260408083203384529091529020548211156106a95760405162461bcd60e51b815260040161051e90611410565b6001600160a01b03841660009081526004602052604090205460ff16156106e25760405162461bcd60e51b815260040161051e906115af565b6001600160a01b03831660009081526004602052604090205460ff161561071b5760405162461bcd60e51b815260040161051e90611385565b6001600160a01b03841660009081526002602052604090205461073e9083611095565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461076d90836110cd565b6001600160a01b0380851660009081526002602090815260408083209490945591871681526003825282812033825290915220546107ab9083611095565b6001600160a01b0380861660008181526003602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061080990869061166e565b60405180910390a35060015b9392505050565b60026020526000908152604090205481565b601281565b61083f6012600a6116e3565b61084d906302dada826117b1565b81565b60008061085b611003565b6001600160a01b0316815260208101919091526040016000205460ff166108945760405162461bcd60e51b815260040161051e90611567565b60015460ff166108a357600080fd5b6001805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60008060006108e5611003565b6001600160a01b0316815260208101919091526040016000205460ff1661091e5760405162461bcd60e51b815260040161051e90611567565b3360009081526002602052604090205482111561094d5760405162461bcd60e51b815260040161051e90611457565b336000908152600260205260409020546109679083611095565b336000908152600260205260409020556005546109849083611095565b60055560405133907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5906109b990859061166e565b60405180910390a260405160009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109f690869061166e565b60405180910390a35060015b919050565b600360209081526000928352604080842090915290825290205481565b60015460ff1681565b60015460009060ff1615610a4057600080fd5b3360009081526003602090815260408083206001600160a01b0387168452909152902054610a6e9083611095565b3360008181526003602090815260408083206001600160a01b038916808552925291829020849055905190927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591610581919061166e565b6001600160a01b031660009081526002602052604090205490565b600080610aec611003565b6001600160a01b0316815260208101919091526040016000205460ff16610b255760405162461bcd60e51b815260040161051e90611567565b60015460ff1615610b3557600080fd5b6001805460ff1916811790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b604051806040016040528060038152602001624d4e5760e81b81525081565b600080610b96611003565b6001600160a01b0316815260208101919091526040016000205460ff16610bcf5760405162461bcd60e51b815260040161051e90611567565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610bfe90309060040161124d565b60206040518083038186803b158015610c1657600080fd5b505afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e9190611235565b90506105eb6001600160a01b0383163383611007565b600080610c6f611003565b6001600160a01b0316815260208101919091526040016000205460ff16610ca85760405162461bcd60e51b815260040161051e90611567565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b60015460009060ff1615610cdf57600080fd5b6001600160a01b038316331415610d085760405162461bcd60e51b815260040161051e9061133a565b6001600160a01b038316610d2e5760405162461bcd60e51b815260040161051e906114dd565b33600090815260026020526040902054821115610d5d5760405162461bcd60e51b815260040161051e90611523565b3360009081526004602052604090205460ff1615610d8d5760405162461bcd60e51b815260040161051e9061149b565b6001600160a01b03831660009081526004602052604090205460ff1615610dc65760405162461bcd60e51b815260040161051e906113cb565b33600090815260026020526040902054610de09083611095565b33600090815260026020526040808220929092556001600160a01b03851681522054610e0c90836110cd565b6001600160a01b0384166000818152600260205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061058190869061166e565b60046020526000908152604090205460ff1681565b6000806000610e7d611003565b6001600160a01b0316815260208101919091526040016000205460ff16610eb65760405162461bcd60e51b815260040161051e90611567565b6001600160a01b03831660009081526004602052604090819020805460ff1916841515179055517ff022c1fbc00daf4d2e6cdc62e0338b967bd3be38ccc3d7f8e0168bd668c7bcfe90610f0c9085908590611261565b60405180910390a150600192915050565b60015460009060ff1615610f3057600080fd5b3360009081526003602090815260408083206001600160a01b0387168452909152902054610a6e90836110cd565b60006020819052908152604090205460ff1681565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b600080610fa9611003565b6001600160a01b0316815260208101919091526040016000205460ff16610fe25760405162461bcd60e51b815260040161051e90611567565b6001600160a01b03166000908152602081905260409020805460ff19169055565b3390565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90611035908590859060040161127c565b602060405180830381600087803b15801561104f57600080fd5b505af1158015611063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110879190611201565b61109057600080fd5b505050565b60006110a182846117d0565b90508282111580156110b35750828111155b61058d57634e487b7160e01b600052600160045260246000fd5b60006110d98284611685565b90508281101580156110b357508181101561058d57634e487b7160e01b600052600160045260246000fd5b80356001600160a01b0381168114610a0257600080fd5b60006020828403121561112c578081fd5b61081582611104565b60008060408385031215611147578081fd5b61115083611104565b915061115e60208401611104565b90509250929050565b60008060006060848603121561117b578081fd5b61118484611104565b925061119260208501611104565b9150604084013590509250925092565b600080604083850312156111b4578182fd5b6111bd83611104565b915060208301356111cd816117fd565b809150509250929050565b600080604083850312156111ea578182fd5b6111f383611104565b946020939093013593505050565b600060208284031215611212578081fd5b8151610815816117fd565b60006020828403121561122e578081fd5b5035919050565b600060208284031215611246578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b039290921682521515602082015260400190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602080835283518082850152825b818110156112cc578581018301518582016040015282016112b0565b818111156112dd5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526027908201527f5446312d20506c6561736520636865636b2074686520726563697069656e74206040820152666164647265737360c81b606082015260800190565b6020808252602b908201527f54312d20526563697069656e742063616e206e6f74206265207468652073616d60408201526a329030b99039b2b73232b960a91b606082015260800190565b60208082526026908201527f5446352d205468652077616c6c6574206f6620726563697069656e7420697320604082015265333937bd32b760d11b606082015260800190565b60208082526025908201527f54352d205468652077616c6c6574206f6620726563697069656e7420697320666040820152643937bd32b760d91b606082015260800190565b60208082526027908201527f5446332d2054686520616c6c6f77616e6365206f662073656e64657220697320604082015266746f6f206c6f7760c81b606082015260800190565b60208082526024908201527f42312d205468652062616c616e6365206f66206275726e657220697320746f6f604082015263206c6f7760e01b606082015260800190565b60208082526022908201527f54342d205468652077616c6c6574206f662073656e6465722069732066726f7a60408201526132b760f11b606082015260800190565b60208082526026908201527f54322d20506c6561736520636865636b2074686520726563697069656e74206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f54332d205468652062616c616e6365206f662073656e64657220697320746f6f604082015263206c6f7760e01b606082015260800190565b60208082526028908201527f436f6e74726f6c6c61626c653a2063616c6c6572206973206e6f74206120636f604082015267373a3937b63632b960c11b606082015260800190565b60208082526023908201527f5446342d205468652077616c6c6574206f662073656e6465722069732066726f6040820152623d32b760e91b606082015260800190565b60208082526025908201527f5446322d205468652062616c616e6365206f662073656e64657220697320746f6040820152646f206c6f7760d81b606082015260800190565b6020808252601e908201527f41312d20526573657420616c6c6f77616e636520746f20302066697273740000604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115611698576116986117e7565b500190565b80825b60018086116116af57506116da565b8187048211156116c1576116c16117e7565b808616156116ce57918102915b9490941c9380026116a0565b94509492505050565b600061081560001984846000826116fc57506001610815565b8161170957506000610815565b816001811461171f576002811461172957611756565b6001915050610815565b60ff84111561173a5761173a6117e7565b6001841b915084821115611750576117506117e7565b50610815565b5060208310610133831016604e8410600b8410161715611789575081810a83811115611784576117846117e7565b610815565b611796848484600161169d565b8086048211156117a8576117a86117e7565b02949350505050565b60008160001904831182151516156117cb576117cb6117e7565b500290565b6000828210156117e2576117e26117e7565b500390565b634e487b7160e01b600052601160045260246000fd5b801515811461180b57600080fd5b5056fea26469706673582212205f3fd6ea2e81230d926201494cd4b047640da202fa4a088a3d1abc3b0aafbac264736f6c63430008000033

Verified Source Code Full Match

Compiler: v0.8.0+commit.c7dfd78e EVM: istanbul Optimization: Yes (200 runs)
MNW.sol 224 lines
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

interface iERC20 {

	function balanceOf(address who) external view returns (uint256 balance);

	function allowance(address owner, address spender) external view returns (uint256 remaining);

	function transfer(address to, uint256 value) external returns (bool success);

	function approve(address spender, uint256 value) external returns (bool success);

	function transferFrom(address from, address to, uint256 value) external returns (bool success);

	event Transfer(address indexed _from, address indexed _to, uint256 _value);

	event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

contract Context {
	function _msgSender() internal view returns (address) {
		return msg.sender;
	}

	function _msgData() internal view returns (bytes memory) {
		this;
		return msg.data;
	}
}

library SafeMath {
	function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {
		c = a - b;
		assert(b <= a && c <= a);
		return c;
	}

	function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
		c = a + b;
		assert(c >= a && c>=b);
		return c;
	}
}

library SafeERC20 {
	function safeTransfer(iERC20 _token, address _to, uint256 _value) internal {
		require(_token.transfer(_to, _value));
	}
}

contract Controllable is Context {
    mapping (address => bool) public controllers;

	constructor () {
		address msgSender = _msgSender();
		controllers[msgSender] = true;
	}

	modifier onlyController() {
		require(controllers[_msgSender()], "Controllable: caller is not a controller");
		_;
	}

    function addController(address _address) public onlyController {
        controllers[_address] = true;
    }

    function removeController(address _address) public onlyController {
        delete controllers[_address];
    }
}

contract Pausable is Controllable {
	event Pause();
	event Unpause();

	bool public paused = false;

	modifier whenNotPaused() {
		require(!paused);
		_;
	}

	modifier whenPaused() {
		require(paused);
		_;
	}

	function pause() public onlyController whenNotPaused {
		paused = true;
		emit Pause();
	}

	function unpause() public onlyController whenPaused {
		paused = false;
		emit Unpause();
	}
}

contract MNW is Controllable, Pausable, iERC20 {
	using SafeMath for uint256;
	using SafeERC20 for iERC20;

	mapping (address => uint256) public balances;
	mapping (address => mapping (address => uint256)) public allowed;
	mapping (address => bool) public frozenAccount;

	uint256 public totalSupply;
	string public constant name = "Morpheus.Network";
	uint8 public constant decimals = 18;
	string public constant symbol = "MNW";
	uint256 public constant initialSupply = 47897218 * 10 ** uint(decimals);

	constructor() {
		totalSupply = initialSupply;
		balances[msg.sender] = totalSupply;
    	controllers[msg.sender] = true;
		emit Transfer(address(0),msg.sender,initialSupply);
	}

	function receiveEther() public payable {
		revert();
	}

	function transfer(address _to, uint256 _value) external override whenNotPaused returns (bool success) {
		require(_to != msg.sender,"T1- Recipient can not be the same as sender");
		require(_to != address(0),"T2- Please check the recipient address");
		require(balances[msg.sender] >= _value,"T3- The balance of sender is too low");
		require(!frozenAccount[msg.sender],"T4- The wallet of sender is frozen");
		require(!frozenAccount[_to],"T5- The wallet of recipient is frozen");

		balances[msg.sender] = balances[msg.sender].sub(_value);
		balances[_to] = balances[_to].add(_value);

		emit Transfer(msg.sender, _to, _value);

		return true;
	}

	function transferFrom(address _from, address _to, uint256 _value) external override whenNotPaused returns (bool success) {
		require(_to != address(0),"TF1- Please check the recipient address");
		require(balances[_from] >= _value,"TF2- The balance of sender is too low");
		require(allowed[_from][msg.sender] >= _value,"TF3- The allowance of sender is too low");
		require(!frozenAccount[_from],"TF4- The wallet of sender is frozen");
		require(!frozenAccount[_to],"TF5- The wallet of recipient is frozen");

		balances[_from] = balances[_from].sub(_value);
		balances[_to] = balances[_to].add(_value);

		allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);

		emit Transfer(_from, _to, _value);

		return true;
	}

	function balanceOf(address _owner) public override view returns (uint256 balance) {
		return balances[_owner];
	}

	function approve(address _spender, uint256 _value) external override whenNotPaused returns (bool success) {
		require((_value == 0) || (allowed[msg.sender][_spender] == 0),"A1- Reset allowance to 0 first");

		allowed[msg.sender][_spender] = _value;

		emit Approval(msg.sender, _spender, _value);

		return true;
	}

	function increaseApproval(address _spender, uint256 _addedValue) external whenNotPaused returns (bool) {
		allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);

		emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);

		return true;
	}

	function decreaseApproval(address _spender, uint256 _subtractedValue) external whenNotPaused returns (bool) {
		allowed[msg.sender][_spender] = allowed[msg.sender][_spender].sub(_subtractedValue);

		emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);

		return true;
	}

	function allowance(address _owner, address _spender) public override view returns (uint256 remaining) {
		return allowed[_owner][_spender];
	}

	function transferToken(address tokenAddress, uint256 amount) external onlyController {
		iERC20(tokenAddress).safeTransfer(msg.sender,amount);
	}

	function flushToken(address tokenAddress) external onlyController {
		uint256 amount = iERC20(tokenAddress).balanceOf(address(this));
		iERC20(tokenAddress).safeTransfer(msg.sender,amount);
	}

	function burn(uint256 _value) external onlyController returns (bool) {
		require(_value <= balances[msg.sender],"B1- The balance of burner is too low");

		balances[msg.sender] = balances[msg.sender].sub(_value);
		totalSupply = totalSupply.sub(_value);

		emit Burn(msg.sender, _value);

		emit Transfer(msg.sender, address(0), _value);

		return true;
	}

	function freeze(address _address, bool _state) external onlyController returns (bool) {
		frozenAccount[_address] = _state;

		emit Freeze(_address, _state);

		return true;
	}

	event Burn(address indexed burner, uint256 value);
	event Freeze(address target, bool frozen);
}

Read Contract

allowance 0xdd62ed3e → uint256
allowed 0x5c658165 → uint256
balanceOf 0x70a08231 → uint256
balances 0x27e235e3 → uint256
controllers 0xda8c229e → bool
decimals 0x313ce567 → uint8
frozenAccount 0xb414d4b6 → bool
initialSupply 0x378dc3dc → uint256
name 0x06fdde03 → string
paused 0x5c975abb → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 14 functions

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

addController 0xa7fc7a07
address _address
approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
burn 0x42966c68
uint256 _value
returns: bool
decreaseApproval 0x66188463
address _spender
uint256 _subtractedValue
returns: bool
flushToken 0x9cee789f
address tokenAddress
freeze 0xbf120ae5
address _address
bool _state
returns: bool
increaseApproval 0xd73dd623
address _spender
uint256 _addedValue
returns: bool
pause 0x8456cb59
No parameters
receiveEther 0xa3912ec8
No parameters
removeController 0xf6a74ed7
address _address
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
transferToken 0x1072cbea
address tokenAddress
uint256 amount
unpause 0x3f4ba83a
No parameters

Recent Transactions

No transactions found for this address