Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Initialize | 11498745 | 1520 days ago | IN | 0 ETH | 0.00735241 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
FeeDistributorProxy
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-21 */ // File: @openzeppelin/contracts-ethereum-package/contracts/Initializable.sol pragma solidity >=0.4.24 <0.7.0; /** * @title Initializable * * @dev Helper contract to support initializer functions. To use it, replace * the constructor with a function that has the `initializer` modifier. * WARNING: Unlike constructors, initializer functions must be manually * invoked. This applies both to deploying an Initializable contract, as well * as extending an Initializable contract via inheritance. * WARNING: When used with inheritance, manual care must be taken to not invoke * a parent initializer twice, or ensure that all initializers are idempotent, * because this is not dealt with automatically as with constructors. */ contract Initializable { /** * @dev Indicates that the contract has been initialized. */ bool private initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private initializing; /** * @dev Modifier to use in the initializer function of a contract. */ modifier initializer() { require( initializing || isConstructor() || !initialized, "Contract instance has already been initialized" ); bool isTopLevelCall = !initializing; if (isTopLevelCall) { initializing = true; initialized = true; } _; if (isTopLevelCall) { initializing = false; } } /// @dev Returns true if and only if the function is running in the constructor function isConstructor() private view returns (bool) { // extcodesize checks the size of the code stored in an address, and // address returns the current address. Since the code is still not // deployed when running a constructor, any checks on its code size will // yield zero, making it an effective way to detect if a contract is // under construction or not. address self = address(this); uint256 cs; assembly { cs := extcodesize(self) } return cs == 0; } // Reserved storage space to allow for layout changes in the future. uint256[50] private ______gap; } // File: @openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol pragma solidity ^0.6.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 GSN 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. */ contract ContextUpgradeSafe is Initializable { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. function __Context_init() internal initializer { __Context_init_unchained(); } function __Context_init_unchained() internal initializer {} function _msgSender() internal virtual view returns (address payable) { return msg.sender; } function _msgData() internal virtual view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } uint256[50] private __gap; } // File: @openzeppelin/contracts-ethereum-package/contracts/access/Ownable.sol pragma solidity ^0.6.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. */ contract OwnableUpgradeSafe is Initializable, ContextUpgradeSafe { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ function __Ownable_init() internal initializer { __Context_init_unchained(); __Ownable_init_unchained(); } function __Ownable_init_unchained() internal initializer { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } uint256[49] private __gap; } // File: @openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @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) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @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 sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @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) { // 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 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts 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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts 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 mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message 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, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File: contracts/INerdVault.sol pragma solidity 0.6.12; interface INerdVault { function updatePendingRewards() external; function depositFor( address _depositFor, uint256 _pid, uint256 _amount ) external; function poolInfo(uint256 _pid) external view returns ( address, uint256, uint256, uint256, bool, uint256, uint256, uint256, uint256 ); } // File: contracts/INoFeeSimple.sol pragma solidity 0.6.12; interface INoFeeSimple { function noFeeList(address) external view returns (bool); } // File: contracts/INerdBaseToken.sol pragma solidity 0.6.12; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface INerdBaseToken { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount ) external returns (bool); /** * @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 ); event Log(string log); } interface INerdBaseTokenLGE is INerdBaseToken { function getAllocatedLP(address _user) external view returns (uint256); function getLpReleaseStart() external view returns (uint256); function getTokenUniswapPair() external view returns (address); function getTotalLPTokensMinted() external view returns (uint256); function getReleasableLPTokensMinted() external view returns (uint256); function isLPGenerationCompleted() external view returns (bool); function tokenUniswapPair() external view returns (address); function getUniswapRouterV2() external view returns (address); function getUniswapFactory() external view returns (address); function devFundAddress() external view returns (address); function transferCheckerAddress() external view returns (address); function feeDistributor() external view returns (address); } // File: contracts/FeeDistributorProxy.sol pragma solidity 0.6.12; interface IUpdateReward { function updatePendingRewards() external; } contract FeeDistributorProxy is OwnableUpgradeSafe, INerdVault { using SafeMath for uint256; IUpdateReward public vault; IUpdateReward public stakingPool; INerdBaseTokenLGE public nerd; uint256 public stakingPercentage; function initialize(address _pool) public initializer { OwnableUpgradeSafe.__Ownable_init(); stakingPool = IUpdateReward(_pool); vault = IUpdateReward(0x47cE2237d7235Ff865E1C74bF3C6d9AF88d1bbfF); nerd = INerdBaseTokenLGE(0x32C868F6318D6334B2250F323D914Bc2239E4EeE); stakingPercentage = 20; require( INoFeeSimple(nerd.transferCheckerAddress()).noFeeList( address(this) ), "!Distributor should not have fee" ); } function setStakingPercentage(uint256 _staking) external onlyOwner { stakingPercentage = _staking; } function updatePendingRewards() external override { uint256 balance = nerd.balanceOf(address(this)); uint256 stakingRewards = balance.mul(stakingPercentage).div(100); uint256 vaultRewards = balance.sub(stakingRewards); nerd.transfer(address(vault), vaultRewards); vault.updatePendingRewards(); nerd.transfer(address(stakingPool), stakingRewards); stakingPool.updatePendingRewards(); } function depositFor( address _depositFor, uint256 _pid, uint256 _amount ) external override {} function poolInfo(uint256 _pid) external override view returns ( address, uint256, uint256, uint256, bool, uint256, uint256, uint256, uint256 ) { return (address(0), 0, 0, 0, false, 0, 0, 0, 0); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_depositFor","type":"address"},{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"depositFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nerd","outputs":[{"internalType":"contract INerdBaseTokenLGE","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_staking","type":"uint256"}],"name":"setStakingPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingPool","outputs":[{"internalType":"contract IUpdateReward","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updatePendingRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"contract IUpdateReward","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610e43806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806381e1ccba1161007157806381e1ccba146101ac5780638da5cb5b146101c6578063c4d66de8146101ce578063f2fde38b146101f4578063faa1809e1461021a578063fbfa77cf14610222576100b4565b80630c56ae3b146100b95780630e38c32b146100dd5780631526fe27146100fc5780634cf5fbf51461016a578063715018a61461019c578063762b6da6146101a4575b600080fd5b6100c161022a565b604080516001600160a01b039092168252519081900360200190f35b6100fa600480360360208110156100f357600080fd5b5035610239565b005b6101196004803603602081101561011257600080fd5b50356102a8565b604080516001600160a01b03909a168a5260208a0198909852888801969096526060880194909452911515608087015260a086015260c085015260e084015261010083015251908190036101200190f35b6100fa6004803603606081101561018057600080fd5b506001600160a01b0381351690602081013590604001356102be565b6100fa6102c3565b6100c1610377565b6101b4610386565b60408051918252519081900360200190f35b6100c161038c565b6100fa600480360360208110156101e457600080fd5b50356001600160a01b031661039b565b6100fa6004803603602081101561020a57600080fd5b50356001600160a01b03166105d4565b6100fa6106df565b6100c1610952565b6098546001600160a01b031681565b610241610961565b6065546001600160a01b039081169116146102a3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b609a55565b5060009081908190819081908190819081908190565b505050565b6102cb610961565b6065546001600160a01b0390811691161461032d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6065546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606580546001600160a01b0319169055565b6099546001600160a01b031681565b609a5481565b6065546001600160a01b031690565b600054610100900460ff16806103b457506103b4610965565b806103c2575060005460ff16155b6103fd5760405162461bcd60e51b815260040180806020018281038252602e815260200180610de0602e913960400191505060405180910390fd5b600054610100900460ff16158015610428576000805460ff1961ff0019909116610100171660011790555b61043061096b565b609880546001600160a01b038085166001600160a01b0319928316179092556097805482167347ce2237d7235ff865e1c74bf3c6d9af88d1bbff179055609980549091167332c868f6318d6334b2250f323d914bc2239e4eee17908190556014609a556040805163b2aef26b60e01b81529051919092169163b2aef26b916004808301926020929190829003018186803b1580156104cd57600080fd5b505afa1580156104e1573d6000803e3d6000fd5b505050506040513d60208110156104f757600080fd5b5051604080516308aa1ff760e41b815230600482015290516001600160a01b0390921691638aa1ff7091602480820192602092909190829003018186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d602081101561056b57600080fd5b50516105be576040805162461bcd60e51b815260206004820181905260248201527f214469737472696275746f722073686f756c64206e6f74206861766520666565604482015290519081900360640190fd5b80156105d0576000805461ff00191690555b5050565b6105dc610961565b6065546001600160a01b0390811691161461063e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166106835760405162461bcd60e51b8152600401808060200182810382526026815260200180610d996026913960400191505060405180910390fd5b6065546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b609954604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561072a57600080fd5b505afa15801561073e573d6000803e3d6000fd5b505050506040513d602081101561075457600080fd5b5051609a5490915060009061077790606490610771908590610a1d565b90610a7f565b905060006107858383610ac1565b6099546097546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156107e057600080fd5b505af11580156107f4573d6000803e3d6000fd5b505050506040513d602081101561080a57600080fd5b505060975460408051637d50c04f60e11b815290516001600160a01b039092169163faa1809e9160048082019260009290919082900301818387803b15801561085257600080fd5b505af1158015610866573d6000803e3d6000fd5b50506099546098546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101889052905191909216935063a9059cbb925060448083019260209291908290030181600087803b1580156108c357600080fd5b505af11580156108d7573d6000803e3d6000fd5b505050506040513d60208110156108ed57600080fd5b505060985460408051637d50c04f60e11b815290516001600160a01b039092169163faa1809e9160048082019260009290919082900301818387803b15801561093557600080fd5b505af1158015610949573d6000803e3d6000fd5b50505050505050565b6097546001600160a01b031681565b3390565b303b1590565b600054610100900460ff16806109845750610984610965565b80610992575060005460ff16155b6109cd5760405162461bcd60e51b815260040180806020018281038252602e815260200180610de0602e913960400191505060405180910390fd5b600054610100900460ff161580156109f8576000805460ff1961ff0019909116610100171660011790555b610a00610b03565b610a08610ba3565b8015610a1a576000805461ff00191690555b50565b600082610a2c57506000610a79565b82820282848281610a3957fe5b0414610a765760405162461bcd60e51b8152600401808060200182810382526021815260200180610dbf6021913960400191505060405180910390fd5b90505b92915050565b6000610a7683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c9c565b6000610a7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d3e565b600054610100900460ff1680610b1c5750610b1c610965565b80610b2a575060005460ff16155b610b655760405162461bcd60e51b815260040180806020018281038252602e815260200180610de0602e913960400191505060405180910390fd5b600054610100900460ff16158015610a08576000805460ff1961ff0019909116610100171660011790558015610a1a576000805461ff001916905550565b600054610100900460ff1680610bbc5750610bbc610965565b80610bca575060005460ff16155b610c055760405162461bcd60e51b815260040180806020018281038252602e815260200180610de0602e913960400191505060405180910390fd5b600054610100900460ff16158015610c30576000805460ff1961ff0019909116610100171660011790555b6000610c3a610961565b606580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610a1a576000805461ff001916905550565b60008183610d285760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ced578181015183820152602001610cd5565b50505050905090810190601f168015610d1a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610d3457fe5b0495945050505050565b60008184841115610d905760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ced578181015183820152602001610cd5565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122094857f6288e1de0e0231fa30ff9bda0ba3b173f97119d3354ad4a2382b5104a764736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806381e1ccba1161007157806381e1ccba146101ac5780638da5cb5b146101c6578063c4d66de8146101ce578063f2fde38b146101f4578063faa1809e1461021a578063fbfa77cf14610222576100b4565b80630c56ae3b146100b95780630e38c32b146100dd5780631526fe27146100fc5780634cf5fbf51461016a578063715018a61461019c578063762b6da6146101a4575b600080fd5b6100c161022a565b604080516001600160a01b039092168252519081900360200190f35b6100fa600480360360208110156100f357600080fd5b5035610239565b005b6101196004803603602081101561011257600080fd5b50356102a8565b604080516001600160a01b03909a168a5260208a0198909852888801969096526060880194909452911515608087015260a086015260c085015260e084015261010083015251908190036101200190f35b6100fa6004803603606081101561018057600080fd5b506001600160a01b0381351690602081013590604001356102be565b6100fa6102c3565b6100c1610377565b6101b4610386565b60408051918252519081900360200190f35b6100c161038c565b6100fa600480360360208110156101e457600080fd5b50356001600160a01b031661039b565b6100fa6004803603602081101561020a57600080fd5b50356001600160a01b03166105d4565b6100fa6106df565b6100c1610952565b6098546001600160a01b031681565b610241610961565b6065546001600160a01b039081169116146102a3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b609a55565b5060009081908190819081908190819081908190565b505050565b6102cb610961565b6065546001600160a01b0390811691161461032d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6065546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606580546001600160a01b0319169055565b6099546001600160a01b031681565b609a5481565b6065546001600160a01b031690565b600054610100900460ff16806103b457506103b4610965565b806103c2575060005460ff16155b6103fd5760405162461bcd60e51b815260040180806020018281038252602e815260200180610de0602e913960400191505060405180910390fd5b600054610100900460ff16158015610428576000805460ff1961ff0019909116610100171660011790555b61043061096b565b609880546001600160a01b038085166001600160a01b0319928316179092556097805482167347ce2237d7235ff865e1c74bf3c6d9af88d1bbff179055609980549091167332c868f6318d6334b2250f323d914bc2239e4eee17908190556014609a556040805163b2aef26b60e01b81529051919092169163b2aef26b916004808301926020929190829003018186803b1580156104cd57600080fd5b505afa1580156104e1573d6000803e3d6000fd5b505050506040513d60208110156104f757600080fd5b5051604080516308aa1ff760e41b815230600482015290516001600160a01b0390921691638aa1ff7091602480820192602092909190829003018186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d602081101561056b57600080fd5b50516105be576040805162461bcd60e51b815260206004820181905260248201527f214469737472696275746f722073686f756c64206e6f74206861766520666565604482015290519081900360640190fd5b80156105d0576000805461ff00191690555b5050565b6105dc610961565b6065546001600160a01b0390811691161461063e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166106835760405162461bcd60e51b8152600401808060200182810382526026815260200180610d996026913960400191505060405180910390fd5b6065546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b609954604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561072a57600080fd5b505afa15801561073e573d6000803e3d6000fd5b505050506040513d602081101561075457600080fd5b5051609a5490915060009061077790606490610771908590610a1d565b90610a7f565b905060006107858383610ac1565b6099546097546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156107e057600080fd5b505af11580156107f4573d6000803e3d6000fd5b505050506040513d602081101561080a57600080fd5b505060975460408051637d50c04f60e11b815290516001600160a01b039092169163faa1809e9160048082019260009290919082900301818387803b15801561085257600080fd5b505af1158015610866573d6000803e3d6000fd5b50506099546098546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101889052905191909216935063a9059cbb925060448083019260209291908290030181600087803b1580156108c357600080fd5b505af11580156108d7573d6000803e3d6000fd5b505050506040513d60208110156108ed57600080fd5b505060985460408051637d50c04f60e11b815290516001600160a01b039092169163faa1809e9160048082019260009290919082900301818387803b15801561093557600080fd5b505af1158015610949573d6000803e3d6000fd5b50505050505050565b6097546001600160a01b031681565b3390565b303b1590565b600054610100900460ff16806109845750610984610965565b80610992575060005460ff16155b6109cd5760405162461bcd60e51b815260040180806020018281038252602e815260200180610de0602e913960400191505060405180910390fd5b600054610100900460ff161580156109f8576000805460ff1961ff0019909116610100171660011790555b610a00610b03565b610a08610ba3565b8015610a1a576000805461ff00191690555b50565b600082610a2c57506000610a79565b82820282848281610a3957fe5b0414610a765760405162461bcd60e51b8152600401808060200182810382526021815260200180610dbf6021913960400191505060405180910390fd5b90505b92915050565b6000610a7683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c9c565b6000610a7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d3e565b600054610100900460ff1680610b1c5750610b1c610965565b80610b2a575060005460ff16155b610b655760405162461bcd60e51b815260040180806020018281038252602e815260200180610de0602e913960400191505060405180910390fd5b600054610100900460ff16158015610a08576000805460ff1961ff0019909116610100171660011790558015610a1a576000805461ff001916905550565b600054610100900460ff1680610bbc5750610bbc610965565b80610bca575060005460ff16155b610c055760405162461bcd60e51b815260040180806020018281038252602e815260200180610de0602e913960400191505060405180910390fd5b600054610100900460ff16158015610c30576000805460ff1961ff0019909116610100171660011790555b6000610c3a610961565b606580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610a1a576000805461ff001916905550565b60008183610d285760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ced578181015183820152602001610cd5565b50505050905090810190601f168015610d1a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610d3457fe5b0495945050505050565b60008184841115610d905760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ced578181015183820152602001610cd5565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122094857f6288e1de0e0231fa30ff9bda0ba3b173f97119d3354ad4a2382b5104a764736f6c634300060c0033
Deployed Bytecode Sourcemap
16557:1896:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16693:32;;;:::i;:::-;;;;-1:-1:-1;;;;;16693:32:0;;;;;;;;;;;;;;17353:114;;;;;;;;;;;;;;;;-1:-1:-1;17353:114:0;;:::i;:::-;;18073:377;;;;;;;;;;;;;;;;-1:-1:-1;18073:377:0;;:::i;:::-;;;;-1:-1:-1;;;;;18073:377:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17939:126;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17939:126:0;;;;;;;;;;;;;:::i;5707:148::-;;;:::i;16732:29::-;;;:::i;16768:32::-;;;:::i;:::-;;;;;;;;;;;;;;;;5065:79;;;:::i;16809:536::-;;;;;;;;;;;;;;;;-1:-1:-1;16809:536:0;-1:-1:-1;;;;;16809:536:0;;:::i;6010:281::-;;;;;;;;;;;;;;;;-1:-1:-1;6010:281:0;-1:-1:-1;;;;;6010:281:0;;:::i;17475:456::-;;;:::i;16660:26::-;;;:::i;16693:32::-;;;-1:-1:-1;;;;;16693:32:0;;:::o;17353:114::-;5287:12;:10;:12::i;:::-;5277:6;;-1:-1:-1;;;;;5277:6:0;;;:22;;;5269:67;;;;;-1:-1:-1;;;5269:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17431:17:::1;:28:::0;17353:114::o;18073:377::-;-1:-1:-1;18187:7:0;;;;;;;;;;;;;;;;;;18073:377::o;17939:126::-;;;;:::o;5707:148::-;5287:12;:10;:12::i;:::-;5277:6;;-1:-1:-1;;;;;5277:6:0;;;:22;;;5269:67;;;;;-1:-1:-1;;;5269:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5798:6:::1;::::0;5777:40:::1;::::0;5814:1:::1;::::0;-1:-1:-1;;;;;5798:6:0::1;::::0;5777:40:::1;::::0;5814:1;;5777:40:::1;5828:6;:19:::0;;-1:-1:-1;;;;;;5828:19:0::1;::::0;;5707:148::o;16732:29::-;;;-1:-1:-1;;;;;16732:29:0;;:::o;16768:32::-;;;;:::o;5065:79::-;5130:6;;-1:-1:-1;;;;;5130:6:0;5065:79;:::o;16809:536::-;1174:12;;;;;;;;:31;;;1190:15;:13;:15::i;:::-;1174:47;;;-1:-1:-1;1210:11:0;;;;1209:12;1174:47;1152:143;;;;-1:-1:-1;;;1152:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1308:19;1331:12;;;;;;1330:13;1354:99;;;;1389:12;:19;;-1:-1:-1;;;;1389:19:0;;;;;1423:18;1404:4;1423:18;;;1354:99;16874:35:::1;:33;:35::i;:::-;16920:11;:34:::0;;-1:-1:-1;;;;;16920:34:0;;::::1;-1:-1:-1::0;;;;;;16920:34:0;;::::1;;::::0;;;16967:5:::1;:65:::0;;;::::1;16989:42;16967:65;::::0;;17043:4:::1;:68:::0;;;;::::1;17068:42;17043:68;::::0;;;;17142:2:::1;17122:17;:22:::0;17190:29:::1;::::0;;-1:-1:-1;;;17190:29:0;;;;:4;;;::::1;::::0;:27:::1;::::0;:29:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:4;:29;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17190:29:0;17177:100:::1;::::0;;-1:-1:-1;;;17177:100:0;;17257:4:::1;17177:100;::::0;::::1;::::0;;;-1:-1:-1;;;;;17177:53:0;;::::1;::::0;::::1;::::0;:100;;;;;17190:29:::1;::::0;17177:100;;;;;;;;:53;:100;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17177:100:0;17155:182:::1;;;::::0;;-1:-1:-1;;;17155:182:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;1483:14:::0;1479:67;;;1529:5;1514:20;;-1:-1:-1;;1514:20:0;;;1479:67;16809:536;;:::o;6010:281::-;5287:12;:10;:12::i;:::-;5277:6;;-1:-1:-1;;;;;5277:6:0;;;:22;;;5269:67;;;;;-1:-1:-1;;;5269:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6113:22:0;::::1;6091:110;;;;-1:-1:-1::0;;;6091:110:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:6;::::0;6217:38:::1;::::0;-1:-1:-1;;;;;6217:38:0;;::::1;::::0;6238:6:::1;::::0;6217:38:::1;::::0;6238:6:::1;::::0;6217:38:::1;6266:6;:17:::0;;-1:-1:-1;;;;;;6266:17:0::1;-1:-1:-1::0;;;;;6266:17:0;;;::::1;::::0;;;::::1;::::0;;6010:281::o;17475:456::-;17554:4;;:29;;;-1:-1:-1;;;17554:29:0;;17577:4;17554:29;;;;;;17536:15;;-1:-1:-1;;;;;17554:4:0;;:14;;:29;;;;;;;;;;;;;;:4;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17554:29:0;17631:17;;17554:29;;-1:-1:-1;17594:22:0;;17619:39;;17654:3;;17619:30;;17554:29;;17619:11;:30::i;:::-;:34;;:39::i;:::-;17594:64;-1:-1:-1;17669:20:0;17692:27;:7;17594:64;17692:11;:27::i;:::-;17732:4;;17754:5;;17732:43;;;-1:-1:-1;;;17732:43:0;;-1:-1:-1;;;;;17754:5:0;;;17732:43;;;;;;;;;;;;17669:50;;-1:-1:-1;17732:4:0;;;:13;;:43;;;;;;;;;;;;;;;:4;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17786:5:0;;:28;;;-1:-1:-1;;;17786:28:0;;;;-1:-1:-1;;;;;17786:5:0;;;;:26;;:28;;;;;:5;;:28;;;;;;;;:5;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17827:4:0;;17849:11;;17827:51;;;-1:-1:-1;;;17827:51:0;;-1:-1:-1;;;;;17849:11:0;;;17827:51;;;;;;;;;;;;:4;;;;;-1:-1:-1;17827:13:0;;-1:-1:-1;17827:51:0;;;;;;;;;;;;;;:4;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17889:11:0;;:34;;;-1:-1:-1;;;17889:34:0;;;;-1:-1:-1;;;;;17889:11:0;;;;:32;;:34;;;;;:11;;:34;;;;;;;;:11;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17475:456;;;:::o;16660:26::-;;;-1:-1:-1;;;;;16660:26:0;;:::o;3326:106::-;3414:10;3326:106;:::o;1646:568::-;2087:4;2154:17;2199:7;1646:568;:::o;4651:129::-;1174:12;;;;;;;;:31;;;1190:15;:13;:15::i;:::-;1174:47;;;-1:-1:-1;1210:11:0;;;;1209:12;1174:47;1152:143;;;;-1:-1:-1;;;1152:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1308:19;1331:12;;;;;;1330:13;1354:99;;;;1389:12;:19;;-1:-1:-1;;;;1389:19:0;;;;;1423:18;1404:4;1423:18;;;1354:99;4709:26:::1;:24;:26::i;:::-;4746;:24;:26::i;:::-;1483:14:::0;1479:67;;;1529:5;1514:20;;-1:-1:-1;;1514:20:0;;;1479:67;4651:129;:::o;8636:471::-;8694:7;8939:6;8935:47;;-1:-1:-1;8969:1:0;8962:8;;8935:47;9006:5;;;9010:1;9006;:5;:1;9030:5;;;;;:10;9022:56;;;;-1:-1:-1;;;9022:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9098:1;-1:-1:-1;8636:471:0;;;;;:::o;9575:132::-;9633:7;9660:39;9664:1;9667;9660:39;;;;;;;;;;;;;;;;;:3;:39::i;7728:136::-;7786:7;7813:43;7817:1;7820;7813:43;;;;;;;;;;;;;;;;;:3;:43::i;3259:59::-;1174:12;;;;;;;;:31;;;1190:15;:13;:15::i;:::-;1174:47;;;-1:-1:-1;1210:11:0;;;;1209:12;1174:47;1152:143;;;;-1:-1:-1;;;1152:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1308:19;1331:12;;;;;;1330:13;1354:99;;;;1389:12;:19;;-1:-1:-1;;;;1389:19:0;;;;;1423:18;1404:4;1423:18;;;1483:14;1479:67;;;1529:5;1514:20;;-1:-1:-1;;1514:20:0;;;3259:59;:::o;4788:196::-;1174:12;;;;;;;;:31;;;1190:15;:13;:15::i;:::-;1174:47;;;-1:-1:-1;1210:11:0;;;;1209:12;1174:47;1152:143;;;;-1:-1:-1;;;1152:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1308:19;1331:12;;;;;;1330:13;1354:99;;;;1389:12;:19;;-1:-1:-1;;;;1389:19:0;;;;;1423:18;1404:4;1423:18;;;1354:99;4856:17:::1;4876:12;:10;:12::i;:::-;4899:6;:18:::0;;-1:-1:-1;;;;;;4899:18:0::1;-1:-1:-1::0;;;;;4899:18:0;::::1;::::0;;::::1;::::0;;;4933:43:::1;::::0;4899:18;;-1:-1:-1;4899:18:0;-1:-1:-1;;4933:43:0::1;::::0;-1:-1:-1;;4933:43:0::1;1465:1;1483:14:::0;1479:67;;;1529:5;1514:20;;-1:-1:-1;;1514:20:0;;;4788:196;:::o;10195:379::-;10315:7;10417:12;10410:5;10402:28;;;;-1:-1:-1;;;10402:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10441:9;10457:1;10453;:5;;;;;;;10195:379;-1:-1:-1;;;;;10195:379:0:o;8159:226::-;8279:7;8315:12;8307:6;;;;8299:29;;;;-1:-1:-1;;;8299:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8351:5:0;;;8159:226::o
Swarm Source
ipfs://94857f6288e1de0e0231fa30ff9bda0ba3b173f97119d3354ad4a2382b5104a7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.