More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 44 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Un Stake | 16932820 | 500 days ago | IN | 0 ETH | 0.00213965 | ||||
Stake | 16027057 | 627 days ago | IN | 0 ETH | 0.00472651 | ||||
Stake | 15837391 | 653 days ago | IN | 0 ETH | 0.00179541 | ||||
Stake | 15837385 | 653 days ago | IN | 0 ETH | 0.00175437 | ||||
Stake | 15835943 | 653 days ago | IN | 0 ETH | 0.00180127 | ||||
Un Stake | 15832396 | 654 days ago | IN | 0 ETH | 0.00113741 | ||||
Un Stake | 15832393 | 654 days ago | IN | 0 ETH | 0.00106296 | ||||
Un Stake | 15828569 | 655 days ago | IN | 0 ETH | 0.0008799 | ||||
Stake | 15823603 | 655 days ago | IN | 0 ETH | 0.00225847 | ||||
Stake | 15795023 | 659 days ago | IN | 0 ETH | 0.00404638 | ||||
Stake | 15779894 | 661 days ago | IN | 0 ETH | 0.00215787 | ||||
Un Stake | 15752135 | 665 days ago | IN | 0 ETH | 0.00132132 | ||||
Stake | 15751723 | 665 days ago | IN | 0 ETH | 0.00398878 | ||||
Stake | 15744103 | 666 days ago | IN | 0 ETH | 0.00242071 | ||||
Un Stake | 15714915 | 670 days ago | IN | 0 ETH | 0.0022906 | ||||
Stake | 15695983 | 673 days ago | IN | 0 ETH | 0.00108169 | ||||
Stake | 15694555 | 673 days ago | IN | 0 ETH | 0.0015874 | ||||
Stake | 15680968 | 675 days ago | IN | 0 ETH | 0.00088865 | ||||
Stake | 15674944 | 676 days ago | IN | 0 ETH | 0.00595428 | ||||
Stake | 15674932 | 676 days ago | IN | 0 ETH | 0.00273121 | ||||
Stake | 15674869 | 676 days ago | IN | 0 ETH | 0.00206988 | ||||
Stake | 15660415 | 678 days ago | IN | 0 ETH | 0.0007374 | ||||
Stake | 15652680 | 679 days ago | IN | 0 ETH | 0.0011705 | ||||
Stake | 15647563 | 680 days ago | IN | 0 ETH | 0.00542505 | ||||
Stake | 15644807 | 680 days ago | IN | 0 ETH | 0.00216022 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
StakeContract
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// :- // // // // // /\ // // /=*\ // // -+ -#.\ // // #. =#*=\ // // /\ -+ @ // // // /* .# *:./. // // :# .+==+. *-=%\ // // += +=+ =*#.// // // :# . +-\ // // :. %. ::@@@@@@:: .# \ // // -@@@@@@@@@@@@%#. :::: %*-=* :+%@@@@@@@@@@@%+. -**%. +@@@@@@@@@@@@%* :::. @@: // // =@@@@####%@@@@- =@@@+ -+ . :#@@@@@@@@@@@@@@@@@#: -* +@@@@####%@@@@. =@@@= @@: // // %@@@= +@@@% %@@@ == +@@@@@@@@@@@@@@@@@@@@@*. %. .@@@@- #@@@# @@@% +@@@. // // -@@@% :+#@: +@@@= :* *@@@ COOL SKULL CLUB @@@%.* *@@@# -+%@. +@@@= @@@% // // %@@@= :#######: .####### : .@@@@ #+@@@@@@@@@@@@@@@@@@@@@@@@@#%. .@@@@: .@@@% :###: :###: *@@@+####: // // =@@@% =@@@@@@@@@@# *@@@@@@@@@@+ +@@@- .@@@@@@@@@@@@@@@@@@@@@@@@@@@= *@@@* *@@@- %@@@ :@@@*.@@@@@@@@@@@: // // .@@@@- .@@@%...+@@@=:@@@*...%@@@:.@@@# @@@@@%@@@@@@@@@@@@@@@@@@@@% .@@@@. .@@@# =@@@= %@@@.*@@@-..-@@@% // // +@@@% := *@@@- @@@@ %@@@. :@@@# *@@@: *@@@@=-----#@@@#-----%@@@@* #@@@* :- *@@@: %@@@ -@@@*.@@@# *@@@= // // .@@@@: +#@@*.@@@# +@@@==@@@+ #@@@:.@@@# .*@@= :@@@ \,/ *@@*. -@@@@. +#@@+ :@@@# =@@@= %@@@ *@@@. :@@@% // // +@@@* -@@@@:*@@@: .@@@% %@@@ -@@@* #@@@: @@+ .*@@@- /'\ #@@ #@@@+ +@@@@. #@@@: @@@@ -@@@=:@@@* #@@@: // // @@@@@%%%%@@@@+ @@@@###%@@@:-@@@@###@@@@.:@@@@. =@@@#**++@@-#=@@%***%@@@= .@@@@@%%%%@@@@= -@@@@.=@@@@%%%@@@@ #@@@%##%@@@+ // // -*#########*- +########*: .*########+. +####*: *@@@@@@@@. * :@@@@@@@@* =*#########+: +####*=*###**%@@%-:########*=. // // .=+:=@@@@@@%@@@@=-+=. // // @@@@@@@@@@@ // // *@@@@@@@@@* // // /SKULL/ // // // // // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // @title : CoolSkullClubStaking // @version: 1.0 // @description: Cool Skull Club Staking for the Ethereum Ecosystem // @license: MIT // @developer: @0xKayaoglu - kayaoglu.eth // @artist: @0xRuhsten - ruhsten.eth // @advisor: @cipekci - canipekci.eth // @community: @thepunktum - punktum pragma solidity ^0.8.13; import "./ERC721A/IERC721A.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; contract StakeContract is ReentrancyGuard { address private CONTRACT_WALLET = address(this); struct StakedToken { address staker; address skullType; uint256 tokenId; } struct Staker { uint256 amountStaked; StakedToken[] stakedTokens; } mapping ( address => mapping(address => Staker)) public stakers; mapping ( address => mapping(uint256 => address)) public stakerAddress; function _stake( address _owner, address _contract, uint256 _tokenId ) public { require( IERC721A(_contract).ownerOf(_tokenId) == _owner, "You don't own this token!" ); IERC721A(_contract).transferFrom( _owner, CONTRACT_WALLET, _tokenId ); StakedToken memory stakedToken = StakedToken(_owner, _contract, _tokenId); stakers[_owner][_contract].stakedTokens.push(stakedToken); stakers[_owner][_contract].amountStaked++; stakerAddress[_contract][_tokenId] = _owner; } function _unstake( address _owner, address _contract, uint256 _tokenId ) public { require( stakers[_owner][_contract].amountStaked > 0, "You have no tokens staked" ); require(stakerAddress[_contract][_tokenId] == _owner, "You don't own this token!"); uint256 index = 0; for (uint256 i = 0; i < stakers[_owner][_contract].stakedTokens.length; i++) { if ( stakers[_owner][_contract].stakedTokens[i].tokenId == _tokenId && stakers[_owner][_contract].stakedTokens[i].staker != address(0) ) { index = i; break; } } stakers[_owner][_contract].stakedTokens[index].staker = address(0); stakers[_owner][_contract].amountStaked--; stakerAddress[_contract][_tokenId] = address(0); IERC721A(_contract).transferFrom( CONTRACT_WALLET, _owner, _tokenId ); } function Stake( address _contract, uint256[] memory _tokenIds ) external nonReentrant { for (uint256 i = 0; i < _tokenIds.length; ++i) { _stake(msg.sender, _contract, _tokenIds[i]); } } function UnStake( address _contract, uint256[] memory _tokenIds ) external nonReentrant { for (uint256 i = 0; i < _tokenIds.length; ++i) { _unstake(msg.sender, _contract, _tokenIds[i]); } } function getStakedTokens(address _user, address _contract) public view returns (StakedToken[] memory) { if (stakers[_user][_contract].amountStaked > 0) { StakedToken[] memory _stakedTokens = new StakedToken[](stakers[_user][_contract].amountStaked); uint256 _index = 0; for (uint256 j = 0; j < stakers[_user][_contract].stakedTokens.length; j++) { if (stakers[_user][_contract].stakedTokens[j].staker != (address(0))) { _stakedTokens[_index] = stakers[_user][_contract].stakedTokens[j]; _index++; } } return _stakedTokens; } else { return new StakedToken[](0); } } }
// SPDX-License-Identifier: MIT // ERC721A Contracts v4.2.0 // Creator: Chiru Labs pragma solidity ^0.8.4; /** * @dev Interface of ERC721A. */ interface IERC721A { /** * The caller must own the token or be an approved operator. */ error ApprovalCallerNotOwnerNorApproved(); /** * The token does not exist. */ error ApprovalQueryForNonexistentToken(); /** * The caller cannot approve to their own address. */ error ApproveToCaller(); /** * Cannot query the balance for the zero address. */ error BalanceQueryForZeroAddress(); /** * Cannot mint to the zero address. */ error MintToZeroAddress(); /** * The quantity of tokens minted must be more than zero. */ error MintZeroQuantity(); /** * The token does not exist. */ error OwnerQueryForNonexistentToken(); /** * The caller must own the token or be an approved operator. */ error TransferCallerNotOwnerNorApproved(); /** * The token must be owned by `from`. */ error TransferFromIncorrectOwner(); /** * Cannot safely transfer to a contract that does not implement the * ERC721Receiver interface. */ error TransferToNonERC721ReceiverImplementer(); /** * Cannot transfer to the zero address. */ error TransferToZeroAddress(); /** * The token does not exist. */ error URIQueryForNonexistentToken(); /** * The `quantity` minted with ERC2309 exceeds the safety limit. */ error MintERC2309QuantityExceedsLimit(); /** * The `extraData` cannot be set on an unintialized ownership slot. */ error OwnershipNotInitializedForExtraData(); // ============================================================= // STRUCTS // ============================================================= struct TokenOwnership { // The address of the owner. address addr; // Stores the start time of ownership with minimal overhead for tokenomics. uint64 startTimestamp; // Whether the token has been burned. bool burned; // Arbitrary data similar to `startTimestamp` that can be set via {_extraData}. uint24 extraData; } // ============================================================= // TOKEN COUNTERS // ============================================================= /** * @dev Returns the total number of tokens in existence. * Burned tokens will reduce the count. * To get the total number of tokens minted, please see {_totalMinted}. */ function totalSupply() external view returns (uint256); // ============================================================= // IERC165 // ============================================================= /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) * to learn more about how these ids are created. * * This function call must use less than 30000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); // ============================================================= // IERC721 // ============================================================= /** * @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`, * 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 be 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, bytes calldata data ) external; /** * @dev Equivalent to `safeTransferFrom(from, to, tokenId, '')`. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} * whenever possible. * * 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); // ============================================================= // IERC721Metadata // ============================================================= /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); // ============================================================= // IERC2309 // ============================================================= /** * @dev Emitted when tokens in `fromTokenId` to `toTokenId` * (inclusive) is transferred from `from` to `to`, as defined in the * [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. * * See {_mintERC2309} for more details. */ event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
{ "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":"_contract","type":"address"},{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"Stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"UnStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_contract","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"_stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_contract","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"_unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_contract","type":"address"}],"name":"getStakedTokens","outputs":[{"components":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"skullType","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct StakeContract.StakedToken[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"stakers","outputs":[{"internalType":"uint256","name":"amountStaked","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600180546001600160a01b0319163017905534801561002257600080fd5b506001600055610cfc806100376000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063bd6539041161005b578063bd653904146100fb578063c24daf961461010e578063e8f5063314610121578063fd9d142a1461015a57600080fd5b806309d463f314610082578063b34305e6146100d3578063b8a487b0146100e8575b600080fd5b6100b6610090366004610a52565b60036020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e66100e1366004610a94565b61017a565b005b6100e66100f6366004610b67565b610220565b6100e6610109366004610a94565b610428565b6100e661011c366004610b67565b6104bf565b61014c61012f366004610ba8565b600260209081526000928352604080842090915290825290205481565b6040519081526020016100ca565b61016d610168366004610ba8565b6107d7565b6040516100ca9190610be1565b6002600054036101d15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081555b81518110156102165761020633848484815181106101f9576101f9610c46565b60200260200101516104bf565b61020f81610c72565b90506101d9565b5050600160005550565b6040516331a9108f60e11b8152600481018290526001600160a01b038085169190841690636352211e90602401602060405180830381865afa15801561026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028e9190610c8b565b6001600160a01b0316146102e05760405162461bcd60e51b8152602060048201526019602482015278596f7520646f6e2774206f776e207468697320746f6b656e2160381b60448201526064016101c8565b6001546040516323b872dd60e01b81526001600160a01b038581166004830152918216602482015260448101839052908316906323b872dd90606401600060405180830381600087803b15801561033657600080fd5b505af115801561034a573d6000803e3d6000fd5b5050604080516060810182526001600160a01b0380881680835287821660208085018281528587018a8152600094855260028084528886208587528085529886206001808201805480830182559089528689208b516003909202018054918b166001600160a01b03199283161781559551918601805492909a169116179097559051910155908252939093528054919450909250906103e883610c72565b9091555050506001600160a01b039182166000908152600360209081526040808320938352929052208054919092166001600160a01b0319909116179055565b60026000540361047a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101c8565b600260009081555b8151811015610216576104af33848484815181106104a2576104a2610c46565b6020026020010151610220565b6104b881610c72565b9050610482565b6001600160a01b038084166000908152600260209081526040808320938616835292905220546105315760405162461bcd60e51b815260206004820152601960248201527f596f752068617665206e6f20746f6b656e73207374616b65640000000000000060448201526064016101c8565b6001600160a01b0382811660009081526003602090815260408083208584529091529020548116908416146105a45760405162461bcd60e51b8152602060048201526019602482015278596f7520646f6e2774206f776e207468697320746f6b656e2160381b60448201526064016101c8565b6000805b6001600160a01b038086166000908152600260209081526040808320938816835292905220600101548110156106a7576001600160a01b03808616600090815260026020908152604080832093881683529290522060010180548491908390811061061557610615610c46565b90600052602060002090600302016002015414801561068857506001600160a01b038581166000908152600260209081526040808320938816835292905290812060010180548390811061066b5761066b610c46565b60009182526020909120600390910201546001600160a01b031614155b15610695578091506106a7565b8061069f81610c72565b9150506105a8565b506001600160a01b03808516600090815260026020908152604080832093871683529290529081206001018054839081106106e4576106e4610c46565b6000918252602080832060039290920290910180546001600160a01b0319166001600160a01b039485161790558683168252600281526040808320938716835292905290812080549161073683610caf565b90915550506001600160a01b0383811660008181526003602090815260408083208784529091529081902080546001600160a01b031916905560015490516323b872dd60e01b81529083166004820152918616602483015260448201849052906323b872dd90606401600060405180830381600087803b1580156107b957600080fd5b505af11580156107cd573d6000803e3d6000fd5b5050505050505050565b6001600160a01b03808316600090815260026020908152604080832093851683529290522054606090156109ed576001600160a01b03808416600090815260026020908152604080832093861683529290529081205467ffffffffffffffff81111561084557610845610a7e565b60405190808252806020026020018201604052801561089057816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816108635790505b5090506000805b6001600160a01b038087166000908152600260209081526040808320938916835292905220600101548110156109e2576001600160a01b038681166000908152600260209081526040808320938916835292905290812060010180548390811061090357610903610c46565b60009182526020909120600390910201546001600160a01b0316146109d0576001600160a01b03808716600090815260026020908152604080832093891683529290522060010180548290811061095c5761095c610c46565b600091825260209182902060408051606081018252600390930290910180546001600160a01b039081168452600182015416938301939093526002909201549181019190915283518490849081106109b6576109b6610c46565b602002602001018190525081806109cc90610c72565b9250505b806109da81610c72565b915050610897565b508192505050610a34565b6040805160008082526020820190925290610a30565b6040805160608101825260008082526020808301829052928201528252600019909201910181610a035790505b5090505b92915050565b6001600160a01b0381168114610a4f57600080fd5b50565b60008060408385031215610a6557600080fd5b8235610a7081610a3a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610aa757600080fd5b8235610ab281610a3a565b915060208381013567ffffffffffffffff80821115610ad057600080fd5b818601915086601f830112610ae457600080fd5b813581811115610af657610af6610a7e565b8060051b604051601f19603f83011681018181108582111715610b1b57610b1b610a7e565b604052918252848201925083810185019189831115610b3957600080fd5b938501935b82851015610b5757843584529385019392850192610b3e565b8096505050505050509250929050565b600080600060608486031215610b7c57600080fd5b8335610b8781610a3a565b92506020840135610b9781610a3a565b929592945050506040919091013590565b60008060408385031215610bbb57600080fd5b8235610bc681610a3a565b91506020830135610bd681610a3a565b809150509250929050565b602080825282518282018190526000919060409081850190868401855b82811015610c3957815180516001600160a01b0390811686528782015116878601528501518585015260609093019290850190600101610bfe565b5091979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610c8457610c84610c5c565b5060010190565b600060208284031215610c9d57600080fd5b8151610ca881610a3a565b9392505050565b600081610cbe57610cbe610c5c565b50600019019056fea2646970667358221220cdd436a28f5b53dc5b29410eafdd0ccb5f05fcf0b7f23dbceaae7f2440d5ddd764736f6c634300080d0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063bd6539041161005b578063bd653904146100fb578063c24daf961461010e578063e8f5063314610121578063fd9d142a1461015a57600080fd5b806309d463f314610082578063b34305e6146100d3578063b8a487b0146100e8575b600080fd5b6100b6610090366004610a52565b60036020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e66100e1366004610a94565b61017a565b005b6100e66100f6366004610b67565b610220565b6100e6610109366004610a94565b610428565b6100e661011c366004610b67565b6104bf565b61014c61012f366004610ba8565b600260209081526000928352604080842090915290825290205481565b6040519081526020016100ca565b61016d610168366004610ba8565b6107d7565b6040516100ca9190610be1565b6002600054036101d15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081555b81518110156102165761020633848484815181106101f9576101f9610c46565b60200260200101516104bf565b61020f81610c72565b90506101d9565b5050600160005550565b6040516331a9108f60e11b8152600481018290526001600160a01b038085169190841690636352211e90602401602060405180830381865afa15801561026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028e9190610c8b565b6001600160a01b0316146102e05760405162461bcd60e51b8152602060048201526019602482015278596f7520646f6e2774206f776e207468697320746f6b656e2160381b60448201526064016101c8565b6001546040516323b872dd60e01b81526001600160a01b038581166004830152918216602482015260448101839052908316906323b872dd90606401600060405180830381600087803b15801561033657600080fd5b505af115801561034a573d6000803e3d6000fd5b5050604080516060810182526001600160a01b0380881680835287821660208085018281528587018a8152600094855260028084528886208587528085529886206001808201805480830182559089528689208b516003909202018054918b166001600160a01b03199283161781559551918601805492909a169116179097559051910155908252939093528054919450909250906103e883610c72565b9091555050506001600160a01b039182166000908152600360209081526040808320938352929052208054919092166001600160a01b0319909116179055565b60026000540361047a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101c8565b600260009081555b8151811015610216576104af33848484815181106104a2576104a2610c46565b6020026020010151610220565b6104b881610c72565b9050610482565b6001600160a01b038084166000908152600260209081526040808320938616835292905220546105315760405162461bcd60e51b815260206004820152601960248201527f596f752068617665206e6f20746f6b656e73207374616b65640000000000000060448201526064016101c8565b6001600160a01b0382811660009081526003602090815260408083208584529091529020548116908416146105a45760405162461bcd60e51b8152602060048201526019602482015278596f7520646f6e2774206f776e207468697320746f6b656e2160381b60448201526064016101c8565b6000805b6001600160a01b038086166000908152600260209081526040808320938816835292905220600101548110156106a7576001600160a01b03808616600090815260026020908152604080832093881683529290522060010180548491908390811061061557610615610c46565b90600052602060002090600302016002015414801561068857506001600160a01b038581166000908152600260209081526040808320938816835292905290812060010180548390811061066b5761066b610c46565b60009182526020909120600390910201546001600160a01b031614155b15610695578091506106a7565b8061069f81610c72565b9150506105a8565b506001600160a01b03808516600090815260026020908152604080832093871683529290529081206001018054839081106106e4576106e4610c46565b6000918252602080832060039290920290910180546001600160a01b0319166001600160a01b039485161790558683168252600281526040808320938716835292905290812080549161073683610caf565b90915550506001600160a01b0383811660008181526003602090815260408083208784529091529081902080546001600160a01b031916905560015490516323b872dd60e01b81529083166004820152918616602483015260448201849052906323b872dd90606401600060405180830381600087803b1580156107b957600080fd5b505af11580156107cd573d6000803e3d6000fd5b5050505050505050565b6001600160a01b03808316600090815260026020908152604080832093851683529290522054606090156109ed576001600160a01b03808416600090815260026020908152604080832093861683529290529081205467ffffffffffffffff81111561084557610845610a7e565b60405190808252806020026020018201604052801561089057816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816108635790505b5090506000805b6001600160a01b038087166000908152600260209081526040808320938916835292905220600101548110156109e2576001600160a01b038681166000908152600260209081526040808320938916835292905290812060010180548390811061090357610903610c46565b60009182526020909120600390910201546001600160a01b0316146109d0576001600160a01b03808716600090815260026020908152604080832093891683529290522060010180548290811061095c5761095c610c46565b600091825260209182902060408051606081018252600390930290910180546001600160a01b039081168452600182015416938301939093526002909201549181019190915283518490849081106109b6576109b6610c46565b602002602001018190525081806109cc90610c72565b9250505b806109da81610c72565b915050610897565b508192505050610a34565b6040805160008082526020820190925290610a30565b6040805160608101825260008082526020808301829052928201528252600019909201910181610a035790505b5090505b92915050565b6001600160a01b0381168114610a4f57600080fd5b50565b60008060408385031215610a6557600080fd5b8235610a7081610a3a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610aa757600080fd5b8235610ab281610a3a565b915060208381013567ffffffffffffffff80821115610ad057600080fd5b818601915086601f830112610ae457600080fd5b813581811115610af657610af6610a7e565b8060051b604051601f19603f83011681018181108582111715610b1b57610b1b610a7e565b604052918252848201925083810185019189831115610b3957600080fd5b938501935b82851015610b5757843584529385019392850192610b3e565b8096505050505050509250929050565b600080600060608486031215610b7c57600080fd5b8335610b8781610a3a565b92506020840135610b9781610a3a565b929592945050506040919091013590565b60008060408385031215610bbb57600080fd5b8235610bc681610a3a565b91506020830135610bd681610a3a565b809150509250929050565b602080825282518282018190526000919060409081850190868401855b82811015610c3957815180516001600160a01b0390811686528782015116878601528501518585015260609093019290850190600101610bfe565b5091979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610c8457610c84610c5c565b5060010190565b600060208284031215610c9d57600080fd5b8151610ca881610a3a565b9392505050565b600081610cbe57610cbe610c5c565b50600019019056fea2646970667358221220cdd436a28f5b53dc5b29410eafdd0ccb5f05fcf0b7f23dbceaae7f2440d5ddd764736f6c634300080d0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.