Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 611 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 14661398 | 976 days ago | IN | 0 ETH | 0.00181635 | ||||
Mint To Vault | 14661390 | 976 days ago | IN | 0 ETH | 0.05374934 | ||||
Claim Public | 14661339 | 976 days ago | IN | 0.16 ETH | 0.00165782 | ||||
Claim Public | 14661339 | 976 days ago | IN | 0.08 ETH | 0.00165782 | ||||
Pause Unpause | 14661338 | 976 days ago | IN | 0 ETH | 0.00155772 | ||||
Claim Public | 14661338 | 976 days ago | IN | 0.08 ETH | 0.00648719 | ||||
Claim Public | 14661334 | 976 days ago | IN | 0.16 ETH | 0.00643611 | ||||
Claim Public | 14661333 | 976 days ago | IN | 0.08 ETH | 0.0061483 | ||||
Claim Public | 14661329 | 976 days ago | IN | 0.08 ETH | 0.00493956 | ||||
Claim Public | 14661328 | 976 days ago | IN | 0.08 ETH | 0.00734003 | ||||
Claim Public | 14661327 | 976 days ago | IN | 0.16 ETH | 0.00809594 | ||||
Claim Public | 14661325 | 976 days ago | IN | 0.16 ETH | 0.00925516 | ||||
Claim Public | 14661324 | 976 days ago | IN | 0.08 ETH | 0.00696524 | ||||
Claim Public | 14661324 | 976 days ago | IN | 0.16 ETH | 0.00867951 | ||||
Claim Public | 14661322 | 976 days ago | IN | 0.08 ETH | 0.00833603 | ||||
Claim Public | 14661322 | 976 days ago | IN | 0.32 ETH | 0.01583806 | ||||
Claim Public | 14661322 | 976 days ago | IN | 0.32 ETH | 0.01322734 | ||||
Claim Public | 14661321 | 976 days ago | IN | 0.08 ETH | 0.00691658 | ||||
Claim Public | 14661320 | 976 days ago | IN | 0.48 ETH | 0.02126863 | ||||
Claim Public | 14661319 | 976 days ago | IN | 0.08 ETH | 0.01029545 | ||||
Claim Public | 14661319 | 976 days ago | IN | 0.08 ETH | 0.01029545 | ||||
Claim Public | 14661319 | 976 days ago | IN | 0.16 ETH | 0.01247684 | ||||
Claim Public | 14661319 | 976 days ago | IN | 0.16 ETH | 0.01247684 | ||||
Claim Public | 14661318 | 976 days ago | IN | 0.08 ETH | 0.01018007 | ||||
Claim Public | 14661318 | 976 days ago | IN | 0.08 ETH | 0.01018007 |
Loading...
Loading
Contract Name:
ClaimNeuromod
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 800 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity ^0.8.13; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; interface NeuromodI { function mintBatch(address _owner, uint16[] calldata _tokenIds) external; } contract ClaimNeuromod is Ownable, ReentrancyGuard { bytes32 public merkleRoot; NeuromodI public immutable neuromod; address public immutable dev; address public immutable vault; mapping(address => uint256) public claimedPerAccount; uint256 public MAX_PER_ACCOUNT_WL = 10; uint256 public MAX_PER_ACCOUNT_OG = 10; uint256 public MAX_PER_ACCOUNT_PUBLIC = 10; /** * @notice this is 1265 currentId */ uint256 public currentId = 1265; uint256 public price = 0.08 ether; bool public pause; bool public publicSale = true; error Unauthorized(); error InvalidProof(); error WrongAmount(); error Paused(); error TooManyNfts(uint256 _type); event PriceChanged(uint256 _newPrice); event EnabledPublicSale(bool _enabled); event MerkleRootChanged(bytes32 _newMerkleRoot); event Claimed(address _user, uint256 _quantity); event PauseChanged(bool _paused); event MintedToVault(uint16[] ids); event MaxPerAccPublic(uint256 _newValue); event ChangedCurrentId(uint256 _newValue); constructor( NeuromodI _neuromod, address _vault, address _dev ) { neuromod = _neuromod; vault = _vault; dev = _dev; } function mintToVault(uint16[] memory _mintedToVault) external onlyOwner { neuromod.mintBatch(vault, _mintedToVault); emit MintedToVault(_mintedToVault); } /** * @notice claiming based on whitelisted merkle tree * @dev every proof includes type and msg sender * @param _quantity how much you can claim, needs to be <= type (e.g. OG max allowed 2 so _amount must be < 2) * @param _type 1 = WL, 2 = OG * @param _merkleProof proof he is whitelisted */ function claim( uint256 _quantity, uint256 _type, bytes32[] calldata _merkleProof ) external payable nonReentrant { if (pause) revert Paused(); bytes32 leaf = keccak256(abi.encodePacked(msg.sender, _type)); if (!MerkleProof.verify(_merkleProof, merkleRoot, leaf)) revert InvalidProof(); if (price * _quantity > msg.value) revert WrongAmount(); if (_type == 1 && claimedPerAccount[msg.sender] + _quantity > MAX_PER_ACCOUNT_WL) revert TooManyNfts(1); else if (_type == 2 && claimedPerAccount[msg.sender] + _quantity > MAX_PER_ACCOUNT_OG) revert TooManyNfts(2); unchecked { claimedPerAccount[msg.sender] += _quantity; uint16[] memory ids = new uint16[](_quantity); uint256 i = 1; for (; i <= _quantity; i++) { ids[i - 1] = uint16(++currentId); } neuromod.mintBatch(msg.sender, ids); } emit Claimed(msg.sender, _quantity); } /** * @notice claim public lets everyone claim. The ones who claimed in the whitelisting phase, will count for already minted. * @notice e.g. if i minted 1 in whitelist phase, i can mint only 1 in public * @param _quantity how much i can claim, no more than 2 */ function claimPublic(uint256 _quantity) external payable nonReentrant { if (pause) revert Paused(); if (!publicSale) revert Paused(); if (price * _quantity > msg.value) revert WrongAmount(); if (claimedPerAccount[msg.sender] + _quantity > MAX_PER_ACCOUNT_PUBLIC) revert TooManyNfts(3); unchecked { claimedPerAccount[msg.sender] += _quantity; uint16[] memory ids = new uint16[](_quantity); uint256 i = 1; for (; i <= _quantity; i++) { ids[i - 1] = uint16(++currentId); } neuromod.mintBatch(msg.sender, ids); } emit Claimed(msg.sender, _quantity); } function setPrice(uint256 _newPrice) external onlyOwner { price = _newPrice; emit PriceChanged(_newPrice); } function setPublicSale(bool _enabled) external onlyOwner { publicSale = _enabled; emit EnabledPublicSale(_enabled); } function setMerkleRoot(bytes32 _newMerkleRoot) external onlyOwner { merkleRoot = _newMerkleRoot; emit MerkleRootChanged(_newMerkleRoot); } function pauseUnpause(bool _newPause) external onlyOwner { pause = _newPause; emit PauseChanged(_newPause); } function setMaxPerAccPublic(uint256 _newValue) external onlyOwner { MAX_PER_ACCOUNT_PUBLIC = _newValue; emit MaxPerAccPublic(_newValue); } function setCurrentId(uint256 _newValue) external onlyOwner { currentId = _newValue; emit ChangedCurrentId(_newValue); } function withdraw() external onlyOwner { uint256 balance = address(this).balance * 100; uint256 toVault = (balance * 98) / 100; uint256 toDev = balance - toVault; (bool succeed, ) = vault.call{ value: toVault / 100 }(""); require(succeed, "Failed to withdraw Ether"); (succeed, ) = dev.call{ value: toDev / 100 }(""); require(succeed, "Failed to withdraw Ether"); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) 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() { _transferOwnership(_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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/MerkleProof.sol) pragma solidity ^0.8.0; /** * @dev These functions deal with verification of Merkle Trees proofs. * * The proofs can be generated using the JavaScript library * https://github.com/miguelmota/merkletreejs[merkletreejs]. * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. * * See `test/utils/cryptography/MerkleProof.test.js` for some examples. */ library MerkleProof { /** * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree * defined by `root`. For this, a `proof` must be provided, containing * sibling hashes on the branch from the leaf to the root of the tree. Each * pair of leaves and each pair of pre-images are assumed to be sorted. */ function verify( bytes32[] memory proof, bytes32 root, bytes32 leaf ) internal pure returns (bool) { return processProof(proof, leaf) == root; } /** * @dev Returns the rebuilt hash obtained by traversing a Merklee tree up * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt * hash matches the root of the tree. When processing the proof, the pairs * of leafs & pre-images are assumed to be sorted. * * _Available since v4.4._ */ function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofElement = proof[i]; if (computedHash <= proofElement) { // Hash(current computed hash + current element of the proof) computedHash = _efficientHash(computedHash, proofElement); } else { // Hash(current element of the proof + current computed hash) computedHash = _efficientHash(proofElement, computedHash); } } return computedHash; } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) 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) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 800 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract NeuromodI","name":"_neuromod","type":"address"},{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_dev","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[],"name":"Paused","type":"error"},{"inputs":[{"internalType":"uint256","name":"_type","type":"uint256"}],"name":"TooManyNfts","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"WrongAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newValue","type":"uint256"}],"name":"ChangedCurrentId","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"}],"name":"EnabledPublicSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newValue","type":"uint256"}],"name":"MaxPerAccPublic","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_newMerkleRoot","type":"bytes32"}],"name":"MerkleRootChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16[]","name":"ids","type":"uint16[]"}],"name":"MintedToVault","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_paused","type":"bool"}],"name":"PauseChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"PriceChanged","type":"event"},{"inputs":[],"name":"MAX_PER_ACCOUNT_OG","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PER_ACCOUNT_PUBLIC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PER_ACCOUNT_WL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quantity","type":"uint256"},{"internalType":"uint256","name":"_type","type":"uint256"},{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"claimPublic","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimedPerAccount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16[]","name":"_mintedToVault","type":"uint16[]"}],"name":"mintToVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"neuromod","outputs":[{"internalType":"contract NeuromodI","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_newPause","type":"bool"}],"name":"pauseUnpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicSale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newValue","type":"uint256"}],"name":"setCurrentId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newValue","type":"uint256"}],"name":"setMaxPerAccPublic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newMerkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setPublicSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e0604052600a600481905560058190556006556104f160075567011c37937e0800006008556009805461ff0019166101001790553480156200004157600080fd5b5060405162001808380380620018088339810160408190526200006491620000fa565b6200006f3362000091565b600180556001600160a01b0392831660805290821660c0521660a0526200014e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000f757600080fd5b50565b6000806000606084860312156200011057600080fd5b83516200011d81620000e1565b60208501519093506200013081620000e1565b60408501519092506200014381620000e1565b809150509250925092565b60805160a05160c051611660620001a8600039600081816104aa0152818161055d01526110ac0152600081816103b7015261062401526000818161025f015281816108b301528181610ee1015261107f01526116606000f3fe6080604052600436106101965760003560e01c80637cb64759116100e1578063a035b1fe1161008a578063e00dd16111610064578063e00dd16114610442578063ee8220c714610458578063f2fde38b14610478578063fbfa77cf1461049857600080fd5b8063a035b1fe146103f9578063ae0b51df1461040f578063b0667f7a1461042257600080fd5b806391b7f5ed116100bb57806391b7f5ed1461038557806391cca3db146103a55780639b37aecb146103d957600080fd5b80637cb647591461032d5780638456cb591461034d5780638da5cb5b1461036757600080fd5b80634fc9e04b116101435780635be0aac71161011d5780635be0aac7146102e2578063715018a6146102f85780637c287a241461030d57600080fd5b80634fc9e04b14610299578063551e1770146102af5780635aca1bb6146102c257600080fd5b80633b0ce8d8116101745780633b0ce8d8146102205780633ccfd60b14610236578063408b18721461024d57600080fd5b80631a3e8f571461019b5780632eb4a7ab146101db57806333bc1c5c146101f1575b600080fd5b3480156101a757600080fd5b506101c86101b63660046112f9565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156101e757600080fd5b506101c860025481565b3480156101fd57600080fd5b5060095461021090610100900460ff1681565b60405190151581526020016101d2565b34801561022c57600080fd5b506101c860045481565b34801561024257600080fd5b5061024b6104cc565b005b34801561025957600080fd5b506102817f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101d2565b3480156102a557600080fd5b506101c860065481565b61024b6102bd366004611329565b6106e9565b3480156102ce57600080fd5b5061024b6102dd366004611342565b610965565b3480156102ee57600080fd5b506101c860055481565b34801561030457600080fd5b5061024b610a01565b34801561031957600080fd5b5061024b610328366004611329565b610a55565b34801561033957600080fd5b5061024b610348366004611329565b610ad2565b34801561035957600080fd5b506009546102109060ff1681565b34801561037357600080fd5b506000546001600160a01b0316610281565b34801561039157600080fd5b5061024b6103a0366004611329565b610b4f565b3480156103b157600080fd5b506102817f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e557600080fd5b5061024b6103f4366004611329565b610bcc565b34801561040557600080fd5b506101c860085481565b61024b61041d366004611364565b610c49565b34801561042e57600080fd5b5061024b61043d366004611342565b610f97565b34801561044e57600080fd5b506101c860075481565b34801561046457600080fd5b5061024b610473366004611414565b611020565b34801561048457600080fd5b5061024b6104933660046112f9565b611137565b3480156104a457600080fd5b506102817f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146105195760405162461bcd60e51b8152602060048201819052602482015260008051602061160b83398151915260448201526064015b60405180910390fd5b60006105264760646114ef565b9050600060646105378360626114ef565b610541919061150e565b9050600061054f8284611530565b905060006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661058860648561150e565b604051600081818185875af1925050503d80600081146105c4576040519150601f19603f3d011682016040523d82523d6000602084013e6105c9565b606091505b505090508061061a5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20776974686472617720457468657200000000000000006044820152606401610510565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661064f60648461150e565b604051600081818185875af1925050503d806000811461068b576040519150601f19603f3d011682016040523d82523d6000602084013e610690565b606091505b505080915050806106e35760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20776974686472617720457468657200000000000000006044820152606401610510565b50505050565b60026001540361073b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610510565b600260015560095460ff1615610764576040516313d0ff5960e31b815260040160405180910390fd5b600954610100900460ff1661078c576040516313d0ff5960e31b815260040160405180910390fd5b348160085461079b91906114ef565b11156107ba576040516349986e7360e01b815260040160405180910390fd5b600654336000908152600360205260409020546107d8908390611547565b11156107fa57604051630ec535d360e31b815260036004820152602401610510565b3360009081526003602052604081208054830190558167ffffffffffffffff811115610828576108286113e7565b604051908082528060200260200182016040528015610851578160200160208202803683370190505b50905060015b82811161089c5760078054600101908190558251839060001984019081106108815761088161155f565b61ffff90921660209283029190910190910152600101610857565b60405163e5e21bb760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e5e21bb7906108ea90339086906004016115b4565b600060405180830381600087803b15801561090457600080fd5b505af1158015610918573d6000803e3d6000fd5b505060408051338152602081018790527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9550019250610956915050565b60405180910390a15060018055565b6000546001600160a01b031633146109ad5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b600980548215156101000261ff00199091161790556040517f283d6c0a81b26c075cbd492e3794f1865af096ed9a5c4b49eb2565c71a3361bd906109f690831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610a495760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b610a536000611207565b565b6000546001600160a01b03163314610a9d5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60068190556040518181527f8939d80f3eb46005716f56c6e26d63b91991df37363f4a9b63cf616d9975f938906020016109f6565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60028190556040518181527f1b930366dfeaa7eb3b325021e4ae81e36527063452ee55b86c95f85b36f4c31c906020016109f6565b6000546001600160a01b03163314610b975760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60088190556040518181527fa6dc15bdb68da224c66db4b3838d9a2b205138e8cff6774e57d0af91e196d622906020016109f6565b6000546001600160a01b03163314610c145760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60078190556040518181527fe4bf67fa782d771e931d21af5bff395130b102e28dcb07a59148f01af5b0b1b6906020016109f6565b600260015403610c9b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610510565b600260015560095460ff1615610cc4576040516313d0ff5960e31b815260040160405180910390fd5b6040516bffffffffffffffffffffffff193360601b16602082015260348101849052600090605401604051602081830303815290604052805190602001209050610d4583838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600254915084905061126f565b610d62576040516309bde33960e01b815260040160405180910390fd5b3485600854610d7191906114ef565b1115610d90576040516349986e7360e01b815260040160405180910390fd5b836001148015610dbb575060045433600090815260036020526040902054610db9908790611547565b115b15610ddc57604051630ec535d360e31b815260016004820152602401610510565b836002148015610e07575060055433600090815260036020526040902054610e05908790611547565b115b15610e2857604051630ec535d360e31b815260026004820152602401610510565b3360009081526003602052604081208054870190558567ffffffffffffffff811115610e5657610e566113e7565b604051908082528060200260200182016040528015610e7f578160200160208202803683370190505b50905060015b868111610eca576007805460010190819055825183906000198401908110610eaf57610eaf61155f565b61ffff90921660209283029190910190910152600101610e85565b60405163e5e21bb760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e5e21bb790610f1890339086906004016115b4565b600060405180830381600087803b158015610f3257600080fd5b505af1158015610f46573d6000803e3d6000fd5b505060408051338152602081018b90527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9550019250610f84915050565b60405180910390a1505060018055505050565b6000546001600160a01b03163314610fdf5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b6009805460ff19168215159081179091556040519081527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5906020016109f6565b6000546001600160a01b031633146110685760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60405163e5e21bb760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e5e21bb7906110d6907f00000000000000000000000000000000000000000000000000000000000000009085906004016115b4565b600060405180830381600087803b1580156110f057600080fd5b505af1158015611104573d6000803e3d6000fd5b505050507f87d5f4fc4686b1e26240d01063a61c1e42ee1a0b297ba4ce39a5feccbcbec060816040516109f691906115de565b6000546001600160a01b0316331461117f5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b6001600160a01b0381166111fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610510565b61120481611207565b50565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008261127c8584611285565b14949350505050565b600081815b84518110156112f15760008582815181106112a7576112a761155f565b602002602001015190508083116112cd57600083815260208290526040902092506112de565b600081815260208490526040902092505b50806112e9816115f1565b91505061128a565b509392505050565b60006020828403121561130b57600080fd5b81356001600160a01b038116811461132257600080fd5b9392505050565b60006020828403121561133b57600080fd5b5035919050565b60006020828403121561135457600080fd5b8135801515811461132257600080fd5b6000806000806060858703121561137a57600080fd5b8435935060208501359250604085013567ffffffffffffffff808211156113a057600080fd5b818701915087601f8301126113b457600080fd5b8135818111156113c357600080fd5b8860208260051b85010111156113d857600080fd5b95989497505060200194505050565b634e487b7160e01b600052604160045260246000fd5b803561ffff8116811461140f57600080fd5b919050565b6000602080838503121561142757600080fd5b823567ffffffffffffffff8082111561143f57600080fd5b818501915085601f83011261145357600080fd5b813581811115611465576114656113e7565b8060051b604051601f19603f8301168101818110858211171561148a5761148a6113e7565b6040529182528482019250838101850191888311156114a857600080fd5b938501935b828510156114cd576114be856113fd565b845293850193928501926114ad565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611509576115096114d9565b500290565b60008261152b57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611542576115426114d9565b500390565b6000821982111561155a5761155a6114d9565b500190565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156115a957815161ffff1687529582019590820190600101611589565b509495945050505050565b6001600160a01b03831681526040602082015260006115d66040830184611575565b949350505050565b6020815260006113226020830184611575565b600060018201611603576116036114d9565b506001019056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220636cc75580c6aa42e5cb3e31913706a3455c03c24c246a77aa5de17295e6ee7864736f6c634300080d0033000000000000000000000000878e06b10573e1d09864a9ab2641a91eda5bcbe1000000000000000000000000cd8e278eb8f4eedca4e41611b5c402625c7fd2a5000000000000000000000000c8e2806a97413b5496a1ba6050b517cc98d0efca
Deployed Bytecode
0x6080604052600436106101965760003560e01c80637cb64759116100e1578063a035b1fe1161008a578063e00dd16111610064578063e00dd16114610442578063ee8220c714610458578063f2fde38b14610478578063fbfa77cf1461049857600080fd5b8063a035b1fe146103f9578063ae0b51df1461040f578063b0667f7a1461042257600080fd5b806391b7f5ed116100bb57806391b7f5ed1461038557806391cca3db146103a55780639b37aecb146103d957600080fd5b80637cb647591461032d5780638456cb591461034d5780638da5cb5b1461036757600080fd5b80634fc9e04b116101435780635be0aac71161011d5780635be0aac7146102e2578063715018a6146102f85780637c287a241461030d57600080fd5b80634fc9e04b14610299578063551e1770146102af5780635aca1bb6146102c257600080fd5b80633b0ce8d8116101745780633b0ce8d8146102205780633ccfd60b14610236578063408b18721461024d57600080fd5b80631a3e8f571461019b5780632eb4a7ab146101db57806333bc1c5c146101f1575b600080fd5b3480156101a757600080fd5b506101c86101b63660046112f9565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156101e757600080fd5b506101c860025481565b3480156101fd57600080fd5b5060095461021090610100900460ff1681565b60405190151581526020016101d2565b34801561022c57600080fd5b506101c860045481565b34801561024257600080fd5b5061024b6104cc565b005b34801561025957600080fd5b506102817f000000000000000000000000878e06b10573e1d09864a9ab2641a91eda5bcbe181565b6040516001600160a01b0390911681526020016101d2565b3480156102a557600080fd5b506101c860065481565b61024b6102bd366004611329565b6106e9565b3480156102ce57600080fd5b5061024b6102dd366004611342565b610965565b3480156102ee57600080fd5b506101c860055481565b34801561030457600080fd5b5061024b610a01565b34801561031957600080fd5b5061024b610328366004611329565b610a55565b34801561033957600080fd5b5061024b610348366004611329565b610ad2565b34801561035957600080fd5b506009546102109060ff1681565b34801561037357600080fd5b506000546001600160a01b0316610281565b34801561039157600080fd5b5061024b6103a0366004611329565b610b4f565b3480156103b157600080fd5b506102817f000000000000000000000000c8e2806a97413b5496a1ba6050b517cc98d0efca81565b3480156103e557600080fd5b5061024b6103f4366004611329565b610bcc565b34801561040557600080fd5b506101c860085481565b61024b61041d366004611364565b610c49565b34801561042e57600080fd5b5061024b61043d366004611342565b610f97565b34801561044e57600080fd5b506101c860075481565b34801561046457600080fd5b5061024b610473366004611414565b611020565b34801561048457600080fd5b5061024b6104933660046112f9565b611137565b3480156104a457600080fd5b506102817f000000000000000000000000cd8e278eb8f4eedca4e41611b5c402625c7fd2a581565b6000546001600160a01b031633146105195760405162461bcd60e51b8152602060048201819052602482015260008051602061160b83398151915260448201526064015b60405180910390fd5b60006105264760646114ef565b9050600060646105378360626114ef565b610541919061150e565b9050600061054f8284611530565b905060006001600160a01b037f000000000000000000000000cd8e278eb8f4eedca4e41611b5c402625c7fd2a51661058860648561150e565b604051600081818185875af1925050503d80600081146105c4576040519150601f19603f3d011682016040523d82523d6000602084013e6105c9565b606091505b505090508061061a5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20776974686472617720457468657200000000000000006044820152606401610510565b6001600160a01b037f000000000000000000000000c8e2806a97413b5496a1ba6050b517cc98d0efca1661064f60648461150e565b604051600081818185875af1925050503d806000811461068b576040519150601f19603f3d011682016040523d82523d6000602084013e610690565b606091505b505080915050806106e35760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20776974686472617720457468657200000000000000006044820152606401610510565b50505050565b60026001540361073b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610510565b600260015560095460ff1615610764576040516313d0ff5960e31b815260040160405180910390fd5b600954610100900460ff1661078c576040516313d0ff5960e31b815260040160405180910390fd5b348160085461079b91906114ef565b11156107ba576040516349986e7360e01b815260040160405180910390fd5b600654336000908152600360205260409020546107d8908390611547565b11156107fa57604051630ec535d360e31b815260036004820152602401610510565b3360009081526003602052604081208054830190558167ffffffffffffffff811115610828576108286113e7565b604051908082528060200260200182016040528015610851578160200160208202803683370190505b50905060015b82811161089c5760078054600101908190558251839060001984019081106108815761088161155f565b61ffff90921660209283029190910190910152600101610857565b60405163e5e21bb760e01b81526001600160a01b037f000000000000000000000000878e06b10573e1d09864a9ab2641a91eda5bcbe1169063e5e21bb7906108ea90339086906004016115b4565b600060405180830381600087803b15801561090457600080fd5b505af1158015610918573d6000803e3d6000fd5b505060408051338152602081018790527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9550019250610956915050565b60405180910390a15060018055565b6000546001600160a01b031633146109ad5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b600980548215156101000261ff00199091161790556040517f283d6c0a81b26c075cbd492e3794f1865af096ed9a5c4b49eb2565c71a3361bd906109f690831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610a495760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b610a536000611207565b565b6000546001600160a01b03163314610a9d5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60068190556040518181527f8939d80f3eb46005716f56c6e26d63b91991df37363f4a9b63cf616d9975f938906020016109f6565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60028190556040518181527f1b930366dfeaa7eb3b325021e4ae81e36527063452ee55b86c95f85b36f4c31c906020016109f6565b6000546001600160a01b03163314610b975760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60088190556040518181527fa6dc15bdb68da224c66db4b3838d9a2b205138e8cff6774e57d0af91e196d622906020016109f6565b6000546001600160a01b03163314610c145760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60078190556040518181527fe4bf67fa782d771e931d21af5bff395130b102e28dcb07a59148f01af5b0b1b6906020016109f6565b600260015403610c9b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610510565b600260015560095460ff1615610cc4576040516313d0ff5960e31b815260040160405180910390fd5b6040516bffffffffffffffffffffffff193360601b16602082015260348101849052600090605401604051602081830303815290604052805190602001209050610d4583838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600254915084905061126f565b610d62576040516309bde33960e01b815260040160405180910390fd5b3485600854610d7191906114ef565b1115610d90576040516349986e7360e01b815260040160405180910390fd5b836001148015610dbb575060045433600090815260036020526040902054610db9908790611547565b115b15610ddc57604051630ec535d360e31b815260016004820152602401610510565b836002148015610e07575060055433600090815260036020526040902054610e05908790611547565b115b15610e2857604051630ec535d360e31b815260026004820152602401610510565b3360009081526003602052604081208054870190558567ffffffffffffffff811115610e5657610e566113e7565b604051908082528060200260200182016040528015610e7f578160200160208202803683370190505b50905060015b868111610eca576007805460010190819055825183906000198401908110610eaf57610eaf61155f565b61ffff90921660209283029190910190910152600101610e85565b60405163e5e21bb760e01b81526001600160a01b037f000000000000000000000000878e06b10573e1d09864a9ab2641a91eda5bcbe1169063e5e21bb790610f1890339086906004016115b4565b600060405180830381600087803b158015610f3257600080fd5b505af1158015610f46573d6000803e3d6000fd5b505060408051338152602081018b90527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9550019250610f84915050565b60405180910390a1505060018055505050565b6000546001600160a01b03163314610fdf5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b6009805460ff19168215159081179091556040519081527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5906020016109f6565b6000546001600160a01b031633146110685760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b60405163e5e21bb760e01b81526001600160a01b037f000000000000000000000000878e06b10573e1d09864a9ab2641a91eda5bcbe1169063e5e21bb7906110d6907f000000000000000000000000cd8e278eb8f4eedca4e41611b5c402625c7fd2a59085906004016115b4565b600060405180830381600087803b1580156110f057600080fd5b505af1158015611104573d6000803e3d6000fd5b505050507f87d5f4fc4686b1e26240d01063a61c1e42ee1a0b297ba4ce39a5feccbcbec060816040516109f691906115de565b6000546001600160a01b0316331461117f5760405162461bcd60e51b8152602060048201819052602482015260008051602061160b8339815191526044820152606401610510565b6001600160a01b0381166111fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610510565b61120481611207565b50565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008261127c8584611285565b14949350505050565b600081815b84518110156112f15760008582815181106112a7576112a761155f565b602002602001015190508083116112cd57600083815260208290526040902092506112de565b600081815260208490526040902092505b50806112e9816115f1565b91505061128a565b509392505050565b60006020828403121561130b57600080fd5b81356001600160a01b038116811461132257600080fd5b9392505050565b60006020828403121561133b57600080fd5b5035919050565b60006020828403121561135457600080fd5b8135801515811461132257600080fd5b6000806000806060858703121561137a57600080fd5b8435935060208501359250604085013567ffffffffffffffff808211156113a057600080fd5b818701915087601f8301126113b457600080fd5b8135818111156113c357600080fd5b8860208260051b85010111156113d857600080fd5b95989497505060200194505050565b634e487b7160e01b600052604160045260246000fd5b803561ffff8116811461140f57600080fd5b919050565b6000602080838503121561142757600080fd5b823567ffffffffffffffff8082111561143f57600080fd5b818501915085601f83011261145357600080fd5b813581811115611465576114656113e7565b8060051b604051601f19603f8301168101818110858211171561148a5761148a6113e7565b6040529182528482019250838101850191888311156114a857600080fd5b938501935b828510156114cd576114be856113fd565b845293850193928501926114ad565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611509576115096114d9565b500290565b60008261152b57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611542576115426114d9565b500390565b6000821982111561155a5761155a6114d9565b500190565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156115a957815161ffff1687529582019590820190600101611589565b509495945050505050565b6001600160a01b03831681526040602082015260006115d66040830184611575565b949350505050565b6020815260006113226020830184611575565b600060018201611603576116036114d9565b506001019056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220636cc75580c6aa42e5cb3e31913706a3455c03c24c246a77aa5de17295e6ee7864736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000878e06b10573e1d09864a9ab2641a91eda5bcbe1000000000000000000000000cd8e278eb8f4eedca4e41611b5c402625c7fd2a5000000000000000000000000c8e2806a97413b5496a1ba6050b517cc98d0efca
-----Decoded View---------------
Arg [0] : _neuromod (address): 0x878E06b10573E1D09864A9aB2641A91edA5bCbe1
Arg [1] : _vault (address): 0xcD8e278Eb8F4EedCA4e41611b5C402625C7FD2a5
Arg [2] : _dev (address): 0xc8E2806A97413b5496A1ba6050b517CC98D0EfCA
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000878e06b10573e1d09864a9ab2641a91eda5bcbe1
Arg [1] : 000000000000000000000000cd8e278eb8f4eedca4e41611b5c402625c7fd2a5
Arg [2] : 000000000000000000000000c8e2806a97413b5496a1ba6050b517cc98d0efca
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.