Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 497 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Emergency Withdr... | 17672980 | 356 days ago | IN | 0 ETH | 0.00224638 | ||||
Emergency Withdr... | 17672968 | 356 days ago | IN | 0 ETH | 0.00359668 | ||||
Emergency Withdr... | 17672960 | 356 days ago | IN | 0 ETH | 0.00176764 | ||||
Emergency Withdr... | 17672941 | 356 days ago | IN | 0 ETH | 0.0024474 | ||||
Emergency Withdr... | 17672890 | 356 days ago | IN | 0 ETH | 0.00061028 | ||||
Emergency Withdr... | 17672873 | 356 days ago | IN | 0 ETH | 0.00069473 | ||||
Deposit | 13599932 | 962 days ago | IN | 0.1926167 ETH | 0.00794362 | ||||
Deposit | 13599900 | 962 days ago | IN | 0.12477845 ETH | 0.00965842 | ||||
Deposit | 13591626 | 964 days ago | IN | 0.02155359 ETH | 0.01405629 | ||||
Deposit | 13590828 | 964 days ago | IN | 0 ETH | 0.01610953 | ||||
Deposit | 13575444 | 966 days ago | IN | 0.10517525 ETH | 0.00687877 | ||||
Deposit | 13575442 | 966 days ago | IN | 0.10518837 ETH | 0.00608379 | ||||
Deposit | 13568939 | 967 days ago | IN | 0.02169476 ETH | 0.00728453 | ||||
Deposit | 13565942 | 968 days ago | IN | 0 ETH | 0.00878268 | ||||
Deposit | 13526257 | 974 days ago | IN | 0.02349218 ETH | 0.01012346 | ||||
Deposit | 13455922 | 985 days ago | IN | 0.03659209 ETH | 0.00501978 | ||||
Deposit | 13448635 | 986 days ago | IN | 0 ETH | 0.00536907 | ||||
Deposit | 13447349 | 986 days ago | IN | 0 ETH | 0.00329773 | ||||
Deposit | 13416758 | 991 days ago | IN | 0.02634045 ETH | 0.00859944 | ||||
Deposit | 13415636 | 991 days ago | IN | 0 ETH | 0.0085035 | ||||
Deposit | 13374758 | 998 days ago | IN | 0.00020448 ETH | 0.00849915 | ||||
Deposit | 13343769 | 1003 days ago | IN | 0.00000251 ETH | 0.00340246 | ||||
Deposit | 13309139 | 1008 days ago | IN | 0.033085 ETH | 0.00684292 | ||||
Deposit | 13284249 | 1012 days ago | IN | 0.03179066 ETH | 0.00405674 | ||||
Deposit | 13274064 | 1013 days ago | IN | 0 ETH | 0.00498363 |
Loading...
Loading
Contract Name:
MuonPresale
Compiler Version
v0.8.0+commit.c7dfd78e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./MuonV01.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; interface StandardToken { function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function approve(address spender, uint256 amount) external returns (bool); function decimals() external returns (uint8); function mint(address reveiver, uint256 amount) external returns (bool); function burn(address sender, uint256 amount) external returns (bool); } contract MuonPresale is Ownable{ using ECDSA for bytes32; MuonV01 public muon; mapping (address => uint256) public balances; bool public running = true; uint256 public maxMuonDelay = 15 minutes; event Deposit(address token, uint256 tokenPrice, uint256 amount, uint256 time, address fromAddress, address forAddress, uint256 addressMaxCap); modifier isRunning(){ require(running, "!running"); _; } constructor(address _muon){ muon = MuonV01(_muon); } function deposit( address token, uint256 tokenPrice, uint256 amount, uint256 time, address forAddress, uint256 addressMaxCap, bytes calldata _reqId, bytes[] calldata sigs ) public payable isRunning{ require(sigs.length > 1, "!sigs"); bytes32 hash = keccak256(abi.encodePacked(token, tokenPrice, amount, time, forAddress, addressMaxCap)); hash = hash.toEthSignedMessageHash(); bool verified = muon.verify(_reqId, hash, sigs); require(verified, '!verified'); // check max uint256 usdAmount = amount * tokenPrice / (10 ** (token == address(0) ? 18 : StandardToken(token).decimals()) ); require(balances[forAddress] + usdAmount <= addressMaxCap, ">max"); require(time + maxMuonDelay > block.timestamp, "muon: expired"); if(token == address(0)){ require(amount == msg.value, "amount err"); }else{ StandardToken tokenCon = StandardToken(token); tokenCon.transferFrom(address(msg.sender), address(this), amount); } balances[forAddress] = balances[forAddress] + usdAmount; emit Deposit(token, tokenPrice, amount, time, msg.sender, forAddress, addressMaxCap); } function setMuonContract(address addr) public onlyOwner{ muon = MuonV01(addr); } function setIsRunning(bool val) public onlyOwner{ running = val; } function setMaxMuonDelay(uint256 delay) public onlyOwner{ maxMuonDelay = delay; } function emergencyWithdrawETH(uint256 amount, address addr) public onlyOwner{ require(addr != address(0)); payable(addr).transfer(amount); } function emergencyWithdrawERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner { StandardToken(_tokenAddr).transfer(_to, _amount); } }
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; contract MuonV01 is Ownable { using ECDSA for bytes32; event Transaction(bytes reqId); mapping(address => bool) public signers; constructor(){ //initial nodes signers[0x06A85356DCb5b307096726FB86A78c59D38e08ee] = true; signers[0x4513218Ce2e31004348Fd374856152e1a026283C] = true; signers[0xe4f507b6D5492491f4B57f0f235B158C4C862fea] = true; signers[0x2236ED697Dab495e1FA17b079B05F3aa0F94E1Ef] = true; signers[0xCA40791F962AC789Fdc1cE589989444F851715A8] = true; signers[0x7AA04BfC706095b748979FE3E3dB156C3dFb9451] = true; signers[0x60AA825FffaF4AC68392D886Cc2EcBCBa3Df4BD9] = true; signers[0x031e6efe16bCFB88e6bfB068cfd39Ca02669Ae7C] = true; signers[0x27a58c0e7688F90B415afA8a1BfA64D48A835DF7] = true; signers[0x11C57ECa88e4A40b7B041EF48a66B9a0EF36b830] = true; } function verify(bytes calldata _reqId, bytes32 hash, bytes[] calldata sigs) public returns (bool) { uint i; address signer; for(i=0 ; i<sigs.length ; i++){ signer = hash.recover(sigs[i]); // require(attualSigner == signer, "Signature not confirmed"); if(signers[signer] != true) return false; } if(sigs.length > 0){ emit Transaction(_reqId); return true; } else{ return false; } } function ownerAddSigner(address _signer) public onlyOwner { signers[_signer] = true; } function ownerRemoveSigner(address _signer) public onlyOwner { delete signers[_signer]; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @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. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * * These functions can be used to verify that a message was signed by the holder * of the private keys of a given address. */ library ECDSA { /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature`. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. */ function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { // Divide the signature in r, s and v variables bytes32 r; bytes32 s; uint8 v; // Check the signature length // - case 65: r,s,v signature (standard) // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._ if (signature.length == 65) { // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. // solhint-disable-next-line no-inline-assembly assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } } else if (signature.length == 64) { // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. // solhint-disable-next-line no-inline-assembly assembly { let vs := mload(add(signature, 0x40)) r := mload(add(signature, 0x20)) s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) v := add(shr(255, vs), 27) } } else { revert("ECDSA: invalid signature length"); } return recover(hash, v, r, s); } /** * @dev Overload of {ECDSA-recover} that receives the `v`, * `r` and `s` signature fields separately. */ function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) { // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most // signatures from current libraries generate a unique signature with an s-value in the lower half order. // // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept // these malleable signatures as well. require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "ECDSA: invalid signature 's' value"); require(v == 27 || v == 28, "ECDSA: invalid signature 'v' value"); // If the signature is valid (and not malleable), return the signer address address signer = ecrecover(hash, v, r, s); require(signer != address(0), "ECDSA: invalid signature"); return signer; } /** * @dev Returns an Ethereum Signed Message, created from a `hash`. This * produces hash corresponding to the one signed with the * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] * JSON-RPC method as part of EIP-191. * * See {recover}. */ function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { // 32 is the length in bytes of hash, // enforced by the type signature above return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); } /** * @dev Returns an Ethereum Signed Typed Data, created from a * `domainSeparator` and a `structHash`. This produces hash corresponding * to the one signed with the * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] * JSON-RPC method as part of EIP-712. * * See {recover}. */ function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_muon","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":false,"internalType":"address","name":"forAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"addressMaxCap","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"address","name":"forAddress","type":"address"},{"internalType":"uint256","name":"addressMaxCap","type":"uint256"},{"internalType":"bytes","name":"_reqId","type":"bytes"},{"internalType":"bytes[]","name":"sigs","type":"bytes[]"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"emergencyWithdrawERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"name":"emergencyWithdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxMuonDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"muon","outputs":[{"internalType":"contract MuonV01","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"running","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"val","type":"bool"}],"name":"setIsRunning","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"setMaxMuonDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setMuonContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526003805460ff1916600117905561038460045534801561002357600080fd5b50604051611251380380611251833981016040819052610042916100bf565b600061004c6100bb565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790556100ed565b3390565b6000602082840312156100d0578081fd5b81516001600160a01b03811681146100e6578182fd5b9392505050565b611155806100fc6000396000f3fe6080604052600436106100c25760003560e01c80639aa2cadc1161007f578063b3f5e00811610059578063b3f5e008146101de578063d85bd526146101fe578063f2fde38b14610220578063f48db20414610240576100c2565b80639aa2cadc1461017e5780639efb5df11461019e578063a0cfc482146101be576100c2565b806311490d29146100c757806315945006146100f257806327e235e3146101145780636e17014814610141578063715018a6146101545780638da5cb5b14610169575b600080fd5b3480156100d357600080fd5b506100dc610255565b6040516100e99190610cea565b60405180910390f35b3480156100fe57600080fd5b5061011261010d366004610bfb565b610264565b005b34801561012057600080fd5b5061013461012f366004610a6c565b6102fa565b6040516100e99190610f81565b61011261014f366004610ac8565b61030c565b34801561016057600080fd5b506101126106b4565b34801561017557600080fd5b506100dc61073d565b34801561018a57600080fd5b50610112610199366004610a6c565b61074c565b3480156101aa57600080fd5b506101126101b9366004610bab565b6107ad565b3480156101ca57600080fd5b506101126101d9366004610be3565b6107ff565b3480156101ea57600080fd5b506101126101f9366004610a8d565b610843565b34801561020a57600080fd5b50610213610908565b6040516100e99190610d7d565b34801561022c57600080fd5b5061011261023b366004610a6c565b610911565b34801561024c57600080fd5b506101346109d1565b6001546001600160a01b031681565b61026c6109d7565b6001600160a01b031661027d61073d565b6001600160a01b0316146102ac5760405162461bcd60e51b81526004016102a390610f06565b60405180910390fd5b6001600160a01b0381166102bf57600080fd5b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156102f5573d6000803e3d6000fd5b505050565b60026020526000908152604090205481565b60035460ff1661032e5760405162461bcd60e51b81526004016102a390610f3b565b6001811161034e5760405162461bcd60e51b81526004016102a390610ec9565b60008a8a8a8a8a8a60405160200161036b96959493929190610c71565b60405160208183030381529060405280519060200120905061038c816109db565b6001546040516319eb2f9960e11b81529192506000916001600160a01b03909116906333d65f32906103ca908990899087908a908a90600401610d88565b602060405180830381600087803b1580156103e457600080fd5b505af11580156103f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041c9190610bc7565b90508061043b5760405162461bcd60e51b81526004016102a390610e39565b60006001600160a01b038d16156104c4578c6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561048757600080fd5b505af115801561049b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bf9190610c26565b6104c7565b60125b6104d290600a611008565b6104dc8d8d6110d9565b6104e69190610fa2565b6001600160a01b038a16600090815260026020526040902054909150889061050f908390610f8a565b111561052d5760405162461bcd60e51b81526004016102a390610ee8565b426004548b61053c9190610f8a565b116105595760405162461bcd60e51b81526004016102a390610ea2565b6001600160a01b038d1661058b57348b146105865760405162461bcd60e51b81526004016102a390610f5d565b610615565b60008d9050806001600160a01b03166323b872dd33308f6040518463ffffffff1660e01b81526004016105c093929190610cfe565b602060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190610bc7565b50505b6001600160a01b038916600090815260026020526040902054610639908290610f8a565b600260008b6001600160a01b03166001600160a01b03168152602001908152602001600020819055507fb27e4c7824fdb6af55c82a6d0d8746a5a8f84b3538a3e2b50bda783289d187108d8d8d8d338e8e60405161069d9796959493929190610d3b565b60405180910390a150505050505050505050505050565b6106bc6109d7565b6001600160a01b03166106cd61073d565b6001600160a01b0316146106f35760405162461bcd60e51b81526004016102a390610f06565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6107546109d7565b6001600160a01b031661076561073d565b6001600160a01b03161461078b5760405162461bcd60e51b81526004016102a390610f06565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6107b56109d7565b6001600160a01b03166107c661073d565b6001600160a01b0316146107ec5760405162461bcd60e51b81526004016102a390610f06565b6003805460ff1916911515919091179055565b6108076109d7565b6001600160a01b031661081861073d565b6001600160a01b03161461083e5760405162461bcd60e51b81526004016102a390610f06565b600455565b61084b6109d7565b6001600160a01b031661085c61073d565b6001600160a01b0316146108825760405162461bcd60e51b81526004016102a390610f06565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906108b09085908590600401610d22565b602060405180830381600087803b1580156108ca57600080fd5b505af11580156108de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109029190610bc7565b50505050565b60035460ff1681565b6109196109d7565b6001600160a01b031661092a61073d565b6001600160a01b0316146109505760405162461bcd60e51b81526004016102a390610f06565b6001600160a01b0381166109765760405162461bcd60e51b81526004016102a390610e5c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60045481565b3390565b6000816040516020016109ee9190610cb9565b6040516020818303038152906040528051906020012090505b919050565b80356001600160a01b0381168114610a0757600080fd5b60008083601f840112610a34578182fd5b50813567ffffffffffffffff811115610a4b578182fd5b6020830191508360208083028501011115610a6557600080fd5b9250929050565b600060208284031215610a7d578081fd5b610a8682610a0c565b9392505050565b600080600060608486031215610aa1578182fd5b610aaa84610a0c565b9250610ab860208501610a0c565b9150604084013590509250925092565b6000806000806000806000806000806101008b8d031215610ae7578586fd5b610af08b610a0c565b995060208b0135985060408b0135975060608b01359650610b1360808c01610a0c565b955060a08b0135945060c08b013567ffffffffffffffff80821115610b36578586fd5b818d0191508d601f830112610b49578586fd5b813581811115610b57578687fd5b8e6020828501011115610b68578687fd5b6020830196508095505060e08d0135915080821115610b85578384fd5b50610b928d828e01610a23565b915080935050809150509295989b9194979a5092959850565b600060208284031215610bbc578081fd5b8135610a868161110e565b600060208284031215610bd8578081fd5b8151610a868161110e565b600060208284031215610bf4578081fd5b5035919050565b60008060408385031215610c0d578182fd5b82359150610c1d60208401610a0c565b90509250929050565b600060208284031215610c37578081fd5b815160ff81168114610a86578182fd5b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6bffffffffffffffffffffffff19606097881b8116825260148201969096526034810194909452605484019290925290931b9091166074820152608881019190915260a80190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0397881681526020810196909652604086019490945260608501929092528416608084015290921660a082015260c081019190915260e00190565b901515815260200190565b600060608252610d9c606083018789610c47565b602083810187905283820360408501528482528181018582028301820187855b88811015610e2857858303601f190184528135368b9003601e19018112610de1578788fd5b8a01803567ffffffffffffffff811115610df9578889fd5b8036038c1315610e07578889fd5b610e148582898501610c47565b958701959450505090840190600101610dbc565b50909b9a5050505050505050505050565b602080825260099082015268085d995c9a599a595960ba1b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252600d908201526c1b5d5bdb8e88195e1c1a5c9959609a1b604082015260600190565b602080825260059082015264217369677360d81b604082015260600190565b60208082526004908201526307cdac2f60e31b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600890820152672172756e6e696e6760c01b604082015260600190565b6020808252600a908201526930b6b7bab73a1032b93960b11b604082015260600190565b90815260200190565b60008219821115610f9d57610f9d6110f8565b500190565b600082610fbd57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611610fd45750610fff565b818704821115610fe657610fe66110f8565b80861615610ff357918102915b9490941c938002610fc5565b94509492505050565b6000610a8660001960ff85168460008261102457506001610a86565b8161103157506000610a86565b816001811461104757600281146110515761107e565b6001915050610a86565b60ff841115611062576110626110f8565b6001841b915084821115611078576110786110f8565b50610a86565b5060208310610133831016604e8410600b84101617156110b1575081810a838111156110ac576110ac6110f8565b610a86565b6110be8484846001610fc2565b8086048211156110d0576110d06110f8565b02949350505050565b60008160001904831182151516156110f3576110f36110f8565b500290565b634e487b7160e01b600052601160045260246000fd5b801515811461111c57600080fd5b5056fea26469706673582212206b03b33c02ccad1abffb764949686acf4a8607652743473781ca45170aa030f764736f6c634300080000330000000000000000000000009dd25aaaaecedf3ceb484bf67803ad03f42c8721
Deployed Bytecode
0x6080604052600436106100c25760003560e01c80639aa2cadc1161007f578063b3f5e00811610059578063b3f5e008146101de578063d85bd526146101fe578063f2fde38b14610220578063f48db20414610240576100c2565b80639aa2cadc1461017e5780639efb5df11461019e578063a0cfc482146101be576100c2565b806311490d29146100c757806315945006146100f257806327e235e3146101145780636e17014814610141578063715018a6146101545780638da5cb5b14610169575b600080fd5b3480156100d357600080fd5b506100dc610255565b6040516100e99190610cea565b60405180910390f35b3480156100fe57600080fd5b5061011261010d366004610bfb565b610264565b005b34801561012057600080fd5b5061013461012f366004610a6c565b6102fa565b6040516100e99190610f81565b61011261014f366004610ac8565b61030c565b34801561016057600080fd5b506101126106b4565b34801561017557600080fd5b506100dc61073d565b34801561018a57600080fd5b50610112610199366004610a6c565b61074c565b3480156101aa57600080fd5b506101126101b9366004610bab565b6107ad565b3480156101ca57600080fd5b506101126101d9366004610be3565b6107ff565b3480156101ea57600080fd5b506101126101f9366004610a8d565b610843565b34801561020a57600080fd5b50610213610908565b6040516100e99190610d7d565b34801561022c57600080fd5b5061011261023b366004610a6c565b610911565b34801561024c57600080fd5b506101346109d1565b6001546001600160a01b031681565b61026c6109d7565b6001600160a01b031661027d61073d565b6001600160a01b0316146102ac5760405162461bcd60e51b81526004016102a390610f06565b60405180910390fd5b6001600160a01b0381166102bf57600080fd5b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156102f5573d6000803e3d6000fd5b505050565b60026020526000908152604090205481565b60035460ff1661032e5760405162461bcd60e51b81526004016102a390610f3b565b6001811161034e5760405162461bcd60e51b81526004016102a390610ec9565b60008a8a8a8a8a8a60405160200161036b96959493929190610c71565b60405160208183030381529060405280519060200120905061038c816109db565b6001546040516319eb2f9960e11b81529192506000916001600160a01b03909116906333d65f32906103ca908990899087908a908a90600401610d88565b602060405180830381600087803b1580156103e457600080fd5b505af11580156103f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041c9190610bc7565b90508061043b5760405162461bcd60e51b81526004016102a390610e39565b60006001600160a01b038d16156104c4578c6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561048757600080fd5b505af115801561049b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bf9190610c26565b6104c7565b60125b6104d290600a611008565b6104dc8d8d6110d9565b6104e69190610fa2565b6001600160a01b038a16600090815260026020526040902054909150889061050f908390610f8a565b111561052d5760405162461bcd60e51b81526004016102a390610ee8565b426004548b61053c9190610f8a565b116105595760405162461bcd60e51b81526004016102a390610ea2565b6001600160a01b038d1661058b57348b146105865760405162461bcd60e51b81526004016102a390610f5d565b610615565b60008d9050806001600160a01b03166323b872dd33308f6040518463ffffffff1660e01b81526004016105c093929190610cfe565b602060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190610bc7565b50505b6001600160a01b038916600090815260026020526040902054610639908290610f8a565b600260008b6001600160a01b03166001600160a01b03168152602001908152602001600020819055507fb27e4c7824fdb6af55c82a6d0d8746a5a8f84b3538a3e2b50bda783289d187108d8d8d8d338e8e60405161069d9796959493929190610d3b565b60405180910390a150505050505050505050505050565b6106bc6109d7565b6001600160a01b03166106cd61073d565b6001600160a01b0316146106f35760405162461bcd60e51b81526004016102a390610f06565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6107546109d7565b6001600160a01b031661076561073d565b6001600160a01b03161461078b5760405162461bcd60e51b81526004016102a390610f06565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6107b56109d7565b6001600160a01b03166107c661073d565b6001600160a01b0316146107ec5760405162461bcd60e51b81526004016102a390610f06565b6003805460ff1916911515919091179055565b6108076109d7565b6001600160a01b031661081861073d565b6001600160a01b03161461083e5760405162461bcd60e51b81526004016102a390610f06565b600455565b61084b6109d7565b6001600160a01b031661085c61073d565b6001600160a01b0316146108825760405162461bcd60e51b81526004016102a390610f06565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906108b09085908590600401610d22565b602060405180830381600087803b1580156108ca57600080fd5b505af11580156108de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109029190610bc7565b50505050565b60035460ff1681565b6109196109d7565b6001600160a01b031661092a61073d565b6001600160a01b0316146109505760405162461bcd60e51b81526004016102a390610f06565b6001600160a01b0381166109765760405162461bcd60e51b81526004016102a390610e5c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60045481565b3390565b6000816040516020016109ee9190610cb9565b6040516020818303038152906040528051906020012090505b919050565b80356001600160a01b0381168114610a0757600080fd5b60008083601f840112610a34578182fd5b50813567ffffffffffffffff811115610a4b578182fd5b6020830191508360208083028501011115610a6557600080fd5b9250929050565b600060208284031215610a7d578081fd5b610a8682610a0c565b9392505050565b600080600060608486031215610aa1578182fd5b610aaa84610a0c565b9250610ab860208501610a0c565b9150604084013590509250925092565b6000806000806000806000806000806101008b8d031215610ae7578586fd5b610af08b610a0c565b995060208b0135985060408b0135975060608b01359650610b1360808c01610a0c565b955060a08b0135945060c08b013567ffffffffffffffff80821115610b36578586fd5b818d0191508d601f830112610b49578586fd5b813581811115610b57578687fd5b8e6020828501011115610b68578687fd5b6020830196508095505060e08d0135915080821115610b85578384fd5b50610b928d828e01610a23565b915080935050809150509295989b9194979a5092959850565b600060208284031215610bbc578081fd5b8135610a868161110e565b600060208284031215610bd8578081fd5b8151610a868161110e565b600060208284031215610bf4578081fd5b5035919050565b60008060408385031215610c0d578182fd5b82359150610c1d60208401610a0c565b90509250929050565b600060208284031215610c37578081fd5b815160ff81168114610a86578182fd5b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6bffffffffffffffffffffffff19606097881b8116825260148201969096526034810194909452605484019290925290931b9091166074820152608881019190915260a80190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0397881681526020810196909652604086019490945260608501929092528416608084015290921660a082015260c081019190915260e00190565b901515815260200190565b600060608252610d9c606083018789610c47565b602083810187905283820360408501528482528181018582028301820187855b88811015610e2857858303601f190184528135368b9003601e19018112610de1578788fd5b8a01803567ffffffffffffffff811115610df9578889fd5b8036038c1315610e07578889fd5b610e148582898501610c47565b958701959450505090840190600101610dbc565b50909b9a5050505050505050505050565b602080825260099082015268085d995c9a599a595960ba1b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252600d908201526c1b5d5bdb8e88195e1c1a5c9959609a1b604082015260600190565b602080825260059082015264217369677360d81b604082015260600190565b60208082526004908201526307cdac2f60e31b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600890820152672172756e6e696e6760c01b604082015260600190565b6020808252600a908201526930b6b7bab73a1032b93960b11b604082015260600190565b90815260200190565b60008219821115610f9d57610f9d6110f8565b500190565b600082610fbd57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611610fd45750610fff565b818704821115610fe657610fe66110f8565b80861615610ff357918102915b9490941c938002610fc5565b94509492505050565b6000610a8660001960ff85168460008261102457506001610a86565b8161103157506000610a86565b816001811461104757600281146110515761107e565b6001915050610a86565b60ff841115611062576110626110f8565b6001841b915084821115611078576110786110f8565b50610a86565b5060208310610133831016604e8410600b84101617156110b1575081810a838111156110ac576110ac6110f8565b610a86565b6110be8484846001610fc2565b8086048211156110d0576110d06110f8565b02949350505050565b60008160001904831182151516156110f3576110f36110f8565b500290565b634e487b7160e01b600052601160045260246000fd5b801515811461111c57600080fd5b5056fea26469706673582212206b03b33c02ccad1abffb764949686acf4a8607652743473781ca45170aa030f764736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009dd25aaaaecedf3ceb484bf67803ad03f42c8721
-----Decoded View---------------
Arg [0] : _muon (address): 0x9dd25aaAAECeDf3ceB484bf67803AD03F42C8721
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009dd25aaaaecedf3ceb484bf67803ad03f42c8721
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.