Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,173 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 18842206 | 372 days ago | IN | 0 ETH | 0.00616431 | ||||
Withdraw | 17896276 | 504 days ago | IN | 0 ETH | 0.00178503 | ||||
Withdraw | 17716969 | 529 days ago | IN | 0 ETH | 0.00149322 | ||||
Withdraw | 17636338 | 541 days ago | IN | 0 ETH | 0.00260377 | ||||
Withdraw | 17124678 | 613 days ago | IN | 0 ETH | 0.00609349 | ||||
Withdraw | 16955163 | 637 days ago | IN | 0 ETH | 0.00287315 | ||||
Withdraw | 16952422 | 637 days ago | IN | 0 ETH | 0.00212772 | ||||
Withdraw | 16751719 | 665 days ago | IN | 0 ETH | 0.00279079 | ||||
Withdraw | 16714522 | 671 days ago | IN | 0 ETH | 0.00355412 | ||||
Withdraw | 16661618 | 678 days ago | IN | 0 ETH | 0.00209807 | ||||
Withdraw | 16621035 | 684 days ago | IN | 0 ETH | 0.00513957 | ||||
Withdraw | 16430981 | 710 days ago | IN | 0 ETH | 0.00247772 | ||||
Withdraw | 16319204 | 726 days ago | IN | 0 ETH | 0.00176833 | ||||
Withdraw | 16301726 | 728 days ago | IN | 0 ETH | 0.0019204 | ||||
Withdraw | 16277354 | 732 days ago | IN | 0 ETH | 0.0024973 | ||||
Withdraw | 16201393 | 742 days ago | IN | 0 ETH | 0.00176795 | ||||
Withdraw | 16183340 | 745 days ago | IN | 0 ETH | 0.00182671 | ||||
Withdraw | 16067281 | 761 days ago | IN | 0 ETH | 0.00143587 | ||||
Withdraw | 16058475 | 762 days ago | IN | 0 ETH | 0.00128725 | ||||
Withdraw | 16038415 | 765 days ago | IN | 0 ETH | 0.00148781 | ||||
Withdraw | 15994346 | 771 days ago | IN | 0 ETH | 0.00141436 | ||||
Withdraw | 15973531 | 774 days ago | IN | 0 ETH | 0.00157168 | ||||
Withdraw | 15972789 | 774 days ago | IN | 0 ETH | 0.00351821 | ||||
Withdraw | 15970429 | 775 days ago | IN | 0 ETH | 0.00223964 | ||||
Withdraw | 15948119 | 778 days ago | IN | 0 ETH | 0.0035359 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
VeTokenProxy
Compiler Version
v0.8.6+commit.11564f7e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./VeTokenStorage.sol"; import "./AccessControl.sol"; /** * @title VeTokenCore * @dev Storage for the VeToken is at this address, while execution is delegated to the `veTokenImplementation`. */ contract VeTokenProxy is AccessControl, ProxyStorage { function setPendingImplementation( address newPendingImplementation_ ) public onlyOwner { address oldPendingImplementation = pendingVeTokenImplementation; pendingVeTokenImplementation = newPendingImplementation_; emit NewPendingImplementation(oldPendingImplementation, pendingVeTokenImplementation); } /** * @notice Accepts new implementation of comptroller. msg.sender must be pendingImplementation * @dev Admin function for new implementation to accept it's role as implementation */ function acceptImplementation() public { // Check caller is pendingImplementation and pendingImplementation ≠ address(0) require (msg.sender == pendingVeTokenImplementation && pendingVeTokenImplementation != address(0), "Invalid veTokenImplementation"); // Save current values for inclusion in log address oldImplementation = veTokenImplementation; address oldPendingImplementation = pendingVeTokenImplementation; veTokenImplementation = oldPendingImplementation; pendingVeTokenImplementation = address(0); emit NewImplementation(oldImplementation, veTokenImplementation); emit NewPendingImplementation(oldPendingImplementation, pendingVeTokenImplementation); } /** * @dev Delegates execution to an implementation contract. * It returns to the external caller whatever the implementation returns * or forwards reverts. */ fallback () external payable { // delegate all other functions to current implementation (bool success, ) = veTokenImplementation.delegatecall(msg.data); assembly { let free_mem_ptr := mload(0x40) returndatacopy(free_mem_ptr, 0, returndatasize()) switch success case 0 { revert(free_mem_ptr, returndatasize()) } default { return(free_mem_ptr, returndatasize()) } } } receive () external payable {} function claim (address receiver) external onlyOwner nonReentrant { payable(receiver).transfer(address(this).balance); emit Claim(receiver); } /** * @notice Emitted when pendingComptrollerImplementation is changed */ event NewPendingImplementation(address oldPendingImplementation, address newPendingImplementation); /** * @notice Emitted when pendingComptrollerImplementation is accepted, which means comptroller implementation is updated */ event NewImplementation(address oldImplementation, address newImplementation); /** * @notice Emitted when claim eth in contract */ event Claim(address receiver); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract ProxyStorage { /** * @notice Active brains of VeTokenProxy */ address public veTokenImplementation; /** * @notice Pending brains of VeTokenProxy */ address public pendingVeTokenImplementation; } contract VeTokenStorage is ProxyStorage { address public token; // token uint256 public supply; // veToken // veToken related string public name; string public symbol; string public version; uint256 constant decimals = 18; // score related uint256 public scorePerBlk; uint256 public totalStaked; mapping (address => UserInfo) internal userInfo; PoolInfo public poolInfo; uint256 public startBlk; // start Blk uint256 public clearBlk; // set annually // User variables struct UserInfo { uint256 amount; // How many tokens the user has provided. uint256 score; // score exclude pending amount uint256 scoreDebt; // score debt uint256 lastUpdateBlk; // last user's tx Blk } // Pool variables struct PoolInfo { uint256 lastUpdateBlk; // Last block number that score distribution occurs. uint256 accScorePerToken; // Accumulated socres per token, times 1e12. } address public smartWalletChecker; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; // import "./Sig.sol"; contract AccessControl is Ownable, ReentrancyGuard { using SafeMath for uint256; // event ContractUpgrade(address newContract); event SetProxy(address proxy); event AdminTransferred(address oldAdmin, address newAdmin); event FlipStakableState(bool stakeIsActive); event FlipClaimableState(bool claimIsActive); event TransferAdmin(address oldAdmin, address newAdmin); address private _admin; address public proxy; bool public stakeIsActive = true; bool public claimIsActive = true; address public constant ZERO_ADDRESS = address(0); constructor() { _setAdmin(_msgSender()); } // function verified(bytes32 hash, bytes memory signature) public view returns (bool){ // return admin() == Sig.recover(hash, signature); // } /** * @dev Returns the address of the current admin. */ function admin() public view virtual returns (address) { return _admin; } /** * @dev Throws if called by any account other than the admin. */ modifier onlyAdmin() { require(admin() == _msgSender(), "Invalid Admin: caller is not the admin"); _; } function _setAdmin(address newAdmin) private { address oldAdmin = _admin; _admin = newAdmin; emit AdminTransferred(oldAdmin, newAdmin); } function setProxy(address _proxy) external onlyOwner { require(_proxy != address(0), "Invalid Address"); proxy = _proxy; emit SetProxy(_proxy); } modifier onlyProxy() { require(proxy == _msgSender(), "Not Permit: caller is not the proxy"); _; } // modifier sigVerified(bytes memory signature) { // require(verified(Sig.ethSignedHash(msg.sender), signature), "Not verified"); // _; // } modifier activeStake() { require(stakeIsActive, "Unstakable"); _; } modifier activeClaim() { require(claimIsActive, "Unclaimable"); _; } modifier notZeroAddr(address addr_) { require(addr_ != ZERO_ADDRESS, "Zero address"); _; } /** * @dev Transfers ownership of the contract to a new account (`newAdmin`). * Can only be called by the current admin. */ function transferAdmin(address newAdmin) external virtual onlyOwner { require(newAdmin != address(0), "Invalid Admin: new admin is the zero address"); address oldAdmin = admin(); _setAdmin(newAdmin); emit TransferAdmin(oldAdmin, newAdmin); } /* * Pause sale if active, make active if paused */ function flipStakableState() external onlyOwner { stakeIsActive = !stakeIsActive; emit FlipStakableState(stakeIsActive); } function flipClaimableState() external onlyOwner { claimIsActive = !claimIsActive; emit FlipClaimableState(claimIsActive); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (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; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"claimIsActive","type":"bool"}],"name":"FlipClaimableState","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"stakeIsActive","type":"bool"}],"name":"FlipStakableState","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"NewPendingImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"proxy","type":"address"}],"name":"SetProxy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"TransferAdmin","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"ZERO_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipClaimableState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipStakableState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVeTokenImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingImplementation_","type":"address"}],"name":"setPendingImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proxy","type":"address"}],"name":"setProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"veTokenImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526003805461ffff60a01b191661010160a01b17905534801561002557600080fd5b5061002f33610041565b6001805561003c33610091565b6100f2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec6910160405180910390a15050565b610b3e806101016000396000f3fe6080604052600436106101025760003560e01c80638da5cb5b11610095578063cdc9fe8111610064578063cdc9fe81146102fb578063e332f76c1461031c578063ec5568891461033c578063f2fde38b1461035c578063f851a4401461037c57610109565b80638da5cb5b1461028857806397107d6d146102a65780639cbe0bac146102c6578063c9f88602146102e657610109565b80635303f68c116100d15780635303f68c146101f0578063538ba4f914610226578063715018a61461025357806375829def1461026857610109565b806309ed43c91461018457806315ba56e5146101a65780631e83409a146101bb5780635006f20a146101db57610109565b3661010957005b6004546040516000916001600160a01b0316906101299083903690610ac3565b600060405180830381855af49150503d8060008114610164576040519150601f19603f3d011682016040523d82523d6000602084013e610169565b606091505b505090506040513d6000823e818015610180573d82f35b3d82fd5b34801561019057600080fd5b506101a461019f366004610a93565b61039a565b005b3480156101b257600080fd5b506101a461042f565b3480156101c757600080fd5b506101a46101d6366004610a93565b61054d565b3480156101e757600080fd5b506101a4610648565b3480156101fc57600080fd5b5060035461021190600160a81b900460ff1681565b60405190151581526020015b60405180910390f35b34801561023257600080fd5b5061023b600081565b6040516001600160a01b03909116815260200161021d565b34801561025f57600080fd5b506101a46106d8565b34801561027457600080fd5b506101a4610283366004610a93565b61070e565b34801561029457600080fd5b506000546001600160a01b031661023b565b3480156102b257600080fd5b506101a46102c1366004610a93565b610802565b3480156102d257600080fd5b5060045461023b906001600160a01b031681565b3480156102f257600080fd5b506101a46108c8565b34801561030757600080fd5b5060035461021190600160a01b900460ff1681565b34801561032857600080fd5b5060055461023b906001600160a01b031681565b34801561034857600080fd5b5060035461023b906001600160a01b031681565b34801561036857600080fd5b506101a4610377366004610a93565b61094e565b34801561038857600080fd5b506002546001600160a01b031661023b565b6000546001600160a01b031633146103cd5760405162461bcd60e51b81526004016103c490610ad3565b60405180910390fd5b600580546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d81591015b60405180910390a15050565b6005546001600160a01b03163314801561045357506005546001600160a01b031615155b61049f5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964207665546f6b656e496d706c656d656e746174696f6e00000060448201526064016103c4565b60048054600580546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a1600554604080516001600160a01b03808516825290921660208301527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159101610423565b6000546001600160a01b031633146105775760405162461bcd60e51b81526004016103c490610ad3565b600260015414156105ca5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c4565b60026001556040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610604573d6000803e3d6000fd5b506040516001600160a01b03821681527f0c7ef932d3b91976772937f18d5ef9b39a9930bef486b576c374f047c4b512dc9060200160405180910390a15060018055565b6000546001600160a01b031633146106725760405162461bcd60e51b81526004016103c490610ad3565b6003805460ff600160a81b808304821615810260ff60a81b1990931692909217928390556040517f827a83f81842e4c7fa9d447ca1fc0e0d7c4bc6b60cabf83cdde948cfb4932d50936106ce9390049091161515815260200190565b60405180910390a1565b6000546001600160a01b031633146107025760405162461bcd60e51b81526004016103c490610ad3565b61070c60006109e9565b565b6000546001600160a01b031633146107385760405162461bcd60e51b81526004016103c490610ad3565b6001600160a01b0381166107a35760405162461bcd60e51b815260206004820152602c60248201527f496e76616c69642041646d696e3a206e65772061646d696e206973207468652060448201526b7a65726f206164647265737360a01b60648201526084016103c4565b60006107b76002546001600160a01b031690565b90506107c282610a39565b604080516001600160a01b038084168252841660208201527fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf809101610423565b6000546001600160a01b0316331461082c5760405162461bcd60e51b81526004016103c490610ad3565b6001600160a01b0381166108745760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204164647265737360881b60448201526064016103c4565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527ff4066171617f5d61ac4da44ac0fab5d792cc1b1487e75c0da985a37a8d787f4c9060200160405180910390a150565b6000546001600160a01b031633146108f25760405162461bcd60e51b81526004016103c490610ad3565b6003805460ff600160a01b808304821615810260ff60a01b1990931692909217928390556040517f6acb9b88fb1eb0148ffc7bef76ba38d23c83428edc034c9e11fef7964e5b275e936106ce9390049091161515815260200190565b6000546001600160a01b031633146109785760405162461bcd60e51b81526004016103c490610ad3565b6001600160a01b0381166109dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c4565b6109e6816109e9565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec69101610423565b600060208284031215610aa557600080fd5b81356001600160a01b0381168114610abc57600080fd5b9392505050565b8183823760009101908152919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220603f78fea16d583fdb36c35168cf81b5ed3445e6318b18e2918ebb5a4101dc8f64736f6c63430008060033
Deployed Bytecode
0x6080604052600436106101025760003560e01c80638da5cb5b11610095578063cdc9fe8111610064578063cdc9fe81146102fb578063e332f76c1461031c578063ec5568891461033c578063f2fde38b1461035c578063f851a4401461037c57610109565b80638da5cb5b1461028857806397107d6d146102a65780639cbe0bac146102c6578063c9f88602146102e657610109565b80635303f68c116100d15780635303f68c146101f0578063538ba4f914610226578063715018a61461025357806375829def1461026857610109565b806309ed43c91461018457806315ba56e5146101a65780631e83409a146101bb5780635006f20a146101db57610109565b3661010957005b6004546040516000916001600160a01b0316906101299083903690610ac3565b600060405180830381855af49150503d8060008114610164576040519150601f19603f3d011682016040523d82523d6000602084013e610169565b606091505b505090506040513d6000823e818015610180573d82f35b3d82fd5b34801561019057600080fd5b506101a461019f366004610a93565b61039a565b005b3480156101b257600080fd5b506101a461042f565b3480156101c757600080fd5b506101a46101d6366004610a93565b61054d565b3480156101e757600080fd5b506101a4610648565b3480156101fc57600080fd5b5060035461021190600160a81b900460ff1681565b60405190151581526020015b60405180910390f35b34801561023257600080fd5b5061023b600081565b6040516001600160a01b03909116815260200161021d565b34801561025f57600080fd5b506101a46106d8565b34801561027457600080fd5b506101a4610283366004610a93565b61070e565b34801561029457600080fd5b506000546001600160a01b031661023b565b3480156102b257600080fd5b506101a46102c1366004610a93565b610802565b3480156102d257600080fd5b5060045461023b906001600160a01b031681565b3480156102f257600080fd5b506101a46108c8565b34801561030757600080fd5b5060035461021190600160a01b900460ff1681565b34801561032857600080fd5b5060055461023b906001600160a01b031681565b34801561034857600080fd5b5060035461023b906001600160a01b031681565b34801561036857600080fd5b506101a4610377366004610a93565b61094e565b34801561038857600080fd5b506002546001600160a01b031661023b565b6000546001600160a01b031633146103cd5760405162461bcd60e51b81526004016103c490610ad3565b60405180910390fd5b600580546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d81591015b60405180910390a15050565b6005546001600160a01b03163314801561045357506005546001600160a01b031615155b61049f5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964207665546f6b656e496d706c656d656e746174696f6e00000060448201526064016103c4565b60048054600580546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a1600554604080516001600160a01b03808516825290921660208301527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159101610423565b6000546001600160a01b031633146105775760405162461bcd60e51b81526004016103c490610ad3565b600260015414156105ca5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c4565b60026001556040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610604573d6000803e3d6000fd5b506040516001600160a01b03821681527f0c7ef932d3b91976772937f18d5ef9b39a9930bef486b576c374f047c4b512dc9060200160405180910390a15060018055565b6000546001600160a01b031633146106725760405162461bcd60e51b81526004016103c490610ad3565b6003805460ff600160a81b808304821615810260ff60a81b1990931692909217928390556040517f827a83f81842e4c7fa9d447ca1fc0e0d7c4bc6b60cabf83cdde948cfb4932d50936106ce9390049091161515815260200190565b60405180910390a1565b6000546001600160a01b031633146107025760405162461bcd60e51b81526004016103c490610ad3565b61070c60006109e9565b565b6000546001600160a01b031633146107385760405162461bcd60e51b81526004016103c490610ad3565b6001600160a01b0381166107a35760405162461bcd60e51b815260206004820152602c60248201527f496e76616c69642041646d696e3a206e65772061646d696e206973207468652060448201526b7a65726f206164647265737360a01b60648201526084016103c4565b60006107b76002546001600160a01b031690565b90506107c282610a39565b604080516001600160a01b038084168252841660208201527fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf809101610423565b6000546001600160a01b0316331461082c5760405162461bcd60e51b81526004016103c490610ad3565b6001600160a01b0381166108745760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204164647265737360881b60448201526064016103c4565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527ff4066171617f5d61ac4da44ac0fab5d792cc1b1487e75c0da985a37a8d787f4c9060200160405180910390a150565b6000546001600160a01b031633146108f25760405162461bcd60e51b81526004016103c490610ad3565b6003805460ff600160a01b808304821615810260ff60a01b1990931692909217928390556040517f6acb9b88fb1eb0148ffc7bef76ba38d23c83428edc034c9e11fef7964e5b275e936106ce9390049091161515815260200190565b6000546001600160a01b031633146109785760405162461bcd60e51b81526004016103c490610ad3565b6001600160a01b0381166109dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c4565b6109e6816109e9565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec69101610423565b600060208284031215610aa557600080fd5b81356001600160a01b0381168114610abc57600080fd5b9392505050565b8183823760009101908152919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220603f78fea16d583fdb36c35168cf81b5ed3445e6318b18e2918ebb5a4101dc8f64736f6c63430008060033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.004932 | 1,331,374.4881 | $6,566.18 |
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.