Overview
ETH Balance
1.116668697242024573 ETH
Eth Value
$3,790.11 (@ $3,394.12/ETH)Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 564 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim And Burn | 18155537 | 468 days ago | IN | 0 ETH | 0.00114544 | ||||
Claim And Burn | 18033055 | 485 days ago | IN | 0 ETH | 0.00165723 | ||||
Claim And Burn | 17530541 | 555 days ago | IN | 0 ETH | 0.00302622 | ||||
Claim And Burn | 17431197 | 569 days ago | IN | 0 ETH | 0.00279295 | ||||
Claim And Burn | 17317378 | 585 days ago | IN | 0 ETH | 0.00754662 | ||||
Claim And Burn | 17294357 | 589 days ago | IN | 0 ETH | 0.0087432 | ||||
Claim And Burn | 17277093 | 591 days ago | IN | 0 ETH | 0.0061648 | ||||
Claim And Burn | 17276381 | 591 days ago | IN | 0 ETH | 0.00477153 | ||||
Claim And Burn | 17276353 | 591 days ago | IN | 0 ETH | 0.00503515 | ||||
Claim And Burn | 17267047 | 593 days ago | IN | 0 ETH | 0.00965121 | ||||
Claim And Burn | 17266144 | 593 days ago | IN | 0 ETH | 0.01118001 | ||||
Claim And Burn | 17264016 | 593 days ago | IN | 0 ETH | 0.00596655 | ||||
Claim And Burn | 17263820 | 593 days ago | IN | 0 ETH | 0.00444094 | ||||
Claim And Burn | 17262991 | 593 days ago | IN | 0 ETH | 0.00477063 | ||||
Claim And Burn | 17261494 | 593 days ago | IN | 0 ETH | 0.00403691 | ||||
Claim And Burn | 17261413 | 593 days ago | IN | 0 ETH | 0.00439248 | ||||
Claim And Burn | 17260137 | 594 days ago | IN | 0 ETH | 0.00456607 | ||||
Claim And Burn | 17257274 | 594 days ago | IN | 0 ETH | 0.00490343 | ||||
Claim And Burn | 17254897 | 594 days ago | IN | 0 ETH | 0.00497911 | ||||
Claim And Burn | 17253584 | 594 days ago | IN | 0 ETH | 0.00591151 | ||||
Claim And Burn | 17253074 | 595 days ago | IN | 0 ETH | 0.00486148 | ||||
Claim And Burn | 17252973 | 595 days ago | IN | 0 ETH | 0.00527226 | ||||
Claim And Burn | 17252041 | 595 days ago | IN | 0 ETH | 0.00576332 | ||||
Claim And Burn | 17252034 | 595 days ago | IN | 0 ETH | 0.00604487 | ||||
Claim And Burn | 17250962 | 595 days ago | IN | 0 ETH | 0.00501398 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
18155537 | 468 days ago | 0.00175938 ETH | ||||
18033055 | 485 days ago | 0.00315091 ETH | ||||
17530541 | 555 days ago | 0.01171873 ETH | ||||
17431197 | 569 days ago | 0.02127951 ETH | ||||
17317378 | 585 days ago | 0.1109375 ETH | ||||
17294357 | 589 days ago | 0.00377986 ETH | ||||
17277093 | 591 days ago | 0.00691203 ETH | ||||
17276381 | 591 days ago | 0.24034245 ETH | ||||
17276353 | 591 days ago | 0.01524084 ETH | ||||
17267047 | 593 days ago | 0.03773744 ETH | ||||
17266144 | 593 days ago | 0.00394687 ETH | ||||
17264016 | 593 days ago | 0.00513531 ETH | ||||
17263820 | 593 days ago | 0.00096355 ETH | ||||
17262991 | 593 days ago | 0.0035388 ETH | ||||
17261494 | 593 days ago | 0.01664062 ETH | ||||
17261413 | 593 days ago | 0.02350555 ETH | ||||
17260137 | 594 days ago | 0.03545877 ETH | ||||
17257274 | 594 days ago | 0.05815492 ETH | ||||
17254897 | 594 days ago | 0.0022926 ETH | ||||
17253584 | 594 days ago | 0.02801171 ETH | ||||
17253074 | 595 days ago | 0.00610477 ETH | ||||
17252973 | 595 days ago | 0.0042599 ETH | ||||
17252041 | 595 days ago | 0.0175006 ETH | ||||
17252034 | 595 days ago | 0.03293574 ETH | ||||
17250962 | 595 days ago | 0.00699753 ETH |
Loading...
Loading
Contract Name:
ClaimNothing
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-11 */ // File: @openzeppelin/contracts/utils/Context.sol // 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; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @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 amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` 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 amount) 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 `amount` 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 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` 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 amount ) external returns (bool); } // File: @openzeppelin/contracts/utils/introspection/IERC165.sol // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } // File: @openzeppelin/contracts/token/ERC721/IERC721.sol // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must * understand this adds an external call which potentially creates a reentrancy vulnerability. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); } // File: contracts/ClaimNothing.sol pragma solidity ^0.8.0; interface ISomethingToken is IERC721 { function getAmountPaid(uint256 tokenId) external view returns (uint256); } contract ClaimNothing is Ownable { // IOU token that holds amount of new tokens user is owed ISomethingToken public iouToken = ISomethingToken(0xB9d31e3473929185112ce28871069f16961cAB8F); // New token to be claimed by user in exchange for an IOU IERC20 public thingToken = IERC20(0xFfD822149fA6749176C7a1424e71a417F26189C8); bool public claimActive = false; uint256 public burnedCount = 0; uint256 public initialClaimableSupply = 64 * 1e10 * 1e18; constructor() {} receive() external payable {} function claimAndBurn(uint256[] calldata tokenIds) external { require(claimActive, "Claim is not active"); uint256 userTotalTokensClaimable = 0; for (uint256 i; i < tokenIds.length;) { uint256 tokenId = tokenIds[i]; require(iouToken.ownerOf(tokenId) == msg.sender, "Caller is not the owner of the token"); // Get the amount of tokens this IOU is worth, uint256 amountPaid = iouToken.getAmountPaid(tokenId); // Burn the IOU by transferring it to burn wallet iouToken.transferFrom(msg.sender, address(this), tokenId); // Lastly, add amount that this IOU is worth to the running total of tokens user receives // This can't underflow, `amountPaid` is always positive and bounded by other contract unchecked { userTotalTokensClaimable += amountPaid * 10**9; } unchecked { ++i; } } unchecked { burnedCount += tokenIds.length; } // Transfer thing tokens to user, reverts tx if it fails thingToken.transfer(msg.sender, userTotalTokensClaimable); // Transfer ether to user based on how many tokens being claimed payable(msg.sender).transfer(getAmountEtherClaimable(userTotalTokensClaimable)); } // Just in case someone sends ERC20 tokens to this contract on accident function withdrawToken(address _tokenAddress, uint256 _amount) public onlyOwner { IERC20 tokenContract = IERC20(_tokenAddress); // transfer the token from address of this contract // to address of tx sender (only owner is capable of executing the withdrawToken() function) tokenContract.transfer(msg.sender, _amount); } // IOUs should be able to be redeemed indefinitely, but just in case function setClaimActive() public onlyOwner { claimActive = !claimActive; } function getCurrentClaimableSupply() public view returns (uint256) { return thingToken.balanceOf(address(this)); } // Returns amount of ether user will receive based on amount of tokens provided function getAmountEtherClaimable(uint256 amountTokens) public view returns (uint256) { uint256 totalEther = 35.5 ether; uint256 etherToTransfer = (totalEther * amountTokens) / initialClaimableSupply; return etherToTransfer; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":[],"name":"burnedCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"claimAndBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"getAmountEtherClaimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentClaimableSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialClaimableSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"iouToken","outputs":[{"internalType":"contract ISomethingToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setClaimActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"thingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b03191673b9d31e3473929185112ce28871069f16961cab8f179055600280546001600160a81b03191673ffd822149fa6749176c7a1424e71a417f26189c817905560006003556c0813f3978f894098440000000060045534801561007257600080fd5b5061007c33610081565b6100d1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a1e806100e06000396000f3fe6080604052600436106100c65760003560e01c80637cefcc521161007f5780639e281a98116100595780639e281a98146101f3578063af4a1b5914610213578063d4a6a2fd14610228578063f2fde38b1461025957600080fd5b80637cefcc521461019f5780638da5cb5b146101b55780638e34b194146101d357600080fd5b80632dd5e408146100d257806330721f80146100fb57806348787280146101335780634c0524d014610153578063715018a61461016a578063785385c11461017f57600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100e860045481565b6040519081526020015b60405180910390f35b34801561010757600080fd5b5060025461011b906001600160a01b031681565b6040516001600160a01b0390911681526020016100f2565b34801561013f57600080fd5b506100e861014e366004610838565b610279565b34801561015f57600080fd5b506101686102a8565b005b34801561017657600080fd5b506101686102d1565b34801561018b57600080fd5b5061016861019a366004610851565b6102e5565b3480156101ab57600080fd5b506100e860035481565b3480156101c157600080fd5b506000546001600160a01b031661011b565b3480156101df57600080fd5b5060015461011b906001600160a01b031681565b3480156101ff57600080fd5b5061016861020e3660046108db565b61060a565b34801561021f57600080fd5b506100e8610694565b34801561023457600080fd5b5060025461024990600160a01b900460ff1681565b60405190151581526020016100f2565b34801561026557600080fd5b50610168610274366004610907565b610715565b6004546000906801eca955e9b65e0000908290610296858461092b565b6102a09190610958565b949350505050565b6102b061078e565b6002805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6102d961078e565b6102e360006107e8565b565b600254600160a01b900460ff166103395760405162461bcd60e51b8152602060048201526013602482015272436c61696d206973206e6f742061637469766560681b60448201526064015b60405180910390fd5b6000805b828110156105415760008484838181106103595761035961097a565b6001546040516331a9108f60e11b8152602092909202939093013560048201819052935033926001600160a01b03169150636352211e9060240160206040518083038186803b1580156103ab57600080fd5b505afa1580156103bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e39190610990565b6001600160a01b0316146104455760405162461bcd60e51b8152602060048201526024808201527f43616c6c6572206973206e6f7420746865206f776e6572206f6620746865207460448201526337b5b2b760e11b6064820152608401610330565b60015460405163088327bd60e31b8152600481018390526000916001600160a01b0316906344193de89060240160206040518083038186803b15801561048a57600080fd5b505afa15801561049e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c291906109ad565b6001546040516323b872dd60e01b8152336004820152306024820152604481018590529192506001600160a01b0316906323b872dd90606401600060405180830381600087803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b50505050633b9aca000292909201915060010161033d565b50600380548301905560025460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce91906109c6565b50336108fc6105dc83610279565b6040518115909202916000818181858888f19350505050158015610604573d6000803e3d6000fd5b50505050565b61061261078e565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb90604401602060405180830381600087803b15801561065c57600080fd5b505af1158015610670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060491906109c6565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156106d857600080fd5b505afa1580156106ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071091906109ad565b905090565b61071d61078e565b6001600160a01b0381166107825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610330565b61078b816107e8565b50565b6000546001600160a01b031633146102e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610330565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561084a57600080fd5b5035919050565b6000806020838503121561086457600080fd5b823567ffffffffffffffff8082111561087c57600080fd5b818501915085601f83011261089057600080fd5b81358181111561089f57600080fd5b8660208260051b85010111156108b457600080fd5b60209290920196919550909350505050565b6001600160a01b038116811461078b57600080fd5b600080604083850312156108ee57600080fd5b82356108f9816108c6565b946020939093013593505050565b60006020828403121561091957600080fd5b8135610924816108c6565b9392505050565b600081600019048311821515161561095357634e487b7160e01b600052601160045260246000fd5b500290565b60008261097557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156109a257600080fd5b8151610924816108c6565b6000602082840312156109bf57600080fd5b5051919050565b6000602082840312156109d857600080fd5b8151801515811461092457600080fdfea2646970667358221220d24d40313d9a35fecff34c22c922315da48a0332b693d8d45c017347eb16bce364736f6c63430008090033
Deployed Bytecode
0x6080604052600436106100c65760003560e01c80637cefcc521161007f5780639e281a98116100595780639e281a98146101f3578063af4a1b5914610213578063d4a6a2fd14610228578063f2fde38b1461025957600080fd5b80637cefcc521461019f5780638da5cb5b146101b55780638e34b194146101d357600080fd5b80632dd5e408146100d257806330721f80146100fb57806348787280146101335780634c0524d014610153578063715018a61461016a578063785385c11461017f57600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100e860045481565b6040519081526020015b60405180910390f35b34801561010757600080fd5b5060025461011b906001600160a01b031681565b6040516001600160a01b0390911681526020016100f2565b34801561013f57600080fd5b506100e861014e366004610838565b610279565b34801561015f57600080fd5b506101686102a8565b005b34801561017657600080fd5b506101686102d1565b34801561018b57600080fd5b5061016861019a366004610851565b6102e5565b3480156101ab57600080fd5b506100e860035481565b3480156101c157600080fd5b506000546001600160a01b031661011b565b3480156101df57600080fd5b5060015461011b906001600160a01b031681565b3480156101ff57600080fd5b5061016861020e3660046108db565b61060a565b34801561021f57600080fd5b506100e8610694565b34801561023457600080fd5b5060025461024990600160a01b900460ff1681565b60405190151581526020016100f2565b34801561026557600080fd5b50610168610274366004610907565b610715565b6004546000906801eca955e9b65e0000908290610296858461092b565b6102a09190610958565b949350505050565b6102b061078e565b6002805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6102d961078e565b6102e360006107e8565b565b600254600160a01b900460ff166103395760405162461bcd60e51b8152602060048201526013602482015272436c61696d206973206e6f742061637469766560681b60448201526064015b60405180910390fd5b6000805b828110156105415760008484838181106103595761035961097a565b6001546040516331a9108f60e11b8152602092909202939093013560048201819052935033926001600160a01b03169150636352211e9060240160206040518083038186803b1580156103ab57600080fd5b505afa1580156103bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e39190610990565b6001600160a01b0316146104455760405162461bcd60e51b8152602060048201526024808201527f43616c6c6572206973206e6f7420746865206f776e6572206f6620746865207460448201526337b5b2b760e11b6064820152608401610330565b60015460405163088327bd60e31b8152600481018390526000916001600160a01b0316906344193de89060240160206040518083038186803b15801561048a57600080fd5b505afa15801561049e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c291906109ad565b6001546040516323b872dd60e01b8152336004820152306024820152604481018590529192506001600160a01b0316906323b872dd90606401600060405180830381600087803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b50505050633b9aca000292909201915060010161033d565b50600380548301905560025460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce91906109c6565b50336108fc6105dc83610279565b6040518115909202916000818181858888f19350505050158015610604573d6000803e3d6000fd5b50505050565b61061261078e565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb90604401602060405180830381600087803b15801561065c57600080fd5b505af1158015610670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060491906109c6565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156106d857600080fd5b505afa1580156106ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071091906109ad565b905090565b61071d61078e565b6001600160a01b0381166107825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610330565b61078b816107e8565b50565b6000546001600160a01b031633146102e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610330565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561084a57600080fd5b5035919050565b6000806020838503121561086457600080fd5b823567ffffffffffffffff8082111561087c57600080fd5b818501915085601f83011261089057600080fd5b81358181111561089f57600080fd5b8660208260051b85010111156108b457600080fd5b60209290920196919550909350505050565b6001600160a01b038116811461078b57600080fd5b600080604083850312156108ee57600080fd5b82356108f9816108c6565b946020939093013593505050565b60006020828403121561091957600080fd5b8135610924816108c6565b9392505050565b600081600019048311821515161561095357634e487b7160e01b600052601160045260246000fd5b500290565b60008261097557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156109a257600080fd5b8151610924816108c6565b6000602082840312156109bf57600080fd5b5051919050565b6000602082840312156109d857600080fd5b8151801515811461092457600080fdfea2646970667358221220d24d40313d9a35fecff34c22c922315da48a0332b693d8d45c017347eb16bce364736f6c63430008090033
Deployed Bytecode Sourcemap
12692:3017:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13126:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13126:56:0;;;;;;;;12965:77;;;;;;;;;;-1:-1:-1;12965:77:0;;;;-1:-1:-1;;;;;12965:77:0;;;;;;-1:-1:-1;;;;;374:32:1;;;356:51;;344:2;329:18;12965:77:0;196:217:1;15449:257:0;;;;;;;;;;-1:-1:-1;15449:257:0;;;;;:::i;:::-;;:::i;15130:88::-;;;;;;;;;;;;;:::i;:::-;;2776:103;;;;;;;;;;;;;:::i;13254:1332::-;;;;;;;;;;-1:-1:-1;13254:1332:0;;;;;:::i;:::-;;:::i;13089:30::-;;;;;;;;;;;;;;;;2128:87;;;;;;;;;;-1:-1:-1;2174:7:0;2201:6;-1:-1:-1;;;;;2201:6:0;2128:87;;12798:93;;;;;;;;;;-1:-1:-1;12798:93:0;;;;-1:-1:-1;;;;;12798:93:0;;;14672:370;;;;;;;;;;-1:-1:-1;14672:370:0;;;;;:::i;:::-;;:::i;15226:128::-;;;;;;;;;;;;;:::i;13051:31::-;;;;;;;;;;-1:-1:-1;13051:31:0;;;;-1:-1:-1;;;13051:31:0;;;;;;;;;2283:14:1;;2276:22;2258:41;;2246:2;2231:18;13051:31:0;2118:187:1;3034:201:0;;;;;;;;;;-1:-1:-1;3034:201:0;;;;;:::i;:::-;;:::i;15449:257::-;15643:22;;15525:7;;15566:10;;15525:7;;15614:25;15627:12;15566:10;15614:25;:::i;:::-;15613:52;;;;:::i;:::-;15587:78;15449:257;-1:-1:-1;;;;15449:257:0:o;15130:88::-;2014:13;:11;:13::i;:::-;15199:11:::1;::::0;;-1:-1:-1;;;;15184:26:0;::::1;-1:-1:-1::0;;;15199:11:0;;;::::1;;;15198:12;15184:26:::0;;::::1;;::::0;;15130:88::o;2776:103::-;2014:13;:11;:13::i;:::-;2841:30:::1;2868:1;2841:18;:30::i;:::-;2776:103::o:0;13254:1332::-;13327:11;;-1:-1:-1;;;13327:11:0;;;;13319:43;;;;-1:-1:-1;;;13319:43:0;;3256:2:1;13319:43:0;;;3238:21:1;3295:2;3275:18;;;3268:30;-1:-1:-1;;;3314:18:1;;;3307:49;3373:18;;13319:43:0;;;;;;;;;13375:32;13429:9;13424:796;13440:19;;;13424:796;;;13477:15;13495:8;;13504:1;13495:11;;;;;;;:::i;:::-;13543:8;;:25;;-1:-1:-1;;;13543:25:0;;13495:11;;;;;;;;;;13543:25;;;160::1;;;13495:11:0;-1:-1:-1;13572:10:0;;-1:-1:-1;;;;;13543:8:0;;-1:-1:-1;13543:16:0;;133:18:1;;13543:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13543:39:0;;13535:88;;;;-1:-1:-1;;;13535:88:0;;3992:2:1;13535:88:0;;;3974:21:1;4031:2;4011:18;;;4004:30;4070:34;4050:18;;;4043:62;-1:-1:-1;;;4121:18:1;;;4114:34;4165:19;;13535:88:0;3790:400:1;13535:88:0;13723:8;;:31;;-1:-1:-1;;;13723:31:0;;;;;160:25:1;;;13702:18:0;;-1:-1:-1;;;;;13723:8:0;;:22;;133:18:1;;13723:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13835:8;;:57;;-1:-1:-1;;;13835:57:0;;13857:10;13835:57;;;4624:34:1;13877:4:0;4674:18:1;;;4667:43;4726:18;;;4719:34;;;13702:52:0;;-1:-1:-1;;;;;;13835:8:0;;:21;;4559:18:1;;13835:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;14167:5:0;14154:18;14126:46;;;;;-1:-1:-1;14203:3:0;;13424:796;;;-1:-1:-1;14242:11:0;:30;;;;;;14354:10;;:57;;-1:-1:-1;;;14354:57:0;;14374:10;14354:57;;;4938:51:1;5005:18;;;4998:34;;;-1:-1:-1;;;;;14354:10:0;;;;:19;;4911:18:1;;14354:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14507:10:0;14499:79;14528:49;14552:24;14528:23;:49::i;:::-;14499:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13314:1272;13254:1332;;:::o;14672:370::-;2014:13;:11;:13::i;:::-;14991:43:::1;::::0;-1:-1:-1;;;14991:43:0;;15014:10:::1;14991:43;::::0;::::1;4938:51:1::0;5005:18;;;4998:34;;;14793:13:0;;-1:-1:-1;;;;;14991:22:0;::::1;::::0;::::1;::::0;4911:18:1;;14991:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15226:128::-:0;15311:10;;:35;;-1:-1:-1;;;15311:35:0;;15340:4;15311:35;;;356:51:1;15284:7:0;;-1:-1:-1;;;;;15311:10:0;;:20;;329:18:1;;15311:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15304:42;;15226:128;:::o;3034:201::-;2014:13;:11;:13::i;:::-;-1:-1:-1;;;;;3123:22:0;::::1;3115:73;;;::::0;-1:-1:-1;;;3115:73:0;;5527:2:1;3115:73:0::1;::::0;::::1;5509:21:1::0;5566:2;5546:18;;;5539:30;5605:34;5585:18;;;5578:62;-1:-1:-1;;;5656:18:1;;;5649:36;5702:19;;3115:73:0::1;5325:402:1::0;3115:73:0::1;3199:28;3218:8;3199:18;:28::i;:::-;3034:201:::0;:::o;2293:132::-;2174:7;2201:6;-1:-1:-1;;;;;2201:6:0;759:10;2357:23;2349:68;;;;-1:-1:-1;;;2349:68:0;;5934:2:1;2349:68:0;;;5916:21:1;;;5953:18;;;5946:30;6012:34;5992:18;;;5985:62;6064:18;;2349:68:0;5732:356:1;3395:191:0;3469:16;3488:6;;-1:-1:-1;;;;;3505:17:0;;;-1:-1:-1;;;;;;3505:17:0;;;;;;3538:40;;3488:6;;;;;;;3538:40;;3469:16;3538:40;3458:128;3395:191;:::o;418:180:1:-;477:6;530:2;518:9;509:7;505:23;501:32;498:52;;;546:1;543;536:12;498:52;-1:-1:-1;569:23:1;;418:180;-1:-1:-1;418:180:1:o;603:615::-;689:6;697;750:2;738:9;729:7;725:23;721:32;718:52;;;766:1;763;756:12;718:52;806:9;793:23;835:18;876:2;868:6;865:14;862:34;;;892:1;889;882:12;862:34;930:6;919:9;915:22;905:32;;975:7;968:4;964:2;960:13;956:27;946:55;;997:1;994;987:12;946:55;1037:2;1024:16;1063:2;1055:6;1052:14;1049:34;;;1079:1;1076;1069:12;1049:34;1132:7;1127:2;1117:6;1114:1;1110:14;1106:2;1102:23;1098:32;1095:45;1092:65;;;1153:1;1150;1143:12;1092:65;1184:2;1176:11;;;;;1206:6;;-1:-1:-1;603:615:1;;-1:-1:-1;;;;603:615:1:o;1662:131::-;-1:-1:-1;;;;;1737:31:1;;1727:42;;1717:70;;1783:1;1780;1773:12;1798:315;1866:6;1874;1927:2;1915:9;1906:7;1902:23;1898:32;1895:52;;;1943:1;1940;1933:12;1895:52;1982:9;1969:23;2001:31;2026:5;2001:31;:::i;:::-;2051:5;2103:2;2088:18;;;;2075:32;;-1:-1:-1;;;1798:315:1:o;2310:247::-;2369:6;2422:2;2410:9;2401:7;2397:23;2393:32;2390:52;;;2438:1;2435;2428:12;2390:52;2477:9;2464:23;2496:31;2521:5;2496:31;:::i;:::-;2546:5;2310:247;-1:-1:-1;;;2310:247:1:o;2562:265::-;2602:7;2668:1;2664;2660:6;2656:14;2653:1;2650:21;2645:1;2638:9;2631:17;2627:45;2624:168;;;2714:10;2709:3;2705:20;2702:1;2695:31;2749:4;2746:1;2739:15;2777:4;2774:1;2767:15;2624:168;-1:-1:-1;2812:9:1;;2562:265::o;2832:217::-;2872:1;2898;2888:132;;2942:10;2937:3;2933:20;2930:1;2923:31;2977:4;2974:1;2967:15;3005:4;3002:1;2995:15;2888:132;-1:-1:-1;3034:9:1;;2832:217::o;3402:127::-;3463:10;3458:3;3454:20;3451:1;3444:31;3494:4;3491:1;3484:15;3518:4;3515:1;3508:15;3534:251;3604:6;3657:2;3645:9;3636:7;3632:23;3628:32;3625:52;;;3673:1;3670;3663:12;3625:52;3705:9;3699:16;3724:31;3749:5;3724:31;:::i;4195:184::-;4265:6;4318:2;4306:9;4297:7;4293:23;4289:32;4286:52;;;4334:1;4331;4324:12;4286:52;-1:-1:-1;4357:16:1;;4195:184;-1:-1:-1;4195:184:1:o;5043:277::-;5110:6;5163:2;5151:9;5142:7;5138:23;5134:32;5131:52;;;5179:1;5176;5169:12;5131:52;5211:9;5205:16;5264:5;5257:13;5250:21;5243:5;5240:32;5230:60;;5286:1;5283;5276:12
Swarm Source
ipfs://d24d40313d9a35fecff34c22c922315da48a0332b693d8d45c017347eb16bce3
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,394.12 | 1.1167 | $3,790.11 |
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.