Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CloneforceAirdropManager
Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // Creator: twitter.com/0xNox_ETH // .;::::::::::::::::::::::::::::::;. // ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN: // ;XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; // ;KNNNWMMWMMMMMMWWNNNNNNNNNWMMMMMN: // .',oXMMMMMMMNk:''''''''';OMMMMMN: // ,xNMMMMMMNk; l00000k, // .lNMMMMMMNk; ..... // 'dXMMWNO; ....... // 'd0k;. .dXXXXX0; // .,;;:lc;;;;;;;;;;;;;;;;;;c0MMMMMN: // ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: // ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN: // ;XWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWX: // .,;,;;;;;;;;;;;;;;;;;;;;;;;,;;,;,. // 'dkxkkxxkkkkkkkkkkkkkkkkkkxxxkxkd' // ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN: // ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN: // 'xkkkOOkkkkkkkkkkkkkkkkkkkkkkkkkx' // .,,,,,,,,,,,,,,,,,,,,,. // .lKNWWWWWWWWWWWWWWWWWWWX; // .lKWMMMMMMMMMMMMMMMMMMMMMX; // .lKWMMMMMMMMMMMMMMMMMMMMMMMN: // .lKWMMMMMWKo:::::::::::::::::;. // .lKWMMMMMWKl. // .lNMMMMMWKl. // ;kNMWKl. // ;dl. // // We vow to Protect // Against the powers of Darkness // To rain down Justice // Against all who seek to cause Harm // To heed the call of those in Need // To offer up our Arms // In body and name we give our Code // // FOR THE BLOCKCHAIN ⚔️ pragma solidity ^0.8.16; import "./ICloneforceAirdropManager.sol"; import "./ICloneforceClaimable.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; struct AirdropConfig { address baseContract; address airdropContract; uint256 maxClaimCount; mapping(uint256 => uint256) claimHistory; } contract CloneforceAirdropManager is ICloneforceAirdropManager, Ownable { address private _admin; mapping(address => AirdropConfig[]) public contractToAirdropConfigs; constructor(address admin) { _admin = admin; } modifier onlyOwnerOrAdmin() { require(msg.sender == owner() || msg.sender == _admin, "Not owner or admin"); _; } function setupAirdrop( address baseContract, address airdropContract, uint256 maxClaimCount ) external onlyOwnerOrAdmin { AirdropConfig[] storage airdropConfigs = contractToAirdropConfigs[baseContract]; AirdropConfig storage newConfig; for (uint256 i = 0; i < airdropConfigs.length;) { if (airdropConfigs[i].baseContract == baseContract && airdropConfigs[i].airdropContract == airdropContract) { // found an existing airdrop, update the max claim count newConfig = airdropConfigs[i]; newConfig.maxClaimCount = maxClaimCount; return; } unchecked { i++; } } newConfig = airdropConfigs.push(); newConfig.baseContract = baseContract; newConfig.airdropContract = airdropContract; newConfig.maxClaimCount = maxClaimCount; } function stopAirdrop( address baseContract, address airdropContract ) external onlyOwnerOrAdmin { AirdropConfig[] storage airdropConfigs = contractToAirdropConfigs[baseContract]; for (uint256 i = 0; i < airdropConfigs.length;) { if (airdropConfigs[i].baseContract == baseContract && airdropConfigs[i].airdropContract == airdropContract) { delete airdropConfigs[i]; break; } unchecked { i++; } } } function stopAirdrop(address baseContract) external onlyOwnerOrAdmin { AirdropConfig[] storage airdropConfigs = contractToAirdropConfigs[baseContract]; for (uint256 i = 0; i < airdropConfigs.length;) { if (airdropConfigs[i].baseContract == baseContract) { delete airdropConfigs[i]; } unchecked { i++; } } } function getAirdropConfig( address baseContract, address airdropContract ) internal view returns (AirdropConfig storage config) { AirdropConfig[] storage airdropConfigs = contractToAirdropConfigs[baseContract]; for (uint256 i = 0; i < airdropConfigs.length;) { if (airdropConfigs[i].baseContract == baseContract && airdropConfigs[i].airdropContract == airdropContract && airdropConfigs[i].maxClaimCount > 0) { return airdropConfigs[i]; } unchecked { i++; } } revert("Invalid airdrop"); } function remainingClaims( address baseContract, uint256 tokenId, address airdropContract ) public view returns (uint256 count) { AirdropConfig storage config = getAirdropConfig(baseContract, airdropContract); return config.maxClaimCount - config.claimHistory[tokenId]; } // Airdrop tokens to a single person function airdrop( address baseContract, address to, uint256[] calldata baseTokenIds, address airdropContract ) external onlyOwnerOrAdmin { AirdropConfig storage config = getAirdropConfig(baseContract, airdropContract); ICloneforceClaimable _airdropContract = ICloneforceClaimable(airdropContract); unchecked { // log in the claim history uint256 airdropCount = 0; for (uint256 j = 0; j < baseTokenIds.length; j++) { airdropCount += config.maxClaimCount - config.claimHistory[baseTokenIds[j]]; config.claimHistory[baseTokenIds[j]] = config.maxClaimCount; } require(airdropCount > 0, "Airdrop is already claimed for the given tokens"); _airdropContract.mintClaim(to, airdropCount); } } // Airdrop tokens to a multiple people function airdropBatch( address baseContract, address[] calldata to, uint256[][] calldata baseTokenIds, address airdropContract ) external onlyOwnerOrAdmin { AirdropConfig storage config = getAirdropConfig(baseContract, airdropContract); ICloneforceClaimable _airdropContract = ICloneforceClaimable(airdropContract); unchecked { for (uint256 i = 0; i < to.length; i++) { uint256[] calldata tokenIds = baseTokenIds[i]; uint256 airdropCount = 0; for (uint256 j = 0; j < tokenIds.length; j++) { airdropCount += config.maxClaimCount - config.claimHistory[tokenIds[j]]; config.claimHistory[tokenIds[j]] = config.maxClaimCount; } if (airdropCount > 0) { _airdropContract.mintClaim(to[i], airdropCount); } } } } function hasAirdrops() external view returns (bool value) { require(msg.sender != tx.origin, "Caller must be a contract"); AirdropConfig[] storage airdropConfigs = contractToAirdropConfigs[msg.sender]; for (uint256 i = 0; i < airdropConfigs.length;) { AirdropConfig storage config = airdropConfigs[i]; if (config.maxClaimCount > 0) { return true; } unchecked { i++; } } return false; } function claim(address to, uint256 baseTokenId, address airdropContract, uint256 count) external { require(msg.sender != tx.origin, "Caller must be a contract"); address baseContract = msg.sender; AirdropConfig storage config = getAirdropConfig(baseContract, airdropContract); require( remainingClaims(baseContract, baseTokenId, airdropContract) >= count, "Count exceeds remaining claimable amount for this token"); // log in the claim history unchecked { config.claimHistory[baseTokenId] += count; } // mint the tokens ICloneforceClaimable _airdropContract = ICloneforceClaimable(airdropContract); _airdropContract.mintClaim(to, count); } function claimAll(address to, uint256 baseTokenId) external { require(msg.sender != tx.origin, "Caller must be a contract"); address baseContract = msg.sender; AirdropConfig[] storage airdropConfigs = contractToAirdropConfigs[baseContract]; unchecked { for (uint256 i = 0; i < airdropConfigs.length; i++) { AirdropConfig storage config = airdropConfigs[i]; uint256 remainingCount = config.maxClaimCount - config.claimHistory[baseTokenId]; if (remainingCount <= 0) { continue; } // log in the claim history config.claimHistory[baseTokenId] += remainingCount; // mint the tokens ICloneforceClaimable airdropContract = ICloneforceClaimable(config.airdropContract); airdropContract.mintClaim(to, remainingCount); } } } }
// SPDX-License-Identifier: MIT // Creator: twitter.com/0xNox_ETH pragma solidity ^0.8.16; interface ICloneforceAirdropManager { function hasAirdrops() external view returns (bool value); function remainingClaims(address baseContract, uint256 tokenId, address airdropContract) external view returns (uint256 count); function claim(address to, uint256 baseTokenId, address airdropContract, uint256 count) external; function claimAll(address to, uint256 baseTokenId) external; }
// SPDX-License-Identifier: MIT // Creator: twitter.com/0xNox_ETH pragma solidity ^0.8.16; interface ICloneforceClaimable { function mintClaim(address to, uint256 count) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (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 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 { 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 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": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"baseContract","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"baseTokenIds","type":"uint256[]"},{"internalType":"address","name":"airdropContract","type":"address"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseContract","type":"address"},{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[][]","name":"baseTokenIds","type":"uint256[][]"},{"internalType":"address","name":"airdropContract","type":"address"}],"name":"airdropBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"baseTokenId","type":"uint256"},{"internalType":"address","name":"airdropContract","type":"address"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"baseTokenId","type":"uint256"}],"name":"claimAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"contractToAirdropConfigs","outputs":[{"internalType":"address","name":"baseContract","type":"address"},{"internalType":"address","name":"airdropContract","type":"address"},{"internalType":"uint256","name":"maxClaimCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasAirdrops","outputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"baseContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"airdropContract","type":"address"}],"name":"remainingClaims","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseContract","type":"address"},{"internalType":"address","name":"airdropContract","type":"address"},{"internalType":"uint256","name":"maxClaimCount","type":"uint256"}],"name":"setupAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseContract","type":"address"}],"name":"stopAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseContract","type":"address"},{"internalType":"address","name":"airdropContract","type":"address"}],"name":"stopAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161138238038061138283398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b611296806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80637d966fb91161008c578063e787d00511610066578063e787d005146101a9578063f2fde38b146101bc578063f459da35146101cf578063fcd3b1cb146101e757600080fd5b80637d966fb91461013d5780638da5cb5b1461017b578063e75453301461019657600080fd5b80632d426557146100d45780634124da22146100e95780635cf20c7b146100fc57806369a5f3271461010f5780636c19408a14610122578063715018a614610135575b600080fd5b6100e76100e2366004610eef565b610208565b005b6100e76100f7366004610f2b565b610381565b6100e761010a366004610f4d565b610467565b6100e761011d366004610fc3565b610587565b6100e7610130366004611039565b61072d565b6100e761085f565b61015061014b366004610f4d565b610873565b604080516001600160a01b039485168152939092166020840152908201526060015b60405180910390f35b6000546040516001600160a01b039091168152602001610172565b6100e76101a436600461107d565b6108c0565b6100e76101b736600461110d565b610a7b565b6100e76101ca366004610f2b565b610bae565b6101d7610c27565b6040519015158152602001610172565b6101fa6101f5366004611140565b610caf565b604051908152602001610172565b6000546001600160a01b031633148061022b57506001546001600160a01b031633145b6102505760405162461bcd60e51b81526004016102479061117c565b60405180910390fd5b6001600160a01b038316600090815260026020526040812090805b825481101561032b57856001600160a01b0316838281548110610290576102906111a8565b60009182526020909120600490910201546001600160a01b03161480156102ed5750846001600160a01b03168382815481106102ce576102ce6111a8565b60009182526020909120600160049092020101546001600160a01b0316145b1561032357828181548110610304576103046111a8565b600091825260209091206002600490920201018490555061037c915050565b60010161026b565b50508054600181810183556000928352602090922060049091020180546001600160a01b038087166001600160a01b0319928316178355928201805493861693909116929092179091556002018190555b505050565b6000546001600160a01b03163314806103a457506001546001600160a01b031633145b6103c05760405162461bcd60e51b81526004016102479061117c565b6001600160a01b0381166000908152600260205260408120905b815481101561037c57826001600160a01b03168282815481106103ff576103ff6111a8565b60009182526020909120600490910201546001600160a01b03160361045f57818181548110610430576104306111a8565b60009182526020822060049091020180546001600160a01b031990811682556001820180549091169055600201555b6001016103da565b3233036104865760405162461bcd60e51b8152600401610247906111be565b336000818152600260205260408120905b81548110156105805760008282815481106104b4576104b46111a8565b906000526020600020906004020190506000816003016000878152602001908152602001600020548260020154039050600081116104f3575050610578565b6000868152600383016020526040908190208054830190556001830154905163bb03d2eb60e01b81526001600160a01b0389811660048301526024820184905290911690819063bb03d2eb90604401600060405180830381600087803b15801561055c57600080fd5b505af1158015610570573d6000803e3d6000fd5b505050505050505b600101610497565b5050505050565b6000546001600160a01b03163314806105aa57506001546001600160a01b031633145b6105c65760405162461bcd60e51b81526004016102479061117c565b60006105d28683610ce7565b9050816000805b85811015610658578360030160008888848181106105f9576105f96111a8565b90506020020135815260200190815260200160002054846002015403820191508360020154846003016000898985818110610636576106366111a8565b60209081029290920135835250810191909152604001600020556001016105d9565b50600081116106c15760405162461bcd60e51b815260206004820152602f60248201527f41697264726f7020697320616c726561647920636c61696d656420666f72207460448201526e686520676976656e20746f6b656e7360881b6064820152608401610247565b60405163bb03d2eb60e01b81526001600160a01b0388811660048301526024820183905283169063bb03d2eb90604401600060405180830381600087803b15801561070b57600080fd5b505af115801561071f573d6000803e3d6000fd5b505050505050505050505050565b32330361074c5760405162461bcd60e51b8152600401610247906111be565b3360006107598285610ce7565b905082610767838787610caf565b10156107db5760405162461bcd60e51b815260206004820152603760248201527f436f756e7420657863656564732072656d61696e696e6720636c61696d61626c60448201527f6520616d6f756e7420666f72207468697320746f6b656e0000000000000000006064820152608401610247565b6000858152600382016020526040908190208054850190555163bb03d2eb60e01b81526001600160a01b0387811660048301526024820185905285919082169063bb03d2eb90604401600060405180830381600087803b15801561083e57600080fd5b505af1158015610852573d6000803e3d6000fd5b5050505050505050505050565b610867610e29565b6108716000610e83565b565b6002602052816000526040600020818154811061088f57600080fd5b60009182526020909120600490910201805460018201546002909201546001600160a01b0391821694509116915083565b6000546001600160a01b03163314806108e357506001546001600160a01b031633145b6108ff5760405162461bcd60e51b81526004016102479061117c565b600061090b8783610ce7565b90508160005b86811015610a705736600087878481811061092e5761092e6111a8565b905060200281019061094091906111f5565b915091506000805b828110156109c757866003016000858584818110610968576109686111a8565b905060200201358152602001908152602001600020548760020154038201915086600201548760030160008686858181106109a5576109a56111a8565b6020908102929092013583525081019190915260400160002055600101610948565b508015610a6557846001600160a01b031663bb03d2eb8c8c878181106109ef576109ef6111a8565b9050602002016020810190610a049190610f2b565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b505050505b505050600101610911565b505050505050505050565b6000546001600160a01b0316331480610a9e57506001546001600160a01b031633145b610aba5760405162461bcd60e51b81526004016102479061117c565b6001600160a01b0382166000908152600260205260408120905b8154811015610ba857836001600160a01b0316828281548110610af957610af96111a8565b60009182526020909120600490910201546001600160a01b0316148015610b565750826001600160a01b0316828281548110610b3757610b376111a8565b60009182526020909120600160049092020101546001600160a01b0316145b15610ba057818181548110610b6d57610b6d6111a8565b60009182526020822060049091020180546001600160a01b03199081168255600182018054909116905560020155610ba8565b600101610ad4565b50505050565b610bb6610e29565b6001600160a01b038116610c1b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610247565b610c2481610e83565b50565b6000323303610c485760405162461bcd60e51b8152600401610247906111be565b336000908152600260205260408120905b8154811015610ca6576000828281548110610c7657610c766111a8565b90600052602060002090600402019050600081600201541115610c9d576001935050505090565b50600101610c59565b50600091505090565b600080610cbc8584610ce7565b60008581526003820160205260409020546002820154919250610cde9161123f565b95945050505050565b6001600160a01b0382166000908152600260205260408120815b8154811015610de857846001600160a01b0316828281548110610d2657610d266111a8565b60009182526020909120600490910201546001600160a01b0316148015610d835750836001600160a01b0316828281548110610d6457610d646111a8565b60009182526020909120600160049092020101546001600160a01b0316145b8015610db257506000828281548110610d9e57610d9e6111a8565b906000526020600020906004020160020154115b15610de057818181548110610dc957610dc96111a8565b906000526020600020906004020192505050610e23565b600101610d01565b5060405162461bcd60e51b815260206004820152600f60248201526e0496e76616c69642061697264726f7608c1b6044820152606401610247565b92915050565b6000546001600160a01b031633146108715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610247565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610eea57600080fd5b919050565b600080600060608486031215610f0457600080fd5b610f0d84610ed3565b9250610f1b60208501610ed3565b9150604084013590509250925092565b600060208284031215610f3d57600080fd5b610f4682610ed3565b9392505050565b60008060408385031215610f6057600080fd5b610f6983610ed3565b946020939093013593505050565b60008083601f840112610f8957600080fd5b50813567ffffffffffffffff811115610fa157600080fd5b6020830191508360208260051b8501011115610fbc57600080fd5b9250929050565b600080600080600060808688031215610fdb57600080fd5b610fe486610ed3565b9450610ff260208701610ed3565b9350604086013567ffffffffffffffff81111561100e57600080fd5b61101a88828901610f77565b909450925061102d905060608701610ed3565b90509295509295909350565b6000806000806080858703121561104f57600080fd5b61105885610ed3565b93506020850135925061106d60408601610ed3565b9396929550929360600135925050565b6000806000806000806080878903121561109657600080fd5b61109f87610ed3565b9550602087013567ffffffffffffffff808211156110bc57600080fd5b6110c88a838b01610f77565b909750955060408901359150808211156110e157600080fd5b506110ee89828a01610f77565b9094509250611101905060608801610ed3565b90509295509295509295565b6000806040838503121561112057600080fd5b61112983610ed3565b915061113760208401610ed3565b90509250929050565b60008060006060848603121561115557600080fd5b61115e84610ed3565b92506020840135915061117360408501610ed3565b90509250925092565b6020808252601290820152712737ba1037bbb732b91037b91030b236b4b760711b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f43616c6c6572206d757374206265206120636f6e747261637400000000000000604082015260600190565b6000808335601e1984360301811261120c57600080fd5b83018035915067ffffffffffffffff82111561122757600080fd5b6020019150600581901b3603821315610fbc57600080fd5b81810381811115610e2357634e487b7160e01b600052601160045260246000fdfea264697066735822122004eb22851eb331890d6d37c4eed42488e8a1eb46e00635f9b2cce2d5938c3cc064736f6c634300081000330000000000000000000000003be3a8613dc18554a73773a5bfb8e9819d360dc0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80637d966fb91161008c578063e787d00511610066578063e787d005146101a9578063f2fde38b146101bc578063f459da35146101cf578063fcd3b1cb146101e757600080fd5b80637d966fb91461013d5780638da5cb5b1461017b578063e75453301461019657600080fd5b80632d426557146100d45780634124da22146100e95780635cf20c7b146100fc57806369a5f3271461010f5780636c19408a14610122578063715018a614610135575b600080fd5b6100e76100e2366004610eef565b610208565b005b6100e76100f7366004610f2b565b610381565b6100e761010a366004610f4d565b610467565b6100e761011d366004610fc3565b610587565b6100e7610130366004611039565b61072d565b6100e761085f565b61015061014b366004610f4d565b610873565b604080516001600160a01b039485168152939092166020840152908201526060015b60405180910390f35b6000546040516001600160a01b039091168152602001610172565b6100e76101a436600461107d565b6108c0565b6100e76101b736600461110d565b610a7b565b6100e76101ca366004610f2b565b610bae565b6101d7610c27565b6040519015158152602001610172565b6101fa6101f5366004611140565b610caf565b604051908152602001610172565b6000546001600160a01b031633148061022b57506001546001600160a01b031633145b6102505760405162461bcd60e51b81526004016102479061117c565b60405180910390fd5b6001600160a01b038316600090815260026020526040812090805b825481101561032b57856001600160a01b0316838281548110610290576102906111a8565b60009182526020909120600490910201546001600160a01b03161480156102ed5750846001600160a01b03168382815481106102ce576102ce6111a8565b60009182526020909120600160049092020101546001600160a01b0316145b1561032357828181548110610304576103046111a8565b600091825260209091206002600490920201018490555061037c915050565b60010161026b565b50508054600181810183556000928352602090922060049091020180546001600160a01b038087166001600160a01b0319928316178355928201805493861693909116929092179091556002018190555b505050565b6000546001600160a01b03163314806103a457506001546001600160a01b031633145b6103c05760405162461bcd60e51b81526004016102479061117c565b6001600160a01b0381166000908152600260205260408120905b815481101561037c57826001600160a01b03168282815481106103ff576103ff6111a8565b60009182526020909120600490910201546001600160a01b03160361045f57818181548110610430576104306111a8565b60009182526020822060049091020180546001600160a01b031990811682556001820180549091169055600201555b6001016103da565b3233036104865760405162461bcd60e51b8152600401610247906111be565b336000818152600260205260408120905b81548110156105805760008282815481106104b4576104b46111a8565b906000526020600020906004020190506000816003016000878152602001908152602001600020548260020154039050600081116104f3575050610578565b6000868152600383016020526040908190208054830190556001830154905163bb03d2eb60e01b81526001600160a01b0389811660048301526024820184905290911690819063bb03d2eb90604401600060405180830381600087803b15801561055c57600080fd5b505af1158015610570573d6000803e3d6000fd5b505050505050505b600101610497565b5050505050565b6000546001600160a01b03163314806105aa57506001546001600160a01b031633145b6105c65760405162461bcd60e51b81526004016102479061117c565b60006105d28683610ce7565b9050816000805b85811015610658578360030160008888848181106105f9576105f96111a8565b90506020020135815260200190815260200160002054846002015403820191508360020154846003016000898985818110610636576106366111a8565b60209081029290920135835250810191909152604001600020556001016105d9565b50600081116106c15760405162461bcd60e51b815260206004820152602f60248201527f41697264726f7020697320616c726561647920636c61696d656420666f72207460448201526e686520676976656e20746f6b656e7360881b6064820152608401610247565b60405163bb03d2eb60e01b81526001600160a01b0388811660048301526024820183905283169063bb03d2eb90604401600060405180830381600087803b15801561070b57600080fd5b505af115801561071f573d6000803e3d6000fd5b505050505050505050505050565b32330361074c5760405162461bcd60e51b8152600401610247906111be565b3360006107598285610ce7565b905082610767838787610caf565b10156107db5760405162461bcd60e51b815260206004820152603760248201527f436f756e7420657863656564732072656d61696e696e6720636c61696d61626c60448201527f6520616d6f756e7420666f72207468697320746f6b656e0000000000000000006064820152608401610247565b6000858152600382016020526040908190208054850190555163bb03d2eb60e01b81526001600160a01b0387811660048301526024820185905285919082169063bb03d2eb90604401600060405180830381600087803b15801561083e57600080fd5b505af1158015610852573d6000803e3d6000fd5b5050505050505050505050565b610867610e29565b6108716000610e83565b565b6002602052816000526040600020818154811061088f57600080fd5b60009182526020909120600490910201805460018201546002909201546001600160a01b0391821694509116915083565b6000546001600160a01b03163314806108e357506001546001600160a01b031633145b6108ff5760405162461bcd60e51b81526004016102479061117c565b600061090b8783610ce7565b90508160005b86811015610a705736600087878481811061092e5761092e6111a8565b905060200281019061094091906111f5565b915091506000805b828110156109c757866003016000858584818110610968576109686111a8565b905060200201358152602001908152602001600020548760020154038201915086600201548760030160008686858181106109a5576109a56111a8565b6020908102929092013583525081019190915260400160002055600101610948565b508015610a6557846001600160a01b031663bb03d2eb8c8c878181106109ef576109ef6111a8565b9050602002016020810190610a049190610f2b565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b505050505b505050600101610911565b505050505050505050565b6000546001600160a01b0316331480610a9e57506001546001600160a01b031633145b610aba5760405162461bcd60e51b81526004016102479061117c565b6001600160a01b0382166000908152600260205260408120905b8154811015610ba857836001600160a01b0316828281548110610af957610af96111a8565b60009182526020909120600490910201546001600160a01b0316148015610b565750826001600160a01b0316828281548110610b3757610b376111a8565b60009182526020909120600160049092020101546001600160a01b0316145b15610ba057818181548110610b6d57610b6d6111a8565b60009182526020822060049091020180546001600160a01b03199081168255600182018054909116905560020155610ba8565b600101610ad4565b50505050565b610bb6610e29565b6001600160a01b038116610c1b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610247565b610c2481610e83565b50565b6000323303610c485760405162461bcd60e51b8152600401610247906111be565b336000908152600260205260408120905b8154811015610ca6576000828281548110610c7657610c766111a8565b90600052602060002090600402019050600081600201541115610c9d576001935050505090565b50600101610c59565b50600091505090565b600080610cbc8584610ce7565b60008581526003820160205260409020546002820154919250610cde9161123f565b95945050505050565b6001600160a01b0382166000908152600260205260408120815b8154811015610de857846001600160a01b0316828281548110610d2657610d266111a8565b60009182526020909120600490910201546001600160a01b0316148015610d835750836001600160a01b0316828281548110610d6457610d646111a8565b60009182526020909120600160049092020101546001600160a01b0316145b8015610db257506000828281548110610d9e57610d9e6111a8565b906000526020600020906004020160020154115b15610de057818181548110610dc957610dc96111a8565b906000526020600020906004020192505050610e23565b600101610d01565b5060405162461bcd60e51b815260206004820152600f60248201526e0496e76616c69642061697264726f7608c1b6044820152606401610247565b92915050565b6000546001600160a01b031633146108715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610247565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610eea57600080fd5b919050565b600080600060608486031215610f0457600080fd5b610f0d84610ed3565b9250610f1b60208501610ed3565b9150604084013590509250925092565b600060208284031215610f3d57600080fd5b610f4682610ed3565b9392505050565b60008060408385031215610f6057600080fd5b610f6983610ed3565b946020939093013593505050565b60008083601f840112610f8957600080fd5b50813567ffffffffffffffff811115610fa157600080fd5b6020830191508360208260051b8501011115610fbc57600080fd5b9250929050565b600080600080600060808688031215610fdb57600080fd5b610fe486610ed3565b9450610ff260208701610ed3565b9350604086013567ffffffffffffffff81111561100e57600080fd5b61101a88828901610f77565b909450925061102d905060608701610ed3565b90509295509295909350565b6000806000806080858703121561104f57600080fd5b61105885610ed3565b93506020850135925061106d60408601610ed3565b9396929550929360600135925050565b6000806000806000806080878903121561109657600080fd5b61109f87610ed3565b9550602087013567ffffffffffffffff808211156110bc57600080fd5b6110c88a838b01610f77565b909750955060408901359150808211156110e157600080fd5b506110ee89828a01610f77565b9094509250611101905060608801610ed3565b90509295509295509295565b6000806040838503121561112057600080fd5b61112983610ed3565b915061113760208401610ed3565b90509250929050565b60008060006060848603121561115557600080fd5b61115e84610ed3565b92506020840135915061117360408501610ed3565b90509250925092565b6020808252601290820152712737ba1037bbb732b91037b91030b236b4b760711b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f43616c6c6572206d757374206265206120636f6e747261637400000000000000604082015260600190565b6000808335601e1984360301811261120c57600080fd5b83018035915067ffffffffffffffff82111561122757600080fd5b6020019150600581901b3603821315610fbc57600080fd5b81810381811115610e2357634e487b7160e01b600052601160045260246000fdfea264697066735822122004eb22851eb331890d6d37c4eed42488e8a1eb46e00635f9b2cce2d5938c3cc064736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003be3a8613dc18554a73773a5bfb8e9819d360dc0
-----Decoded View---------------
Arg [0] : admin (address): 0x3be3A8613dC18554a73773a5Bfb8E9819d360Dc0
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003be3a8613dc18554a73773a5bfb8e9819d360dc0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.