Source Code
Overview
ETH Balance
ETH Value
$0.00Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 5525266 | 586 days ago | 0 ETH | ||||
| 5525266 | 586 days ago | 0 ETH | ||||
| 5525266 | 586 days ago | 0 ETH | ||||
| 5525266 | 586 days ago | 0 ETH | ||||
| 5142696 | 598 days ago | 0 ETH | ||||
| 5142696 | 598 days ago | 0 ETH | ||||
| 5142696 | 598 days ago | 0 ETH | ||||
| 5142696 | 598 days ago | 0 ETH | ||||
| 4950957 | 604 days ago | 0 ETH | ||||
| 4950957 | 604 days ago | 0 ETH | ||||
| 4950957 | 604 days ago | 0 ETH | ||||
| 4950957 | 604 days ago | 0 ETH | ||||
| 3704370 | 648 days ago | 0 ETH | ||||
| 3704370 | 648 days ago | 0 ETH | ||||
| 3704370 | 648 days ago | 0 ETH | ||||
| 3704370 | 648 days ago | 0 ETH | ||||
| 3486692 | 655 days ago | 0 ETH | ||||
| 3486692 | 655 days ago | 0 ETH | ||||
| 3486692 | 655 days ago | 0 ETH | ||||
| 3486692 | 655 days ago | 0 ETH | ||||
| 3486663 | 655 days ago | 0 ETH | ||||
| 3486663 | 655 days ago | 0 ETH | ||||
| 3486663 | 655 days ago | 0 ETH | ||||
| 3486663 | 655 days ago | 0 ETH | ||||
| 3486255 | 655 days ago | 0 ETH |
Loading...
Loading
Contract Name:
MemefiManagement
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {IMemefiManagement} from "./IMemefiManagement.sol";
import {IMemefiSwapable} from "../keys/IMemefiSwapable.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract MemefiManagement is Ownable, IMemefiManagement {
event NewTreasury(address newTreasury);
event NewSigner(address newSigner);
event NewRewardDistributor(address newDistributor);
event NewUniqueRole(
uint256 indexed uniqueRoleId,
address indexed walletAddress
);
event NewRole(
uint256 indexed role,
address indexed walletAddress,
bool status
);
event NewStringStorageSlot(uint256 indexed storageSlot, string info);
address public treasury;
address public signer;
address public rewardDistributor;
address public memefiToken;
address public memefiKeys;
address public feesDistributor;
//Role Number => Address => Has role boolean
mapping(uint256 => mapping(address => bool)) internal _hasRole;
// Role number => Address
mapping(uint256 => address) internal _uniqueRole;
// String storage (useful for storing uri)
mapping(uint256 => string) internal _stringStorage;
// RevealId => Erc721 contract address => erc721 tokenId => revealed boolean
mapping(uint256 => mapping(address => mapping(uint256 => bool)))
internal _erc721revealed;
// RevealId => Address => uint256
mapping(uint256 => mapping(address => uint256)) internal _revealAddress;
constructor(
address _mainAdmin,
address _treasury,
address _signer,
address _rewardDistributor,
address _memefiToken,
string memory _initialBaseUri
) Ownable(_mainAdmin) {
treasury = _treasury;
emit NewTreasury(_treasury);
signer = _signer;
emit NewSigner(_signer);
rewardDistributor = _rewardDistributor;
emit NewRewardDistributor(_rewardDistributor);
memefiToken = _memefiToken;
_stringStorage[1] = _initialBaseUri;
emit NewStringStorageSlot(1, _initialBaseUri);
}
function setMemefi(address _memefiToken) external onlyOwner {
require(memefiToken == address(0), "Already set");
memefiToken = _memefiToken;
}
function calculateMemefiForSwap(
uint256 _ethToMemefiRate
) public view returns (uint256) {
uint256 balanceEth = address(memefiKeys).balance +
address(feesDistributor).balance;
return (balanceEth * _ethToMemefiRate) / 1 ether;
}
function setSwap(uint256 _ethToMemefiRate) external onlyOwner {
require(_ethToMemefiRate > 0, "Rate must be greater than 0");
IERC20 token = IERC20(memefiToken);
uint256 calculatedMemefi = calculateMemefiForSwap(_ethToMemefiRate);
token.transferFrom(msg.sender, address(this), calculatedMemefi);
token.approve(memefiKeys, type(uint256).max);
IMemefiSwapable(memefiKeys).swapToMemefi(_ethToMemefiRate);
token.approve(feesDistributor, type(uint256).max);
IMemefiSwapable(feesDistributor).swapToMemefi(_ethToMemefiRate);
}
function setFeesDistributor(address _feesDistributor) external onlyOwner {
require(feesDistributor == address(0), "Already set");
feesDistributor = _feesDistributor;
}
function setMemefiKeys(address _memefiKeys) external onlyOwner {
require(memefiKeys == address(0), "Already set");
memefiKeys = _memefiKeys;
}
function isRevealed(
uint256 _revealId,
address _erc721Contract,
uint256 _tokenId
) external view returns (bool) {
return _erc721revealed[_revealId][_erc721Contract][_tokenId];
}
function revealNft(
uint256 _revealId,
address _erc721Contract,
uint256 _tokenId
) external onlyOwner {
_erc721revealed[_revealId][_erc721Contract][_tokenId] = true;
}
function setStringStorageSlot(
uint256 _storageSlot,
string memory _info
) external onlyOwner {
_stringStorage[_storageSlot] = _info;
emit NewStringStorageSlot(_storageSlot, _info);
}
function setNewTreasury(address _newTreasury) external onlyOwner {
require(_newTreasury != address(0), "Treasury cannot be 0");
treasury = _newTreasury;
emit NewTreasury(_newTreasury);
}
function setNewSigner(address _newSigner) external onlyOwner {
require(_newSigner != address(0), "Signer cannot be 0");
signer = _newSigner;
emit NewSigner(_newSigner);
}
function setNewRewardDistributor(
address _newDistibutor
) external onlyOwner {
require(_newDistibutor != address(0), "Reward distributor cannot be 0");
rewardDistributor = _newDistibutor;
emit NewRewardDistributor(_newDistibutor);
}
function mainAdmin() external view returns (address) {
return owner();
}
function setRole(
uint256 role,
address walletAddress,
bool status
) external onlyOwner {
_hasRole[role][walletAddress] = status;
emit NewRole(role, walletAddress, status);
}
function hasRole(
uint256 role,
address walletAddress
) external view returns (bool) {
return _hasRole[role][walletAddress];
}
function setUniqueRole(
uint256 uniqueRoleId,
address walletAddress
) external onlyOwner {
_uniqueRole[uniqueRoleId] = walletAddress;
emit NewUniqueRole(uniqueRoleId, walletAddress);
}
function uniqueRoleAddress(
uint256 uniqueRole
) external view returns (address) {
return _uniqueRole[uniqueRole];
}
function storageSlot(uint256 _slot) external view returns (string memory) {
return _stringStorage[_slot];
}
function withdrawMemefi() external onlyOwner {
uint256 memefiBalance = IERC20(memefiToken).balanceOf(address(this));
IERC20(memefiToken).transfer(msg.sender, memefiBalance);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "../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.
*
* The initial owner is set to the address provided by the deployer. 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;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling 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 {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_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 v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @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;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
interface IMemefiSwapable {
function swapToMemefi(uint256 _ethToMemefiRate) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
interface IMemefiManagement {
function treasury() external returns (address);
function signer() external returns (address);
function rewardDistributor() external returns (address);
function mainAdmin() external returns (address);
function hasRole(
uint256 role,
address walletAddress
) external view returns (bool);
function uniqueRoleAddress(
uint256 uniqueRole
) external view returns (address);
function memefiToken() external returns (address);
function storageSlot(uint256 _slot) external view returns (string memory);
function feesDistributor() external returns (address);
}{
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs",
"useLiteralContent": true
},
"optimizer": {
"enabled": true,
"runs": 15
},
"remappings": [],
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_mainAdmin","type":"address"},{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_signer","type":"address"},{"internalType":"address","name":"_rewardDistributor","type":"address"},{"internalType":"address","name":"_memefiToken","type":"address"},{"internalType":"string","name":"_initialBaseUri","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newDistributor","type":"address"}],"name":"NewRewardDistributor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"role","type":"uint256"},{"indexed":true,"internalType":"address","name":"walletAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"NewRole","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newSigner","type":"address"}],"name":"NewSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"storageSlot","type":"uint256"},{"indexed":false,"internalType":"string","name":"info","type":"string"}],"name":"NewStringStorageSlot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newTreasury","type":"address"}],"name":"NewTreasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"uniqueRoleId","type":"uint256"},{"indexed":true,"internalType":"address","name":"walletAddress","type":"address"}],"name":"NewUniqueRole","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":"uint256","name":"_ethToMemefiRate","type":"uint256"}],"name":"calculateMemefiForSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesDistributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"role","type":"uint256"},{"internalType":"address","name":"walletAddress","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_revealId","type":"uint256"},{"internalType":"address","name":"_erc721Contract","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"isRevealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"memefiKeys","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"memefiToken","outputs":[{"internalType":"address","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":[{"internalType":"uint256","name":"_revealId","type":"uint256"},{"internalType":"address","name":"_erc721Contract","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"revealNft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardDistributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feesDistributor","type":"address"}],"name":"setFeesDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_memefiToken","type":"address"}],"name":"setMemefi","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_memefiKeys","type":"address"}],"name":"setMemefiKeys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDistibutor","type":"address"}],"name":"setNewRewardDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newSigner","type":"address"}],"name":"setNewSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTreasury","type":"address"}],"name":"setNewTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"role","type":"uint256"},{"internalType":"address","name":"walletAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_storageSlot","type":"uint256"},{"internalType":"string","name":"_info","type":"string"}],"name":"setStringStorageSlot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethToMemefiRate","type":"uint256"}],"name":"setSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"uniqueRoleId","type":"uint256"},{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setUniqueRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_slot","type":"uint256"}],"name":"storageSlot","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"uniqueRole","type":"uint256"}],"name":"uniqueRoleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawMemefi","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b5060405162001784380380620017848339810160408190526200003491620002a6565b856001600160a01b0381166200006457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006f81620001fd565b50600180546001600160a01b0319166001600160a01b0387169081179091556040519081527fafa147634b29e2c7bd53ce194256b9f41cfb9ba3036f2b822fdd1d965beea0869060200160405180910390a1600280546001600160a01b0319166001600160a01b0386169081179091556040519081527fffafe5c39be83f4bcf20d7e1a150f6e21c1858ea0948315ba84b6b1c386d45bb9060200160405180910390a1600380546001600160a01b0319166001600160a01b0385169081179091556040519081527f2c5d736fe33491aec26599d23d58d215d9668f314ffca09d4316c8c4d6bcc72a9060200160405180910390a1600480546001600160a01b0319166001600160a01b038416179055600160005260096020527f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36620001b582826200044c565b5060017f44492f7f018169fba7a39851ac45d9e52b28232ee95195ee803cb1715366acfa82604051620001e9919062000518565b60405180910390a25050505050506200054d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200026557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200029d57818101518382015260200162000283565b50506000910152565b60008060008060008060c08789031215620002c057600080fd5b620002cb876200024d565b9550620002db602088016200024d565b9450620002eb604088016200024d565b9350620002fb606088016200024d565b92506200030b608088016200024d565b60a08801519092506001600160401b03808211156200032957600080fd5b818901915089601f8301126200033e57600080fd5b8151818111156200035357620003536200026a565b604051601f8201601f19908116603f011681019083821181831017156200037e576200037e6200026a565b816040528281528c60208487010111156200039857600080fd5b620003ab83602083016020880162000280565b80955050505050509295509295509295565b600181811c90821680620003d257607f821691505b602082108103620003f357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200044757600081815260208120601f850160051c81016020861015620004225750805b601f850160051c820191505b8181101562000443578281556001016200042e565b5050505b505050565b81516001600160401b038111156200046857620004686200026a565b6200048081620004798454620003bd565b84620003f9565b602080601f831160018114620004b857600084156200049f5750858301515b600019600386901b1c1916600185901b17855562000443565b600085815260208120601f198616915b82811015620004e957888601518255948401946001909101908401620004c8565b5085821015620005085787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082518060208401526200053981604085016020870162000280565b601f01601f19169190910160400192915050565b611227806200055d6000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c80630f9c5d9e1461014e578063238ac9331461016357806325ef8bf31461018c578063393b7b30146101dc57806350c79c4a146101fc57806351c6f37f1461022557806361d027b31461023857806365ea33051461024b578063699ecfc51461026c578063715018a61461027f578063833275d2146102875780638da5cb5b1461028f5780638e0bae7f146102975780638f9a372d146102aa5780639f524f74146102bd578063acc2166a146102d0578063add7f5b2146102e3578063b080114d146102f6578063b5325df714610309578063cdebf1a21461031c578063e15116ee1461032f578063e4de8d6714610342578063ead097c014610355578063ec2606c014610368578063f2fde38b1461037b578063f35cb3261461038e578063fb6b04ba146103a1575b600080fd5b61016161015c366004610dbe565b6103a9565b005b600254610176906001600160a01b031681565b6040516101839190610dd9565b60405180910390f35b6101cc61019a366004610ded565b6000928352600a602090815260408085206001600160a01b039490941685529281528284209184525290205460ff1690565b6040519015158152602001610183565b6101ef6101ea366004610e22565b610457565b6040516101839190610e3b565b61017661020a366004610e22565b6000908152600860205260409020546001600160a01b031690565b600554610176906001600160a01b031681565b600154610176906001600160a01b031681565b61025e610259366004610e22565b6104f9565b604051908152602001610183565b61016161027a366004610e22565b610542565b6101616107dd565b6101616107f1565b6101766108e5565b600654610176906001600160a01b031681565b6101616102b8366004610dbe565b6108f4565b6101616102cb366004610dbe565b610994565b600354610176906001600160a01b031681565b6101616102f1366004610dbe565b6109e7565b610161610304366004610e97565b610a3a565b610161610317366004610ded565b610aad565b61016161032a366004610eed565b610aec565b61016161033d366004610dbe565b610b49565b610161610350366004610fa7565b610bf2565b600454610176906001600160a01b031681565b6101cc610376366004610fa7565b610c53565b610161610389366004610dbe565b610c80565b61016161039c366004610dbe565b610cbe565b610176610d11565b6103b1610d20565b6001600160a01b0381166104015760405162461bcd60e51b815260206004820152601260248201527105369676e65722063616e6e6f7420626520360741b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383161790556040517fffafe5c39be83f4bcf20d7e1a150f6e21c1858ea0948315ba84b6b1c386d45bb9061044c908390610dd9565b60405180910390a150565b600081815260096020526040902080546060919061047490610fd3565b80601f01602080910402602001604051908101604052809291908181526020018280546104a090610fd3565b80156104ed5780601f106104c2576101008083540402835291602001916104ed565b820191906000526020600020905b8154815290600101906020018083116104d057829003601f168201915b50505050509050919050565b600654600554600091829161051c916001600160a01b0390811631911631611023565b9050670de0b6b3a76400006105318483611036565b61053b919061104d565b9392505050565b61054a610d20565b600081116105985760405162461bcd60e51b815260206004820152601b60248201527a052617465206d7573742062652067726561746572207468616e203602c1b60448201526064016103f8565b6004546001600160a01b031660006105af836104f9565b6040516323b872dd60e01b8152336004820152306024820152604481018290529091506001600160a01b038316906323b872dd906064016020604051808303816000875af1158015610605573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610629919061106f565b5060055460405163095ea7b360e01b81526001600160a01b038481169263095ea7b39261066092909116906000199060040161108c565b6020604051808303816000875af115801561067f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a3919061106f565b5060055460405163d45fdfed60e01b8152600481018590526001600160a01b039091169063d45fdfed90602401600060405180830381600087803b1580156106ea57600080fd5b505af11580156106fe573d6000803e3d6000fd5b505060065460405163095ea7b360e01b81526001600160a01b03808716945063095ea7b393506107369216906000199060040161108c565b6020604051808303816000875af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610779919061106f565b5060065460405163d45fdfed60e01b8152600481018590526001600160a01b039091169063d45fdfed90602401600060405180830381600087803b1580156107c057600080fd5b505af11580156107d4573d6000803e3d6000fd5b50505050505050565b6107e5610d20565b6107ef6000610d52565b565b6107f9610d20565b600480546040516370a0823160e01b81526000926001600160a01b03909216916370a082319161082b91309101610dd9565b602060405180830381865afa158015610848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086c91906110a5565b6004805460405163a9059cbb60e01b81529293506001600160a01b03169163a9059cbb9161089e91339186910161108c565b6020604051808303816000875af11580156108bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e1919061106f565b5050565b6000546001600160a01b031690565b6108fc610d20565b6001600160a01b0381166109495760405162461bcd60e51b8152602060048201526014602482015273054726561737572792063616e6e6f7420626520360641b60448201526064016103f8565b600180546001600160a01b0319166001600160a01b0383161790556040517fafa147634b29e2c7bd53ce194256b9f41cfb9ba3036f2b822fdd1d965beea0869061044c908390610dd9565b61099c610d20565b6004546001600160a01b0316156109c55760405162461bcd60e51b81526004016103f8906110be565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6109ef610d20565b6006546001600160a01b031615610a185760405162461bcd60e51b81526004016103f8906110be565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a42610d20565b60008381526007602090815260408083206001600160a01b03861680855290835292819020805460ff1916851515908117909155905190815285917f9be71acbb55b92efaf7db04f003846ffb8a8254e5dd5960ac38835047dfe6287910160405180910390a3505050565b610ab5610d20565b6000928352600a602090815260408085206001600160a01b039094168552928152828420918452529020805460ff19166001179055565b610af4610d20565b6000828152600960205260409020610b0c8282611132565b50817f44492f7f018169fba7a39851ac45d9e52b28232ee95195ee803cb1715366acfa82604051610b3d9190610e3b565b60405180910390a25050565b610b51610d20565b6001600160a01b038116610ba75760405162461bcd60e51b815260206004820152601e60248201527f526577617264206469737472696275746f722063616e6e6f742062652030000060448201526064016103f8565b600380546001600160a01b0319166001600160a01b0383161790556040517f2c5d736fe33491aec26599d23d58d215d9668f314ffca09d4316c8c4d6bcc72a9061044c908390610dd9565b610bfa610d20565b60008281526008602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917f0d9d8b8be3ba9e78bea28d26a3d026052fb4481d56cd082adee3ad9a49855ff39190a35050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b610c88610d20565b6001600160a01b038116610cb2576000604051631e4fbdf760e01b81526004016103f89190610dd9565b610cbb81610d52565b50565b610cc6610d20565b6005546001600160a01b031615610cef5760405162461bcd60e51b81526004016103f8906110be565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d1b6108e5565b905090565b33610d296108e5565b6001600160a01b0316146107ef573360405163118cdaa760e01b81526004016103f89190610dd9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610db957600080fd5b919050565b600060208284031215610dd057600080fd5b61053b82610da2565b6001600160a01b0391909116815260200190565b600080600060608486031215610e0257600080fd5b83359250610e1260208501610da2565b9150604084013590509250925092565b600060208284031215610e3457600080fd5b5035919050565b600060208083528351808285015260005b81811015610e6857858101830151858201604001528201610e4c565b506000604082860101526040601f19601f8301168501019250505092915050565b8015158114610cbb57600080fd5b600080600060608486031215610eac57600080fd5b83359250610ebc60208501610da2565b91506040840135610ecc81610e89565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610f0057600080fd5b8235915060208301356001600160401b0380821115610f1e57600080fd5b818501915085601f830112610f3257600080fd5b813581811115610f4457610f44610ed7565b604051601f8201601f19908116603f01168101908382118183101715610f6c57610f6c610ed7565b81604052828152886020848701011115610f8557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060408385031215610fba57600080fd5b82359150610fca60208401610da2565b90509250929050565b600181811c90821680610fe757607f821691505b60208210810361100757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c7a57610c7a61100d565b8082028115828204841417610c7a57610c7a61100d565b60008261106a57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561108157600080fd5b815161053b81610e89565b6001600160a01b03929092168252602082015260400190565b6000602082840312156110b757600080fd5b5051919050565b6020808252600b908201526a105b1c9958591e481cd95d60aa1b604082015260600190565b601f82111561112d57600081815260208120601f850160051c8101602086101561110a5750805b601f850160051c820191505b8181101561112957828155600101611116565b5050505b505050565b81516001600160401b0381111561114b5761114b610ed7565b61115f816111598454610fd3565b846110e3565b602080601f831160018114611194576000841561117c5750858301515b600019600386901b1c1916600185901b178555611129565b600085815260208120601f198616915b828110156111c3578886015182559484019460019091019084016111a4565b50858210156111e15787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212209aabda326fbfcf0163f9ab59f28d4958cd65f9b02fc64e3718c7aec4e81292b864736f6c634300081400330000000000000000000000008560e89b9b6e8ac23da45950681fb79032df6dba00000000000000000000000096872426a807ebf58825b6428d3bc392532a8e5100000000000000000000000025c99c39cc584643f80cb8ef8ba6acf97e13b780000000000000000000000000eaff2a15a8fe9e84be2b9f1b5c25ce0b58788e0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000003468747470733a2f2f6d656d6566692d6d657461646174612d6170692e76657263656c2e6170702f6170692f6d657461646174612f000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101495760003560e01c80630f9c5d9e1461014e578063238ac9331461016357806325ef8bf31461018c578063393b7b30146101dc57806350c79c4a146101fc57806351c6f37f1461022557806361d027b31461023857806365ea33051461024b578063699ecfc51461026c578063715018a61461027f578063833275d2146102875780638da5cb5b1461028f5780638e0bae7f146102975780638f9a372d146102aa5780639f524f74146102bd578063acc2166a146102d0578063add7f5b2146102e3578063b080114d146102f6578063b5325df714610309578063cdebf1a21461031c578063e15116ee1461032f578063e4de8d6714610342578063ead097c014610355578063ec2606c014610368578063f2fde38b1461037b578063f35cb3261461038e578063fb6b04ba146103a1575b600080fd5b61016161015c366004610dbe565b6103a9565b005b600254610176906001600160a01b031681565b6040516101839190610dd9565b60405180910390f35b6101cc61019a366004610ded565b6000928352600a602090815260408085206001600160a01b039490941685529281528284209184525290205460ff1690565b6040519015158152602001610183565b6101ef6101ea366004610e22565b610457565b6040516101839190610e3b565b61017661020a366004610e22565b6000908152600860205260409020546001600160a01b031690565b600554610176906001600160a01b031681565b600154610176906001600160a01b031681565b61025e610259366004610e22565b6104f9565b604051908152602001610183565b61016161027a366004610e22565b610542565b6101616107dd565b6101616107f1565b6101766108e5565b600654610176906001600160a01b031681565b6101616102b8366004610dbe565b6108f4565b6101616102cb366004610dbe565b610994565b600354610176906001600160a01b031681565b6101616102f1366004610dbe565b6109e7565b610161610304366004610e97565b610a3a565b610161610317366004610ded565b610aad565b61016161032a366004610eed565b610aec565b61016161033d366004610dbe565b610b49565b610161610350366004610fa7565b610bf2565b600454610176906001600160a01b031681565b6101cc610376366004610fa7565b610c53565b610161610389366004610dbe565b610c80565b61016161039c366004610dbe565b610cbe565b610176610d11565b6103b1610d20565b6001600160a01b0381166104015760405162461bcd60e51b815260206004820152601260248201527105369676e65722063616e6e6f7420626520360741b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383161790556040517fffafe5c39be83f4bcf20d7e1a150f6e21c1858ea0948315ba84b6b1c386d45bb9061044c908390610dd9565b60405180910390a150565b600081815260096020526040902080546060919061047490610fd3565b80601f01602080910402602001604051908101604052809291908181526020018280546104a090610fd3565b80156104ed5780601f106104c2576101008083540402835291602001916104ed565b820191906000526020600020905b8154815290600101906020018083116104d057829003601f168201915b50505050509050919050565b600654600554600091829161051c916001600160a01b0390811631911631611023565b9050670de0b6b3a76400006105318483611036565b61053b919061104d565b9392505050565b61054a610d20565b600081116105985760405162461bcd60e51b815260206004820152601b60248201527a052617465206d7573742062652067726561746572207468616e203602c1b60448201526064016103f8565b6004546001600160a01b031660006105af836104f9565b6040516323b872dd60e01b8152336004820152306024820152604481018290529091506001600160a01b038316906323b872dd906064016020604051808303816000875af1158015610605573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610629919061106f565b5060055460405163095ea7b360e01b81526001600160a01b038481169263095ea7b39261066092909116906000199060040161108c565b6020604051808303816000875af115801561067f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a3919061106f565b5060055460405163d45fdfed60e01b8152600481018590526001600160a01b039091169063d45fdfed90602401600060405180830381600087803b1580156106ea57600080fd5b505af11580156106fe573d6000803e3d6000fd5b505060065460405163095ea7b360e01b81526001600160a01b03808716945063095ea7b393506107369216906000199060040161108c565b6020604051808303816000875af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610779919061106f565b5060065460405163d45fdfed60e01b8152600481018590526001600160a01b039091169063d45fdfed90602401600060405180830381600087803b1580156107c057600080fd5b505af11580156107d4573d6000803e3d6000fd5b50505050505050565b6107e5610d20565b6107ef6000610d52565b565b6107f9610d20565b600480546040516370a0823160e01b81526000926001600160a01b03909216916370a082319161082b91309101610dd9565b602060405180830381865afa158015610848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086c91906110a5565b6004805460405163a9059cbb60e01b81529293506001600160a01b03169163a9059cbb9161089e91339186910161108c565b6020604051808303816000875af11580156108bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e1919061106f565b5050565b6000546001600160a01b031690565b6108fc610d20565b6001600160a01b0381166109495760405162461bcd60e51b8152602060048201526014602482015273054726561737572792063616e6e6f7420626520360641b60448201526064016103f8565b600180546001600160a01b0319166001600160a01b0383161790556040517fafa147634b29e2c7bd53ce194256b9f41cfb9ba3036f2b822fdd1d965beea0869061044c908390610dd9565b61099c610d20565b6004546001600160a01b0316156109c55760405162461bcd60e51b81526004016103f8906110be565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6109ef610d20565b6006546001600160a01b031615610a185760405162461bcd60e51b81526004016103f8906110be565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a42610d20565b60008381526007602090815260408083206001600160a01b03861680855290835292819020805460ff1916851515908117909155905190815285917f9be71acbb55b92efaf7db04f003846ffb8a8254e5dd5960ac38835047dfe6287910160405180910390a3505050565b610ab5610d20565b6000928352600a602090815260408085206001600160a01b039094168552928152828420918452529020805460ff19166001179055565b610af4610d20565b6000828152600960205260409020610b0c8282611132565b50817f44492f7f018169fba7a39851ac45d9e52b28232ee95195ee803cb1715366acfa82604051610b3d9190610e3b565b60405180910390a25050565b610b51610d20565b6001600160a01b038116610ba75760405162461bcd60e51b815260206004820152601e60248201527f526577617264206469737472696275746f722063616e6e6f742062652030000060448201526064016103f8565b600380546001600160a01b0319166001600160a01b0383161790556040517f2c5d736fe33491aec26599d23d58d215d9668f314ffca09d4316c8c4d6bcc72a9061044c908390610dd9565b610bfa610d20565b60008281526008602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917f0d9d8b8be3ba9e78bea28d26a3d026052fb4481d56cd082adee3ad9a49855ff39190a35050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b610c88610d20565b6001600160a01b038116610cb2576000604051631e4fbdf760e01b81526004016103f89190610dd9565b610cbb81610d52565b50565b610cc6610d20565b6005546001600160a01b031615610cef5760405162461bcd60e51b81526004016103f8906110be565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d1b6108e5565b905090565b33610d296108e5565b6001600160a01b0316146107ef573360405163118cdaa760e01b81526004016103f89190610dd9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610db957600080fd5b919050565b600060208284031215610dd057600080fd5b61053b82610da2565b6001600160a01b0391909116815260200190565b600080600060608486031215610e0257600080fd5b83359250610e1260208501610da2565b9150604084013590509250925092565b600060208284031215610e3457600080fd5b5035919050565b600060208083528351808285015260005b81811015610e6857858101830151858201604001528201610e4c565b506000604082860101526040601f19601f8301168501019250505092915050565b8015158114610cbb57600080fd5b600080600060608486031215610eac57600080fd5b83359250610ebc60208501610da2565b91506040840135610ecc81610e89565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610f0057600080fd5b8235915060208301356001600160401b0380821115610f1e57600080fd5b818501915085601f830112610f3257600080fd5b813581811115610f4457610f44610ed7565b604051601f8201601f19908116603f01168101908382118183101715610f6c57610f6c610ed7565b81604052828152886020848701011115610f8557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060408385031215610fba57600080fd5b82359150610fca60208401610da2565b90509250929050565b600181811c90821680610fe757607f821691505b60208210810361100757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c7a57610c7a61100d565b8082028115828204841417610c7a57610c7a61100d565b60008261106a57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561108157600080fd5b815161053b81610e89565b6001600160a01b03929092168252602082015260400190565b6000602082840312156110b757600080fd5b5051919050565b6020808252600b908201526a105b1c9958591e481cd95d60aa1b604082015260600190565b601f82111561112d57600081815260208120601f850160051c8101602086101561110a5750805b601f850160051c820191505b8181101561112957828155600101611116565b5050505b505050565b81516001600160401b0381111561114b5761114b610ed7565b61115f816111598454610fd3565b846110e3565b602080601f831160018114611194576000841561117c5750858301515b600019600386901b1c1916600185901b178555611129565b600085815260208120601f198616915b828110156111c3578886015182559484019460019091019084016111a4565b50858210156111e15787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212209aabda326fbfcf0163f9ab59f28d4958cd65f9b02fc64e3718c7aec4e81292b864736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008560e89b9b6e8ac23da45950681fb79032df6dba00000000000000000000000096872426a807ebf58825b6428d3bc392532a8e5100000000000000000000000025c99c39cc584643f80cb8ef8ba6acf97e13b780000000000000000000000000eaff2a15a8fe9e84be2b9f1b5c25ce0b58788e0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000003468747470733a2f2f6d656d6566692d6d657461646174612d6170692e76657263656c2e6170702f6170692f6d657461646174612f000000000000000000000000
-----Decoded View---------------
Arg [0] : _mainAdmin (address): 0x8560E89B9B6E8ac23DA45950681fb79032Df6dba
Arg [1] : _treasury (address): 0x96872426a807Ebf58825B6428d3BC392532A8E51
Arg [2] : _signer (address): 0x25C99c39cC584643f80CB8eF8Ba6acF97e13b780
Arg [3] : _rewardDistributor (address): 0xeaFf2a15a8fe9e84bE2b9f1b5c25cE0B58788E0a
Arg [4] : _memefiToken (address): 0x0000000000000000000000000000000000000000
Arg [5] : _initialBaseUri (string): https://memefi-metadata-api.vercel.app/api/metadata/
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000008560e89b9b6e8ac23da45950681fb79032df6dba
Arg [1] : 00000000000000000000000096872426a807ebf58825b6428d3bc392532a8e51
Arg [2] : 00000000000000000000000025c99c39cc584643f80cb8ef8ba6acf97e13b780
Arg [3] : 000000000000000000000000eaff2a15a8fe9e84be2b9f1b5c25ce0b58788e0a
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000034
Arg [7] : 68747470733a2f2f6d656d6566692d6d657461646174612d6170692e76657263
Arg [8] : 656c2e6170702f6170692f6d657461646174612f000000000000000000000000
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.