Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 199 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 18740868 | 497 days ago | IN | 0.2 ETH | 0.00470628 | ||||
Transfer | 18732895 | 498 days ago | IN | 0.17 ETH | 0.00375903 | ||||
Transfer | 18732679 | 498 days ago | IN | 0.1 ETH | 0.00385488 | ||||
Transfer | 18731672 | 498 days ago | IN | 0.2 ETH | 0.00370987 | ||||
Transfer | 18729529 | 499 days ago | IN | 0.19 ETH | 0.00823772 | ||||
Transfer | 18728385 | 499 days ago | IN | 0.2 ETH | 0.00830091 | ||||
Transfer | 18727943 | 499 days ago | IN | 0.2 ETH | 0.00684816 | ||||
Transfer | 18727701 | 499 days ago | IN | 0.2 ETH | 0.00634164 | ||||
Transfer | 18727365 | 499 days ago | IN | 0.2 ETH | 0.00644732 | ||||
Transfer | 18726465 | 499 days ago | IN | 4 ETH | 0.0050949 | ||||
Transfer | 18725937 | 499 days ago | IN | 0.2 ETH | 0.00574527 | ||||
Transfer | 18722752 | 500 days ago | IN | 0.22 ETH | 0.00694794 | ||||
Transfer | 18722559 | 500 days ago | IN | 1 ETH | 0.00672136 | ||||
Transfer | 18721185 | 500 days ago | IN | 3 ETH | 0.00752341 | ||||
Transfer | 18719413 | 500 days ago | IN | 2 ETH | 0.0050757 | ||||
Transfer | 18718679 | 500 days ago | IN | 1.5 ETH | 0.00352738 | ||||
Transfer | 18715515 | 501 days ago | IN | 0.5 ETH | 0.00841582 | ||||
Transfer | 18715251 | 501 days ago | IN | 1 ETH | 0.00599042 | ||||
Transfer | 18714561 | 501 days ago | IN | 2 ETH | 0.00493133 | ||||
Transfer | 18714179 | 501 days ago | IN | 1.03 ETH | 0.00521775 | ||||
Transfer | 18708451 | 502 days ago | IN | 5 ETH | 0.0038992 | ||||
Transfer | 18708447 | 502 days ago | IN | 5 ETH | 0.00395709 | ||||
Transfer | 18708241 | 502 days ago | IN | 2 ETH | 0.00638884 | ||||
Transfer | 18706627 | 502 days ago | IN | 0.5 ETH | 0.00481282 | ||||
Transfer | 18706216 | 502 days ago | IN | 5 ETH | 0.00339064 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 18740868 | 497 days ago | 0.2 ETH | ||||
Transfer | 18732895 | 498 days ago | 0.17 ETH | ||||
Transfer | 18732679 | 498 days ago | 0.1 ETH | ||||
Transfer | 18731672 | 498 days ago | 0.2 ETH | ||||
Transfer | 18729529 | 499 days ago | 0.19 ETH | ||||
Transfer | 18728385 | 499 days ago | 0.2 ETH | ||||
Transfer | 18727943 | 499 days ago | 0.2 ETH | ||||
Transfer | 18727701 | 499 days ago | 0.2 ETH | ||||
Transfer | 18727365 | 499 days ago | 0.2 ETH | ||||
Transfer | 18726465 | 499 days ago | 4 ETH | ||||
Transfer | 18725937 | 499 days ago | 0.2 ETH | ||||
Transfer | 18722752 | 500 days ago | 0.22 ETH | ||||
Transfer | 18722559 | 500 days ago | 1 ETH | ||||
Transfer | 18721185 | 500 days ago | 3 ETH | ||||
Transfer | 18719413 | 500 days ago | 2 ETH | ||||
Transfer | 18718679 | 500 days ago | 1.5 ETH | ||||
Transfer | 18715515 | 501 days ago | 0.5 ETH | ||||
Transfer | 18715251 | 501 days ago | 1 ETH | ||||
Transfer | 18714561 | 501 days ago | 2 ETH | ||||
Transfer | 18714179 | 501 days ago | 1.03 ETH | ||||
Transfer | 18708451 | 502 days ago | 5 ETH | ||||
Transfer | 18708447 | 502 days ago | 5 ETH | ||||
Transfer | 18708241 | 502 days ago | 2 ETH | ||||
Transfer | 18706627 | 502 days ago | 0.5 ETH | ||||
Transfer | 18706216 | 502 days ago | 5 ETH |
Loading...
Loading
Contract Name:
GarbageSale
Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.22; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/Pausable.sol"; import "src/interfaces/IChainLinkPriceFeed.sol"; contract GarbageSale is Pausable, Ownable { struct User { uint256 ethSpent; uint256 tokensPurchased; } IChainLinkPriceFeed public immutable priceFeed;// Address of ChainLink ETH/USD price feed uint256 public saleLimit;// Total amount of tokens to be sold uint256 public tokenPrice;// Price for single token in USD uint256 public totalTokensSold;// Total amount of purchased tokens mapping(address => User) public users;// Stores the number of tokens purchased by each user and their claim status event TokensPurchased( address indexed user, uint256 indexed tokensAmount, uint256 indexed currentEthPrice ); error ZeroPriceFeedAddress(); error WrongOracleData(); error TooLowValue(); error PerWalletLimitExceeded(uint256 remainingLimit); error SaleLimitExceeded(uint256 remainingLimit); error NotEnoughEthOnContract(); error EthSendingFailed(); /* @notice Sets up contract while deploying @param _saleToken: Token address @param _oracle: ChainLink ETH/USD oracle address @param _usdPrice: USD price for single token @param _saleLimit: Total amount of tokens to be sold during sale **/ constructor( address _priceFeed, uint256 _usdPrice, uint256 _saleLimit, address owner ) Ownable(owner) { if (_priceFeed == address(0)) revert ZeroPriceFeedAddress(); priceFeed = IChainLinkPriceFeed(_priceFeed); saleLimit = _saleLimit * 1e18; tokenPrice = _usdPrice; } /// @notice Pausing sale function pause() external onlyOwner { _pause(); } /// @notice Unpausing sale function unpause() external onlyOwner { _unpause(); } /* @notice Function for receiving ether @dev amount of tokens will be calculated from received value **/ receive() external payable { if (msg.value < 0.1 ether) revert TooLowValue(); uint256 remainingLimit = 5 ether - users[msg.sender].ethSpent; if (remainingLimit < msg.value) revert PerWalletLimitExceeded(remainingLimit); (uint256 ethPrice, uint256 tokensAmount) = convertETHToTokensAmount(msg.value); if (tokensAmount + totalTokensSold > saleLimit) revert SaleLimitExceeded(saleLimit - totalTokensSold); totalTokensSold += tokensAmount; users[msg.sender].tokensPurchased += tokensAmount; users[msg.sender].ethSpent += msg.value; (bool success, ) = payable(owner()).call{ value: msg.value }(""); if (!success) revert EthSendingFailed(); emit TokensPurchased(msg.sender, ethPrice, tokensAmount); } /* @notice Function for converting eth amount to equal tokens amount @param _ethAmount: Amount of eth to calculate @return ethPrice: Current eth price in usdt @return tokensAmount: Amount of tokens **/ function convertETHToTokensAmount(uint256 _ethAmount) public view returns (uint256 ethPrice, uint256 tokensAmount) { (uint80 roundID, int256 price, , uint256 updatedAt, uint80 answeredInRound) = priceFeed.latestRoundData(); ethPrice = uint256(price) / 1e2; if (answeredInRound < roundID || updatedAt < block.timestamp - 3 hours || price < 0) revert WrongOracleData(); tokensAmount = _ethAmount * uint256(price) / tokenPrice / 1e2; } }
// 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) (utils/Pausable.sol) pragma solidity ^0.8.20; import {Context} from "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { bool private _paused; /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); /** * @dev The operation failed because the contract is paused. */ error EnforcedPause(); /** * @dev The operation failed because the contract is not paused. */ error ExpectedPause(); /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { if (paused()) { revert EnforcedPause(); } } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { if (!paused()) { revert ExpectedPause(); } } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; interface IChainLinkPriceFeed { function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound); }
// 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; } }
{ "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin/=lib/openzeppelin/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"uint256","name":"_usdPrice","type":"uint256"},{"internalType":"uint256","name":"_saleLimit","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"EthSendingFailed","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"NotEnoughEthOnContract","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"uint256","name":"remainingLimit","type":"uint256"}],"name":"PerWalletLimitExceeded","type":"error"},{"inputs":[{"internalType":"uint256","name":"remainingLimit","type":"uint256"}],"name":"SaleLimitExceeded","type":"error"},{"inputs":[],"name":"TooLowValue","type":"error"},{"inputs":[],"name":"WrongOracleData","type":"error"},{"inputs":[],"name":"ZeroPriceFeedAddress","type":"error"},{"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":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokensAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"currentEthPrice","type":"uint256"}],"name":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"uint256","name":"_ethAmount","type":"uint256"}],"name":"convertETHToTokensAmount","outputs":[{"internalType":"uint256","name":"ethPrice","type":"uint256"},{"internalType":"uint256","name":"tokensAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract IChainLinkPriceFeed","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensSold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"ethSpent","type":"uint256"},{"internalType":"uint256","name":"tokensPurchased","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234801561001057600080fd5b50604051610a7b380380610a7b83398101604081905261002f9161013b565b6000805460ff19169055806001600160a01b03811661006857604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b610071816100c6565b506001600160a01b03841661009957604051633bd9d9fd60e01b815260040160405180910390fd5b6001600160a01b0384166080526100b882670de0b6b3a7640000610181565b6001555050600255506101ac565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b80516001600160a01b038116811461013657600080fd5b919050565b6000806000806080858703121561015157600080fd5b61015a8561011f565b935060208501519250604085015191506101766060860161011f565b905092959194509250565b80820281158282048414176101a657634e487b7160e01b600052601160045260246000fd5b92915050565b6080516108ad6101ce60003960008181610353015261045001526108ad6000f3fe6080604052600436106100ab5760003560e01c80637e26639f116100645780637e26639f1461038d5780637ff9b596146103a35780638456cb59146103b95780638da5cb5b146103ce578063a87430ba146103f1578063f2fde38b1461042557600080fd5b80633f4ba83a146102945780635c975abb146102ab57806363b20117146102d35780636f6f00c7146102f7578063715018a61461032c578063741bef1a1461034157600080fd5b3661028f5767016345785d8a00003410156100d957604051637699ac9b60e01b815260040160405180910390fd5b336000908152600460205260408120546100fb90674563918244f4000061075a565b9050348110156101265760405163d28cfc2d60e01b8152600481018290526024015b60405180910390fd5b60008061013234610445565b91509150600154600354826101479190610773565b11156101795760035460015461015d919061075a565b6040516376bff5c360e01b815260040161011d91815260200190565b806003600082825461018b9190610773565b909155505033600090815260046020526040812060010180548392906101b2908490610773565b909155505033600090815260046020526040812080543492906101d6908490610773565b90915550506000805461010090046001600160a01b03166001600160a01b03163460405160006040518083038185875af1925050503d8060008114610237576040519150601f19603f3d011682016040523d82523d6000602084013e61023c565b606091505b505090508061025e576040516308981c1360e21b815260040160405180910390fd5b6040518290849033907f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f3390600090a4005b600080fd5b3480156102a057600080fd5b506102a9610570565b005b3480156102b757600080fd5b5060005460ff1660405190151581526020015b60405180910390f35b3480156102df57600080fd5b506102e960035481565b6040519081526020016102ca565b34801561030357600080fd5b50610317610312366004610786565b610445565b604080519283526020830191909152016102ca565b34801561033857600080fd5b506102a9610582565b34801561034d57600080fd5b506103757f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ca565b34801561039957600080fd5b506102e960015481565b3480156103af57600080fd5b506102e960025481565b3480156103c557600080fd5b506102a9610594565b3480156103da57600080fd5b5060005461010090046001600160a01b0316610375565b3480156103fd57600080fd5b5061031761040c36600461079f565b6004602052600090815260409020805460019091015482565b34801561043157600080fd5b506102a961044036600461079f565b6105a4565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156104ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d091906107ee565b9450945050935093506064836104e6919061083e565b95508369ffffffffffffffffffff168169ffffffffffffffffffff1610806105185750610515612a304261075a565b82105b806105235750600083125b156105415760405163cbbbed0960e01b815260040160405180910390fd5b600254606490610551858a610860565b61055b919061083e565b610565919061083e565b945050505050915091565b6105786105e2565b610580610615565b565b61058a6105e2565b6105806000610667565b61059c6105e2565b6105806106c0565b6105ac6105e2565b6001600160a01b0381166105d657604051631e4fbdf760e01b81526000600482015260240161011d565b6105df81610667565b50565b6000546001600160a01b036101009091041633146105805760405163118cdaa760e01b815233600482015260240161011d565b61061d6106fd565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6106c8610720565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861064a3390565b60005460ff1661058057604051638dfc202b60e01b815260040160405180910390fd5b60005460ff16156105805760405163d93c066560e01b815260040160405180910390fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561076d5761076d610744565b92915050565b8082018082111561076d5761076d610744565b60006020828403121561079857600080fd5b5035919050565b6000602082840312156107b157600080fd5b81356001600160a01b03811681146107c857600080fd5b9392505050565b805169ffffffffffffffffffff811681146107e957600080fd5b919050565b600080600080600060a0868803121561080657600080fd5b61080f866107cf565b9450602086015193506040860151925060608601519150610832608087016107cf565b90509295509295909350565b60008261085b57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761076d5761076d61074456fea2646970667358221220e1ddfb9cf169acd664dcd60faca59ab6aee702f5b560fb1c3154921f904a965f64736f6c634300081600330000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84190000000000000000000000000000000000000000000000000000000000004e200000000000000000000000000000000000000000000000000000000002faf08000000000000000000000000050b8a37dc292f8aabe40bb0616337223f7ffac37
Deployed Bytecode
0x6080604052600436106100ab5760003560e01c80637e26639f116100645780637e26639f1461038d5780637ff9b596146103a35780638456cb59146103b95780638da5cb5b146103ce578063a87430ba146103f1578063f2fde38b1461042557600080fd5b80633f4ba83a146102945780635c975abb146102ab57806363b20117146102d35780636f6f00c7146102f7578063715018a61461032c578063741bef1a1461034157600080fd5b3661028f5767016345785d8a00003410156100d957604051637699ac9b60e01b815260040160405180910390fd5b336000908152600460205260408120546100fb90674563918244f4000061075a565b9050348110156101265760405163d28cfc2d60e01b8152600481018290526024015b60405180910390fd5b60008061013234610445565b91509150600154600354826101479190610773565b11156101795760035460015461015d919061075a565b6040516376bff5c360e01b815260040161011d91815260200190565b806003600082825461018b9190610773565b909155505033600090815260046020526040812060010180548392906101b2908490610773565b909155505033600090815260046020526040812080543492906101d6908490610773565b90915550506000805461010090046001600160a01b03166001600160a01b03163460405160006040518083038185875af1925050503d8060008114610237576040519150601f19603f3d011682016040523d82523d6000602084013e61023c565b606091505b505090508061025e576040516308981c1360e21b815260040160405180910390fd5b6040518290849033907f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f3390600090a4005b600080fd5b3480156102a057600080fd5b506102a9610570565b005b3480156102b757600080fd5b5060005460ff1660405190151581526020015b60405180910390f35b3480156102df57600080fd5b506102e960035481565b6040519081526020016102ca565b34801561030357600080fd5b50610317610312366004610786565b610445565b604080519283526020830191909152016102ca565b34801561033857600080fd5b506102a9610582565b34801561034d57600080fd5b506103757f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b841981565b6040516001600160a01b0390911681526020016102ca565b34801561039957600080fd5b506102e960015481565b3480156103af57600080fd5b506102e960025481565b3480156103c557600080fd5b506102a9610594565b3480156103da57600080fd5b5060005461010090046001600160a01b0316610375565b3480156103fd57600080fd5b5061031761040c36600461079f565b6004602052600090815260409020805460019091015482565b34801561043157600080fd5b506102a961044036600461079f565b6105a4565b6000806000806000807f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84196001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156104ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d091906107ee565b9450945050935093506064836104e6919061083e565b95508369ffffffffffffffffffff168169ffffffffffffffffffff1610806105185750610515612a304261075a565b82105b806105235750600083125b156105415760405163cbbbed0960e01b815260040160405180910390fd5b600254606490610551858a610860565b61055b919061083e565b610565919061083e565b945050505050915091565b6105786105e2565b610580610615565b565b61058a6105e2565b6105806000610667565b61059c6105e2565b6105806106c0565b6105ac6105e2565b6001600160a01b0381166105d657604051631e4fbdf760e01b81526000600482015260240161011d565b6105df81610667565b50565b6000546001600160a01b036101009091041633146105805760405163118cdaa760e01b815233600482015260240161011d565b61061d6106fd565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6106c8610720565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861064a3390565b60005460ff1661058057604051638dfc202b60e01b815260040160405180910390fd5b60005460ff16156105805760405163d93c066560e01b815260040160405180910390fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561076d5761076d610744565b92915050565b8082018082111561076d5761076d610744565b60006020828403121561079857600080fd5b5035919050565b6000602082840312156107b157600080fd5b81356001600160a01b03811681146107c857600080fd5b9392505050565b805169ffffffffffffffffffff811681146107e957600080fd5b919050565b600080600080600060a0868803121561080657600080fd5b61080f866107cf565b9450602086015193506040860151925060608601519150610832608087016107cf565b90509295509295909350565b60008261085b57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761076d5761076d61074456fea2646970667358221220e1ddfb9cf169acd664dcd60faca59ab6aee702f5b560fb1c3154921f904a965f64736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84190000000000000000000000000000000000000000000000000000000000004e200000000000000000000000000000000000000000000000000000000002faf08000000000000000000000000050b8a37dc292f8aabe40bb0616337223f7ffac37
-----Decoded View---------------
Arg [0] : _priceFeed (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [1] : _usdPrice (uint256): 20000
Arg [2] : _saleLimit (uint256): 50000000
Arg [3] : owner (address): 0x50b8a37dc292F8AabE40BB0616337223F7ffAC37
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [1] : 0000000000000000000000000000000000000000000000000000000000004e20
Arg [2] : 0000000000000000000000000000000000000000000000000000000002faf080
Arg [3] : 00000000000000000000000050b8a37dc292f8aabe40bb0616337223f7ffac37
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 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.